diff --git a/injectables/AccountRepo.html b/injectables/AccountRepo.html index 5110e0f5a18..d93be9d7aec 100644 --- a/injectables/AccountRepo.html +++ b/injectables/AccountRepo.html @@ -930,8 +930,8 @@

-
Defined in apps/server/src/modules/account/repo/account.repo.ts:77
+
Defined in apps/server/src/modules/account/repo/account.repo.ts:79
@@ -1551,7 +1551,7 @@

import { AnyEntity, EntityName, Primary } from '@mikro-orm/core';
 import { ObjectId } from '@mikro-orm/mongodb';
 import { Injectable } from '@nestjs/common';
-import { EntityId } from '@shared/domain';
+import { EntityId, SortOrder } from '@shared/domain';
 import { Account } from '@shared/domain/entity/account.entity';
 import { BaseRepo } from '@shared/repo/base.repo';
 
@@ -1621,7 +1621,9 @@ 

* @deprecated For migration purpose only */ async findMany(offset = 0, limit = 100): Promise<Account[]> { - return this._em.find(this.entityName, {}, { offset, limit }); + const result = await this._em.find(this.entityName, {}, { offset, limit, orderBy: { id: SortOrder.asc } }); + this._em.clear(); + return result; } private async searchByUsername( diff --git a/js/search/search_index.js b/js/search/search_index.js index 89ab750dd4a..153cb42ceae 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.231,1,5.958]],["body/classes/AbstractAccountService.html",[0,0.169,1,6.541,2,0.559,3,0.012,4,0.012,5,0.006,6,4.991,7,0.076,8,0.896,9,6.74,10,3.038,11,6.263,12,3.431,13,5.438,14,6.541,15,6.541,16,6.541,17,6.541,18,3.783,19,6.541,20,6.541,21,6.541,22,6.912,23,6.912,24,6.912,25,6.541,26,2.965,27,0.539,28,4.991,29,1.024,30,0.001,31,0.737,32,0.18,33,0.631,34,1.274,35,1.58,36,2.973,37,6.263,38,4.991,39,2.412,40,3.615,41,4.991,42,5.438,43,4.991,44,6.541,45,4.991,46,6.541,47,0.947,48,4.257,49,3.926,50,4.991,51,5.446,52,3.571,53,5.438,54,6.541,55,2.75,56,5.412,57,4.991,58,3.223,59,2.323,60,6.541,61,4.991,62,2.932,63,6.912,64,7.799,65,4.991,66,6.886,67,6.541,68,4.991,69,6.541,70,4.476,71,4.991,72,3.393,73,6.912,74,6.042,75,7.476,76,6.912,77,4.763,78,5.05,79,6.541,80,6.541,81,6.912,82,7.023,83,2.752,84,4.991,85,5.789,86,6.912,87,4.506,88,4.991,89,6.912,90,4.991,91,6.912,92,8.288,93,4.991,94,2.428,95,0.114,96,1.371,97,2.163,98,2.962,99,0.833,100,1.676,101,0.008,102,3.758,103,0,104,0]],["title/interfaces/AcceptConsentRequestBody.html",[105,0.735,106,5.705]],["body/interfaces/AcceptConsentRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,32,0.188,33,0.676,47,0.984,55,2.612,95,0.112,101,0.015,103,0.001,104,0.001,105,0.956,106,9.307,107,2.126,108,6.193,109,8.19,110,6.589,111,7.159,112,0.882,113,11.766,114,11.134,115,11.766,116,9.97,117,9.97,118,8.108,119,2.47,120,4.887,121,7.277,122,5.984,123,7.421,124,4.453,125,7.75,126,7.159]],["title/interfaces/AcceptLoginRequestBody.html",[105,0.735,127,5.503]],["body/interfaces/AcceptLoginRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.186,33,0.682,47,0.996,55,2.62,77,8.128,101,0.015,103,0.001,104,0.001,105,0.962,107,2.14,108,6.235,109,8.245,111,7.206,112,0.886,116,9.994,117,9.994,119,2.478,127,9.015,128,3.592,129,11.16,130,11.16,131,4.778,132,11.794,133,4.257]],["title/classes/AcceptQuery.html",[0,0.231,134,5.503]],["body/classes/AcceptQuery.html",[0,0.396,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,27,0.392,30,0.001,32,0.131,95,0.159,101,0.016,103,0.001,104,0.001,112,0.926,119,2.373,128,4.695,134,9.42,135,6.47,136,9.576,137,7.904,138,1.742,139,9.576,140,6.528,141,5.568,142,4.56,143,2.595,144,3.84,145,3.236,146,9.576,147,6.258,148,3.039,149,4.434,150,2.182,151,7.751,152,9.576,153,2.177]],["title/entities/Account.html",[94,3.313,154,1.456]],["body/entities/Account.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.172,27,0.536,30,0.001,32,0.181,33,0.663,39,3.052,47,0.909,48,5.387,49,4.698,51,5.114,82,8.234,83,3.483,87,5.283,94,4.458,95,0.133,96,2.517,97,2.867,101,0.015,103,0.001,104,0.001,112,0.835,119,1.865,124,5.283,138,2.378,143,3.076,144,4.243,145,2.544,154,1.958,155,2.208,156,6.616,157,6.885,158,8.493,159,7.099,160,7.346,161,6.616,162,6.616,163,6.616,164,6.616,165,6.616,166,6.616,167,6.616,168,5.225,169,6.616,170,5.183,171,6.616,172,4.226,173,1.956,174,3.644,175,2.925,176,8.47,177,1.211,178,2.748,179,4.333,180,1.186,181,1.771,182,2.152,183,5.346,184,6.116,185,6.116,186,6.116,187,5.043,188,5.542,189,6.116,190,6.116,191,3.58,192,4.215,193,4.812,194,5.183,195,6.116,196,6.116,197,5.183,198,5.542,199,5.788,200,6.116]],["title/modules/AccountApiModule.html",[201,1.804,202,5.503]],["body/modules/AccountApiModule.html",[0,0.29,3,0.02,4,0.02,5,0.01,30,0.001,95,0.171,99,1.424,101,0.014,103,0.001,104,0.001,201,3.161,202,11.428,203,3.071,204,3.3,205,3.396,206,3.382,207,3.368,208,4.371,209,4.082,210,8.539,211,8.539,212,8.539,213,9.442,214,6.148,215,12.251,216,11.1,217,7.95,218,4.317,219,3.327,220,3.248,221,7.895,222,5.304,223,4.469,224,10.44,225,4.281,226,1.221,227,3.516,228,8.539,229,8.539,230,7.895,231,8.539]],["title/classes/AccountByIdBodyParams.html",[0,0.231,232,5.958]],["body/classes/AccountByIdBodyParams.html",[0,0.352,2,0.888,3,0.019,4,0.019,5,0.009,7,0.12,27,0.472,30,0.001,31,0.58,32,0.157,33,0.623,47,0.862,51,5.607,87,6.531,95,0.155,101,0.013,103,0.001,104,0.001,112,0.822,119,2.107,138,2.096,142,5.083,143,2.893,144,4.281,145,3.608,147,5.558,148,2.517,150,1.807,153,2.619,157,7.548,232,9.057,233,10.232,234,7.933,235,7.933,236,2.114,237,10.352,238,5.961,239,3.079,240,7.933,241,7.933,242,7.933,243,7.933,244,7.933,245,3.203,246,8.365,247,3.472,248,4.809,249,4.941,250,5.358,251,9.571,252,6.646,253,3.884,254,6.646]],["title/classes/AccountByIdParams.html",[0,0.231,255,5.958]],["body/classes/AccountByIdParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.296,47,0.832,94,5.738,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,233,9.88,245,3.092,248,4.922,255,10.317,256,6.956,257,7.26,258,9.025]],["title/controllers/AccountController.html",[224,5.958,259,2.591]],["body/controllers/AccountController.html",[0,0.116,3,0.008,4,0.008,5,0.004,7,0.052,8,0.665,10,1.385,27,0.391,29,0.743,30,0.001,31,0.534,32,0.19,33,0.458,34,1.625,35,1.507,36,2.475,87,4.794,94,6.415,95,0.127,100,1.145,101,0.006,103,0,104,0,138,1.735,141,5.555,142,3.163,150,0.777,153,3.155,177,0.624,179,4.596,215,6.486,223,1.404,224,4.854,226,0.487,230,3.152,232,7.073,239,2.668,255,9.747,259,1.297,260,3.409,261,1.619,262,2.749,263,6.138,264,6.138,265,7.016,266,7.016,267,8.085,268,7.016,269,3.409,270,6.194,271,4.949,272,3.409,273,4.229,274,6.288,275,10.936,276,4.456,277,8.085,278,7.987,279,8.125,280,3.811,281,7.016,282,7.223,283,7.26,284,3.592,285,8.059,286,8.819,287,7.618,288,9.909,289,7.016,290,8.103,291,8.293,292,5.638,293,3.409,294,6.306,295,3.409,296,3.409,297,3.409,298,3.409,299,7.073,300,3.409,301,6.342,302,6.533,303,6.334,304,5.13,305,5.124,306,3.409,307,5.548,308,3.409,309,3.409,310,4.134,311,7.073,312,3.409,313,5.548,314,4.854,315,5.13,316,2.979,317,6.138,318,5.548,319,2.505,320,3.409,321,4.036,322,3.409,323,3.409,324,5.304,325,3.409,326,3.409,327,3.409,328,7.073,329,3.409,330,4.819,331,3.409,332,3.409,333,3.421,334,2.202,335,6.033,336,8.112,337,1.762,338,1.802,339,3.152,340,1.638,341,3.152,342,3.409,343,1.816,344,3.409,345,1.085,346,5.662,347,4.758,348,4.762,349,0.985,350,3.409,351,3.409,352,3.409,353,2.341,354,3.409,355,2.144,356,3.409,357,2.599,358,1.5,359,2.046,360,3.107,361,1.926,362,3.152,363,1.909,364,3.409,365,3.409,366,3.409,367,3.409,368,3.409,369,3.409,370,3.409,371,3.409,372,3.409,373,3.409,374,3.409]],["title/classes/AccountDto.html",[0,0.231,66,4.398]],["body/classes/AccountDto.html",[0,0.231,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,26,2.548,27,0.562,29,0.529,30,0.001,31,0.381,32,0.188,33,0.672,34,1.816,39,2.51,47,0.849,48,4.431,51,4.54,64,10.859,66,7.767,82,7.311,83,3.815,87,4.69,94,3.306,95,0.118,99,1.133,101,0.011,103,0.001,104,0.001,112,0.741,119,1.383,124,4.69,138,2.42,157,6.113,158,7.541,159,6.303,177,2.408,180,1.672,181,2.497,249,2.749,375,6.794,376,4.642,377,4.838,378,7.817,379,0.85,380,6.794,381,2.282,382,4.116,383,6.794,384,6.794,385,6.794,386,6.282,387,6.794,388,7.817,389,6.794,390,8.628,391,6.794,392,6.794,393,6.794,394,6.282,395,6.794,396,8.628,397,6.794,398,6.794,399,6.794,400,5.944,401,6.794,402,6.794,403,3.771,404,2.773,405,3.739,406,4.388,407,5.179,408,4.388,409,5.179]],["title/classes/AccountEntityToDtoMapper.html",[0,0.231,410,5.705]],["body/classes/AccountEntityToDtoMapper.html",[0,0.268,2,0.885,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.471,29,0.896,30,0.001,31,0.644,32,0.157,33,0.552,34,1.346,35,1.382,39,2.126,48,3.752,51,3.845,55,2.475,66,8.539,82,6.19,87,3.972,94,6.707,95,0.131,98,6.827,99,1.318,101,0.013,103,0.001,104,0.001,124,3.972,154,2.607,157,5.176,158,6.385,159,5.337,179,5.176,236,1.285,349,1.188,376,3.442,377,3.587,410,8.65,411,9.855,412,7.902,413,4.176,414,10.326,415,10.326,416,8.344,417,10.326,418,7.902,419,10.326,420,7.902,421,7.306,422,8.65,423,7.902,424,6.62,425,5.747,426,7.902,427,7.306,428,6.913,429,5.631,430,6.913,431,7.306,432,7.306,433,6.913,434,6.62,435,7.902,436,7.306,437,1.335,438,7.306,439,7.902,440,10.326,441,7.902,442,7.902,443,7.902,444,7.306]],["title/classes/AccountFactory.html",[0,0.231,445,5.503]],["body/classes/AccountFactory.html",[0,0.157,2,0.518,3,0.011,4,0.011,5,0.006,7,0.07,8,0.847,26,2.03,27,0.531,29,1.019,30,0.001,31,0.704,32,0.181,33,0.603,34,1.852,35,1.436,39,1.9,47,0.499,48,2.198,49,4.069,51,3.436,55,2.434,59,3.206,87,2.327,94,2.252,95,0.121,99,0.772,101,0.014,103,0,104,0,112,0.561,120,3.107,133,2.47,140,2.592,153,1.947,154,2.205,155,2.357,176,4.28,177,1.293,180,1.266,236,1.149,239,2.367,271,4.917,319,3.189,349,0.885,353,3.179,379,0.579,382,3.839,413,2.175,437,1.335,445,6.92,446,4.629,447,7.198,448,4.457,449,5.415,450,7.063,451,7.063,452,3.991,453,5.415,454,5.674,455,3.991,456,3.991,457,3.991,458,3.92,459,4.395,460,4.839,461,6.224,462,5.727,463,7.023,464,2.64,465,7.063,466,4.629,467,7.063,468,4.629,469,2.616,470,3.991,471,2.64,472,5.064,473,5.229,474,4.093,475,4.917,476,3.955,477,2.616,478,2.466,479,4.074,480,3.238,481,2.547,482,2.505,483,2.616,484,4.989,485,2.64,486,3.508,487,4.753,488,2.616,489,7.19,490,4.135,491,6.59,492,2.64,493,4.247,494,2.616,495,2.64,496,2.616,497,2.64,498,2.616,499,2.949,500,2.748,501,2.616,502,6.036,503,2.64,504,2.616,505,3.991,506,3.733,507,3.991,508,2.64,509,2.526,510,2.505,511,2.068,512,2.616,513,2.616,514,2.616,515,2.64,516,2.64,517,1.775,518,2.616,519,1.434,520,2.64,521,2.797,522,2.616,523,2.64,524,2.64,525,2.692,526,2.748,527,4.238,528,3.677,529,1.31,530,4.629,531,4.05,532,4.629,533,7.063,534,4.629,535,3.367,536,4.28,537,4.629,538,4.629]],["title/injectables/AccountIdmToDtoMapper.html",[539,0.901,540,5.503]],["body/injectables/AccountIdmToDtoMapper.html",[0,0.33,3,0.023,4,0.023,5,0.012,7,0.147,8,1.41,9,6.204,27,0.398,29,0.756,30,0.001,31,0.544,32,0.133,33,0.466,35,1.167,66,8.167,78,7.943,94,4.726,95,0.16,99,1.62,101,0.016,103,0.001,104,0.001,226,1.389,411,9.502,416,9.502,422,9.851,424,8.138,539,1.556,540,9.502,541,2.325,542,9.714,543,10.62,544,9.714]],["title/classes/AccountIdmToDtoMapperDb.html",[0,0.231,545,5.958]],["body/classes/AccountIdmToDtoMapperDb.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.343,27,0.368,29,0.699,30,0.001,31,0.503,32,0.123,33,0.431,34,1.529,35,1.079,39,2.415,48,4.263,51,4.368,66,8.258,78,7.567,83,2.756,94,5.45,95,0.155,99,1.497,101,0.015,103,0.001,104,0.001,180,2.007,236,1.822,349,0.927,376,3.91,377,4.075,378,7.521,382,2.709,411,7.254,416,9.053,422,9.385,424,7.521,425,6.53,429,6.397,437,1.161,540,10.333,543,10.333,545,9.8,546,8.977,547,8.3,548,8.3,549,10.683,550,10.357,551,8.3,552,7.854,553,7.854]],["title/classes/AccountIdmToDtoMapperIdm.html",[0,0.231,554,5.958]],["body/classes/AccountIdmToDtoMapperIdm.html",[0,0.306,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,8,1.347,27,0.369,29,0.702,30,0.001,31,0.505,32,0.123,33,0.433,34,1.536,35,1.083,39,2.426,48,4.282,51,4.387,66,8.271,78,7.588,83,2.769,94,5.466,95,0.155,99,1.504,101,0.015,103,0.001,104,0.001,180,2.013,236,1.827,349,0.931,376,3.928,377,4.093,378,7.554,382,2.721,411,7.287,416,9.078,422,9.411,424,7.554,425,6.559,429,6.426,437,1.166,540,10.35,543,10.35,547,8.337,548,8.337,549,10.705,550,10.386,552,7.889,553,7.889,554,9.828,555,9.018,556,2.271]],["title/injectables/AccountLookupService.html",[539,0.901,557,5.705]],["body/injectables/AccountLookupService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.082,8,0.95,26,2.522,27,0.385,29,0.731,30,0.001,31,0.526,32,0.128,33,0.451,34,2.433,35,1.243,36,2.201,47,0.559,49,4.914,78,5.353,94,3.856,95,0.146,99,0.901,101,0.009,103,0,104,0,133,2.771,143,1.765,153,2.134,177,1.451,226,0.772,236,1.289,262,2.524,333,3.354,349,1.19,353,7.911,379,0.991,425,3.927,437,1.025,482,5.599,524,5.356,539,1.049,541,1.292,557,6.639,558,9.565,559,5.399,560,4.259,561,11.289,562,5.443,563,7.711,564,3.989,565,7.248,566,9.565,567,9.051,568,5.049,569,7.372,570,4.864,571,7.926,572,6.209,573,5.353,574,5.895,575,7.926,576,6.934,577,10.077,578,6.988,579,6.135,580,7.926,581,7.328,582,5.399,583,8.36,584,7.797,585,5.399,586,7.926,587,7.926,588,5.399,589,10.346,590,6.35,591,5.846,592,12.21,593,4.266,594,10.346,595,6.507,596,7.328,597,5.399,598,3.109,599,3.927,600,3.354,601,4.23,602,4.363,603,1.592,604,3.22,605,7.328,606,4.724,607,7.926,608,1.827,609,5.399,610,5.399,611,5.399]],["title/modules/AccountModule.html",[201,1.804,213,4.853]],["body/modules/AccountModule.html",[0,0.228,3,0.016,4,0.016,5,0.008,30,0.001,95,0.174,99,1.118,101,0.011,103,0.001,104,0.001,143,1.493,201,2.804,203,2.411,204,2.591,205,2.666,206,2.655,207,2.644,208,3.876,209,3.98,213,10.169,214,5.742,216,10.366,217,7.425,218,3.677,219,2.612,220,2.55,225,3.647,226,0.958,227,2.76,236,1.504,349,0.955,474,2.864,540,8.553,545,8.089,554,8.089,557,10.366,584,6.933,598,3.86,599,4.876,600,4.164,601,5.252,612,6.704,613,6.704,614,6.704,615,6.704,616,9.694,617,10.304,618,11.826,619,9.999,620,10.826,621,12.374,622,9.001,623,6.704,624,6.704,625,5.865,626,6.704,627,6.704,628,10.584,629,6.704,630,6.704,631,3.44,632,6.704,633,6.198,634,6.704,635,6.704,636,3.898,637,4.777,638,6.704,639,3.146]],["title/interfaces/AccountParams.html",[105,0.735,640,5.705]],["body/interfaces/AccountParams.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.1,26,2.405,30,0.001,32,0.125,33,0.545,47,0.892,48,5.66,49,4.478,51,5.799,94,6.612,95,0.151,99,1.105,101,0.015,103,0.001,104,0.001,105,1.135,107,1.59,112,0.728,180,1.187,239,3.069,271,4.945,349,1.231,413,3.671,437,1.692,445,5.355,524,3.779,603,1.842,640,9.511,641,5.797,642,5.797,643,5.046,644,4.186,645,4.82,646,4.722,647,5.797,648,8.09,649,5.051,650,9.632,651,4.381,652,4.381,653,4.741,654,2.728,655,4.61,656,10.329,657,5.551,658,5.797,659,8.024,660,5.797,661,5.797,662,3.308,663,5.797,664,8.812,665,8.024,666,8.024,667,5.551,668,9.203,669,9.203,670,5.797,671,8.024,672,8.024,673,5.551,674,5.797,675,8.024,676,6.536,677,5.551]],["title/injectables/AccountRepo.html",[539,0.901,619,5.503]],["body/injectables/AccountRepo.html",[0,0.124,3,0.009,4,0.009,5,0.004,7,0.055,8,0.704,10,2.386,11,4.919,12,2.695,13,4.271,14,5.137,15,5.137,16,5.137,17,5.137,18,2.972,19,5.137,20,5.137,26,2.768,27,0.521,29,0.982,30,0.001,31,0.7,32,0.172,33,0.6,34,1.891,35,1.515,36,2.822,37,4.919,39,2.785,40,1.768,42,4.271,44,5.137,46,5.137,47,0.837,48,4,49,5.057,51,5.236,52,2.805,53,4.271,54,5.137,55,2.759,56,6.042,58,6.361,60,5.137,62,2.148,67,5.137,69,5.137,70,5.373,85,2.362,94,5.664,95,0.125,96,1.613,97,1.585,99,0.61,101,0.006,102,1.838,103,0,104,0,119,1.498,143,0.814,145,1.015,153,0.831,154,1.8,155,1.96,173,1.082,180,1.052,226,0.523,236,1.501,239,1.933,262,3.025,333,1.547,349,1.203,382,2.542,437,1.193,479,4.361,480,2.043,486,2.534,493,1.814,519,1.819,539,0.777,541,0.875,566,9.57,603,1.478,606,3.199,608,1.942,619,4.745,678,3.657,679,6.08,680,4.106,681,7.788,682,7.358,683,5.429,684,7.358,685,2.485,686,2.772,687,5.619,688,5.872,689,3.657,690,3.657,691,3.657,692,5.137,693,3.657,694,3.657,695,3.657,696,3.885,697,4.271,698,3.657,699,3.657,700,3.657,701,3.657,702,5.872,703,3.657,704,3.657,705,8.423,706,3.657,707,3.657,708,3.057,709,3.657,710,4.033,711,2.245,712,2.272,713,2.245,714,2.272,715,2.606,716,2.245,717,2.272,718,2.03,719,3.657,720,3.657,721,3.657,722,2.788,723,5.872,724,4.368,725,4.919,726,3.657,727,3.657,728,3.657,729,3.657,730,3.657,731,3.657,732,3.199,733,5.872,734,3.657,735,3.657,736,3.657,737,3.657,738,3.064,739,3.657,740,3.657,741,2.66,742,3.657,743,3.381,744,7.358,745,3.657,746,3.657,747,3.381,748,3.199,749,2.396,750,3.381,751,2.788,752,3.657,753,2.865,754,2.788,755,3.657,756,2.396,757,2.72,758,3.657,759,2.396,760,2.03,761,3.064,762,3.199,763,2.512,764,3.657,765,3.657,766,3.657,767,2.512]],["title/classes/AccountResponse.html",[0,0.231,279,5.503]],["body/classes/AccountResponse.html",[0,0.283,2,0.932,3,0.019,4,0.019,5,0.01,7,0.126,27,0.539,29,0.648,30,0.001,31,0.466,32,0.18,33,0.642,34,2.191,39,3.461,47,0.929,51,6.259,83,3.28,95,0.106,101,0.014,103,0.001,104,0.001,112,0.848,119,2.174,138,2.34,150,1.897,157,8.427,183,6.729,191,4.507,199,7.285,245,3.644,279,10.396,377,5.839,379,1.336,404,3.398,408,5.378,768,8.327,769,4.214,770,8.327,771,8.327,772,8.327,773,8.327,774,8.327,775,8.327]],["title/classes/AccountResponseMapper.html",[0,0.231,776,6.296]],["body/classes/AccountResponseMapper.html",[0,0.294,2,0.968,3,0.02,4,0.02,5,0.01,7,0.131,8,1.312,27,0.448,29,0.852,30,0.001,31,0.613,32,0.15,33,0.525,34,1.864,35,1.315,39,2.944,51,5.324,66,8.148,94,6.468,95,0.152,99,1.443,101,0.014,103,0.001,104,0.001,157,7.168,236,1.78,279,10.91,349,1.13,377,4.967,411,9.701,413,4.094,425,7.96,427,10.118,428,7.567,429,7.798,430,9.574,776,10.118,777,5.134,778,6.074,779,10.943,780,10.943,781,6.776,782,10.943,783,6.433,784,8.649,785,4.318,786,7.246]],["title/classes/AccountSaveDto.html",[0,0.231,64,5.335]],["body/classes/AccountSaveDto.html",[0,0.286,2,0.658,3,0.014,4,0.014,5,0.007,7,0.089,26,2.588,27,0.55,29,0.458,30,0.001,31,0.329,32,0.183,33,0.673,34,1.679,39,2.652,47,0.912,48,4.681,51,4.796,64,8.931,82,7.723,83,3.838,87,4.955,95,0.137,99,0.981,101,0.01,103,0,104,0,112,0.67,119,1.716,124,4.955,138,2.423,147,4.527,148,1.866,157,6.457,158,7.966,159,6.658,177,2.33,181,2.257,183,4.752,184,5.437,185,5.437,186,5.437,187,4.483,188,4.926,189,5.437,190,5.437,191,3.183,192,3.747,193,4.277,194,4.607,195,5.437,196,5.437,197,4.607,198,4.926,199,5.145,200,5.437,246,6.814,247,2.574,248,4.494,249,5.431,250,3.972,252,4.926,253,2.879,254,4.926,376,4.294,377,4.474,378,8.258,379,0.735,381,1.975,386,5.437,388,7.064,390,9.956,394,5.437,396,9.114,400,5.145,404,2.4,405,3.236,406,3.798,407,4.483,408,3.798,409,4.483,787,13.513,788,5.881,789,8.432,790,5.881,791,5.881,792,5.881,793,5.881,794,5.881,795,5.881,796,5.881,797,5.881,798,5.881,799,5.881,800,5.881,801,5.881,802,7.263,803,4.394,804,5.059,805,5.881,806,5.881,807,5.881]],["title/classes/AccountSearchListResponse.html",[0,0.231,317,5.958]],["body/classes/AccountSearchListResponse.html",[0,0.267,2,0.881,3,0.018,4,0.018,5,0.009,7,0.119,27,0.518,29,0.613,30,0.001,31,0.441,32,0.185,33,0.606,55,3.025,56,6.269,59,3.2,70,6.473,95,0.146,101,0.013,103,0.001,104,0.001,112,0.818,138,2.215,150,1.793,180,1.846,233,8.628,245,2.7,247,3.445,279,10.675,284,3.904,317,9.01,379,0.984,382,3.674,556,1.983,808,7.339,809,5.503,810,8.108,811,7.017,812,5.874,813,7.277,814,3.956,815,7.277,816,5.268,817,3.783,818,4.408,819,2.762,820,5.503,821,6.651,822,5.931,823,5.156,824,4.192,825,5.503,826,5.503,827,7.871,828,4.95,829,4.369]],["title/classes/AccountSearchQueryParams.html",[0,0.231,311,5.958]],["body/classes/AccountSearchQueryParams.html",[0,0.35,2,0.883,3,0.018,4,0.018,5,0.009,7,0.12,27,0.499,30,0.001,32,0.183,33,0.585,47,0.728,55,2.473,56,5.556,70,5.149,94,3.837,95,0.155,101,0.013,103,0.001,104,0.001,112,0.819,138,2.217,142,4.767,143,2.713,144,4.015,145,3.384,148,2.503,150,1.797,153,2.344,180,1.848,233,9.626,245,3.013,247,3.452,248,4.303,257,5.866,311,9.022,314,9.022,382,3.111,480,3.669,486,3.102,696,3.11,708,3.276,710,7.083,808,9.012,817,3.79,823,5.166,830,7.886,831,8.842,832,12.647,833,7.886,834,3.233,835,7.886,836,7.886,837,7.291,838,5.514,839,6.607,840,6.012,841,7.291,842,7.886,843,7.291,844,4.34,845,6.607,846,7.886,847,3.767,848,7.886]],["title/injectables/AccountServiceDb.html",[539,0.901,620,5.958]],["body/injectables/AccountServiceDb.html",[0,0.112,1,10.9,3,0.008,4,0.008,5,0.004,7,0.05,8,0.647,10,2.194,11,4.523,12,2.478,13,3.927,14,4.724,15,4.724,16,4.724,17,4.724,18,2.732,19,4.724,20,4.724,21,4.724,22,4.992,23,4.992,24,4.992,25,4.724,26,2.859,27,0.51,29,0.97,30,0.001,31,0.698,32,0.17,33,0.598,34,1.35,35,1.483,36,2.872,37,4.523,39,2.132,40,2.611,42,3.927,44,4.724,46,4.724,47,0.9,48,4.152,49,3.91,51,5.034,54,4.724,55,2.371,56,5.003,58,2.13,60,4.724,62,1.937,63,4.992,64,6.209,66,5.647,67,4.724,69,4.724,70,3.957,81,4.992,82,6.85,83,2.105,85,4.428,86,4.992,87,4.395,89,4.992,91,4.992,92,6.339,94,5.491,95,0.14,96,0.906,97,1.429,98,1.957,99,0.55,100,1.108,101,0.005,103,0,104,0,124,1.657,157,2.16,158,2.665,159,2.227,177,0.988,180,0.968,182,1.073,226,0.471,236,1.613,262,3.027,291,2.398,292,1.669,340,1.585,345,1.05,349,1.287,379,0.412,382,3.64,410,2.762,421,6.339,429,3.848,430,2.885,431,3.049,432,3.049,433,4.724,434,6.64,436,3.049,437,1.596,444,7.328,480,0.916,486,0.992,529,1.528,539,0.715,541,0.789,556,1.727,557,8.305,558,7.328,581,4.992,593,2,596,4.992,603,1.991,608,3.024,619,7.588,620,4.724,625,2.885,631,1.692,633,3.049,696,2.13,697,3.927,710,2.265,786,2.762,849,3.297,850,5.399,851,3.049,852,3.297,853,3.297,854,3.297,855,5.399,856,3.297,857,3.297,858,3.297,859,3.297,860,3.297,861,3.297,862,3.297,863,3.297,864,3.297,865,3.297,866,3.297,867,3.297,868,3.297,869,3.297,870,3.297,871,2.762,872,2.885,873,3.297,874,10.709,875,5.399,876,9.913,877,8.744,878,3.297,879,3.297,880,4.992,881,3.297,882,3.297,883,3.297,884,3.297,885,5.399,886,2.665,887,5.399,888,5.399,889,5.399,890,5.399,891,5.399,892,5.399,893,5.399,894,5.399,895,5.399,896,5.399,897,8.744,898,7.926,899,6.856,900,3.297,901,3.297,902,3.297,903,3.297,904,5.399,905,3.297,906,3.297,907,3.297,908,3.297,909,3.297,910,2.305,911,3.297,912,3.297,913,3.297]],["title/injectables/AccountValidationService.html",[539,0.901,618,5.958]],["body/injectables/AccountValidationService.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.1,8,1.098,26,2.926,27,0.465,29,0.883,30,0.001,31,0.635,32,0.155,33,0.544,35,1.263,36,2.622,39,3.465,47,0.923,48,5.387,49,2.609,59,3.265,85,8.16,94,4.458,95,0.151,99,1.104,101,0.011,103,0.001,104,0.001,154,1.414,179,4.333,217,7.581,226,0.946,227,2.724,262,2.865,345,2.106,349,1.086,379,0.827,410,5.542,425,4.812,428,5.788,437,1.467,478,3.524,539,1.213,541,1.584,593,2.45,603,1.329,608,2.423,618,8.015,619,9.959,625,5.788,653,5.432,708,4.713,851,6.116,880,6.116,914,6.616,915,9.162,916,9.162,917,9.162,918,6.616,919,9.162,920,6.616,921,9.162,922,6.616,923,9.162,924,6.616,925,6.616,926,6.616,927,6.116,928,3.641,929,3.927,930,5.183,931,4.215,932,5.542,933,3.809,934,6.116,935,6.116,936,6.616,937,6.616,938,6.616,939,6.616,940,6.116,941,9.162,942,9.162,943,6.616,944,6.616,945,4.06,946,3.07,947,6.616,948,6.616,949,6.616,950,6.616,951,9.162,952,6.616,953,9.162,954,6.616]],["title/interfaces/AdminIdAndToken.html",[105,0.735,955,5.503]],["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.124,34,1.813,36,2.783,39,3.43,47,0.996,51,4.029,55,1.552,72,2.603,83,1.761,87,3.625,95,0.105,101,0.014,103,0,104,0,105,0.778,107,0.852,112,0.455,119,1.978,124,5.35,133,1.242,143,0.791,177,1.05,180,0.636,226,0.508,236,1.478,239,1.655,262,2.866,316,3.872,324,4.19,347,2.1,349,1.364,379,0.444,437,1.377,479,1.33,490,1.259,509,1.937,517,2.765,519,1.1,521,4.471,529,2.571,539,0.759,603,2.402,608,2.24,639,1.666,653,1.835,662,3.943,676,4.086,756,4.725,819,2.906,838,2.482,955,8.601,956,2.869,957,2.974,958,5.043,959,2.045,960,6.312,961,2.326,962,2.782,963,2.707,964,4.492,965,3.938,966,4.492,967,4.492,968,4.492,969,4.634,970,1.717,971,3.156,972,2.974,973,2.974,974,2.974,975,2.974,976,2.974,977,2.974,978,2.583,979,2.974,980,2.974,981,2.974,982,2.293,983,7.613,984,1.531,985,2.869,986,1.939,987,2.398,988,2.482,989,1.971,990,2.53,991,2.974,992,5.392,993,5.328,994,5.328,995,5.636,996,6.298,997,7.927,998,6.565,999,6.042,1000,2.707,1001,2.974,1002,2.974,1003,2.482,1004,2.974,1005,2.974,1006,2.974,1007,2.782,1008,2.974,1009,5.651,1010,2.869,1011,2.974,1012,2.974,1013,2.974,1014,2.869,1015,2.974,1016,2.974,1017,2.974,1018,8.567,1019,2.974,1020,2.974,1021,1.389,1022,2.974,1023,2.974,1024,2.974,1025,2.974,1026,2.974,1027,2.974,1028,2.974,1029,2.974,1030,8.142,1031,8.142,1032,2.974,1033,2.974,1034,2.974,1035,2.974,1036,2.974,1037,2.974,1038,2.439,1039,2.974,1040,2.974,1041,2.974,1042,2.974,1043,2.974,1044,2.974,1045,2.974,1046,2.974,1047,2.974,1048,2.974,1049,2.974,1050,2.974,1051,2.974,1052,2.974,1053,4.371,1054,4.371,1055,2.974,1056,2.974,1057,2.974,1058,2.974,1059,2.974,1060,2.398,1061,2.974,1062,2.974,1063,2.974,1064,4.804,1065,2.974,1066,4.804,1067,4.804,1068,2.974,1069,2.974,1070,2.707,1071,6.042,1072,4.796,1073,4.427,1074,2.974,1075,3.368,1076,5.276,1077,4.371,1078,5.651,1079,6.042,1080,6.042,1081,6.042,1082,2.782,1083,2.974,1084,2.974,1085,2.974,1086,7.613,1087,6.042,1088,6.042,1089,6.042,1090,2.974,1091,4.804,1092,4.804,1093,2.974,1094,2.974,1095,2.974,1096,2.974,1097,2.974,1098,4.804,1099,4.492]],["title/modules/AntivirusModule.html",[201,1.804,1100,5.705]],["body/modules/AntivirusModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,8,1.028,27,0.351,29,0.668,30,0.001,31,0.48,32,0.117,33,0.411,35,1.03,95,0.159,101,0.014,103,0.001,104,0.001,107,2.058,145,2.381,201,3.167,203,3.084,208,3.141,209,3.225,226,1.226,236,1.395,349,1.124,413,3.352,437,1.109,490,3.041,636,6.329,637,6.111,1100,10.017,1101,8.576,1102,6.237,1103,7.475,1104,10.163,1105,8.576,1106,7.95,1107,10.063,1108,7.502,1109,10.461,1110,8.576,1111,8.576,1112,6.111,1113,5.203,1114,8.576,1115,6.93,1116,8.576,1117,5.327,1118,7.502,1119,5.538,1120,7.502,1121,11.957,1122,10.884,1123,7.502,1124,8.576,1125,8.576,1126,8.576,1127,6.718,1128,5.995,1129,8.576,1130,8.576,1131,8.576]],["title/interfaces/AntivirusModuleOptions.html",[105,0.735,1104,5.503]],["body/interfaces/AntivirusModuleOptions.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,32,0.183,47,1.012,55,2.625,101,0.02,103,0.001,104,0.001,105,1.316,107,2.149,112,0.888,119,2.677,986,3.028,1104,9.04,1113,7.979,1115,10.627,1117,8.168,1119,8.493,1128,8.933,1132,7.836,1133,10.704,1134,7.238,1135,5.707,1136,5.867,1137,5.867]],["title/injectables/AntivirusService.html",[539,0.901,1109,5.958]],["body/injectables/AntivirusService.html",[0,0.209,3,0.014,4,0.014,5,0.007,7,0.093,8,1.043,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,35,1.213,36,1.85,47,0.931,95,0.157,101,0.01,103,0,104,0,107,1.474,124,5.075,143,2.248,145,1.705,177,1.848,226,0.878,236,1.642,262,2.637,349,0.898,360,3.439,379,1.088,437,1.557,490,3.58,529,2.46,539,1.151,541,1.47,556,3.117,579,4.632,593,3.221,603,2.417,608,2.005,639,2.882,662,3.784,986,2.076,1107,10.153,1108,5.372,1109,7.608,1134,8.874,1135,6.996,1136,4.023,1137,4.023,1138,6.141,1139,8.696,1140,7.285,1141,7.608,1142,4.962,1143,8.951,1144,10.097,1145,6.141,1146,8.696,1147,6.906,1148,6.141,1149,5.697,1150,2.442,1151,8.696,1152,6.141,1153,8.696,1154,6.141,1155,7.825,1156,4.293,1157,3.966,1158,4.154,1159,4.376,1160,4.811,1161,4.962,1162,5.678,1163,3.862,1164,4.681,1165,4.811,1166,6.141,1167,10.097,1168,6.141,1169,6.141,1170,10.097,1171,6.141,1172,6.141,1173,6.141,1174,4.669,1175,5.782,1176,7.608,1177,6.141,1178,6.141,1179,8.696,1180,6.141,1181,8.696,1182,6.141,1183,6.141,1184,6.141,1185,5.372,1186,6.141,1187,6.141,1188,5.372,1189,5.372,1190,6.141,1191,6.141,1192,6.141,1193,6.141,1194,2.111,1195,6.141,1196,6.141,1197,6.141]],["title/interfaces/AntivirusServiceOptions.html",[105,0.735,1134,5.503]],["body/interfaces/AntivirusServiceOptions.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.177,47,1.01,55,1.99,101,0.02,103,0.001,104,0.001,105,1.335,107,2.218,112,0.906,119,2.701,986,3.126,1104,7.471,1113,8.052,1115,10.725,1117,8.244,1119,8.571,1128,6.464,1132,8.088,1133,7.745,1134,9.219,1135,5.89,1136,6.056,1137,6.056]],["title/classes/ApiValidationError.html",[0,0.231,1198,4.6]],["body/classes/ApiValidationError.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.539,29,0.602,30,0.001,31,0.433,32,0.186,33,0.546,35,0.929,47,0.803,55,1.664,95,0.129,101,0.013,103,0.001,104,0.001,112,0.808,138,2.286,177,2.495,180,1.825,182,2.516,226,1.106,283,7.423,347,2.833,379,0.967,382,3.893,511,3.455,595,4.864,816,5.55,819,2.714,946,5.281,984,3.336,986,4.249,1021,4.452,1198,6.877,1199,10.182,1200,7.735,1201,8.289,1202,6.899,1203,3.862,1204,7.252,1205,7.735,1206,7.735,1207,9.958,1208,4.995,1209,4.293,1210,4.995,1211,4.995,1212,4.995,1213,4.995,1214,4.995,1215,4.641,1216,4.412,1217,6.059,1218,6.48,1219,7.151,1220,5.702,1221,6.249,1222,4.864,1223,6.059]],["title/classes/ApiValidationErrorResponse.html",[0,0.231,1224,5.958]],["body/classes/ApiValidationErrorResponse.html",[0,0.221,2,0.729,3,0.015,4,0.015,5,0.008,7,0.099,8,1.086,27,0.525,29,0.705,30,0.001,31,0.507,32,0.185,33,0.541,35,0.782,47,0.905,55,1.401,95,0.143,101,0.011,103,0.001,104,0.001,112,0.719,153,2.059,168,3.712,177,2.415,180,1.623,226,0.931,283,7.72,340,3.128,348,4.523,361,3.678,379,0.814,382,3.573,437,1.348,480,2.515,486,2.725,519,2.806,603,2.093,819,3.179,946,5.495,984,2.807,986,4.004,1021,4.407,1198,8.282,1202,5.943,1203,3.597,1207,9.115,1215,7.697,1220,5.073,1221,7.72,1224,7.925,1225,11.266,1226,6.509,1227,7.579,1228,6.738,1229,7.379,1230,9.059,1231,9.059,1232,9.059,1233,9.115,1234,6.509,1235,6.509,1236,5.321,1237,5.167,1238,6.509,1239,3.995,1240,6.509,1241,5.694,1242,3.748,1243,6.509,1244,6.017,1245,4.203,1246,6.017,1247,9.059,1248,11.266,1249,6.509,1250,6.509,1251,6.509,1252,6.509,1253,6.509,1254,6.509,1255,9.059,1256,6.509,1257,6.509,1258,6.509,1259,6.509,1260,6.509,1261,6.509,1262,6.509,1263,6.509,1264,6.509]],["title/interfaces/AppStartInfo.html",[105,0.735,1265,5.958]],["body/interfaces/AppStartInfo.html",[0,0.286,3,0.025,4,0.02,5,0.01,7,0.128,30,0.001,32,0.171,33,0.634,47,0.969,55,2.553,95,0.107,101,0.014,103,0.001,104,0.001,105,0.91,107,2.023,112,0.855,177,1.543,284,3.326,330,5.791,345,2.684,349,0.871,437,1.091,556,2.988,824,4.491,1021,3.298,1128,8.739,1265,10.379,1266,7.796,1267,7.376,1268,11.298,1269,10.935,1270,10.935,1271,4.941,1272,5.526,1273,9.42,1274,2.667,1275,7.063,1276,2.635,1277,4.155,1278,7.796,1279,9.955,1280,7.796,1281,9.955,1282,7.796,1283,9.955,1284,7.796,1285,5.445,1286,7.796]],["title/classes/AppStartLoggable.html",[0,0.231,1275,5.705]],["body/classes/AppStartLoggable.html",[0,0.291,2,0.96,3,0.028,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.668,30,0.001,31,0.48,32,0.117,33,0.411,35,1.03,47,0.844,55,1.845,95,0.109,101,0.014,103,0.001,104,0.001,105,0.925,177,1.57,284,3.362,330,5.89,345,2.73,349,0.886,379,1.072,437,1.109,556,3.012,824,6.369,1021,3.355,1128,5.995,1265,11.003,1266,11.055,1267,7.502,1268,9.522,1269,7.502,1270,7.502,1271,5.487,1272,6.136,1273,9.522,1274,2.713,1275,9.118,1276,3.402,1277,6.198,1278,7.928,1279,10.063,1280,7.928,1281,10.063,1282,7.928,1283,10.063,1284,7.928,1285,5.538,1286,7.928,1287,8.576,1288,8.576,1289,8.576]],["title/interfaces/AppendedAttachment.html",[105,0.735,1290,5.065]],["body/interfaces/AppendedAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.504,47,1.004,77,5.732,101,0.015,103,0.001,104,0.001,105,1.47,107,2.159,112,0.891,180,2.36,1290,9.092,1291,6.858,1292,9.518,1293,10.038,1294,6.858,1295,5.038,1296,8.344,1297,6.544,1298,6.858,1299,6.544,1300,9.092,1301,6.858,1302,8.344,1303,8.551,1304,8.551,1305,8.344,1306,6.806,1307,6.692,1308,6.692,1309,6.858,1310,6.858]],["title/modules/AuthenticationApiModule.html",[201,1.804,1311,5.335]],["body/modules/AuthenticationApiModule.html",[0,0.316,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.288,203,3.348,204,3.598,205,3.703,206,3.687,207,3.672,208,4.546,209,4.308,218,4.557,219,3.627,220,3.541,222,5.783,223,4.717,225,4.519,226,1.331,1311,10.854,1312,9.31,1313,9.31,1314,9.31,1315,8.87,1316,11.343,1317,9.31,1318,10.859,1319,9.31,1320,9.31,1321,8.607]],["title/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.231,1322,5.503]],["body/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.288,2,0.948,3,0.02,4,0.02,5,0.01,7,0.128,27,0.542,29,0.659,30,0.001,31,0.474,32,0.181,33,0.406,47,0.96,95,0.107,101,0.014,103,0.001,104,0.001,112,0.857,181,2.889,379,1.059,381,2.844,946,6.423,1322,10.449,1323,13.437,1324,10.993,1325,8.467,1326,8.47,1327,9.605,1328,10.399,1329,10.399,1330,10.797,1331,8.467,1332,8.467,1333,9.982,1334,8.467,1335,8.467,1336,7.828,1337,7.093,1338,6.298,1339,7.828,1340,8.467,1341,8.467,1342,8.467,1343,8.467,1344,8.467,1345,8.467,1346,8.467,1347,7.408,1348,8.467]],["title/modules/AuthenticationModule.html",[201,1.804,1315,4.461]],["body/modules/AuthenticationModule.html",[0,0.189,3,0.013,4,0.013,5,0.007,30,0.001,32,0.076,95,0.174,101,0.009,103,0,104,0,201,2.529,203,1.998,204,2.147,205,2.21,206,2.2,207,2.191,208,3.496,209,3.589,213,8.291,214,5.398,217,6.981,218,3.219,219,2.165,220,2.113,225,3.192,226,0.794,227,2.287,236,0.904,437,1.356,529,1.572,578,3.371,599,4.041,600,3.451,616,9.115,622,8.463,1228,4.132,1274,1.758,1315,9.353,1349,5.556,1350,5.556,1351,5.556,1352,5.556,1353,9.402,1354,9.115,1355,8.654,1356,8.134,1357,9.717,1358,10.179,1359,9.402,1360,9.747,1361,10.179,1362,8.134,1363,10.179,1364,10.179,1365,5.556,1366,5.556,1367,9.546,1368,4.861,1369,8.093,1370,4.132,1371,4.861,1372,4.235,1373,5.556,1374,4.654,1375,3.884,1376,8.733,1377,11.147,1378,4.132,1379,4.654,1380,4.861,1381,4.654,1382,5.137,1383,5.137,1384,4.861,1385,5.556,1386,5.556,1387,5.556,1388,5.556,1389,3.959,1390,4.353,1391,3.639,1392,5.137,1393,5.556,1394,4.861,1395,5.137,1396,3.884,1397,5.137,1398,5.556,1399,5.556,1400,5.556,1401,4.654,1402,5.556,1403,5.556,1404,5.556,1405,5.556,1406,5.556,1407,5.556,1408,5.556,1409,5.556,1410,3.884,1411,5.556,1412,5.556,1413,3.298,1414,5.556,1415,9.546,1416,5.556,1417,4.235,1418,5.556,1419,5.137,1420,5.556,1421,3.451,1422,5.556,1423,4.654,1424,5.556,1425,5.556,1426,3.231,1427,5.137,1428,5.556,1429,5.556]],["title/interfaces/AuthenticationResponse.html",[105,0.735,1430,5.958]],["body/interfaces/AuthenticationResponse.html",[0,0.177,3,0.012,4,0.012,5,0.006,7,0.079,30,0.001,32,0.071,36,1.11,47,0.97,51,3.76,55,1.123,87,3.884,94,3.76,95,0.129,99,0.87,101,0.009,103,0,104,0,105,0.563,107,1.252,112,0.614,119,1.062,133,1.824,137,4.86,177,1.685,226,0.746,236,1.655,261,2.477,262,1.143,271,2.041,284,2.843,324,5.757,349,1.332,360,7.423,429,3.718,437,1.788,529,2.186,531,6.76,593,1.932,603,2.481,608,1.203,662,3.578,696,3.048,708,2.167,749,3.418,819,3.23,986,1.764,1082,6.054,1150,2.075,1220,2.922,1413,6.449,1430,8.902,1431,4.824,1432,4.824,1433,7.565,1434,9.408,1435,6.76,1436,4.824,1437,4.824,1438,3.795,1439,4.564,1440,4.824,1441,4.371,1442,4.824,1443,4.824,1444,4.564,1445,6.76,1446,4.824,1447,3.324,1448,4.824,1449,4.824,1450,3.718,1451,4.564,1452,4.371,1453,4.216,1454,2.948,1455,6.694,1456,8.509,1457,4.824,1458,4.824,1459,7.145,1460,7.145,1461,4.824,1462,10.519,1463,4.824,1464,4.824,1465,10.044,1466,10.044,1467,11.616,1468,4.824,1469,4.824,1470,10.044,1471,4.824,1472,9.408,1473,4.824,1474,4.824,1475,7.71,1476,4.824,1477,4.824,1478,4.824,1479,4.824,1480,4.824,1481,4.824,1482,4.824,1483,4.824,1484,7.145,1485,4.824,1486,4.564,1487,4.824,1488,3.977,1489,7.145,1490,4.824,1491,4.824,1492,4.824,1493,7.145,1494,4.824,1495,7.145,1496,4.824,1497,4.824,1498,7.145,1499,4.824,1500,4.824,1501,4.824,1502,7.145,1503,3.324,1504,4.824,1505,4.824,1506,4.824,1507,4.824,1508,4.824,1509,4.824,1510,4.824,1511,4.824,1512,4.824,1513,4.824]],["title/injectables/AuthenticationService.html",[539,0.901,1357,5.065]],["body/injectables/AuthenticationService.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,21,6.703,27,0.494,29,0.938,30,0.001,31,0.675,32,0.168,33,0.578,34,0.878,35,1.409,36,2.564,47,0.971,48,5.379,51,3.728,59,1.602,66,6.982,73,4.768,74,4.167,77,3.286,83,1.583,87,2.592,94,5.512,95,0.166,101,0.008,103,0,104,0,143,1.148,177,1.852,179,3.378,226,0.737,236,1.759,239,1.183,262,2.82,285,5.019,349,1.045,379,0.958,433,4.512,437,1.465,519,2.373,529,2.168,539,1.014,541,1.234,556,1.299,584,7.684,593,3.385,598,2.97,601,4.04,603,2.032,608,2.492,617,8.942,940,4.768,1229,3.378,1357,5.698,1359,9.479,1368,4.512,1372,3.931,1378,3.836,1383,4.768,1384,4.512,1413,3.061,1433,3.429,1438,3.751,1503,3.286,1514,5.157,1515,7.661,1516,7.661,1517,7.083,1518,7.661,1519,7.661,1520,7.661,1521,5.157,1522,11.329,1523,5.157,1524,7.661,1525,5.157,1526,7.661,1527,7.927,1528,5.157,1529,7.083,1530,5.157,1531,7.661,1532,5.157,1533,7.661,1534,5.157,1535,7.661,1536,5.157,1537,5.157,1538,7.661,1539,5.157,1540,3.836,1541,4.167,1542,3.836,1543,4.512,1544,4.512,1545,7.661,1546,3.751,1547,5.573,1548,4.512,1549,4.32,1550,4.32,1551,2.888,1552,7.161,1553,3.606,1554,5.157,1555,5.157,1556,5.157,1557,4.768,1558,6.799,1559,3.37,1560,5.157,1561,5.157,1562,5.157,1563,5.157,1564,7.083,1565,5.157,1566,7.661,1567,7.661,1568,5.157,1569,7.661,1570,4.768,1571,5.157,1572,3.751,1573,4.512,1574,7.083,1575,5.157,1576,5.157,1577,5.157,1578,5.157,1579,2.999,1580,5.157,1581,4.04,1582,5.157,1583,5.157,1584,5.157]],["title/classes/AuthenticationValues.html",[0,0.231,1585,6.296]],["body/classes/AuthenticationValues.html",[0,0.326,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,27,0.515,29,0.747,30,0.001,31,0.538,32,0.172,33,0.461,47,0.924,101,0.016,103,0.001,104,0.001,112,0.927,181,3.124,379,1.2,381,3.224,1585,12.402,1586,7.329,1587,13.089,1588,9.598,1589,12.58,1590,12.58,1591,11.674,1592,9.598,1593,9.598,1594,9.598,1595,9.598,1596,9.598]],["title/interfaces/AuthorizableObject.html",[105,0.735,1597,3.96]],["body/interfaces/AuthorizableObject.html",[0,0.33,3,0.023,4,0.023,5,0.012,9,4.586,26,2.679,30,0.001,34,2.003,95,0.123,101,0.019,103,0.001,104,0.001,105,1.048,107,2.331,181,2.6,349,1.215,381,3.95,437,1.256,448,3.982,479,4.737,662,3.698,1276,3.036,1597,7.354,1598,8.981,1599,8.498,1600,3.653,1601,4.111,1602,9.851,1603,8.981,1604,6.274,1605,10.872]],["title/interfaces/AuthorizationContext.html",[105,0.735,1606,3.686]],["body/interfaces/AuthorizationContext.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.164,95,0.152,99,1.677,101,0.017,103,0.001,104,0.001,105,1.085,107,2.412,112,0.953,643,5.908,1606,6.497,1607,8.796,1608,9.296,1609,7.731,1610,8.159,1611,10.054]],["title/classes/AuthorizationContextBuilder.html",[0,0.231,1612,4.132]],["body/classes/AuthorizationContextBuilder.html",[0,0.279,2,0.919,3,0.019,4,0.019,5,0.01,7,0.124,8,1.269,27,0.48,29,0.912,30,0.001,31,0.656,32,0.169,33,0.562,35,1.407,95,0.134,99,1.369,101,0.014,103,0.001,104,0.001,131,4.912,349,1.21,413,4.206,437,1.515,454,5.026,603,2.353,643,6.121,1606,7.22,1609,7.439,1610,7.595,1612,6.421,1613,12.374,1614,8.208,1615,6.421,1616,7.037,1617,10.584,1618,8.208,1619,10.584,1620,8.208,1621,10.584,1622,8.208,1623,10.584,1624,5.637,1625,5.377]],["title/classes/AuthorizationError.html",[0,0.231,1626,6.296]],["body/classes/AuthorizationError.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.539,29,0.602,30,0.001,31,0.433,32,0.186,33,0.546,35,0.929,47,0.911,55,1.664,59,3.164,95,0.129,101,0.013,103,0.001,104,0.001,112,0.808,138,2.286,177,2.495,180,1.825,182,2.516,226,1.106,347,2.833,379,0.967,382,3.893,816,5.55,819,2.714,946,5.281,984,5.217,986,4.249,1021,4.916,1201,8.289,1202,7.503,1203,3.862,1204,7.252,1208,4.995,1209,4.293,1210,4.995,1211,4.995,1212,4.995,1213,4.995,1214,4.995,1215,4.641,1216,4.412,1217,6.059,1222,4.864,1609,4.256,1626,9.414,1627,7.735,1628,7.977,1629,7.735,1630,7.735,1631,4.804,1632,6.767,1633,7.151]],["title/injectables/AuthorizationHelper.html",[539,0.901,1634,4.23]],["body/injectables/AuthorizationHelper.html",[0,0.206,3,0.014,4,0.014,5,0.007,7,0.092,8,1.035,27,0.473,29,0.961,30,0.001,31,0.647,32,0.169,33,0.554,35,1.387,47,0.918,95,0.127,96,1.669,101,0.01,103,0,104,0,119,2.61,143,1.353,145,2.396,154,2.637,173,1.797,226,0.869,239,3.175,276,4.908,349,1.274,437,1.631,479,4.722,528,3.164,539,1.142,541,1.454,603,2.016,604,3.507,662,4.178,696,2.396,1150,2.417,1559,5.427,1610,7.872,1634,5.361,1635,6.076,1636,8.631,1637,10.492,1638,8.631,1639,7.98,1640,8.631,1641,8.631,1642,10.038,1643,12.607,1644,6.076,1645,7.98,1646,6.076,1647,8.631,1648,6.076,1649,7.98,1650,6.076,1651,8.631,1652,10.929,1653,6.076,1654,4.098,1655,3.646,1656,5.618,1657,7.551,1658,7.98,1659,5.618,1660,5.045,1661,5.316,1662,8.631,1663,2.571,1664,6.076,1665,3.98,1666,3.821,1667,4.91,1668,4.632,1669,3.164,1670,5.618,1671,5.618,1672,5.237,1673,6.076,1674,6.076,1675,6.076,1676,5.268,1677,6.076,1678,6.076]],["title/interfaces/AuthorizationLoaderService.html",[105,0.735,1679,5.503]],["body/interfaces/AuthorizationLoaderService.html",[3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,12,5.349,26,2.84,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,34,1.631,35,1.15,36,2.674,40,6.077,95,0.159,99,1.597,101,0.019,103,0.001,104,0.001,105,1.258,107,2.298,133,3.348,180,1.716,1597,5.568,1607,10.198,1679,10.155,1680,9.132,1681,8.377,1682,9.576,1683,5.568,1684,5.948,1685,6.823,1686,7.299,1687,8.022]],["title/interfaces/AuthorizationLoaderServiceGeneric.html",[105,0.735,1687,5.705]],["body/interfaces/AuthorizationLoaderServiceGeneric.html",[3,0.022,4,0.022,5,0.011,7,0.144,8,1.393,12,5.333,26,2.836,27,0.39,29,0.742,30,0.001,31,0.534,32,0.13,33,0.457,34,1.623,35,1.145,36,2.669,40,6.064,95,0.159,99,1.59,101,0.019,103,0.001,104,0.001,105,1.254,107,2.287,133,3.333,180,2.083,1597,5.542,1607,10.168,1679,10.134,1680,9.106,1681,8.337,1683,5.542,1684,5.92,1685,6.791,1686,7.265,1687,9.737,1688,9.53]],["title/modules/AuthorizationModule.html",[201,1.804,1689,3.716]],["body/modules/AuthorizationModule.html",[0,0.217,3,0.015,4,0.015,5,0.008,30,0.001,95,0.159,101,0.011,103,0.001,104,0.001,201,2.732,203,2.296,204,2.467,205,2.539,206,2.529,207,2.518,208,3.777,209,3.878,214,5.655,217,7.312,218,3.555,219,2.487,220,2.429,225,3.525,226,0.913,227,2.629,1274,2.02,1634,7.57,1689,7.908,1690,6.385,1691,6.385,1692,6.385,1693,6.385,1694,9.848,1695,7.085,1696,11.23,1697,10.209,1698,10.209,1699,9.848,1700,9.064,1701,9.848,1702,10.209,1703,10.209,1704,9.848,1705,10.209,1706,10.209,1707,10.209,1708,9.848,1709,10.209,1710,10.209,1711,10.209,1712,6.385,1713,5.586,1714,6.385,1715,2.689,1716,3.874,1717,5.002]],["title/classes/AuthorizationParams.html",[0,0.231,1718,5.335]],["body/classes/AuthorizationParams.html",[0,0.369,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,27,0.531,30,0.001,32,0.177,33,0.654,47,0.962,95,0.138,101,0.014,102,5.456,103,0.001,104,0.001,112,0.862,138,2.358,148,2.71,238,6.872,248,5.41,249,5.245,388,9.093,400,7.47,804,7.16,847,4.079,946,5.537,986,4.035,1718,8.504,1719,8.539,1720,9.349,1721,11.033,1722,7.895,1723,8.539,1724,11.033,1725,7.895,1726,8.539,1727,8.539,1728,8.539,1729,8.539,1730,7.895,1731,5.44,1732,7.895,1733,7.895]],["title/modules/AuthorizationReferenceModule.html",[201,1.804,1734,5.065]],["body/modules/AuthorizationReferenceModule.html",[0,0.216,3,0.015,4,0.015,5,0.008,30,0.001,72,4.048,95,0.158,101,0.01,103,0.001,104,0.001,153,1.447,201,3.311,203,2.289,204,2.46,205,2.531,206,2.521,207,2.51,208,3.771,209,3.871,214,5.649,217,7.305,218,3.547,219,2.48,220,2.421,225,3.517,226,0.91,227,2.62,238,5.135,284,3.446,358,4.908,493,4.423,1274,2.013,1362,8.512,1631,5.539,1634,7.562,1663,2.693,1689,6.961,1715,2.681,1734,10.646,1735,6.364,1736,6.364,1737,6.364,1738,6.364,1739,10.496,1740,9.538,1741,7.386,1742,7.975,1743,9.838,1744,9.055,1745,9.28,1746,8.512,1747,8.362,1748,6.364,1749,6.364,1750,6.235,1751,8.918,1752,5.842,1753,6.125,1754,8.918,1755,6.125,1756,6.125,1757,5.93,1758,8.74,1759,5.351,1760,7.802,1761,6.355,1762,7.207,1763,8.245,1764,7.418,1765,6.633,1766,5.332,1767,6.633,1768,4.629,1769,6.364,1770,3.473,1771,6.364,1772,4.535,1773,6.364]],["title/injectables/AuthorizationReferenceService.html",[539,0.901,1739,5.335]],["body/injectables/AuthorizationReferenceService.html",[0,0.237,3,0.016,4,0.016,5,0.008,7,0.106,8,1.14,26,2.994,27,0.443,29,0.842,30,0.001,31,0.606,32,0.159,33,0.519,35,1.142,36,2.47,39,3.122,95,0.159,99,1.165,101,0.012,103,0.001,104,0.001,131,4.955,133,3.325,153,1.587,177,1.74,201,2.519,226,0.998,236,1.136,239,1.602,262,2.745,345,2.223,349,0.721,358,4.183,379,0.873,437,1.23,511,4.248,529,1.976,539,1.258,541,1.672,563,5.644,603,1.403,608,2.192,662,3.94,687,6.602,928,3.843,986,2.361,1606,6.938,1631,5.906,1672,5.769,1680,7.449,1695,6.775,1739,7.449,1743,9.379,1774,11.607,1775,6.456,1776,7.683,1777,8.318,1778,9.508,1779,10.811,1780,10.811,1781,6.983,1782,6.983,1783,6.983,1784,9.135,1785,6.983,1786,6.983,1787,6.983,1788,6.456,1789,5.471,1790,6.983,1791,6.983,1792,6.109,1793,4.237,1794,6.983,1795,5.471]],["title/injectables/AuthorizationService.html",[539,0.901,1695,3.599]],["body/injectables/AuthorizationService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.082,8,0.947,26,2.187,27,0.5,29,0.95,30,0.001,31,0.683,32,0.17,33,0.585,35,1.428,36,1.681,39,1.447,47,0.916,95,0.155,99,0.897,101,0.009,103,0,104,0,119,2.341,131,4.74,133,4.425,143,1.197,177,1.715,217,7.133,226,0.769,227,2.214,236,1.524,239,3.191,262,2.053,349,1.067,379,0.988,437,1.212,519,3.563,529,2.65,539,1.046,541,1.287,560,2.214,591,3.039,603,1.882,608,1.24,662,4.319,986,1.818,1597,6.913,1606,6.434,1610,8.231,1634,7.384,1637,6.913,1639,7.306,1645,7.306,1649,7.306,1663,3.344,1672,6.265,1683,6.913,1684,3.34,1695,4.177,1705,9.635,1777,4.705,1789,7.339,1796,5.378,1797,7.902,1798,7.902,1799,5.631,1800,9.368,1801,5.378,1802,5.378,1803,7.902,1804,5.378,1805,7.902,1806,5.378,1807,7.902,1808,5.378,1809,7.902,1810,5.378,1811,5.378,1812,5.378,1813,5.103,1814,5.378,1815,6.229,1816,5.378,1817,4.908,1818,4.346,1819,5.378,1820,5.378,1821,5.378,1822,5.378,1823,5.378,1824,5.254,1825,7.902,1826,4.213,1827,5.378,1828,7.902,1829,4.213]],["title/injectables/AutoContextIdStrategy.html",[539,0.901,1830,5.958]],["body/injectables/AutoContextIdStrategy.html",[0,0.309,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,27,0.373,29,0.709,30,0.001,31,0.51,32,0.124,33,0.437,35,1.093,47,0.797,95,0.163,101,0.015,103,0.001,104,0.001,131,4.602,226,1.301,349,0.94,363,6.326,539,1.495,541,2.178,556,2.846,564,3.469,654,2.706,1276,2.844,1586,6.326,1830,9.883,1831,9.129,1832,9.129,1833,8.413,1834,9.129,1835,9.129,1836,7.037,1837,7.006,1838,8.413,1839,5.567,1840,8.85,1841,5.96,1842,7.623,1843,8.413]],["title/injectables/AutoContextNameStrategy.html",[539,0.901,1844,5.958]],["body/injectables/AutoContextNameStrategy.html",[0,0.21,3,0.014,4,0.014,5,0.007,7,0.094,8,1.048,26,2.627,27,0.451,29,0.858,30,0.001,31,0.617,32,0.151,33,0.529,35,1.218,36,2.567,47,0.778,95,0.163,99,1.032,101,0.01,103,0,104,0,131,4.519,177,1.856,226,0.885,236,1.007,262,2.822,349,1.201,363,6.509,379,1.093,437,1.56,486,1.862,529,1.751,539,1.157,541,1.481,556,2.202,564,2.685,603,2.587,608,2.781,654,1.841,986,2.092,1242,5.035,1276,1.934,1586,6.509,1768,4.501,1831,9.393,1832,9.393,1834,8.193,1835,5.001,1836,6.426,1837,6.364,1839,4.309,1840,6.85,1841,4.054,1842,5.184,1844,7.649,1845,6.188,1846,8.744,1847,8.744,1848,5.721,1849,8.149,1850,9.02,1851,9.453,1852,6.188,1853,8.744,1854,6.188,1855,4.848,1856,8.744,1857,6.188,1858,2.956,1859,6.188,1860,5.001,1861,7.066,1862,4.326,1863,5.19,1864,3.755,1865,4.41,1866,3.892,1867,3.011,1868,7.649,1869,3.892,1870,5.414,1871,4.41,1872,8.744,1873,6.188,1874,5.414,1875,8.744,1876,6.188,1877,6.188,1878,4.603,1879,4.603,1880,2.559,1881,6.188,1882,2.582,1883,6.188,1884,6.188,1885,4.717,1886,6.005,1887,6.188]],["title/interfaces/AutoParameterStrategy.html",[105,0.735,1840,5.335]],["body/interfaces/AutoParameterStrategy.html",[3,0.022,4,0.022,5,0.011,7,0.142,8,1.381,27,0.385,29,0.732,30,0.001,31,0.526,32,0.128,33,0.451,35,1.129,36,2.452,47,0.813,95,0.146,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,131,3.52,363,6.453,556,2.903,564,3.538,654,2.795,1586,6.453,1831,9.312,1832,9.312,1834,10.072,1835,7.593,1836,7.228,1837,7.054,1839,5.678,1840,9.027,1888,9.397,1889,9.397]],["title/injectables/AutoSchoolIdStrategy.html",[539,0.901,1890,5.958]],["body/injectables/AutoSchoolIdStrategy.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.135,8,1.334,27,0.364,29,0.691,30,0.001,31,0.497,32,0.121,33,0.426,35,1.067,47,0.785,95,0.161,101,0.015,103,0.001,104,0.001,131,3.326,226,1.269,349,0.917,363,6.23,521,3.516,539,1.472,541,2.125,556,2.802,564,3.416,654,3.614,992,4.241,993,4.191,994,4.191,995,4.433,996,4.845,1276,2.775,1586,6.23,1831,8.99,1832,8.99,1833,8.208,1834,9.818,1835,7.174,1836,7.128,1837,6.969,1838,8.208,1839,5.482,1840,8.715,1841,5.816,1842,7.438,1890,9.733,1891,6.458,1892,6.326,1893,7.767]],["title/injectables/AutoSchoolNumberStrategy.html",[539,0.901,1894,5.958]],["body/injectables/AutoSchoolNumberStrategy.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,8,1.267,27,0.433,29,0.823,30,0.001,31,0.592,32,0.144,33,0.507,35,0.984,36,2.249,95,0.166,99,1.366,101,0.013,103,0.001,104,0.001,131,3.068,177,1.499,226,1.171,262,2.564,345,2.607,349,0.846,363,6.553,379,1.024,437,1.059,521,3.244,539,1.399,541,1.961,564,3.245,608,1.888,654,3.898,992,3.913,993,3.867,994,3.867,995,4.09,996,4.47,1276,2.56,1586,6.553,1831,9.456,1832,9.456,1834,9.456,1835,6.619,1836,6.981,1837,6.843,1839,5.208,1840,8.28,1841,5.366,1842,6.862,1891,5.958,1892,5.837,1894,9.247,1895,8.191,1896,6.619,1897,7.776,1898,8.191,1899,6.924,1900,8.191,1901,4.587,1902,5.919,1903,7.573,1904,6.619]],["title/classes/AxiosResponseImp.html",[0,0.231,1905,6.296]],["body/classes/AxiosResponseImp.html",[0,0.256,2,0.845,3,0.018,4,0.018,5,0.009,7,0.114,27,0.525,29,0.588,30,0.001,31,0.423,32,0.181,33,0.362,47,0.845,55,2.42,95,0.127,101,0.017,103,0.001,104,0.001,112,0.795,181,2.681,236,1.829,278,5.183,284,3.85,347,4.566,349,0.779,379,0.944,381,2.535,437,0.976,447,4.153,479,4.212,521,2.989,526,4.479,829,4.189,992,3.605,993,3.562,994,3.562,995,3.767,996,4.118,1075,7.527,1276,3.131,1905,10.396,1906,13.075,1907,6.977,1908,8.012,1909,5.752,1910,12.466,1911,12.466,1912,10.017,1913,11.978,1914,7.546,1915,12.466,1916,7.546,1917,7.546,1918,6.977,1919,10.017,1920,5.276,1921,10.017,1922,4.084,1923,7.546,1924,4.433,1925,5.276,1926,7.546,1927,7.546,1928,7.546,1929,7.546,1930,6.098,1931,6.322,1932,5.276,1933,7.546,1934,6.977]],["title/classes/BBBBaseMeetingConfig.html",[0,0.231,1935,5.065]],["body/classes/BBBBaseMeetingConfig.html",[0,0.335,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.486,29,0.768,30,0.001,31,0.552,32,0.162,33,0.473,47,0.837,101,0.016,103,0.001,104,0.001,112,0.942,379,1.233,1909,4.548,1935,10.051,1936,6.578,1937,11.134,1938,7.259,1939,9.857,1940,9.068,1941,10.378,1942,9.857,1943,9.857,1944,9.113,1945,8.623]],["title/interfaces/BBBBaseResponse.html",[105,0.735,1946,4.761]],["body/interfaces/BBBBaseResponse.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.174,47,0.97,95,0.126,101,0.016,103,0.001,104,0.001,105,1.069,107,2.377,112,0.945,1021,5.175,1936,5.12,1946,8.318,1947,8.298,1948,9.906,1949,13.229,1950,13.229,1951,12.23,1952,5.943,1953,8.005]],["title/classes/BBBCreateConfig.html",[0,0.231,1954,5.705]],["body/classes/BBBCreateConfig.html",[0,0.234,2,0.772,3,0.016,4,0.016,5,0.008,7,0.105,27,0.552,29,0.537,30,0.001,31,0.739,32,0.184,33,0.669,47,0.965,95,0.087,101,0.016,103,0.001,104,0.001,112,0.749,119,2.35,180,1.69,379,0.863,382,2.082,834,2.163,1909,3.183,1935,8.59,1936,6.965,1937,11.788,1938,3.935,1940,6.72,1941,8.25,1944,6.379,1945,6.036,1952,4.139,1954,10.129,1955,6.899,1956,10.744,1957,10.744,1958,10.921,1959,6.939,1960,10.744,1961,9.771,1962,6.654,1963,10.744,1964,10.744,1965,9.933,1966,6.899,1967,6.899,1968,6.899,1969,6.899,1970,6.899,1971,6.899,1972,6.899,1973,6.899,1974,6.899,1975,6.899,1976,6.379,1977,6.379,1978,9.43,1979,9.43,1980,9.43,1981,6.379,1982,2.744,1983,6.899,1984,5.131,1985,6.899,1986,6.899,1987,6.899,1988,6.899,1989,6.899,1990,6.899,1991,6.899,1992,6.899,1993,6.899,1994,6.899,1995,6.899,1996,6.899,1997,6.899]],["title/classes/BBBCreateConfigBuilder.html",[0,0.231,1998,5.958]],["body/classes/BBBCreateConfigBuilder.html",[0,0.239,2,0.787,3,0.016,4,0.016,5,0.008,7,0.107,8,1.145,27,0.514,29,0.906,30,0.001,31,0.682,32,0.166,33,0.559,35,1.462,47,0.906,95,0.138,101,0.012,102,3.534,103,0.001,104,0.001,112,0.759,119,2.208,141,3.359,143,1.566,177,1.749,180,1.712,349,1.257,382,2.882,448,3.916,454,5.527,478,3.745,479,2.634,480,3.013,517,2.696,685,5.312,759,4.606,986,2.377,1936,6.291,1952,4.219,1954,9.089,1958,10.983,1959,6.17,1961,5.682,1962,3.87,1965,8.832,1998,11.72,1999,11.254,2000,6.501,2001,8.48,2002,8.003,2003,9.553,2004,9.553,2005,9.553,2006,9.553,2007,6.501,2008,7.032,2009,9.553,2010,7.032,2011,9.553,2012,7.032,2013,9.553,2014,7.032,2015,9.553,2016,7.032,2017,3.078,2018,3.443,2019,3.319,2020,4.48,2021,5.23,2022,7.032,2023,7.032,2024,7.032,2025,7.032,2026,4.541,2027,7.032,2028,6.501,2029,5.23,2030,6.152,2031,3.974,2032,4.422,2033,4.75,2034,5.509,2035,7.032,2036,5.682,2037,7.032,2038,6.501,2039,7.032,2040,7.032]],["title/interfaces/BBBCreateResponse.html",[105,0.735,2041,5.958]],["body/interfaces/BBBCreateResponse.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,32,0.189,47,1.001,55,2.958,95,0.108,101,0.014,103,0.001,104,0.001,105,0.918,107,2.04,112,0.86,119,2.694,180,1.94,1936,4.395,1940,8.934,1946,8.327,1947,7.123,1952,5.102,2041,9.471,2042,8.503,2043,11.592,2044,11.592,2045,11.592,2046,10.969,2047,11.592,2048,11.592,2049,11.592,2050,11.592,2051,11.592,2052,7.123]],["title/classes/BBBJoinConfig.html",[0,0.231,2053,5.705]],["body/classes/BBBJoinConfig.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,27,0.544,29,0.628,30,0.001,31,0.451,32,0.182,33,0.637,39,3.124,47,0.938,95,0.102,101,0.017,103,0.001,104,0.001,112,0.831,119,2.129,180,1.874,191,4.362,276,4.937,379,1.008,382,2.432,834,2.527,1909,3.719,1935,9.14,1936,6.867,1937,11.622,1938,4.597,1940,7.453,1941,9.151,1952,4.836,1976,7.452,1977,7.452,1981,7.452,2021,8.637,2053,10.668,2054,8.06,2055,10.159,2056,11.612,2057,7.499,2058,8.06,2059,8.06,2060,8.06,2061,8.06,2062,8.06,2063,8.06,2064,9.151,2065,10.46,2066,8.06,2067,8.06,2068,5.863,2069,8.06,2070,8.06,2071,8.06,2072,8.06,2073,6.752,2074,8.06]],["title/classes/BBBJoinConfigBuilder.html",[0,0.231,2075,5.958]],["body/classes/BBBJoinConfigBuilder.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,8,1.254,27,0.522,29,0.904,30,0.001,31,0.65,32,0.168,33,0.557,35,1.476,47,0.82,95,0.133,101,0.013,103,0.001,104,0.001,112,0.831,119,2.363,177,1.915,180,1.874,349,1.199,382,3.156,448,4.287,454,5.514,479,3.918,480,3.623,1936,6.352,1999,11.362,2000,7.452,2001,8.815,2002,8.762,2007,7.452,2021,9.14,2053,6.752,2075,11.781,2076,9.368,2077,10.46,2078,9.671,2079,9.671,2080,10.46,2081,8.06,2082,10.46,2083,8.06,2084,10.46,2085,8.06,2086,8.06,2087,8.06,2088,8.06,2089,8.06,2090,8.06,2091,8.06]],["title/interfaces/BBBJoinResponse.html",[105,0.735,2092,6.296]],["body/interfaces/BBBJoinResponse.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.182,47,1.012,95,0.119,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,112,0.915,180,2.065,1194,4.467,1936,4.857,1946,8.714,1947,7.872,1952,5.638,2052,7.872,2092,10.654,2093,8.688,2094,12.994,2095,12.994,2096,12.994,2097,10.179]],["title/interfaces/BBBMeetingInfoResponse.html",[105,0.735,2098,5.335]],["body/interfaces/BBBMeetingInfoResponse.html",[3,0.015,4,0.015,5,0.007,7,0.095,30,0.001,32,0.195,33,0.531,39,1.678,47,0.986,55,3.079,95,0.079,101,0.01,103,0,104,0,105,0.673,107,1.496,112,0.698,119,2.835,120,5.321,180,1.575,276,2.651,461,3.432,1150,2.48,1936,3.223,1940,7.879,1946,7.119,1947,5.224,1952,3.742,2043,10.222,2044,10.222,2045,10.222,2046,9.673,2047,10.222,2048,10.222,2049,10.222,2050,5.766,2051,10.222,2052,5.224,2055,5.456,2098,6.887,2099,5.766,2100,4.885,2101,11.057,2102,11.657,2103,11.057,2104,10.222,2105,11.057,2106,11.057,2107,11.057,2108,11.057,2109,7.594,2110,11.057,2111,11.057,2112,11.057,2113,8.042,2114,10.222,2115,11.057,2116,11.057,2117,5.766,2118,6.236,2119,6.236,2120,6.236,2121,6.236,2122,6.236,2123,6.236]],["title/interfaces/BBBResponse.html",[105,0.735,2124,5.191]],["body/interfaces/BBBResponse.html",[3,0.024,4,0.024,5,0.012,7,0.158,30,0.001,32,0.142,95,0.132,101,0.017,103,0.001,104,0.001,105,1.121,107,2.493,112,0.972,479,4.875,819,4.716,1936,5.371,1946,7.265,1952,6.235,2052,8.705,2124,9.332,2125,10.392]],["title/injectables/BBBService.html",[539,0.901,2126,5.191]],["body/injectables/BBBService.html",[0,0.118,3,0.008,4,0.008,5,0.004,7,0.053,8,0.676,27,0.479,29,0.952,30,0.001,31,0.643,32,0.153,33,0.524,35,1.526,36,2.441,47,0.937,95,0.145,101,0.006,103,0,104,0,133,3.546,141,1.662,153,0.791,177,1.302,226,0.498,236,1.824,262,1.559,271,2.207,284,1.743,333,4.619,349,1.262,379,0.706,437,1.615,448,4.794,474,2.41,478,4.359,529,2.725,539,0.747,541,0.833,591,1.966,593,1.289,603,2.037,608,0.802,639,1.633,685,3.463,686,2.663,759,3.696,819,1.221,958,7.091,959,2.004,961,2.28,1075,2.044,1140,4.726,1158,4.6,1159,2.48,1160,2.726,1189,4.936,1194,4.089,1220,3.159,1239,3.463,1546,4.104,1908,5.831,1909,4.874,1920,2.433,1922,1.883,1935,8.846,1936,6.147,1940,2.48,1945,3.044,1946,2.433,1951,3.217,1952,7.136,1954,8.849,2029,4.196,2032,3.548,2033,3.811,2034,4.42,2041,3.044,2053,7.535,2076,7.341,2098,2.726,2099,9.766,2124,7.341,2126,4.301,2127,3.48,2128,3.811,2129,5.642,2130,5.642,2131,5.216,2132,5.642,2133,4.021,2134,5.75,2135,7.868,2136,3.48,2137,6.613,2138,8.496,2139,3.48,2140,6.225,2141,5.642,2142,3.48,2143,5.831,2144,5.642,2145,3.423,2146,5.216,2147,5.642,2148,5.642,2149,3.48,2150,4.936,2151,5.642,2152,9.55,2153,11.299,2154,3.48,2155,5.216,2156,5.216,2157,9.63,2158,3.218,2159,8.184,2160,5.642,2161,3.48,2162,5.642,2163,3.48,2164,5.642,2165,3.48,2166,7.159,2167,5.642,2168,5.642,2169,3.48,2170,3.159,2171,5.642,2172,3.48,2173,4.936,2174,5.216,2175,3.48,2176,3.48,2177,3.48,2178,3.48,2179,3.48,2180,3.48,2181,3.48,2182,7.731,2183,2.915,2184,2.915,2185,3.48,2186,3.48,2187,3.48,2188,3.48,2189,6.613,2190,3.48,2191,8.184,2192,5.642,2193,1.408,2194,3.48,2195,3.48,2196,3.48,2197,7.115,2198,6.578,2199,9.63,2200,5.642,2201,5.642,2202,7.115,2203,7.115,2204,7.115,2205,7.115,2206,6.578,2207,6.578,2208,3.48,2209,3.48,2210,3.48,2211,3.48,2212,5.216,2213,3.48,2214,3.48,2215,3.48,2216,3.48,2217,4.936,2218,5.216,2219,3.48,2220,3.48,2221,3.48,2222,3.48,2223,3.48,2224,3.48,2225,3.48,2226,3.48,2227,3.48,2228,3.48,2229,3.217,2230,3.217,2231,3.48,2232,3.217,2233,3.217]],["title/classes/BaseDO.html",[0,0.231,1683,3.96]],["body/classes/BaseDO.html",[0,0.336,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,9,4.676,27,0.487,29,0.771,30,0.001,31,0.555,32,0.163,33,0.612,34,2.305,47,0.955,59,3.078,101,0.016,102,4.979,103,0.001,104,0.001,112,0.945,379,1.239,404,4.042,448,4.877,1683,6.919,2234,9.906,2235,9.321,2236,11.898]],["title/injectables/BaseDORepo.html",[539,0.901,2237,4.677]],["body/injectables/BaseDORepo.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,8,0.773,9,5.678,10,3.656,12,2.958,18,3.262,26,2.657,27,0.519,29,0.977,30,0.001,31,0.703,32,0.171,33,0.602,34,2.01,35,1.489,36,2.818,40,3.117,47,0.455,49,1.622,55,0.885,95,0.124,96,1.771,97,1.783,99,0.686,101,0.007,102,2.067,103,0,104,0,112,0.512,133,2.254,154,2.649,155,2.151,173,1.216,177,1.18,226,0.588,236,1.049,262,2.849,280,4.427,305,3.712,349,1.191,358,1.81,379,0.514,381,1.382,437,1.682,448,4.837,519,1.274,539,0.853,541,0.985,565,2.441,603,2.455,608,2.659,680,4.507,686,3.043,687,4.945,696,1.622,718,2.283,732,3.598,811,4.302,1274,1.301,1601,3.807,1663,1.74,1683,2.392,1826,3.222,1938,3.677,2170,2.303,2237,4.427,2238,4.113,2239,4.593,2240,4.593,2241,4.593,2242,4.593,2243,4.507,2244,4.507,2245,4.593,2246,4.507,2247,4.593,2248,2.992,2249,5.181,2250,3.258,2251,4.062,2252,4.113,2253,4.689,2254,4.593,2255,4.113,2256,7.663,2257,4.593,2258,4.113,2259,4.593,2260,4.113,2261,5.207,2262,4.507,2263,4.593,2264,4.113,2265,4.593,2266,4.113,2267,4.593,2268,8.121,2269,4.113,2270,4.113,2271,4.593,2272,4.113,2273,4.354,2274,4.507,2275,4.113,2276,4.593,2277,4.113,2278,3.868,2279,3.956,2280,4.593,2281,4.113,2282,4.593,2283,4.113,2284,2.876,2285,4.593,2286,4.113,2287,4.113,2288,5.341,2289,2.778,2290,3.598,2291,2.778,2292,7.949,2293,4.113,2294,4.113,2295,4.689,2296,4.113,2297,6.859,2298,4.113,2299,4.113,2300,5.05,2301,3.803,2302,2.876,2303,4.795,2304,9.584,2305,6.446,2306,4.107,2307,3.803,2308,4.113,2309,4.113,2310,4.113,2311,4.113,2312,5.639,2313,4.113,2314,4.113,2315,4.113,2316,3.446,2317,4.113,2318,4.113,2319,4.113,2320,4.113,2321,4.113,2322,4.113,2323,4.113,2324,4.113,2325,3.446,2326,4.113,2327,4.113,2328,4.113,2329,4.113,2330,4.113,2331,4.113,2332,3.598,2333,2.416,2334,2.346,2335,4.113,2336,4.113,2337,4.113,2338,3.598]],["title/classes/BaseDomainObject.html",[0,0.231,2339,6.296]],["body/classes/BaseDomainObject.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,9,6.353,27,0.398,30,0.001,32,0.133,34,2.154,47,0.83,95,0.123,101,0.016,102,5.91,103,0.001,104,0.001,105,1.048,112,0.934,133,3.397,1276,3.675,1597,7.354,1599,8.498,1609,5.346,1715,5.326,2339,10.872,2340,11.759,2341,9.714,2342,8.981,2343,6.672,2344,5.541,2345,7.85,2346,8.981,2347,9.714]],["title/classes/BaseEntity.html",[0,0.231,2289,4.6]],["body/classes/BaseEntity.html",[0,0.385,2,0.859,3,0.018,4,0.018,5,0.009,7,0.116,9,4.782,27,0.415,30,0.001,32,0.171,34,2.193,47,0.8,49,4.756,72,3.484,83,3.482,95,0.153,96,2.783,97,3.327,101,0.02,103,0.001,104,0.001,105,0.828,112,0.958,133,2.684,138,2.063,154,2.165,155,2.561,172,3.62,173,2.27,174,4.029,236,1.845,358,3.377,376,4.412,377,4.598,437,0.993,459,3.939,511,3.429,741,5.583,749,5.028,763,5.272,933,4.42,946,3.561,971,7.086,1003,5.366,1276,3.544,1597,7.012,1663,3.248,1715,3.233,2029,5.709,2279,4.711,2289,7.659,2290,6.715,2348,7.097,2349,8.883,2350,11.149,2351,7.676,2352,11.149,2353,7.676,2354,6.43,2355,4.711,2356,5.583,2357,6.43,2358,6.203,2359,6.43,2360,6.43,2361,7.097,2362,4.605,2363,4.89,2364,5.272,2365,5.028,2366,7.097,2367,6.715,2368,7.097,2369,5.272,2370,6.43,2371,6.715,2372,7.097,2373,6.715,2374,7.097]],["title/classes/BaseEntityWithTimestamps.html",[0,0.231,174,2.708]],["body/classes/BaseEntityWithTimestamps.html",[0,0.376,2,0.819,3,0.017,4,0.017,5,0.009,7,0.111,9,4.631,27,0.484,30,0.001,32,0.169,34,2.163,47,0.781,49,4.665,72,3.319,83,3.788,95,0.15,96,2.695,97,3.169,101,0.019,103,0.001,104,0.001,105,0.789,112,0.939,133,2.557,138,2.244,154,2.097,155,2.44,172,3.777,173,2.163,174,4.402,236,2.007,358,3.217,376,5.152,377,5.369,437,0.946,459,3.753,480,2.724,486,2.951,511,3.267,741,5.319,749,4.79,763,5.023,933,4.211,946,3.393,971,6.989,1003,5.113,1276,3.46,1597,6.878,1663,3.094,1715,3.08,2029,5.439,2279,4.488,2289,6.626,2290,6.398,2348,6.761,2349,7.685,2350,10.936,2352,10.936,2354,6.126,2355,4.488,2356,5.319,2357,6.126,2358,5.91,2359,6.126,2360,6.126,2361,6.761,2362,4.388,2363,4.659,2364,5.023,2365,4.79,2366,6.761,2367,6.398,2368,6.761,2369,5.023,2370,6.126,2371,6.398,2372,6.761,2373,6.398,2374,6.761,2375,7.313,2376,7.313,2377,7.313,2378,7.313,2379,7.313]],["title/classes/BaseFactory.html",[0,0.231,447,3.747]],["body/classes/BaseFactory.html",[0,0.231,2,0.365,3,0.008,4,0.008,5,0.004,7,0.049,8,0.642,27,0.486,29,0.977,30,0.001,31,0.63,32,0.171,33,0.54,34,1.681,35,1.479,47,0.48,49,1.287,55,2.363,59,2.701,95,0.068,101,0.005,103,0,104,0,105,0.578,112,0.625,120,3.465,133,2.754,140,1.827,153,1.79,154,2.68,155,2.628,177,1.442,236,1.901,271,4.765,319,4.218,333,4.646,345,1.039,349,1.102,379,0.851,381,2.92,413,2.096,437,1.608,447,2.946,448,4.373,449,6.708,452,3.025,453,5.279,454,5.714,455,3.025,456,3.025,457,3.025,458,2.971,459,4.462,460,4.45,461,6.042,462,6.094,463,7.469,469,1.844,470,3.846,472,5.216,473,5.385,474,3.714,475,5.064,476,4.869,477,1.844,478,1.738,479,4.698,480,3.123,481,1.795,482,1.766,483,3.025,484,4.864,486,3.455,487,5.186,488,3.025,489,6.8,490,4.209,491,6.605,493,4.634,494,3.025,496,1.844,498,3.025,500,3.177,501,1.844,502,6.244,504,1.844,505,5.822,506,4.162,507,4.45,509,5.385,510,3.683,511,2.391,512,3.025,513,4.45,514,3.025,517,2.052,518,3.025,519,1.658,521,4.08,522,3.025,525,1.897,606,2.854,696,2.111,751,2.487,971,1.795,992,3.762,993,3.718,994,3.718,995,3.932,996,3.714,997,2.241,1009,2.556,1073,6.323,1486,2.854,1932,3.742,2306,3.41,2380,3.263,2381,3.41,2382,5.353,2383,3.263,2384,5.353,2385,3.263,2386,3.263,2387,3.263,2388,3.263,2389,3.263,2390,3.263,2391,3.263,2392,3.263,2393,3.263,2394,3.263,2395,3.263,2396,3.263,2397,4.949,2398,4.08,2399,3.263,2400,3.263,2401,3.263,2402,3.263,2403,3.263,2404,3.017,2405,5.353,2406,5.353,2407,3.263,2408,3.263,2409,7.875,2410,3.263,2411,10.303,2412,7.875,2413,3.263,2414,3.263,2415,3.263,2416,3.263,2417,3.263,2418,3.144,2419,3.263,2420,3.263,2421,3.263,2422,3.263,2423,3.263]],["title/injectables/BaseRepo.html",[539,0.901,679,4]],["body/injectables/BaseRepo.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.114,9,4.385,10,3.774,12,4.262,18,4.701,26,2.424,27,0.508,29,0.934,30,0.001,31,0.672,32,0.164,33,0.576,34,1.582,35,1.375,36,2.794,40,4.491,49,4.513,95,0.157,96,2.552,97,2.925,101,0.011,103,0.001,104,0.001,153,1.534,154,1.985,155,3.1,173,1.996,177,1.235,226,0.965,262,2.878,349,0.959,379,0.844,437,0.873,479,5.209,524,3.849,539,1.229,541,1.616,569,6.619,608,2.141,679,5.456,685,3.93,686,4.385,687,6.072,711,5.701,713,5.701,716,5.701,718,3.746,1655,4.049,1666,5.842,1715,3.912,1752,6.084,1753,6.38,2170,3.779,2237,6.38,2248,4.909,2249,6.588,2253,6.756,2288,5.513,2289,4.558,2291,4.558,2301,6.24,2307,6.24,2312,5.904,2424,6.749,2425,6.192,2426,8.588,2427,9.289,2428,9.289,2429,8.588,2430,5.573,2431,6.084,2432,6.619,2433,6.749,2434,6.749,2435,6.749,2436,6.749,2437,6.749,2438,6.749,2439,3.304,2440,6.749]],["title/interfaces/BaseResponseMapper.html",[105,0.735,2441,5.065]],["body/interfaces/BaseResponseMapper.html",[3,0.022,4,0.022,5,0.011,7,0.144,8,1.389,27,0.475,29,0.902,30,0.001,31,0.649,32,0.178,33,0.556,35,1.392,95,0.147,99,1.582,100,3.186,101,0.016,103,0.001,104,0.001,105,1.024,107,2.276,119,2.359,479,5.095,778,6.433,1880,4.793,2441,8.62,2442,12.515,2443,9.485,2444,9.079,2445,9.079,2446,9.485,2447,8.834,2448,9.485,2449,10.113,2450,4.504]],["title/classes/BaseUc.html",[0,0.231,2451,5.191]],["body/classes/BaseUc.html",[0,0.222,2,0.733,3,0.015,4,0.015,5,0.008,7,0.099,8,1.091,9,3.092,26,2.799,27,0.463,29,0.88,30,0.001,31,0.633,32,0.154,33,0.542,35,1.256,36,2.404,39,3.193,59,2.035,95,0.143,99,1.093,101,0.011,103,0.001,104,0.001,131,3.409,143,1.459,145,1.819,177,1.666,226,0.937,236,1.48,239,1.503,262,2.859,276,2.785,349,1.08,379,1.138,437,1.535,448,5.471,493,3.249,529,2.574,560,2.697,608,2.604,643,2.911,1609,7.071,1610,4.021,1625,4.291,1663,2.772,1695,6.494,1717,5.132,1750,4.58,1793,3.975,1799,7.45,1882,2.734,2334,3.736,2450,6.273,2451,6.936,2452,6.551,2453,7.129,2454,7.129,2455,4.765,2456,8.655,2457,6.551,2458,4.872,2459,8.634,2460,8.979,2461,6.551,2462,7.129,2463,7.547,2464,6.551,2465,7.129,2466,7.45,2467,6.551,2468,5.401,2469,2.973,2470,7.605,2471,6.551,2472,6.057,2473,4.58,2474,6.551,2475,6.551,2476,5.731,2477,6.551,2478,6.551,2479,6.551,2480,7.623,2481,5.731,2482,4.872]],["title/classes/BasicToolConfig.html",[0,0.231,2483,4.953]],["body/classes/BasicToolConfig.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,27,0.508,29,0.723,30,0.001,31,0.52,32,0.185,33,0.446,47,0.656,95,0.145,101,0.015,103,0.001,104,0.001,112,0.909,180,2.05,181,3.062,182,3.021,379,1.162,381,3.12,382,3.452,564,2.852,1867,4.519,2133,7.007,2483,9.666,2484,5.193,2485,11.441,2486,4.111,2487,7.781,2488,9.885,2489,8.587,2490,8.126,2491,6.351,2492,8.126,2493,8.126,2494,6.494,2495,6.618]],["title/classes/BasicToolConfigEntity.html",[0,0.231,2496,5.503]],["body/classes/BasicToolConfigEntity.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,27,0.391,29,0.744,30,0.001,31,0.535,32,0.131,33,0.458,95,0.159,96,2.624,101,0.016,103,0.001,104,0.001,173,2.825,180,1.712,181,3.115,379,1.195,381,3.209,403,5.302,564,2.933,1867,4.648,2484,5.283,2486,4.162,2491,5.302,2494,8.138,2495,6.807,2496,10.825,2497,11.64,2498,8.003,2499,9.553,2500,6.016,2501,9.406,2502,8.357,2503,5.398,2504,4.268,2505,6.807]],["title/classes/BasicToolConfigParams.html",[0,0.231,2506,5.503]],["body/classes/BasicToolConfigParams.html",[0,0.388,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.468,30,0.001,32,0.182,47,0.806,95,0.164,101,0.015,103,0.001,104,0.001,112,0.907,138,2.078,148,2.941,150,2.111,180,2.047,245,3.248,248,4.768,382,3.447,564,2.845,847,4.427,1867,4.509,2133,6.999,2484,4.206,2486,3.788,2491,6.875,2506,9.232,2507,9.267,2508,8.568,2509,9.66,2510,6.603,2511,7.488,2512,7.488,2513,7.488,2514,7.488,2515,7.488]],["title/classes/BasicToolConfigResponse.html",[0,0.231,2516,5.705]],["body/classes/BasicToolConfigResponse.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.499,29,0.694,30,0.001,31,0.5,32,0.183,33,0.428,47,0.787,95,0.154,101,0.015,103,0.001,104,0.001,112,0.886,138,2.029,150,2.032,180,1.999,181,2.986,182,2.901,245,3.444,379,1.115,381,2.995,382,3.366,564,2.738,1867,4.339,2133,6.879,2484,5.064,2486,4.036,2491,6.758,2494,6.235,2495,6.354,2504,3.984,2505,6.354,2516,11.002,2517,11.156,2518,7.206,2519,10.613,2520,8.918,2521,7.802,2522,7.802,2523,7.206]],["title/injectables/BasicToolLaunchStrategy.html",[539,0.901,2524,5.705]],["body/injectables/BasicToolLaunchStrategy.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.069,8,0.837,9,2.153,26,2.29,27,0.525,29,0.988,30,0.001,31,0.71,32,0.178,33,0.609,35,1.524,36,2.394,39,2.283,47,0.857,95,0.13,99,0.761,101,0.008,103,0,104,0,112,0.858,119,0.928,120,3.072,172,2.23,177,1.278,180,1.251,226,0.652,262,2.661,271,2.732,284,3.339,349,0.982,382,3.868,437,1.326,480,1.939,519,2.163,521,2.766,539,0.924,541,1.092,556,2.395,593,3.143,603,2.657,662,3.988,696,1.799,984,1.967,992,3.336,993,3.296,994,3.296,995,3.486,996,3.811,1194,3.269,1551,2.554,1586,2.554,1600,1.715,1836,6.673,1837,6.429,1891,5.079,1892,4.976,2026,5.48,2486,2.315,2524,5.85,2525,3.821,2526,4.561,2527,4.217,2528,12.151,2529,6.456,2530,7.845,2531,6.456,2532,6.456,2533,6.456,2534,6.456,2535,6.456,2536,6.456,2537,6.456,2538,6.456,2539,6.109,2540,6.109,2541,6.456,2542,6.456,2543,4.217,2544,9.379,2545,4.217,2546,6.456,2547,10.811,2548,4.561,2549,6.456,2550,4.561,2551,9.057,2552,4.217,2553,6.456,2554,7.267,2555,5.323,2556,4.217,2557,4.217,2558,6.456,2559,6.648,2560,4.217,2561,4.217,2562,6.456,2563,4.217,2564,4.217,2565,4.181,2566,4.217,2567,8.241,2568,4.217,2569,4.217,2570,4.217,2571,4.217,2572,3.99,2573,3.99,2574,4.217,2575,4.217,2576,4.217,2577,3.317,2578,4.217,2579,6.456,2580,6.228,2581,4.217,2582,4.217,2583,6.456,2584,4.217,2585,2.532,2586,4.217,2587,3.99,2588,4.217,2589,3.032,2590,3.99,2591,3.573,2592,6.983,2593,4.561,2594,6.983,2595,6.456,2596,4.561,2597,4.561,2598,4.561,2599,4.561,2600,6.983,2601,4.561,2602,4.561,2603,3.99]],["title/entities/Board.html",[154,1.456,1882,2.842]],["body/entities/Board.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.085,26,2.471,27,0.333,30,0.001,32,0.144,34,0.953,95,0.167,96,1.537,101,0.013,103,0,104,0,105,0.604,112,0.646,119,1.139,138,1.479,143,2.343,154,1.739,155,1.867,168,4.639,173,1.655,174,3.235,175,2.474,178,2.324,180,1.003,181,1.497,182,1.82,226,0.8,236,2.006,349,1.205,355,3.518,361,3.161,437,1.692,480,1.553,486,1.683,519,1.733,529,2.711,535,4.069,556,2.049,578,3.394,603,2.245,604,3.894,844,4.476,1600,2.104,1654,2.657,1858,3.885,1864,4.567,1880,4.823,1882,4.867,2333,3.286,2356,6.971,2604,7.508,2605,5.595,2606,7.569,2607,5.595,2608,4.855,2609,6.2,2610,5.595,2611,4.438,2612,8.134,2613,6.573,2614,5.595,2615,3.053,2616,6.372,2617,4.069,2618,3.221,2619,2.98,2620,5.182,2621,3.286,2622,4.299,2623,3.911,2624,4.281,2625,3.475,2626,7.497,2627,11.401,2628,8.029,2629,6.2,2630,4.267,2631,5.796,2632,4.894,2633,6.573,2634,2.626,2635,6.573,2636,8.134,2637,5.595,2638,3.665,2639,5.595,2640,5.595,2641,8.134,2642,4.687,2643,5.595,2644,9.584,2645,5.595,2646,5.595,2647,5.595,2648,5.595,2649,5.595,2650,8.134,2651,5.595,2652,8.134,2653,8.134,2654,5.595,2655,5.595,2656,4.521,2657,5.595,2658,5.595,2659,5.172,2660,5.595,2661,4.161,2662,5.595,2663,4.687,2664,5.595,2665,5.595,2666,5.595,2667,5.595,2668,5.595,2669,5.595,2670,5.595,2671,5.595,2672,5.595,2673,5.595,2674,5.595,2675,5.595,2676,5.595,2677,4.75,2678,5.595,2679,8.134,2680,5.595,2681,5.595,2682,5.595,2683,5.595,2684,11.663,2685,4.894]],["title/modules/BoardApiModule.html",[201,1.804,2686,5.503]],["body/modules/BoardApiModule.html",[0,0.268,3,0.018,4,0.018,5,0.009,30,0.001,95,0.17,101,0.013,103,0.001,104,0.001,201,3.047,203,2.842,204,3.054,205,3.143,206,3.13,207,3.117,208,4.213,209,2.971,214,6.023,218,4.107,219,3.078,220,3.006,222,4.908,223,4.251,225,4.072,226,1.13,259,3.006,1274,2.5,1689,5.634,1764,6.865,1767,9.654,2469,3.587,2686,11.472,2687,7.902,2688,7.902,2689,7.902,2690,10.489,2691,10.168,2692,10.489,2693,10.489,2694,10.873,2695,7.902,2696,10.062,2697,10.062,2698,10.062,2699,10.062,2700,10.062,2701,7.902,2702,3.73,2703,6.913,2704,7.306,2705,7.306]],["title/classes/BoardColumnBoardResponse.html",[0,0.231,2706,5.705]],["body/classes/BoardColumnBoardResponse.html",[0,0.257,2,0.846,3,0.018,4,0.018,5,0.009,7,0.115,27,0.536,29,0.589,30,0.001,31,0.423,32,0.179,33,0.363,34,2.125,47,0.905,83,3.681,95,0.127,101,0.012,103,0.001,104,0.001,112,0.796,119,2.041,138,2.332,150,1.723,245,3.613,247,3.309,376,5.433,377,5.662,379,1.254,404,3.085,406,4.883,408,4.883,769,3.826,1203,3.983,2630,7.366,2706,10.45,2707,10.406,2708,10.406,2709,7.56,2710,9.509,2711,8.171,2712,7.56,2713,7.56,2714,7.56,2715,7.56,2716,7.56,2717,5.387,2718,7.56,2719,7.56,2720,6.308,2721,7.56,2722,3.88,2723,6.99]],["title/classes/BoardComposite.html",[0,0.231,2724,4.132]],["body/classes/BoardComposite.html",[0,0.199,2,0.655,3,0.014,4,0.014,5,0.007,7,0.089,8,1.007,9,6.089,26,1.779,27,0.535,29,0.922,30,0.001,31,0.663,32,0.174,33,0.568,34,1.43,35,1.465,36,1.787,55,2.114,59,1.817,83,3.297,95,0.144,99,0.975,101,0.014,103,0,104,0,105,0.631,112,0.667,119,2.186,133,2.936,137,5.281,180,1.505,226,0.836,236,1.598,349,1.109,376,4.677,377,4.874,381,2.82,382,2.534,437,0.756,448,3.442,479,3.145,519,3.668,529,2.78,662,2.64,686,3.964,696,2.306,933,3.367,1454,4.745,1600,2.198,1601,5.01,1604,6.345,1663,2.474,1684,3.631,1685,4.166,1686,4.457,2334,3.335,2450,6.411,2468,3.47,2618,3.367,2724,5.094,2725,11.925,2726,5.405,2727,5.983,2728,5.983,2729,5.983,2730,5.583,2731,5.983,2732,7.376,2733,3.887,2734,5.154,2735,6.308,2736,5.847,2737,5.871,2738,5.154,2739,6.184,2740,5.847,2741,5.871,2742,6.596,2743,5.847,2744,7.671,2745,5.871,2746,5.847,2747,5.983,2748,5.847,2749,5.871,2750,5.847,2751,3.887,2752,5.405,2753,5.847,2754,5.115,2755,5.847,2756,5.115,2757,5.847,2758,7.763,2759,4.58,2760,4.58,2761,5.405,2762,5.405,2763,5.405,2764,7.763,2765,5.405,2766,5.405,2767,5.405,2768,3.47,2769,5.405,2770,5.405,2771,5.405,2772,5.405,2773,7.346,2774,3.83,2775,5.983,2776,5.405,2777,5.115,2778,3.547]],["title/interfaces/BoardCompositeProps.html",[105,0.735,2778,4.132]],["body/interfaces/BoardCompositeProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,9,5.551,26,2.491,30,0.001,32,0.173,33,0.466,34,2.091,36,1.534,55,1.551,83,4.035,95,0.156,99,1.202,101,0.016,103,0.001,104,0.001,105,0.778,107,1.73,112,0.771,119,1.977,133,3.397,180,1.292,226,1.031,236,1.788,349,1.215,376,5.347,377,5.572,437,0.932,519,3.404,529,3.109,696,2.843,933,4.151,1454,5.49,1600,2.71,1601,4.111,1663,3.05,1684,4.477,1685,5.136,1686,5.495,2334,4.111,2450,6.323,2468,4.279,2618,4.151,2724,4.373,2725,6.664,2726,6.664,2732,8.431,2734,4.424,2735,5.707,2738,4.424,2739,5.594,2741,5.039,2742,6.684,2744,7.396,2745,5.039,2747,5.136,2749,5.039,2758,8.982,2759,5.647,2760,5.647,2761,6.664,2762,6.664,2763,6.664,2764,8.982,2765,6.664,2766,6.664,2767,6.664,2768,4.279,2769,6.664,2770,6.664,2771,6.664,2772,6.664,2773,8.499,2774,4.722,2775,6.922,2776,6.664,2777,6.306,2778,5.894]],["title/interfaces/BoardCompositeVisitor.html",[105,0.735,2735,4]],["body/interfaces/BoardCompositeVisitor.html",[3,0.014,4,0.014,5,0.01,7,0.093,8,1.039,27,0.526,29,1,30,0.001,31,0.719,32,0.189,33,0.616,35,1.543,36,2.733,95,0.163,101,0.014,103,0,104,0,105,0.935,107,1.467,519,4.273,564,1.877,1863,7.133,2170,3.423,2463,7.059,2486,2.027,2630,6.482,2735,5.092,2739,3.52,2779,10.203,2780,12.041,2781,5.652,2782,8.014,2783,8.014,2784,8.014,2785,8.014,2786,8.014,2787,8.014,2788,8.014,2789,8.014,2790,8.014,2791,7.583,2792,6.791,2793,6.113,2794,7.583,2795,6.113,2796,7.583,2797,6.113,2798,7.583,2799,7.872,2800,6.113,2801,7.583,2802,7.375,2803,6.113,2804,7.583,2805,7.872,2806,6.113,2807,7.583,2808,7.291,2809,6.113,2810,7.583,2811,7.558,2812,6.113,2813,7.583,2814,6.113,2815,5.121,2816,5.652,2817,5.121,2818,8.416,2819,4.547,2820,2.956,2821,3.813,2822,3.668,2823,4.94,2824,5.121,2825,5.121,2826,5.121,2827,5.121,2828,5.121,2829,5.121,2830,5.121,2831,5.652,2832,5.121]],["title/interfaces/BoardCompositeVisitorAsync.html",[105,0.735,2739,3.921]],["body/interfaces/BoardCompositeVisitorAsync.html",[3,0.014,4,0.014,5,0.01,7,0.093,8,1.039,27,0.526,29,1,30,0.001,31,0.719,32,0.189,33,0.616,35,1.543,36,2.935,95,0.163,101,0.014,103,0,104,0,105,0.935,107,1.467,519,3.979,564,1.877,1863,7.133,2170,3.423,2463,7.059,2486,2.027,2630,6.482,2735,3.591,2739,4.991,2779,10.203,2780,12.041,2781,5.652,2791,5.348,2792,6.791,2794,5.348,2796,5.348,2798,5.348,2799,7.872,2801,5.348,2802,7.375,2804,5.348,2805,7.872,2807,5.348,2808,7.291,2810,5.348,2811,7.558,2813,5.348,2815,5.121,2816,5.652,2817,5.121,2818,8.416,2819,4.547,2820,2.956,2821,3.813,2822,3.668,2823,4.94,2824,7.262,2825,7.262,2826,7.262,2827,7.262,2828,7.262,2829,7.262,2830,7.262,2831,8.014,2832,7.262,2833,7.262,2834,7.262,2835,7.262,2836,7.262,2837,7.262,2838,7.262,2839,7.262,2840,7.262,2841,7.262,2842,6.113,2843,6.113,2844,6.113,2845,6.113,2846,6.113,2847,6.113,2848,6.113,2849,6.113,2850,6.113]],["title/classes/BoardContextResponse.html",[0,0.231,2851,5.958]],["body/classes/BoardContextResponse.html",[0,0.304,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,27,0.5,29,0.697,30,0.001,31,0.502,32,0.188,33,0.43,34,2.24,47,0.79,95,0.142,99,1.494,101,0.015,103,0.001,104,0.001,112,0.888,138,2.035,150,2.041,245,3.199,253,4.386,379,1.399,404,3.655,769,4.533,834,2.808,1862,9.512,2504,4.002,2851,11.505,2852,12.777,2853,8.957,2854,8.957,2855,5.867,2856,5.959,2857,5.959,2858,8.957,2859,5.498,2860,5.513,2861,8.957]],["title/controllers/BoardController.html",[259,2.591,2696,5.958]],["body/controllers/BoardController.html",[0,0.153,3,0.011,4,0.011,5,0.005,7,0.068,8,0.83,10,3.424,27,0.418,29,0.794,30,0.001,31,0.571,32,0.193,33,0.489,35,1.225,36,2.576,95,0.147,100,1.515,101,0.007,103,0,104,0,131,2.593,138,1.855,150,1.027,177,0.826,223,1.857,226,0.645,236,1.371,259,1.716,261,2.141,262,2.829,270,6.375,278,6.492,282,7.52,287,7.93,290,8.806,294,6.746,324,3.503,333,4.315,334,2.912,335,6.458,336,8.337,337,2.331,338,2.384,340,2.167,343,2.402,345,1.435,346,6.053,347,4.892,349,0.87,437,1.392,608,2.351,631,2.314,685,2.929,819,3.777,1198,7.27,1203,2.21,1882,4.492,2468,6.389,2619,5.733,2630,4.42,2690,6.809,2696,6.057,2702,2.129,2851,6.057,2862,4.51,2863,4.169,2864,7.791,2865,6.401,2866,8.426,2867,8.426,2868,7.791,2869,4.51,2870,11.391,2871,7.417,2872,10.198,2873,5.277,2874,4.51,2875,7.773,2876,7.773,2877,4.51,2878,4.51,2879,7.93,2880,4.51,2881,5.595,2882,4.51,2883,4.51,2884,4.51,2885,4.51,2886,4.51,2887,4.51,2888,4.51,2889,6.923,2890,4.51,2891,4.51,2892,4.51,2893,4.51,2894,6.601,2895,7.638,2896,4.154,2897,4.51,2898,4.51,2899,3.213,2900,2.548,2901,2.421,2902,5.8,2903,5.595,2904,4.51,2905,4.51,2906,3.945,2907,3.778,2908,3.644,2909,4.51,2910,4.51,2911,4.51,2912,10.198,2913,4.51,2914,4.51,2915,4.51,2916,4.51,2917,4.51,2918,5.595,2919,5.595,2920,4.51,2921,4.51,2922,3.945,2923,4.51,2924,4.51,2925,4.51,2926,4.51,2927,4.51,2928,4.169]],["title/injectables/BoardCopyService.html",[539,0.901,2929,5.705]],["body/injectables/BoardCopyService.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.706,27,0.455,29,0.866,30,0.001,31,0.623,32,0.162,33,0.533,34,0.625,35,1.295,36,2.48,39,0.987,55,0.79,95,0.148,99,0.612,101,0.006,103,0,104,0,154,0.785,177,1.806,226,0.525,227,1.511,236,1.503,239,3.135,262,2.711,271,2.304,347,4.072,349,1.278,379,0.737,437,1.633,521,2.333,528,1.911,539,0.779,541,0.879,556,0.925,579,1.955,603,2.687,604,2.997,608,1.7,646,2.615,844,4.059,1163,2.308,1174,1.971,1175,2.44,1203,1.88,1274,1.161,1488,7.521,1669,1.911,1862,2.566,1863,3.496,1864,4.582,1882,4.326,1885,2.798,2250,2.414,2251,3.811,2278,3.534,2295,2.67,2606,5.309,2622,4.885,2624,4.129,2626,8.128,2629,4.489,2631,7.386,2633,4.759,2635,4.759,2642,3.075,2677,3.811,2710,2.798,2929,4.934,2930,11.406,2931,2.875,2932,5.89,2933,7.376,2934,6.819,2935,4.934,2936,4.759,2937,5.89,2938,5.89,2939,5.89,2940,2.479,2941,7.71,2942,8.121,2943,8.684,2944,8.684,2945,7.54,2946,3.67,2947,5.89,2948,8.441,2949,3.67,2950,3.67,2951,9.974,2952,3.394,2953,7.376,2954,3.67,2955,3.67,2956,5.89,2957,3.67,2958,3.394,2959,5.89,2960,3.67,2961,3.211,2962,5.89,2963,7.99,2964,3.67,2965,9.242,2966,5.89,2967,3.67,2968,4.934,2969,5.89,2970,3.67,2971,5.445,2972,5.622,2973,3.67,2974,3.67,2975,3.394,2976,3.075,2977,3.67,2978,3.075,2979,2.875,2980,2.73,2981,2.227,2982,2.055,2983,3.67,2984,3.67,2985,2.966,2986,2.966,2987,2.798,2988,5.152,2989,3.67,2990,3.67,2991,3.67,2992,7.376,2993,3.67,2994,3.211,2995,2.875,2996,3.075,2997,3.67,2998,3.67,2999,9.584,3000,3.67,3001,3.67,3002,3.67,3003,3.075,3004,3.67,3005,5.445,3006,3.67,3007,3.67,3008,6.453,3009,3.075,3010,3.67,3011,3.67,3012,7.376,3013,3.075,3014,3.67,3015,3.67,3016,3.075,3017,3.67,3018,3.67,3019,4.197,3020,3.67,3021,4.197,3022,4.489,3023,3.67,3024,3.67,3025,3.67,3026,3.67,3027,3.211,3028,3.211,3029,3.394,3030,3.211,3031,3.075,3032,3.394,3033,3.67,3034,3.394,3035,3.211,3036,3.394,3037,3.67,3038,3.67,3039,3.67,3040,3.67,3041,3.67,3042,3.67,3043,3.67,3044,3.67,3045,3.67,3046,3.67,3047,5.89,3048,3.67,3049,5.89,3050,5.89,3051,3.67,3052,3.67,3053,3.67,3054,3.67,3055,3.67,3056,3.67,3057,3.67,3058,3.67]],["title/classes/BoardDoAuthorizable.html",[0,0.231,2470,4.953]],["body/classes/BoardDoAuthorizable.html",[0,0.256,2,0.843,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,26,2.38,27,0.51,29,0.586,30,0.001,31,0.422,32,0.137,33,0.361,34,1.283,35,1.202,39,2.026,47,0.706,95,0.127,101,0.021,102,3.786,103,0.001,104,0.001,105,1.08,112,0.794,133,2.634,180,2.013,302,6.087,349,1.033,381,3.36,382,3.019,448,4.101,479,3.748,517,2.888,519,2.333,556,3.015,643,3.347,651,3.598,652,3.598,662,3.146,686,4.723,834,3.137,1597,5.818,1601,5.272,1604,7.255,1666,4.737,1684,4.678,1753,5.173,2439,3.688,2459,8.706,2460,9.668,2470,7.277,2733,5.008,2751,5.008,2779,9.377,3059,6.589,3060,5.213,3061,6.964,3062,7.532,3063,7.532,3064,7.532,3065,7.532,3066,7.532,3067,8.085,3068,8.085,3069,8.753,3070,6.087,3071,6.589,3072,3.437,3073,7.157,3074,5.653,3075,6.589,3076,6.589,3077,8.563,3078,3.76,3079,6.31,3080,6.087,3081,8.753,3082,6.589]],["title/interfaces/BoardDoAuthorizableProps.html",[105,0.735,3079,5.705]],["body/interfaces/BoardDoAuthorizableProps.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.122,26,2.698,30,0.001,32,0.159,33,0.502,34,2.093,39,2.168,47,0.738,95,0.133,101,0.021,102,4.051,103,0.001,104,0.001,105,1.129,107,1.934,112,0.831,133,2.819,180,2.081,302,6.513,349,1.08,517,3.09,556,2.635,643,3.582,651,3.85,652,3.85,834,3.279,1597,6.753,1601,4.426,1666,5.069,1684,5.006,1753,5.536,2439,3.946,2459,9.263,2460,9.699,2470,5.863,2779,6.314,3059,7.051,3060,5.547,3067,8.452,3068,8.452,3069,9.151,3070,6.513,3071,7.051,3072,3.678,3073,7.398,3074,5.911,3075,7.051,3076,7.051,3077,9.707,3078,4.024,3079,8.762,3080,6.513,3081,9.151,3082,7.051]],["title/injectables/BoardDoAuthorizableService.html",[539,0.901,2456,4.677]],["body/injectables/BoardDoAuthorizableService.html",[0,0.207,3,0.014,4,0.014,5,0.007,7,0.093,8,1.038,12,3.973,26,2.32,27,0.449,29,0.853,30,0.001,31,0.613,32,0.15,33,0.525,34,1.866,35,1.209,36,2.33,39,2.707,40,4.187,95,0.147,99,1.018,101,0.01,103,0,104,0,177,1.585,226,0.873,227,2.513,236,1.781,262,2.632,349,1.276,379,1.083,437,1.684,528,5.239,529,1.727,539,1.146,541,1.461,565,3.623,603,2.323,604,2.48,608,2.665,639,2.865,651,4.807,652,4.807,708,3.597,1276,1.908,1679,6.997,1741,7.494,1764,4.058,1862,4.267,1863,5.973,1864,4.448,1885,4.653,2425,3.303,2450,5.2,2456,5.947,2460,7.804,2466,6.17,2469,2.77,2470,8.736,2480,5.113,3060,5.38,3067,4.932,3077,7.671,3078,5.024,3083,8.814,3084,5.643,3085,8.659,3086,8.659,3087,4.54,3088,8.636,3089,6.104,3090,6.104,3091,8.659,3092,6.104,3093,8.659,3094,6.104,3095,4.54,3096,5.643,3097,6.104,3098,7.254,3099,5.643,3100,9.304,3101,5.643,3102,6.104,3103,8.006,3104,5.643,3105,6.104,3106,6.104,3107,6.104,3108,6.104,3109,3.202,3110,4.782,3111,6.104,3112,6.691,3113,6.499,3114,8.659,3115,6.104,3116,6.104,3117,6.104,3118,6.104,3119,6.104]],["title/interfaces/BoardDoBuilder.html",[105,0.735,3120,4.086]],["body/interfaces/BoardDoBuilder.html",[3,0.015,4,0.015,5,0.011,7,0.095,8,1.061,27,0.53,29,1.007,30,0.001,31,0.724,32,0.19,33,0.62,35,1.554,95,0.166,101,0.01,103,0.001,104,0.001,105,0.679,107,1.51,564,1.933,1601,2.664,1863,6.075,1880,4.838,1882,2.627,2170,3.525,2463,6.012,2486,2.087,2630,6.136,2792,6.274,2799,6.704,2802,6.281,2805,6.704,2808,6.209,2811,6.436,2819,4.682,2820,3.044,2821,3.893,2822,3.777,3109,6.783,3120,5.31,3121,13.104,3122,6.295,3123,8.182,3124,8.182,3125,8.182,3126,8.182,3127,8.182,3128,8.182,3129,8.182,3130,8.182,3131,8.182,3132,8.182,3133,8.698,3134,6.295,3135,8.182,3136,8.972,3137,6.295,3138,8.182,3139,8.463,3140,6.295,3141,8.182,3142,8.698,3143,6.295,3144,8.182,3145,8.698,3146,6.295,3147,8.182,3148,8.698,3149,6.295,3150,8.182,3151,8.698,3152,6.295,3153,8.182,3154,8.698,3155,6.295,3156,8.182,3157,8.698,3158,6.295,3159,11.956,3160,4.01]],["title/classes/BoardDoBuilderImpl.html",[0,0.231,3161,5.958]],["body/classes/BoardDoBuilderImpl.html",[0,0.119,2,0.393,3,0.008,4,0.008,5,0.004,7,0.053,8,0.681,27,0.507,29,0.974,30,0.001,31,0.686,32,0.18,33,0.587,34,1.865,35,1.452,39,0.944,95,0.091,99,0.947,101,0.006,103,0,104,0,112,0.451,131,1.314,226,0.501,236,1.871,349,1.211,376,4.767,377,4.968,379,0.439,437,1.668,479,4.212,480,0.974,486,1.055,519,1.759,529,1.606,603,1.437,662,4.181,696,1.383,844,5.318,984,2.449,1194,1.206,1203,2.625,1276,1.775,1863,5.737,1880,4.848,2450,1.665,2463,4.829,2630,5.069,2661,2.609,2732,8.304,2752,5.249,2792,5.461,2799,5.915,2802,5.046,2805,5.385,2808,4.988,2811,5.17,2820,1.696,3109,7.226,3120,4.292,3123,5.249,3124,5.249,3125,5.249,3126,5.249,3127,5.249,3128,5.249,3129,5.249,3130,5.249,3131,5.249,3132,5.249,3133,6.441,3135,5.249,3136,6.643,3138,5.249,3139,6.267,3141,5.249,3142,6.441,3144,5.249,3145,6.441,3147,5.249,3148,6.441,3150,5.249,3151,6.441,3153,5.249,3154,6.441,3156,5.249,3157,6.441,3161,4.967,3162,10.941,3163,11.562,3164,3.507,3165,6.613,3166,5.678,3167,5.678,3168,5.678,3169,5.678,3170,5.678,3171,5.678,3172,4.967,3173,3.507,3174,5.678,3175,3.507,3176,3.507,3177,3.507,3178,5.678,3179,3.507,3180,3.507,3181,3.507,3182,3.507,3183,3.507,3184,3.507,3185,3.507,3186,5.678,3187,6.718,3188,3.507,3189,5.678,3190,3.507,3191,5.678,3192,3.507,3193,2.235,3194,3.507,3195,3.507,3196,3.507,3197,9.03,3198,3.243,3199,4.223,3200,9.03,3201,10.12,3202,8.221,3203,10.946,3204,10.946,3205,3.507,3206,3.068,3207,4.328,3208,4.967,3209,3.068,3210,4.967,3211,3.068,3212,3.068,3213,2.235,3214,3.507,3215,8.221,3216,2.082,3217,3.507,3218,2.082,3219,3.507,3220,3.507,3221,2.06,3222,3.507,3223,3.507,3224,1.813,3225,3.507,3226,3.068,3227,1.8,3228,3.507,3229,2.128,3230,3.507,3231,3.507,3232,1.964,3233,3.507,3234,3.507,3235,3.507,3236,3.507,3237,5.678,3238,3.507,3239,3.507,3240,3.507,3241,3.507,3242,3.507,3243,3.507,3244,3.507,3245,3.835,3246,2.332,3247,2.206,3248,3.507,3249,4.756,3250,3.507,3251,3.507,3252,5.678,3253,3.507,3254,3.507,3255,3.507,3256,3.507,3257,3.507]],["title/injectables/BoardDoCopyService.html",[539,0.901,3258,5.705]],["body/injectables/BoardDoCopyService.html",[0,0.299,3,0.021,4,0.021,5,0.013,7,0.133,8,1.326,27,0.36,29,0.685,30,0.001,31,0.493,32,0.151,33,0.422,35,1.057,36,2.354,95,0.166,99,1.468,101,0.018,103,0.001,104,0.001,226,1.258,236,1.432,262,2.652,271,3.443,349,0.909,437,1.431,539,1.464,541,2.107,608,2.029,654,2.618,662,3.805,989,4.885,1559,4.867,2418,7.458,2450,5.254,2737,6.153,2931,6.894,2963,5.683,2981,5.339,2982,4.928,3083,8.434,3258,9.268,3259,9.679,3260,11.064,3261,12.696,3262,8.801,3263,7.699,3264,7.699,3265,8.801,3266,8.667,3267,7.372,3268,6.271,3269,7.699,3270,8.801,3271,8.801]],["title/injectables/BoardDoRepo.html",[539,0.901,3088,4.761]],["body/injectables/BoardDoRepo.html",[0,0.151,3,0.01,4,0.01,5,0.005,7,0.068,8,0.823,10,2.789,12,3.15,18,3.474,26,2.809,27,0.494,29,0.956,30,0.001,31,0.676,32,0.173,33,0.579,34,1.963,35,1.42,36,2.805,40,3.319,49,1.759,55,2.306,59,2.6,95,0.146,96,1.886,97,1.933,99,0.744,101,0.007,103,0,104,0,120,3.02,173,1.319,177,1.532,226,0.638,236,1.743,262,3.003,349,1.221,379,0.858,381,1.498,437,1.705,479,2.571,529,1.262,539,0.908,541,1.068,556,1.123,565,6.36,603,1.681,604,1.812,608,2.91,1581,5.377,1601,5.197,1676,2.035,1882,2.864,2249,5.411,2261,4.496,2332,6.005,2450,6.17,2466,3.178,2585,2.475,2619,2.375,2732,3.063,3088,4.799,3109,4.929,3139,3.4,3161,3.902,3162,10.745,3163,4.123,3165,4.123,3172,3.902,3245,3.012,3264,6.005,3272,4.123,3273,8.368,3274,5.75,3275,6.346,3276,6.346,3277,6.864,3278,6.864,3279,3.118,3280,9.021,3281,8.368,3282,7.872,3283,4.46,3284,4.165,3285,4.46,3286,4.46,3287,10.654,3288,4.46,3289,8.368,3290,4.46,3291,6.005,3292,4.46,3293,6.346,3294,6.696,3295,4.46,3296,6.864,3297,4.46,3298,4.46,3299,6.864,3300,4.46,3301,6.864,3302,4.46,3303,6.005,3304,4.692,3305,4.46,3306,3.604,3307,4.46,3308,4.123,3309,4.46,3310,3.902,3311,4.46,3312,4.46,3313,4.46,3314,4.46,3315,4.46,3316,3.902,3317,4.46,3318,5.747,3319,6.346,3320,4.46,3321,4.46,3322,4.46,3323,4.46,3324,4.46,3325,6.346,3326,4.46,3327,4.46,3328,4.46,3329,4.46,3330,3.604,3331,4.46,3332,3.902,3333,4.46,3334,4.46,3335,4.46,3336,4.46,3337,4.46,3338,4.46,3339,4.46,3340,4.46,3341,4.46,3342,4.46,3343,4.46,3344,4.46,3345,5.547,3346,4.46]],["title/injectables/BoardDoRule.html",[539,0.901,1697,5.705]],["body/injectables/BoardDoRule.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,8,1.166,27,0.45,29,0.856,30,0.001,31,0.616,32,0.161,33,0.528,35,1.169,39,2.617,95,0.156,101,0.012,103,0.001,104,0.001,119,2.395,131,4.12,143,2.166,145,3.411,177,1.322,226,1.032,239,3.056,345,2.298,349,1.336,379,0.903,437,1.423,528,3.76,539,1.287,541,1.729,604,2.934,662,3.979,1276,2.257,1606,6.369,1609,3.974,1624,4.96,1625,4.73,1634,7.859,1655,4.333,1672,7.14,1697,8.148,1813,6.281,1817,6.041,1824,4.801,2470,10.117,2472,8.993,3067,5.835,3347,11.768,3348,7.221,3349,6.467,3350,4.877,3351,7.221,3352,7.221,3353,6.371,3354,7.221,3355,4.877,3356,4.877,3357,6.57,3358,5.371,3359,9.727,3360,7.221,3361,7.221,3362,9.727,3363,9.727,3364,7.221]],["title/injectables/BoardDoService.html",[539,0.901,3365,5.065]],["body/injectables/BoardDoService.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,8,1.243,27,0.472,29,0.898,30,0.001,31,0.646,32,0.158,33,0.553,35,1.245,36,2.601,55,2.482,59,2.47,95,0.146,99,1.326,101,0.013,103,0.001,104,0.001,177,1.455,226,1.136,262,2.849,345,2.53,379,0.994,437,1.341,539,1.372,541,1.903,608,2.997,1601,3.363,2425,4.302,2450,6.504,2744,4.999,3083,9.318,3087,5.912,3088,9.089,3304,5.759,3365,7.71,3366,7.949,3367,10.365,3368,7.119,3369,7.949,3370,10.365,3371,7.949,3372,10.365,3373,12.224,3374,9.318,3375,7.949,3376,7.949,3377,7.949,3378,6.659,3379,7.949,3380,7.949,3381,7.949,3382,11.535,3383,7.949,3384,7.949,3385,7.949,3386,7.949,3387,7.949]],["title/entities/BoardElement.html",[154,1.456,2626,4.853]],["body/entities/BoardElement.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,9,4.893,26,2.196,27,0.425,30,0.001,31,0.685,32,0.167,34,1.766,95,0.165,96,2.184,101,0.02,103,0.001,104,0.001,112,0.823,138,1.446,143,1.77,154,2.216,155,2.652,173,2.351,174,4.122,175,3.515,180,1.424,181,2.127,182,2.586,834,3.832,1600,2.989,1654,5.804,1676,4.73,1863,6.153,1882,3.317,2604,9.036,2622,5.479,2623,5.557,2624,5.461,2625,4.937,2626,7.386,2627,11.301,2630,4.169,2631,7.386,2632,6.954,2634,4.865,2677,5.978,2972,10.093,3388,7.949,3389,7.949,3390,7.119,3391,7.949,3392,6.604,3393,7.247,3394,10.365,3395,5.664,3396,5.557,3397,5.912]],["title/classes/BoardElementResponse.html",[0,0.231,3398,5.705]],["body/classes/BoardElementResponse.html",[0,0.27,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.472,29,0.619,30,0.001,31,0.445,32,0.187,33,0.381,95,0.161,101,0.013,103,0.001,104,0.001,112,0.823,138,1.885,150,1.811,153,2.356,245,3.024,379,1.296,769,4.022,816,4.756,834,3.832,989,5.753,1600,3.898,1880,4.287,1882,5.526,2193,5.492,2333,6.089,2431,6.79,2504,3.551,2624,4.631,2630,6.65,2634,4.865,2706,9.663,2707,9.576,2708,9.576,3398,10.621,3399,5.557,3400,7.949,3401,9.663,3402,9.663,3403,7.949,3404,10.621,3405,10.365,3406,7.349,3407,7.949,3408,7.349,3409,7.949,3410,7.949,3411,4.878]],["title/interfaces/BoardExternalReference.html",[105,0.735,3294,4.853]],["body/interfaces/BoardExternalReference.html",[3,0.023,4,0.023,5,0.012,7,0.151,26,2.807,30,0.001,32,0.188,34,2.257,95,0.126,101,0.02,103,0.001,104,0.001,105,1.074,107,2.389,112,0.948,564,3.056,834,3.121,1862,9.264,1864,4.42,2439,4.874,2779,7.799,3294,8.503,3412,8.709]],["title/classes/BoardLessonResponse.html",[0,0.231,3402,5.705]],["body/classes/BoardLessonResponse.html",[0,0.313,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,27,0.543,29,0.519,30,0.001,31,0.692,32,0.181,33,0.607,34,2.034,47,0.872,55,2.657,83,3.493,95,0.134,101,0.011,103,0.001,104,0.001,112,0.731,119,1.873,138,2.382,148,2.113,149,3.501,150,1.517,245,3.566,247,2.915,249,4.267,376,5.201,377,5.42,379,1.151,404,2.718,406,4.301,408,4.301,769,3.37,1886,7.244,1982,2.648,2630,7.023,2707,10.489,2708,10.489,2717,4.745,2720,6.633,3402,10.003,3413,6.659,3414,7.51,3415,11.04,3416,11.04,3417,10.003,3418,6.659,3419,5.826,3420,6.659,3421,6.659,3422,6.659,3423,6.659,3424,6.659,3425,9.204,3426,6.659,3427,6.659,3428,6.157,3429,6.659,3430,6.659,3431,8.107,3432,4.745,3433,4.745,3434,6.659,3435,6.659,3436,6.659,3437,7.671]],["title/classes/BoardManagementConsole.html",[0,0.231,3438,5.958]],["body/classes/BoardManagementConsole.html",[0,0.27,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,8,1.243,27,0.425,29,0.807,30,0.001,31,0.581,32,0.142,33,0.497,35,0.955,36,2.206,47,0.732,49,3.135,95,0.155,101,0.013,103,0.001,104,0.001,138,1.446,153,2.622,236,1.293,262,2.527,345,2.53,349,0.821,379,0.994,437,1.028,480,2.207,486,2.391,524,4.534,578,4.823,603,1.597,608,1.832,636,4.622,685,5.172,1858,5.839,1882,5.603,2333,4.669,2630,5.437,3229,4.823,3438,9.068,3439,11.535,3440,6.954,3441,9.583,3442,6.659,3443,8.128,3444,11.092,3445,7.949,3446,8.376,3447,9.583,3448,6.423,3449,10.365,3450,7.949,3451,5.459,3452,8.396,3453,7.688,3454,4.718,3455,7.349,3456,6.227,3457,5.207,3458,7.949,3459,7.949,3460,6.659,3461,10.24,3462,7.949,3463,7.949,3464,5.912]],["title/injectables/BoardManagementUc.html",[539,0.901,3444,5.705]],["body/injectables/BoardManagementUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,26,2.484,27,0.493,29,0.958,30,0.001,31,0.675,32,0.171,33,0.578,34,0.877,35,1.409,36,2.152,55,2.951,95,0.137,96,1.415,97,2.232,99,0.859,101,0.008,103,0,104,0,131,2.867,143,1.147,145,1.43,226,0.736,262,2.481,345,1.639,349,1.271,379,0.644,437,1.517,474,2.2,479,2.867,480,1.43,486,1.55,519,1.596,539,1.013,541,1.233,556,1.297,579,2.743,603,2.721,608,2.61,708,4.201,821,5.899,844,2.834,1174,2.765,1175,3.425,1203,2.444,1391,3.374,1858,5.409,1862,3.601,1864,2.835,1882,3.194,1885,3.926,2249,5.823,2630,4.015,2742,4.828,2792,4.325,2820,3.701,3109,6.986,3199,3.831,3207,3.926,3213,3.281,3224,3.956,3284,5.542,3304,6.423,3432,6.509,3441,7.077,3442,4.315,3443,6.723,3444,6.412,3446,6.185,3447,7.077,3451,3.537,3465,12.307,3466,4.762,3467,7.654,3468,7.654,3469,7.654,3470,7.654,3471,7.654,3472,7.077,3473,5.151,3474,5.151,3475,7.654,3476,5.151,3477,7.654,3478,5.151,3479,7.654,3480,5.151,3481,7.654,3482,5.151,3483,7.654,3484,9.134,3485,5.151,3486,4.315,3487,7.654,3488,8.171,3489,5.151,3490,5.151,3491,5.151,3492,5.151,3493,5.151,3494,4.762,3495,5.151,3496,5.151,3497,5.151,3498,5.151,3499,5.151,3500,5.151,3501,5.151,3502,5.151,3503,4.162,3504,5.151,3505,5.151,3506,5.151,3507,4.762,3508,5.151,3509,5.151,3510,5.151,3511,4.762,3512,9.134,3513,5.151,3514,5.151,3515,5.151,3516,5.151,3517,5.151,3518,4.506,3519,5.151,3520,5.151,3521,5.151,3522,5.151,3523,5.151]],["title/modules/BoardModule.html",[201,1.804,1767,5.065]],["body/modules/BoardModule.html",[0,0.195,3,0.013,4,0.013,5,0.007,30,0.001,95,0.168,99,0.956,101,0.009,103,0,104,0,201,2.818,203,2.061,204,2.214,205,2.279,206,2.269,207,2.26,208,3.558,209,3.653,214,5.456,218,3.291,219,2.232,220,2.18,225,3.264,226,0.819,227,2.359,560,4,564,1.759,569,4.083,1163,3.604,1274,1.813,1542,4.262,1663,2.425,1741,7.135,1767,10.741,1850,9.559,1851,10.018,1882,2.391,2334,3.268,2418,3.366,2425,3.101,2431,3.753,2456,9.026,2486,1.9,2944,11.01,2978,4.8,3088,8.221,3258,9.851,3259,5.013,3280,9.503,3282,9.851,3365,8.747,3451,3.935,3524,5.73,3525,5.73,3526,5.73,3527,5.73,3528,8.964,3529,9.212,3530,8.747,3531,7.304,3532,10.296,3533,10.62,3534,10.62,3535,9.503,3536,9.851,3537,5.73,3538,2.824,3539,2.338,3540,3.7,3541,2.9,3542,5.73,3543,4.489,3544,3.87,3545,5.73,3546,4.489]],["title/entities/BoardNode.html",[154,1.456,3109,3.572]],["body/entities/BoardNode.html",[0,0.214,3,0.015,4,0.015,5,0.008,7,0.169,9,4.187,26,2.481,27,0.48,30,0.001,32,0.179,33,0.426,34,1.894,47,0.88,55,2.52,95,0.158,96,1.735,101,0.015,103,0.001,104,0.001,105,0.681,112,0.704,138,2.13,143,1.975,144,3.663,145,3.372,154,1.896,155,2.107,160,5.847,172,3.739,173,1.867,174,3.527,175,2.792,178,2.623,180,1.132,181,1.69,182,2.054,226,0.903,236,1.027,349,1.21,360,5.741,404,3.619,405,4.881,413,1.945,437,1.326,529,1.787,556,2.234,593,3.285,685,2.672,696,4.043,708,3.684,834,2.78,1158,3.016,1203,3.55,1600,3.335,1601,2.672,1882,2.635,2450,4.211,2722,3.24,2742,5.876,3098,5.29,3109,5.377,3120,5.321,3187,6.823,3245,5.99,3304,4.428,3318,4.337,3395,4.5,3547,5.838,3548,7.625,3549,6.314,3550,5.838,3551,6.314,3552,6.314,3553,6.314,3554,6.314,3555,6.314,3556,4.813,3557,8.2,3558,5.443,3559,9.478,3560,8.2,3561,5.524,3562,4.947,3563,5.838,3564,5.838,3565,5.838,3566,5.838,3567,4.415,3568,4.415,3569,4.023,3570,5.019,3571,5.838,3572,5.838,3573,7.759,3574,5.838,3575,5.838,3576,5.838,3577,5.838,3578,5.838,3579,3.922,3580,5.838,3581,5.838]],["title/interfaces/BoardNodeProps.html",[105,0.735,3558,4.18]],["body/interfaces/BoardNodeProps.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.171,9,4.281,26,2.666,30,0.001,32,0.172,33,0.616,34,2.144,47,0.888,55,2.55,95,0.16,96,1.791,101,0.015,103,0.001,104,0.001,105,0.703,107,1.564,112,0.72,143,1.451,144,3.714,145,2.895,154,1.938,172,3.783,173,1.928,174,3.607,175,2.882,178,2.708,180,1.168,181,1.745,182,2.121,226,0.932,236,1.06,349,1.224,360,3.651,404,3.701,405,4.991,413,2.008,437,1.349,529,1.844,556,2.284,593,3.359,685,2.759,696,4.113,708,3.767,834,2.843,1158,3.114,1203,3.783,1600,3.41,1601,2.759,1882,2.721,2450,4.306,2722,3.345,2742,6.263,3098,5.461,3109,5.913,3120,5.441,3187,6.4,3245,6.126,3304,5.916,3318,4.477,3395,4.645,3547,6.027,3548,4.849,3556,4.969,3557,8.385,3558,6.4,3559,9.642,3560,8.385,3561,5.703,3562,5.107,3563,6.027,3564,6.027,3565,6.027,3566,6.027,3567,4.558,3568,4.558,3569,4.153,3570,5.106,3571,6.027,3572,6.027,3573,7.934,3574,6.027,3575,6.027,3576,6.027,3577,6.027,3578,6.027,3579,4.049,3580,6.027,3581,6.027]],["title/injectables/BoardNodeRepo.html",[539,0.901,3280,5.503]],["body/injectables/BoardNodeRepo.html",[0,0.216,3,0.015,4,0.015,5,0.008,7,0.097,8,1.07,12,4.097,26,2.365,27,0.457,29,0.869,30,0.001,31,0.625,32,0.153,33,0.536,34,1.755,35,1.238,36,2.592,40,4.317,55,2.217,59,1.981,95,0.131,96,1.751,97,2.763,99,1.063,101,0.011,103,0.001,104,0.001,154,2.512,177,1.167,226,0.911,262,2.842,345,2.029,349,1.292,358,2.804,360,5,379,0.797,437,1.677,539,1.182,541,1.526,556,1.606,608,2.375,696,2.514,760,3.538,761,7.479,970,3.082,984,2.749,1559,3.928,1663,2.697,1666,4.009,2249,6.428,2585,5.719,3109,6.802,3162,10.282,3172,10.282,3245,4.306,3279,4.457,3280,7.215,3284,5.417,3287,10.866,3319,8.254,3548,4.741,3582,6.375,3583,8.928,3584,8.928,3585,6.375,3586,6.375,3587,8.928,3588,6.375,3589,8.928,3590,6.375,3591,6.375,3592,5.894,3593,6.375,3594,8.928,3595,8.254,3596,10.304,3597,5.151,3598,8.928,3599,8.928,3600,6.375,3601,6.375,3602,5.577,3603,6.375,3604,6.375,3605,8.928,3606,6.375,3607,6.375,3608,6.375,3609,4.457,3610,6.375,3611,6.375,3612,6.375,3613,6.375,3614,5.34,3615,6.375,3616,6.375,3617,6.375,3618,6.375,3619,6.375]],["title/injectables/BoardRepo.html",[539,0.901,2941,5.065]],["body/injectables/BoardRepo.html",[0,0.195,3,0.013,4,0.013,5,0.007,7,0.087,8,0.992,10,3.363,12,3.798,18,4.188,26,2.809,27,0.518,29,0.967,30,0.001,31,0.695,32,0.17,33,0.596,34,1.41,35,1.491,36,2.732,40,4.002,95,0.123,99,0.956,101,0.009,103,0,104,0,154,1.225,155,2.762,180,1.483,226,0.819,236,0.932,262,3.01,349,1.215,382,3.21,437,1.605,479,4.871,539,1.095,541,1.372,603,2.54,604,3.947,608,3.029,679,7.122,685,3.502,686,3.907,687,4.916,711,3.517,712,3.559,713,3.517,714,3.559,716,3.517,717,3.559,718,3.18,844,3.153,1150,2.279,1858,5.39,1864,3.941,1882,5.708,2606,3.604,2629,6.309,2633,6.688,2635,6.688,2677,4.386,2941,6.156,3620,5.73,3621,8.276,3622,8.276,3623,8.276,3624,8.276,3625,8.276,3626,5.73,3627,8.276,3628,5.73,3629,5.73,3630,8.276,3631,5.73,3632,8.276,3633,5.73,3634,5.73,3635,3.935,3636,5.73,3637,8.276,3638,5.73,3639,5.73,3640,5.013,3641,5.73,3642,5.73,3643,5.73,3644,5.73,3645,5.73,3646,9.715,3647,8.982,3648,5.73,3649,5.73,3650,5.73,3651,5.73,3652,5.73]],["title/classes/BoardResponse.html",[0,0.231,2902,5.705]],["body/classes/BoardResponse.html",[0,0.28,2,0.923,3,0.019,4,0.019,5,0.01,7,0.125,27,0.525,29,0.642,30,0.001,31,0.462,32,0.179,33,0.563,34,2.185,47,0.875,95,0.157,101,0.014,103,0.001,104,0.001,112,0.843,138,2.254,150,1.878,245,3.442,247,3.608,253,4.035,379,1.327,404,3.363,556,2.076,769,4.171,814,4.142,1203,4.094,2717,5.873,2720,6.674,2722,4.229,2855,5.399,2856,5.652,2857,5.652,2902,10.743,2903,10.015,3199,9.538,3653,8.242,3654,7.612,3655,8.242,3656,8.242,3657,8.242,3658,6.825,3659,8.242,3660,8.242,3661,8.242,3662,5.48,3663,6.904,3664,5.48]],["title/classes/BoardResponseMapper.html",[0,0.231,2906,5.958]],["body/classes/BoardResponseMapper.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,27,0.353,29,0.671,30,0.001,31,0.482,32,0.149,33,0.413,34,1.467,35,1.035,95,0.16,99,1.437,100,2.893,101,0.014,103,0.001,104,0.001,226,1.231,236,1.949,349,1.127,376,3.751,413,3.69,437,1.114,521,3.411,529,2.437,604,3.499,777,5.112,778,6.058,1203,2.75,1216,4.912,1559,4.801,1863,7.477,1882,3.594,2278,5.167,2630,6.608,2744,5.416,2902,10.553,2906,9.548,2907,7.215,2928,7.962,3019,6.137,3199,6.406,3511,7.962,3654,5.112,3658,6.346,3665,10.914,3666,10.09,3667,7.534,3668,8.55,3669,5.726,3670,7.534,3671,8.612,3672,8.612,3673,8.612,3674,7.534,3675,6.137,3676,8.612,3677,8.612]],["title/controllers/BoardSubmissionController.html",[259,2.591,2700,5.958]],["body/controllers/BoardSubmissionController.html",[0,0.173,3,0.012,4,0.012,5,0.006,7,0.077,8,0.912,27,0.372,29,0.707,30,0.001,31,0.509,32,0.188,33,0.436,35,1.092,36,2.142,95,0.158,100,1.715,101,0.008,103,0,104,0,138,1.653,150,1.163,177,1.663,223,2.102,226,0.73,236,1.237,259,1.942,261,2.424,262,2.69,270,6.119,278,5.222,282,7.011,287,7.393,290,7.323,294,6.375,319,3.433,324,4.598,333,4.26,334,3.297,335,6.04,336,7.976,337,2.638,338,2.698,340,2.453,343,2.719,346,5.393,347,4.645,349,0.785,379,0.638,437,1.46,603,1.825,608,2.094,631,3.902,685,3.217,819,3.533,822,4.378,1198,6.8,1880,3.758,1882,2.13,2468,5.976,2619,4.84,2691,7.118,2693,7.342,2694,7.612,2700,6.652,2702,2.41,2703,4.466,2704,4.72,2705,4.72,2821,5.143,2822,3.063,2871,6.609,2873,5.796,2875,6.926,2876,5.796,2879,7.87,2881,4.125,2894,9.159,2896,4.562,2899,3.638,2900,2.885,2901,2.741,2908,4.125,2918,4.125,2919,4.125,3060,3.312,3160,4.844,3247,4.782,3304,3.796,3678,10.067,3679,5.105,3680,4.297,3681,7.612,3682,7.612,3683,8.4,3684,4.72,3685,10.228,3686,8.434,3687,5.105,3688,5.105,3689,5.418,3690,4.466,3691,5.105,3692,5.105,3693,5.105,3694,8.808,3695,5.105,3696,5.105,3697,5.105,3698,5.105,3699,5.105,3700,8.808,3701,5.105,3702,5.105,3703,5.105,3704,3.891,3705,3.171,3706,6.37,3707,5.105,3708,5.105,3709,5.418,3710,3.638,3711,3.891,3712,4.276,3713,5.105,3714,5.105,3715,4.466,3716,5.105,3717,4.466,3718,5.105,3719,4.72,3720,5.105,3721,5.105,3722,5.105,3723,7.604,3724,4.72,3725,5.105,3726,3.171,3727,4.613,3728,4.125,3729,4.125,3730,5.105,3731,5.105,3732,4.72]],["title/classes/BoardTaskResponse.html",[0,0.231,3401,5.705]],["body/classes/BoardTaskResponse.html",[0,0.226,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,27,0.548,29,0.519,30,0.001,31,0.692,32,0.183,33,0.642,34,2.034,47,0.936,83,3.961,95,0.134,101,0.011,103,0.001,104,0.001,112,0.731,138,2.411,149,4.981,150,1.517,153,2.397,245,3.475,247,2.915,347,4.373,376,5.201,377,5.42,379,1.151,404,2.718,406,4.301,408,4.301,769,3.37,1882,2.779,1886,7.244,1924,3.912,1982,2.648,2624,2.975,2630,7.083,2707,10.578,2708,10.578,2717,4.745,2720,7.155,3227,5.412,3401,10.003,3419,8.052,3733,6.659,3734,6.811,3735,6.551,3736,6.659,3737,6.659,3738,6.659,3739,6.659,3740,6.659,3741,6.659,3742,6.659,3743,6.659,3744,6.659,3745,8.835,3746,6.659,3747,6.659,3748,5.217]],["title/classes/BoardTaskStatusMapper.html",[0,0.231,3749,5.958]],["body/classes/BoardTaskStatusMapper.html",[0,0.33,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,8,1.41,27,0.398,29,0.756,30,0.001,31,0.544,32,0.133,33,0.466,35,1.167,95,0.149,99,1.62,100,3.95,101,0.016,103,0.001,104,0.001,236,1.58,347,3.558,349,1.003,413,3.894,437,1.256,778,6.527,785,4.85,3745,10.594,3749,10.287,3750,11.759,3751,9.714,3752,10.287,3753,8.738,3754,9.714,3755,9.714]],["title/classes/BoardTaskStatusResponse.html",[0,0.231,3745,5.705]],["body/classes/BoardTaskStatusResponse.html",[0,0.26,2,0.856,3,0.018,4,0.018,5,0.009,7,0.116,27,0.537,29,0.595,30,0.001,31,0.428,32,0.179,33,0.367,55,2.768,95,0.097,101,0.013,103,0.001,104,0.001,112,0.802,119,2.618,138,2.339,150,1.742,245,3.64,379,1.264,769,3.87,2624,5.949,2630,6.985,2707,10.432,2708,10.432,3745,10.489,3756,7.07,3757,8.457,3758,8.754,3759,8.202,3760,8.202,3761,8.922,3762,8.457,3763,7.07,3764,7.647,3765,7.647,3766,7.647,3767,7.647,3768,7.647,3769,7.647,3770,6.406,3771,7.07,3772,6.406,3773,6.179,3774,7.07,3775,7.07]],["title/injectables/BoardUc.html",[539,0.901,2690,5.503]],["body/injectables/BoardUc.html",[0,0.152,3,0.01,4,0.01,5,0.005,7,0.068,8,0.826,26,3.003,27,0.495,29,0.941,30,0.001,31,0.677,32,0.165,33,0.58,35,1.422,36,2.718,39,3.498,47,0.592,55,1.806,59,1.392,95,0.146,99,0.747,101,0.007,103,0,104,0,177,1.965,180,1.234,226,0.64,262,2.975,349,0.867,379,0.861,382,2.532,437,1.493,448,4.73,539,0.912,541,1.072,560,1.844,603,1.892,608,3.04,639,2.102,1203,3.246,1274,1.417,1609,6.766,1624,6.983,1625,4.512,1695,5.909,1764,2.978,1799,4.908,1851,8.523,1863,2.659,1882,5.131,2250,3.439,2251,4.253,2450,5.097,2451,8.183,2453,5.396,2454,5.396,2455,3.258,2456,7.926,2458,3.332,2459,5.01,2460,4.908,2462,3.509,2463,5.533,2465,3.509,2466,4.908,2469,2.033,2482,8.316,2630,5.333,2690,5.566,2864,7.758,2865,7.758,2868,7.758,3095,3.332,3259,3.919,3294,3.192,3374,7.75,3461,11.178,3532,8.759,3533,9.035,3776,4.48,3777,8.391,3778,8.391,3779,8.709,3780,4.48,3781,6.888,3782,4.48,3783,6.888,3784,4.48,3785,6.888,3786,4.48,3787,6.888,3788,4.48,3789,4.48,3790,7.891,3791,9.419,3792,4.48,3793,6.888,3794,4.48,3795,3.62,3796,3.62,3797,3.62,3798,3.258,3799,4.48,3800,3.62,3801,3.62,3802,4.48,3803,7.808,3804,10.167,3805,4.48,3806,4.48,3807,4.48,3808,4.48,3809,4.142,3810,7.758,3811,4.48,3812,4.48]],["title/classes/BoardUrlParams.html",[0,0.231,2870,5.958]],["body/classes/BoardUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,1882,4.936,2870,10.348,3461,10.639,3813,9.809,3814,5.762,3815,9.809]],["title/classes/BruteForceError.html",[0,0.231,1548,5.958]],["body/classes/BruteForceError.html",[0,0.255,2,0.842,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,27,0.543,29,0.585,30,0.001,31,0.421,32,0.187,33,0.539,35,0.903,47,0.904,55,2.755,95,0.127,101,0.012,103,0.001,104,0.001,112,0.793,138,2.265,154,1.607,177,2.535,180,1.791,182,2.446,226,1.075,292,3.804,340,3.613,347,2.754,379,0.94,382,3.862,816,5.488,819,2.638,946,5.208,984,3.242,986,4.044,1021,5.11,1201,8.243,1202,6.401,1203,3.819,1204,7.151,1208,4.855,1209,4.173,1210,4.855,1211,4.855,1212,4.855,1213,4.855,1214,4.855,1215,4.511,1216,4.288,1222,4.728,1548,8.742,1574,11.835,3816,11.223,3817,7.518,3818,9.992,3819,9.992,3820,6.951,3821,7.518,3822,7.518]],["title/injectables/BsonConverter.html",[539,0.901,3823,5.705]],["body/injectables/BsonConverter.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.227,27,0.419,29,0.797,30,0.001,31,0.573,32,0.14,33,0.491,35,1.457,95,0.13,101,0.013,103,0.001,104,0.001,153,2.326,226,1.114,333,4.33,349,1.057,437,1.324,524,4.446,539,1.354,541,1.866,573,9.032,1150,5.143,1438,9.726,2174,12.363,3823,8.573,3824,7.795,3825,9.462,3826,9.462,3827,10.234,3828,7.795,3829,10.234,3830,11.031,3831,9.504,3832,9.508,3833,9.023,3834,11.216,3835,12.132,3836,10.234,3837,7.795,3838,10.234,3839,7.795,3840,7.795,3841,8.953,3842,7.795]],["title/classes/Builder.html",[0,0.231,2001,4.6]],["body/classes/Builder.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,8,1.387,27,0.512,29,0.737,30,0.001,31,0.53,32,0.158,33,0.454,35,1.137,101,0.016,103,0.001,104,0.001,112,0.919,177,2.289,349,0.977,379,1.183,448,5.124,454,6.185,479,5.156,1936,6.732,2001,7.817,2002,10.473,3843,9.463,3844,11.573,3845,11.573,3846,11.573,3847,9.463,3848,11.573]],["title/classes/BusinessError.html",[0,0.231,1201,4.18]],["body/classes/BusinessError.html",[0,0.34,2,0.676,3,0.014,4,0.014,5,0.007,7,0.092,8,1.03,9,4.723,27,0.504,29,0.47,30,0.001,31,0.338,32,0.185,33,0.48,35,0.726,47,0.845,55,1.849,59,2.67,95,0.138,101,0.01,103,0,104,0,112,0.682,133,2.112,138,2.095,149,3.269,150,1.376,153,2.721,177,2.484,180,1.54,182,1.965,226,0.863,236,1.628,245,3.02,347,3.148,349,0.624,379,1.075,437,0.781,448,3.523,556,1.521,590,3.707,604,2.454,769,3.056,816,5.001,819,3.016,946,6.098,984,4.967,986,4.33,1021,4.682,1150,2.402,1201,5.275,1202,7.305,1203,4.019,1204,6.944,1209,3.352,1215,7.389,1216,6.216,1221,3.707,1222,6.292,1229,7.139,1347,7.519,1503,3.848,1938,4.902,2026,3.9,2504,3.839,2722,4.41,3539,3.507,3668,8.539,3849,6.04,3850,6.945,3851,6.945,3852,5.903,3853,6.551,3854,5.476,3855,9.535,3856,9.648,3857,8.594,3858,6.04,3859,6.04,3860,6.04,3861,6.04,3862,6.04,3863,6.04,3864,6.04,3865,5.284,3866,5.584,3867,5.584,3868,6.551,3869,7.946,3870,8.594,3871,6.04,3872,6.04]],["title/injectables/CacheService.html",[539,0.901,3873,5.705]],["body/injectables/CacheService.html",[0,0.334,3,0.023,4,0.023,5,0.012,7,0.149,8,1.42,27,0.403,30,0.001,35,1.181,95,0.161,101,0.016,103,0.001,104,0.001,226,1.406,349,1.016,539,1.568,541,2.354,1338,7.314,2017,4.304,2018,4.814,2019,4.642,3873,9.923,3874,9.833,3875,13.196,3876,9.833,3877,11.122,3878,5.506,3879,9.833,3880,7.495,3881,9.091,3882,8.602,3883,9.833]],["title/modules/CacheWrapperModule.html",[201,1.804,1353,5.503]],["body/modules/CacheWrapperModule.html",[0,0.267,3,0.018,4,0.018,5,0.009,30,0.001,47,0.727,95,0.17,101,0.013,103,0.001,104,0.001,105,0.849,201,3.041,203,2.831,204,3.042,205,3.13,206,3.117,207,3.104,208,4.205,209,4.317,214,4.779,218,4.096,219,3.066,220,2.994,225,4.062,226,1.125,349,1.064,437,1.485,637,5.609,639,3.694,685,4.358,986,2.661,1194,2.706,1274,2.49,1353,10.828,1818,8.323,2017,3.445,2018,3.854,2019,3.715,2250,3.226,2251,5.183,3539,3.212,3873,11.777,3877,6.886,3878,4.408,3880,8.751,3882,6.886,3884,7.871,3885,7.871,3886,7.871,3887,7.871,3888,10.299,3889,10.299,3890,6.886,3891,6.166,3892,8.068,3893,8.628,3894,7.871,3895,7.871,3896,7.871,3897,9.522,3898,7.277,3899,7.871,3900,6.886,3901,7.277,3902,6.886,3903,6.886,3904,7.277]],["title/classes/CalendarEventDto.html",[0,0.231,3905,5.705]],["body/classes/CalendarEventDto.html",[0,0.329,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,27,0.517,29,0.755,30,0.001,31,0.543,32,0.173,33,0.465,47,0.927,100,3.255,101,0.016,103,0.001,104,0.001,112,0.932,379,1.212,1203,4.033,2722,4.973,3905,11.267,3906,13.131,3907,9.691,3908,8.677,3909,9.836,3910,11.742,3911,9.691,3912,9.691,3913,8.96,3914,8.96]],["title/injectables/CalendarMapper.html",[539,0.901,3915,5.705]],["body/injectables/CalendarMapper.html",[0,0.321,3,0.022,4,0.022,5,0.011,7,0.143,8,1.385,27,0.387,29,0.735,30,0.001,31,0.529,32,0.129,33,0.453,35,1.134,95,0.158,101,0.016,103,0.001,104,0.001,226,1.35,236,1.536,349,0.975,416,9.339,437,1.221,539,1.53,541,2.26,1203,3.014,3905,10.903,3908,7.937,3915,9.681,3916,9.441,3917,11.556,3918,10.903,3919,9.441,3920,7.629,3921,9.441,3922,8.728,3923,8.728,3924,8.728,3925,7.629,3926,9.441,3927,9.441,3928,7.196,3929,9.441]],["title/modules/CalendarModule.html",[201,1.804,3930,5.705]],["body/modules/CalendarModule.html",[0,0.314,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.278,203,3.325,204,3.573,205,3.677,206,3.662,207,3.646,208,4.532,209,4.653,218,4.537,219,3.602,220,3.517,225,3.646,226,1.322,959,5.324,3915,11.324,3930,11.684,3931,9.246,3932,9.246,3933,9.246,3934,12.399,3935,9.246,3936,7.586,3937,9.246,3938,8.548]],["title/injectables/CalendarService.html",[539,0.901,3934,5.958]],["body/injectables/CalendarService.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.084,26,2.662,27,0.484,29,0.81,30,0.001,31,0.583,32,0.162,33,0.499,34,1.105,35,1.086,36,1.923,39,2.431,47,0.865,55,2.238,95,0.169,99,1.082,101,0.011,103,0.001,104,0.001,112,0.718,137,4.08,177,2.346,226,0.928,236,1.692,262,2.279,271,3.536,345,2.065,349,0.934,360,5.825,379,0.811,437,1.169,529,1.835,539,1.196,541,1.553,593,2.403,603,2.649,958,8.564,959,3.736,961,4.25,1070,4.945,1075,3.811,1158,4.317,1159,4.623,1160,5.082,1194,3.867,1439,5.676,1631,4.03,1908,6.44,1909,5.191,1920,4.536,2017,2.84,2018,3.176,2019,3.062,2133,5.878,2152,9.1,2153,10.936,2182,7.929,2183,7.572,2198,5.998,2206,5.998,2207,5.998,2218,5.998,2229,5.998,2230,5.998,2232,5.998,2505,4.623,3878,3.633,3905,5.435,3915,10.528,3918,5.435,3922,5.998,3923,5.998,3924,5.998,3934,7.907,3938,5.998,3939,6.488,3940,10.401,3941,9.038,3942,5.998,3943,9.038,3944,9.038,3945,11.25,3946,6.488,3947,9.091,3948,6.488,3949,6.488,3950,6.488,3951,6.488,3952,9.038,3953,6.488,3954,6.488,3955,6.488,3956,4.825,3957,6.488,3958,6.488,3959,6.488]],["title/classes/Card.html",[0,0.231,2792,3.848]],["body/classes/Card.html",[0,0.196,2,0.646,3,0.013,4,0.013,5,0.01,7,0.087,8,0.997,27,0.539,29,0.968,30,0.001,31,0.697,32,0.176,33,0.597,35,1.522,36,1.77,47,0.799,55,2.615,59,1.793,95,0.154,101,0.016,103,0,104,0,105,0.623,112,0.661,119,1.985,137,5.232,180,1.748,262,2.137,349,1.103,381,2.794,382,3.752,437,0.746,448,3.41,474,2.465,479,3.116,517,3.189,519,3.652,564,1.772,604,4.79,608,1.33,662,2.616,686,3.927,1150,2.295,1203,3.764,1600,2.17,1601,5.262,1604,6.299,1676,3.796,1882,2.408,2170,3.232,2450,6.107,2486,1.913,2724,7.686,2727,5.928,2728,5.928,2729,5.928,2730,5.531,2731,5.928,2733,3.837,2734,5.106,2735,6.271,2737,5.816,2738,5.106,2739,6.147,2741,4.035,2742,4.397,2744,6.134,2745,4.035,2747,5.928,2749,4.035,2751,3.837,2778,5.047,2792,6.032,2799,5.449,2802,5.106,2805,5.449,2808,5.047,2811,5.232,2818,8.231,2819,4.292,2820,2.79,2821,2.539,2822,3.463,3213,7.51,3960,5.336,3961,5.771,3962,5.771,3963,5.336,3964,4.198,3965,4.198,3966,4.198,3967,4.835,3968,5.771,3969,5.049,3970,5.771,3971,5.771,3972,5.771,3973,5.771,3974,5.771,3975,3.629,3976,5.713,3977,4.521,3978,7.691,3979,5.336,3980,5.047,3981,5.336,3982,5.336,3983,5.049,3984,5.336]],["title/controllers/CardController.html",[259,2.591,2698,5.958]],["body/controllers/CardController.html",[0,0.128,3,0.009,4,0.009,5,0.004,7,0.057,8,0.722,10,3.053,27,0.409,29,0.778,30,0.001,31,0.56,32,0.191,33,0.479,35,1.2,36,2.544,95,0.138,100,1.268,101,0.006,103,0,104,0,138,1.817,150,0.86,177,1.102,223,1.554,226,0.54,236,1.222,259,1.436,261,1.792,262,2.804,270,6.313,278,4.136,282,7.427,284,1.166,287,7.833,290,8.368,294,6.667,310,2.61,319,2.719,324,4.742,333,3.965,334,2.437,335,6.289,336,8.24,337,1.951,338,1.995,340,1.814,343,2.01,345,1.201,346,5.929,347,4.836,349,0.622,437,1.356,565,2.24,603,0.758,608,2.302,631,1.937,685,2.548,819,2.113,1198,7.08,1203,1.923,1559,2.649,1880,3.107,2449,3.049,2468,6.222,2619,5.32,2691,5.886,2692,6.072,2698,5.268,2702,1.781,2792,5.644,2871,7.265,2873,4.59,2875,7.614,2876,7.143,2879,7.536,2881,6.93,2894,9.512,2895,6.93,2896,5.146,2899,2.689,2900,2.132,2901,2.026,2908,3.049,2918,6.93,2919,6.93,2922,3.301,3207,6.537,3213,3.837,3247,6.845,3368,4.136,3507,3.489,3681,6.294,3684,3.489,3686,7.184,3689,4.291,3690,3.301,3704,4.59,3705,2.344,3709,5.354,3710,5.354,3711,2.877,3726,2.344,3727,5.686,3728,3.049,3729,3.049,3985,3.774,3986,5.567,3987,7.514,3988,6.573,3989,6.947,3990,6.947,3991,11.003,3992,3.774,3993,5.727,3994,3.774,3995,3.774,3996,3.774,3997,3.774,3998,8.576,3999,3.774,4000,3.774,4001,3.774,4002,7.514,4003,7.503,4004,3.774,4005,3.774,4006,3.774,4007,3.774,4008,3.774,4009,7.503,4010,3.774,4011,3.774,4012,3.774,4013,7.503,4014,3.774,4015,3.774,4016,3.774,4017,3.774,4018,3.774,4019,2.373,4020,6.573,4021,4.59,4022,4.59,4023,3.774,4024,3.774,4025,3.161,4026,3.774,4027,5.268,4028,3.774,4029,6.022,4030,3.774,4031,6.022,4032,3.489,4033,3.774,4034,3.774,4035,9.371,4036,3.774,4037,3.301,4038,3.774,4039,3.774,4040,3.774,4041,3.774,4042,3.774,4043,3.774,4044,3.774,4045,3.774,4046,3.301,4047,3.301,4048,3.301,4049,3.774,4050,4.59,4051,3.774,4052,3.301]],["title/classes/CardIdsParams.html",[0,0.231,4003,5.958]],["body/classes/CardIdsParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.172,47,0.947,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,138,1.75,143,2.142,148,3.053,150,2.192,153,2.187,245,3.065,556,2.424,565,7.967,803,4.771,1669,6.087,2344,5.488,4003,10.228,4053,10.809,4054,9.621,4055,9.621,4056,7.775,4057,6.867,4058,9.621]],["title/classes/CardListResponse.html",[0,0.231,4020,5.958]],["body/classes/CardListResponse.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,27,0.477,29,0.744,30,0.001,31,0.535,32,0.172,33,0.458,95,0.148,101,0.016,103,0.001,104,0.001,112,0.924,138,1.738,150,2.177,245,3.052,284,4.137,379,1.456,556,2.406,769,4.834,809,6.679,814,4.801,829,5.302,4020,11.719,4053,11.607,4059,9.553,4060,10.56,4061,9.553,4062,9.553]],["title/entities/CardNode.html",[154,1.456,3133,5.335]],["body/entities/CardNode.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.135,27,0.364,30,0.001,32,0.152,55,2.614,95,0.166,96,2.439,101,0.018,103,0.001,104,0.001,105,0.958,112,0.883,138,1.615,154,2.378,155,2.963,172,3.879,173,2.626,180,1.994,181,2.376,349,0.917,403,4.928,437,1.148,1600,3.338,1601,4.707,2503,5.017,2504,3.966,2792,6.286,3109,5.836,3120,6.675,3133,8.715,3187,5.449,3206,9.733,3213,8.115,3245,5.997,3355,5.997,3556,6.768,3558,6.828,3579,5.515,4063,10.286,4064,5.656,4065,8.208,4066,5.656,4067,9.733,4068,7.438,4069,8.208,4070,8.208]],["title/interfaces/CardNodeProps.html",[105,0.735,4067,5.958]],["body/interfaces/CardNodeProps.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.152,55,2.745,95,0.167,96,2.45,101,0.018,103,0.001,104,0.001,105,0.962,107,2.14,112,0.886,154,2.384,172,3.562,173,2.637,180,2.182,181,2.387,349,0.921,403,4.95,437,1.153,1600,3.353,1601,4.721,2503,5.039,2504,3.984,2792,6.304,3109,5.852,3120,6.693,3133,6.986,3187,5.473,3206,9.76,3213,8.368,3245,6.023,3355,6.023,3556,6.798,3558,7.472,3579,5.539,4063,8.245,4064,5.682,4066,5.682,4067,10.651,4068,7.471,4069,8.245,4070,8.245]],["title/interfaces/CardProps.html",[105,0.735,3983,5.958]],["body/interfaces/CardProps.html",[0,0.257,3,0.018,4,0.018,5,0.012,7,0.115,30,0.001,32,0.154,36,1.612,47,0.881,55,2.686,95,0.166,101,0.019,103,0.001,104,0.001,105,0.817,107,1.818,112,0.797,119,1.542,180,2.019,262,1.66,349,1.239,437,0.98,474,3.236,517,3.85,519,2.346,564,2.326,604,5.212,608,1.746,1150,3.012,1203,4.096,1600,2.848,1601,5.282,1676,4.583,1882,3.161,2170,4.242,2450,4.768,2486,2.511,2724,6.093,2734,4.649,2735,5.899,2738,4.649,2739,5.782,2747,5.397,2778,6.835,2792,6.366,2799,6.578,2802,6.163,2805,6.578,2808,6.093,2811,6.316,2818,9.079,2819,5.634,2820,3.663,2821,3.332,2822,4.545,3213,8.173,3960,7.003,3975,4.764,3976,6.897,3977,5.934,3978,9.284,3979,7.003,3980,6.093,3981,7.003,3982,7.003,3983,8.785,3984,7.003]],["title/classes/CardResponse.html",[0,0.231,4060,5.503]],["body/classes/CardResponse.html",[0,0.239,2,0.789,3,0.016,4,0.016,5,0.008,7,0.107,27,0.526,29,0.548,30,0.001,31,0.395,32,0.179,33,0.521,34,2.075,47,0.822,55,2.058,95,0.154,101,0.012,103,0.001,104,0.001,112,0.759,138,2.285,149,3.638,150,1.605,245,3.475,247,3.083,253,3.449,379,1.196,404,2.875,556,1.774,769,3.565,814,3.541,822,5.508,844,6.702,1203,3.889,1669,4.98,1880,2.913,2449,8.776,2720,6.015,2722,3.615,2855,4.614,2856,5.094,2857,5.094,3213,7.76,3419,6.163,3654,7.229,3658,6.315,3662,4.684,3664,4.684,3704,7.291,3705,4.375,3709,6.815,3710,6.815,3726,4.375,3727,7.389,3728,5.692,3729,5.692,3993,7.291,4021,7.291,4022,7.291,4046,6.163,4047,6.163,4048,6.163,4060,9.842,4068,5.901,4071,7.044,4072,11.261,4073,7.044,4074,7.044,4075,7.044,4076,7.044,4077,7.044,4078,7.044,4079,9.098,4080,7.044,4081,6.163,4082,7.044,4083,6.163,4084,7.044]],["title/classes/CardResponseMapper.html",[0,0.231,4025,5.705]],["body/classes/CardResponseMapper.html",[0,0.307,2,1.012,3,0.021,4,0.021,5,0.011,7,0.137,8,1.349,27,0.37,29,0.704,30,0.001,31,0.506,32,0.124,33,0.434,34,1.54,35,1.086,95,0.155,99,1.508,100,3.036,101,0.015,103,0.001,104,0.001,236,1.992,349,0.934,376,3.936,413,3.772,437,1.169,777,5.365,778,6.244,783,6.722,844,4.973,1203,2.886,1559,4.949,1880,3.738,2193,3.656,2792,7.451,3213,5.758,3654,5.365,3658,6.542,3675,6.44,3711,6.889,4025,9.424,4052,7.907,4060,10.358,4072,8.356,4079,9.424,4085,11.249,4086,11.249,4087,8.356,4088,7.907,4089,7.907,4090,7.571,4091,9.038,4092,9.038,4093,9.038]],["title/injectables/CardService.html",[539,0.901,3532,5.335]],["body/injectables/CardService.html",[0,0.177,3,0.012,4,0.012,5,0.006,7,0.079,8,0.927,10,3.143,12,3.549,26,2.495,27,0.506,29,0.962,30,0.001,31,0.692,32,0.169,33,0.593,34,0.89,35,1.453,36,2.841,47,0.65,49,2.06,55,2.449,59,2.403,83,2.375,95,0.144,99,0.871,101,0.009,103,0,104,0,177,1.686,226,0.747,236,1.768,262,3.03,349,0.951,376,2.275,377,2.371,379,0.967,437,1.406,524,2.98,529,1.478,539,1.024,541,1.251,565,3.101,603,2.286,604,2.123,608,2.939,685,3.273,1203,3.471,1850,8.568,1882,2.18,2193,2.113,2425,2.827,2619,2.783,2630,6.179,2732,3.588,2792,7.894,3087,3.886,3088,7.958,3207,5.896,3213,6.925,3274,6.48,3304,5.683,3365,8.761,3368,5.313,3374,7.762,3378,4.376,3532,6.06,4027,4.57,4089,4.57,4090,4.376,4094,5.224,4095,7.735,4096,7.735,4097,6.767,4098,5.224,4099,6.767,4100,10.349,4101,6.226,4102,5.224,4103,7.735,4104,5.224,4105,7.735,4106,5.224,4107,7.735,4108,5.224,4109,6.06,4110,7.735,4111,5.224,4112,7.735,4113,9.414,4114,5.224,4115,7.735,4116,5.224,4117,7.735,4118,5.224,4119,4.221,4120,5.224,4121,5.224,4122,5.224,4123,5.224,4124,5.224,4125,4.83,4126,3.422,4127,4.83,4128,5.224,4129,5.224,4130,5.224,4131,5.224,4132,7.735,4133,7.735,4134,7.735,4135,5.224]],["title/classes/CardSkeletonResponse.html",[0,0.231,4136,5.705]],["body/classes/CardSkeletonResponse.html",[0,0.292,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,27,0.49,29,0.669,30,0.001,31,0.481,32,0.164,33,0.412,47,0.769,55,2.345,72,4.947,95,0.109,101,0.014,103,0.001,104,0.001,112,0.865,138,1.982,150,1.958,153,1.953,245,3.138,253,4.208,379,1.363,480,3.026,749,7.139,769,4.349,816,3.943,2398,8.308,2792,6.159,2855,5.629,2856,5.805,2857,5.805,3213,8.59,3390,7.486,4068,7.199,4109,10.176,4136,10.882,4137,12.587,4138,8.594,4139,8.594,4140,8.594,4141,10.899,4142,9.535,4143,10.899,4144,9.535,4145,7.139,4146,10.899,4147,10.077,4148,10.077,4149,8.594,4150,8.594]],["title/injectables/CardUc.html",[539,0.901,2691,5.335]],["body/injectables/CardUc.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.06,8,0.745,26,2.985,27,0.487,29,0.941,30,0.001,31,0.665,32,0.175,33,0.57,35,1.399,36,2.698,39,3.469,47,0.545,55,2.506,59,1.932,95,0.129,99,0.655,101,0.006,103,0,104,0,131,2.329,177,1.75,180,1.114,226,0.562,239,0.901,262,2.958,349,0.987,379,0.778,382,2.328,437,1.606,448,4.526,479,3.58,539,0.823,541,0.94,556,0.99,560,1.617,603,2.042,608,3.047,639,1.844,844,2.162,1203,3.052,1274,1.243,1503,2.503,1559,1.728,1609,7.096,1610,2.411,1624,6.982,1625,2.573,1695,5.628,1764,2.612,1793,2.383,1795,3.078,1799,4.43,1850,6.381,1855,6.872,1861,3.175,1880,3.628,2250,3.162,2251,3.96,2295,2.857,2300,3.078,2450,5.056,2451,7.749,2453,4.871,2454,4.871,2455,2.857,2456,7.583,2458,2.922,2459,4.522,2460,4.43,2462,3.078,2463,5.153,2465,3.078,2466,6.251,2469,1.783,2470,5.612,2482,7.561,2691,4.871,2792,6.58,3095,2.922,3207,4.739,3213,6.09,3374,7.286,3532,8.342,3681,7.349,3795,3.175,3796,3.175,3797,3.175,3800,3.175,3801,3.175,3803,7.394,3980,3.772,3986,7.133,3988,3.437,3989,7.133,3990,7.133,4027,7.675,4050,7.749,4101,4.637,4109,9.935,4151,3.928,4152,6.217,4153,7.715,4154,6.463,4155,6.75,4156,3.928,4157,3.632,4158,3.928,4159,6.217,4160,3.928,4161,6.217,4162,7.715,4163,3.928,4164,6.217,4165,3.928,4166,3.928,4167,8.772,4168,3.928,4169,6.217,4170,3.928,4171,6.217,4172,3.928,4173,3.928,4174,3.928,4175,6.217,4176,3.928,4177,8.111,4178,3.928,4179,3.928,4180,3.928,4181,3.928,4182,6.217,4183,3.632,4184,7.133,4185,3.928,4186,3.928,4187,3.928,4188,3.928,4189,3.928,4190,3.928]],["title/classes/CardUrlParams.html",[0,0.231,3991,5.958]],["body/classes/CardUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,2792,6.684,3814,5.762,3991,10.348,4109,9.949,4191,9.809,4192,9.809]],["title/classes/ChallengeParams.html",[0,0.231,4193,5.958]],["body/classes/ChallengeParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,128,4.75,135,6.546,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,248,4.922,257,7.26,4193,10.317,4194,9.761,4195,9.603,4196,9.761]],["title/classes/ChangeLanguageParams.html",[0,0.231,4197,5.705]],["body/classes/ChangeLanguageParams.html",[0,0.405,2,1.112,3,0.023,4,0.023,5,0.012,7,0.151,27,0.407,30,0.001,32,0.136,95,0.162,99,1.656,101,0.016,103,0.001,104,0.001,112,0.946,138,1.806,148,3.151,150,2.262,245,3.124,834,3.113,847,4.743,2859,6.095,4197,9.982,4198,9.93,4199,8.926,4200,10.092,4201,9.93,4202,9.93,4203,9.93]],["title/classes/Class.html",[0,0.317]],["body/classes/Class.html",[0,0.376,2,0.7,3,0.015,4,0.028,5,0.007,7,0.095,8,1.056,26,2.803,27,0.562,29,0.487,30,0.001,31,0.654,32,0.12,33,0.3,35,1.058,39,2.37,47,0.934,55,1.896,62,6.504,83,3.399,95,0.129,101,0.015,103,0,104,0,105,0.675,112,0.7,133,2.187,180,1.828,349,1.391,376,4.822,377,5.025,381,2.959,382,2.658,448,3.611,479,3.3,519,1.938,556,3.199,662,3.67,686,4.159,1597,5.123,1601,4.938,1604,6.587,1684,3.886,2439,3.063,2733,4.159,2751,4.159,2754,5.473,2756,5.473,2759,4.901,2760,4.901,4204,5.784,4205,8.146,4206,3.756,4207,7.741,4208,8.44,4209,8.053,4210,8.44,4211,6.963,4212,8.44,4213,8.44,4214,8.146,4215,6.256,4216,4.768,4217,6.256,4218,3.934,4219,6.256,4220,6.256,4221,6.256,4222,5.24,4223,6.256,4224,6.256,4225,6.256,4226,6.256,4227,6.256,4228,6.256,4229,6.256,4230,6.256,4231,6.256,4232,6.256,4233,6.256,4234,6.256,4235,6.256,4236,6.256,4237,6.256,4238,6.256,4239,6.256,4240,7.775,4241,5.24,4242,5.24,4243,5.24,4244,5.784,4245,8.146,4246,5.784,4247,5.784,4248,5.784,4249,5.784,4250,5.784,4251,5.784,4252,5.784,4253,5.784,4254,5.784,4255,5.784]],["title/entities/ClassEntity.html",[154,1.456,4256,4.953]],["body/entities/ClassEntity.html",[0,0.267,2,0.598,3,0.012,4,0.027,5,0.006,7,0.18,26,1.666,27,0.525,30,0.001,31,0.577,32,0.175,33,0.643,34,0.91,47,0.915,49,5.284,55,2.008,62,6.046,95,0.139,96,2.16,97,2.315,99,0.891,101,0.013,103,0,104,0,105,0.576,112,0.741,133,2.75,138,2.33,143,2.983,144,4.093,154,1.681,155,1.783,160,6.766,170,6.16,172,4.139,173,1.58,174,3.127,178,2.219,180,0.957,181,1.43,182,1.738,236,0.869,404,2.18,405,4.327,480,1.483,529,1.511,556,3.183,603,1.073,708,2.219,1982,2.125,4206,3.491,4207,7.196,4208,7.846,4209,7.98,4210,7.846,4211,6.9,4212,7.846,4213,7.846,4256,5.72,4257,4.939,4258,5.342,4259,5.342,4260,5.342,4261,5.342,4262,5.342,4263,6.588,4264,5.342,4265,8.595,4266,3.807,4267,5.342,4268,5.342,4269,5.342,4270,5.342,4271,5.342,4272,4.291,4273,3.241,4274,4.939,4275,7.818,4276,4.475,4277,9.516,4278,6.588,4279,4.939,4280,4.939,4281,4.475,4282,2.338,4283,3.171,4284,3.973,4285,7.27,4286,4.185,4287,4.939,4288,4.939,4289,7.27,4290,4.939,4291,7.27,4292,4.939,4293,4.939,4294,6.16,4295,3.973,4296,7.27,4297,4.939,4298,5.994,4299,3.886,4300,7.27,4301,4.939]],["title/classes/ClassEntityFactory.html",[0,0.231,4302,6.296]],["body/classes/ClassEntityFactory.html",[0,0.162,2,0.535,3,0.011,4,0.02,5,0.006,7,0.073,8,0.868,27,0.53,29,1.016,30,0.001,31,0.718,32,0.181,33,0.599,34,1.66,35,1.449,47,0.511,49,4.757,55,2.462,59,3.253,62,5.133,95,0.124,101,0.008,103,0,104,0,112,0.575,120,3.185,133,2.532,140,2.678,153,1.986,154,2.237,155,2.416,177,1.325,180,1.298,236,1.861,271,4.887,319,3.269,349,0.748,379,0.598,382,3.865,413,2.23,437,0.937,447,7.24,448,4.514,449,5.506,452,4.092,453,5.506,454,5.727,455,4.092,456,4.092,457,4.092,458,4.019,459,4.484,460,4.937,461,7.05,462,5.811,463,7.065,464,2.728,469,2.703,470,4.092,471,2.728,472,5.15,473,5.317,474,4.162,475,5.001,476,4.055,477,2.703,478,2.548,479,4.126,480,3.271,481,2.632,482,2.589,483,2.703,484,5.073,485,2.728,486,3.544,487,4.85,488,2.703,489,7.156,490,4.177,491,6.657,492,2.728,493,4.334,494,2.703,495,2.728,496,2.703,497,2.728,498,2.703,499,3.047,500,2.839,501,2.703,502,6.113,503,2.728,504,2.703,505,4.092,506,3.827,507,4.092,508,2.728,509,2.61,510,2.589,511,2.137,512,2.703,513,2.703,514,2.703,515,2.728,516,2.728,517,1.834,518,2.703,519,1.482,520,2.728,521,2.868,522,2.703,523,2.728,524,2.728,525,2.781,527,2.87,1669,2.49,2170,2.678,4206,1.623,4207,3.344,4208,3.646,4209,3.479,4210,3.646,4211,3.008,4212,3.646,4213,3.646,4256,3.479,4265,5.673,4275,4.007,4302,8.078,4303,4.783,4304,6.695,4305,6.695,4306,4.783,4307,4.007,4308,4.783,4309,4.783,4310,3.408,4311,3.646]],["title/classes/ClassFactory.html",[0,0.231,4312,6.296]],["body/classes/ClassFactory.html",[0,0.294,2,0.529,3,0.011,4,0.023,5,0.006,7,0.072,8,0.86,27,0.529,29,1.014,30,0.001,31,0.716,32,0.181,33,0.598,34,1.649,35,1.444,47,0.735,49,1.862,55,2.451,59,3.234,62,5.092,83,2.201,95,0.132,96,1.297,97,2.046,101,0.008,103,0,104,0,112,0.569,120,3.154,133,2.507,140,2.644,153,1.97,154,1.853,155,2.393,177,1.312,180,1.285,236,2.026,271,4.872,319,3.237,349,0.741,376,2.056,377,2.143,379,0.59,382,3.855,413,2.208,437,0.927,447,7.031,448,4.492,449,5.47,452,4.052,453,5.47,454,5.572,455,4.052,456,4.052,457,4.052,458,3.98,459,4.448,460,4.898,461,7.031,462,5.777,463,6.986,464,2.693,469,2.668,470,4.052,471,2.693,472,5.116,473,5.282,474,4.135,475,4.967,476,4.015,477,2.668,478,2.515,479,4.105,480,3.258,481,2.598,482,2.555,483,2.668,484,5.04,485,2.693,486,3.53,487,4.811,488,2.668,489,7.135,490,4.161,491,6.631,492,2.693,493,3.556,494,2.668,495,2.693,496,2.668,497,2.693,498,2.668,501,2.668,502,6.083,503,2.693,504,2.668,505,4.052,506,3.79,507,4.052,508,2.693,509,2.576,510,2.555,511,2.109,512,2.668,513,2.668,514,2.668,515,2.693,516,2.693,517,1.81,518,2.668,519,1.463,520,2.693,521,2.84,522,2.668,523,2.693,525,2.746,527,2.833,2170,2.644,3494,4.365,4126,7.686,4206,1.602,4207,3.301,4208,3.599,4209,3.434,4210,3.599,4211,2.969,4212,3.599,4213,3.599,4240,5.465,4241,3.955,4242,3.955,4304,6.629,4305,6.629,4310,3.364,4311,3.599,4312,8.014,4313,4.721,4314,6.177,4315,4.721,4316,3.434,4317,4.721,4318,4.721]],["title/classes/ClassFilterParams.html",[0,0.231,4319,5.958]],["body/classes/ClassFilterParams.html",[0,0.398,2,1.08,3,0.023,4,0.023,5,0.011,7,0.146,27,0.395,30,0.001,32,0.179,33,0.562,95,0.16,101,0.016,103,0.001,104,0.001,105,1.041,112,0.93,138,1.754,148,3.06,149,4.454,150,2.197,249,4.736,834,3.024,847,4.607,2860,5.769,4319,10.242,4320,10.824,4321,7.103,4322,8.079,4323,13.819,4324,9.644,4325,9.644,4326,9.644]],["title/classes/ClassInfoDto.html",[0,0.231,4327,5.503]],["body/classes/ClassInfoDto.html",[0,0.352,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.556,29,0.619,30,0.001,31,0.685,32,0.191,33,0.635,34,1.965,47,0.967,55,2.231,95,0.101,101,0.013,103,0.001,104,0.001,112,0.823,119,2.11,181,2.774,379,0.994,381,2.67,404,3.244,405,4.374,1982,3.161,2364,5.459,2504,3.551,4282,3.479,4327,10.245,4328,13.697,4329,7.349,4330,9.663,4331,9.663,4332,7.669,4333,9.663,4334,10.664,4335,10.365,4336,7.949,4337,7.949,4338,7.949,4339,7.949,4340,7.949,4341,7.949,4342,10.091,4343,7.949,4344,4.769,4345,7.349,4346,7.349,4347,7.949,4348,7.949,4349,6.059,4350,6.227,4351,7.349,4352,7.349,4353,7.349,4354,7.349]],["title/classes/ClassInfoResponse.html",[0,0.231,4355,5.705]],["body/classes/ClassInfoResponse.html",[0,0.247,2,0.816,3,0.017,4,0.017,5,0.009,7,0.11,27,0.547,29,0.567,30,0.001,31,0.662,32,0.189,33,0.622,34,1.882,47,0.96,55,2.106,95,0.124,101,0.012,103,0.001,104,0.001,112,0.777,119,1.992,138,2.396,149,4.93,150,1.66,181,2.619,245,3.499,379,0.911,381,2.447,404,2.973,405,4.01,556,1.835,814,3.662,834,2.284,1982,2.898,2100,5.708,2364,5.004,2504,3.255,2859,4.472,4282,3.189,4330,9.256,4331,9.256,4332,7.346,4333,9.256,4342,10.779,4344,4.372,4345,6.737,4346,6.737,4349,5.554,4350,5.708,4351,6.737,4352,6.737,4353,6.737,4354,6.737,4355,10.322,4356,12.468,4357,7.039,4358,9.786,4359,7.287,4360,7.287,4361,6.737,4362,7.287,4363,7.287,4364,6.375,4365,7.287,4366,7.287,4367,7.287,4368,7.287]],["title/classes/ClassInfoSearchListResponse.html",[0,0.231,4369,5.705]],["body/classes/ClassInfoSearchListResponse.html",[0,0.348,2,0.876,3,0.027,4,0.018,5,0.009,7,0.119,27,0.517,29,0.609,30,0.001,31,0.438,32,0.185,33,0.605,55,3.023,56,6.259,59,3.188,70,6.463,95,0.145,101,0.013,103,0.001,104,0.001,112,0.815,138,2.21,150,1.783,180,1.839,245,2.69,247,3.425,284,3.896,379,0.979,382,3.666,556,1.971,808,7.311,809,5.471,810,8.096,811,7.006,812,5.852,813,7.235,814,3.933,815,7.235,816,5.253,817,3.761,818,4.382,819,2.746,820,5.471,821,6.626,822,5.908,823,5.126,824,4.168,825,5.471,826,5.471,828,4.921,829,4.343,4355,11.051,4356,9.486,4369,8.595,4370,6.555]],["title/classes/ClassMapper.html",[0,0.231,4371,5.958]],["body/classes/ClassMapper.html",[0,0.463,2,0.763,3,0.016,4,0.027,5,0.008,7,0.103,8,1.121,27,0.471,29,0.895,30,0.001,31,0.697,32,0.157,33,0.551,34,1.593,35,1.38,49,2.689,62,5.494,95,0.146,96,1.873,97,2.955,101,0.011,103,0.001,104,0.001,154,1.999,155,2.275,236,2.11,349,1.187,376,2.969,377,3.094,413,4.174,556,2.894,603,2.145,724,5.071,1601,2.885,1715,2.871,2261,4.466,2297,5.197,2302,4.766,4206,3.173,4207,6.539,4208,7.13,4209,6.803,4210,7.13,4211,5.882,4212,7.13,4213,7.13,4240,7.13,4241,5.711,4256,9.86,4311,5.197,4371,8.183,4372,6.817,4373,9.353,4374,9.353,4375,9.353,4376,9.353,4377,9.353,4378,6.817,4379,9.353,4380,6.817,4381,9.353,4382,6.817,4383,9.353,4384,6.817,4385,6.817,4386,4.343,4387,5.341,4388,6.817,4389,6.817,4390,6.817,4391,6.817,4392,6.817,4393,6.817,4394,6.817,4395,6.817,4396,5.964,4397,6.817,4398,6.817,4399,6.817,4400,5.711,4401,5.711,4402,5.964,4403,6.817,4404,6.817,4405,6.817,4406,6.817,4407,6.817,4408,6.817,4409,6.817,4410,6.817,4411,6.303,4412,6.817,4413,6.817,4414,6.817,4415,6.817,4416,6.817,4417,6.303,4418,6.817]],["title/modules/ClassModule.html",[201,1.804,4419,5.705]],["body/modules/ClassModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.158,101,0.015,103,0.001,104,0.001,201,3.301,203,3.38,204,3.631,205,3.737,206,3.722,207,3.706,208,4.565,209,4.686,218,4.583,219,3.661,220,3.575,226,1.343,560,3.869,2425,5.085,4419,11.716,4420,9.397,4421,9.397,4422,9.397,4423,12.424,4424,11.369,4425,9.397]],["title/interfaces/ClassProps.html",[105,0.735,4242,5.705]],["body/interfaces/ClassProps.html",[0,0.347,3,0.015,4,0.029,5,0.007,7,0.095,26,2.962,30,0.001,31,0.655,32,0.184,33,0.658,39,1.691,47,0.973,55,2.387,62,6.868,83,3.905,95,0.13,101,0.015,103,0,104,0,105,0.678,107,1.508,112,0.702,133,2.198,180,1.832,349,1.392,376,5.092,377,5.306,556,3.203,662,1.976,1597,5.946,1601,3.74,1684,3.904,2439,3.077,2759,4.924,2760,4.924,4204,5.811,4206,3.966,4207,8.174,4208,8.912,4209,8.504,4210,8.912,4211,7.353,4212,8.912,4213,8.912,4214,5.811,4240,8.912,4241,5.265,4242,7.405,4243,5.265,4244,5.811,4245,8.173,4246,5.811,4247,5.811,4248,5.811,4249,5.811,4250,5.811,4251,5.811,4252,5.811,4253,5.811,4254,5.811,4255,5.811]],["title/injectables/ClassService.html",[539,0.901,4423,5.958]],["body/injectables/ClassService.html",[0,0.42,2,1.33,3,0.017,4,0.017,5,0.009,7,0.112,8,1.185,26,2.864,27,0.487,29,0.925,30,0.001,31,0.666,32,0.162,33,0.57,34,1.259,35,1.337,36,2.711,39,2.994,95,0.151,99,1.233,101,0.012,103,0.001,104,0.001,177,1.353,226,1.057,236,1.203,262,2.933,345,2.353,349,1.227,379,0.925,437,1.537,529,2.092,539,1.308,541,1.77,556,1.862,591,4.178,608,2.739,662,4.209,931,4.711,1158,3.532,1601,3.129,1715,3.114,2261,4.843,2425,4.001,4206,2.508,4417,6.836,4423,8.645,4424,10.673,4426,7.394,4427,9.882,4428,7.741,4429,8.645,4430,7.394,4431,7.394,4432,9.882,4433,7.394,4434,7.985,4435,7.394,4436,8.645,4437,7.394,4438,7.394,4439,9.882,4440,5.378,4441,6.194,4442,6.836,4443,7.394,4444,7.394,4445,7.394,4446,7.394,4447,7.394]],["title/classes/ClassSortParams.html",[0,0.231,4448,5.958]],["body/classes/ClassSortParams.html",[0,0.385,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,27,0.465,30,0.001,32,0.155,33,0.544,95,0.163,101,0.015,103,0.001,104,0.001,105,0.989,112,0.901,138,2.063,148,2.907,149,4.316,150,2.087,180,2.033,247,4.01,249,4.589,382,3.423,480,2.544,486,2.756,834,2.872,847,4.376,2987,9.394,4320,8.47,4322,7.675,4448,9.925,4449,7.403,4450,10.697,4451,8.206,4452,13.237,4453,9.161,4454,9.161,4455,6.292,4456,7.675,4457,8.015,4458,9.161]],["title/classes/ClassSourceOptions.html",[0,0.231,4240,5.191]],["body/classes/ClassSourceOptions.html",[0,0.316,2,1.042,3,0.022,4,0.031,5,0.011,7,0.141,27,0.508,29,0.725,30,0.001,31,0.521,32,0.157,33,0.447,47,0.809,101,0.019,103,0.001,104,0.001,105,1.005,112,0.91,181,3.066,349,0.962,379,1.164,381,4.467,448,5.088,556,2.345,686,5.409,1602,7.799,4240,8.734,4311,9.873,4459,11.975,4460,8.607,4461,11.846,4462,11.458,4463,9.31,4464,9.31,4465,8.607]],["title/classes/ClassSourceOptionsEntity.html",[0,0.231,4265,5.335]],["body/classes/ClassSourceOptionsEntity.html",[0,0.314,2,1.035,3,0.022,4,0.03,5,0.011,7,0.14,27,0.467,29,0.72,30,0.001,31,0.518,32,0.156,33,0.594,47,0.873,95,0.117,96,2.54,101,0.019,103,0.001,104,0.001,105,0.998,112,0.906,138,1.682,143,2.54,144,3.046,160,5.273,172,3.643,173,2.734,181,3.053,379,1.156,381,3.105,556,2.329,2500,5.897,4265,8.938,4311,9.849,4466,11.44,4467,8.548,4468,11.304,4469,11.409,4470,10.548,4471,8.548]],["title/interfaces/ClassSourceOptionsEntityProps.html",[105,0.735,4468,5.958]],["body/interfaces/ClassSourceOptionsEntityProps.html",[0,0.329,3,0.023,4,0.027,5,0.012,7,0.147,30,0.001,32,0.132,33,0.563,47,0.927,95,0.123,96,2.662,101,0.019,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,143,2.158,144,3.193,172,3.749,173,2.866,181,2.594,556,2.441,2500,6.069,4265,7.592,4311,10.252,4466,8.96,4467,8.96,4468,11.052,4470,10.856,4471,8.96]],["title/interfaces/ClassSourceOptionsProps.html",[105,0.735,4461,5.958]],["body/interfaces/ClassSourceOptionsProps.html",[0,0.336,3,0.023,4,0.028,5,0.012,7,0.15,30,0.001,32,0.135,33,0.57,47,0.933,101,0.02,103,0.001,104,0.001,105,1.066,107,2.371,112,0.943,181,2.645,349,1.021,381,3.99,448,4.05,556,2.489,1602,8.278,4240,7.532,4311,10.307,4459,9.136,4460,9.136,4461,11.563,4465,9.136]],["title/injectables/ClassesRepo.html",[539,0.901,4424,5.705]],["body/injectables/ClassesRepo.html",[0,0.455,2,1.183,3,0.016,4,0.016,5,0.008,7,0.101,8,1.106,26,2.684,27,0.467,29,0.887,30,0.001,31,0.638,32,0.156,33,0.547,34,1.571,35,1.269,36,2.63,39,1.797,47,0.472,49,2.635,62,3.925,95,0.161,96,1.836,97,2.896,99,1.115,101,0.011,103,0.001,104,0.001,154,1.428,177,1.223,226,0.955,236,1.945,262,2.871,345,2.127,349,0.953,379,0.836,437,1.67,529,1.89,539,1.221,541,1.599,556,1.683,608,2.626,631,3.429,724,6.861,1715,2.814,2249,6.56,2585,5.12,3279,4.671,3284,5.597,4206,3.129,4207,4.671,4256,8.696,4371,5.845,4386,4.257,4424,7.728,4428,7.227,4434,7.454,4472,6.682,4473,9.225,4474,9.225,4475,6.682,4476,9.225,4477,6.682,4478,6.682,4479,9.225,4480,6.682,4481,4.513,4482,4.671,4483,3.966,4484,10.565,4485,6.177,4486,6.692,4487,9.225,4488,6.682,4489,6.682,4490,6.177,4491,6.177,4492,6.682,4493,6.682,4494,6.682,4495,6.682,4496,6.682,4497,6.682,4498,6.682,4499,6.682,4500,6.682,4501,6.682,4502,9.225,4503,6.682,4504,6.682,4505,6.682]],["title/injectables/CloseUserLoginMigrationUc.html",[539,0.901,4506,5.705]],["body/injectables/CloseUserLoginMigrationUc.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.101,8,1.101,26,2.679,27,0.431,29,0.82,30,0.001,31,0.59,32,0.144,33,0.505,35,1.103,36,1.954,39,1.786,47,0.468,95,0.151,99,1.107,101,0.011,103,0.001,104,0.001,119,2.312,128,5.192,177,2.08,236,1.494,239,2.902,262,2.307,349,1.173,379,1.148,437,1.543,529,2.598,539,1.215,541,1.589,556,1.672,560,2.733,593,2.458,603,2.54,608,2.844,643,2.95,986,2.244,1609,5.053,1610,4.074,1624,4.559,1695,6.684,1793,4.027,2469,3.013,2473,4.64,4206,4.046,4506,7.693,4507,5.075,4508,11.361,4509,5.364,4510,8.033,4511,11.361,4512,5.364,4513,8.791,4514,9.406,4515,10.22,4516,6.137,4517,9.183,4518,6.637,4519,9.183,4520,7.967,4521,6.637,4522,7.408,4523,4.937,4524,7.194,4525,5.06,4526,5.2,4527,5.56,4528,6.137,4529,8.248,4530,6.637,4531,5.56,4532,4.937,4533,8.033,4534,6.637,4535,8.033,4536,6.137,4537,6.137,4538,6.137,4539,5.06,4540,5.56]],["title/injectables/CollaborativeStorageAdapter.html",[539,0.901,4541,5.705]],["body/injectables/CollaborativeStorageAdapter.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.946,27,0.487,29,0.895,30,0.001,31,0.644,32,0.162,33,0.552,34,1.345,35,1.321,36,2.594,47,0.661,72,3.583,95,0.151,100,4.095,101,0.009,103,0,104,0,112,0.627,153,2.613,226,0.768,273,6.018,274,6.898,276,5.29,284,2.438,301,5.249,333,5.028,349,1.066,379,0.987,517,3.956,519,1.664,539,1.045,541,1.286,564,2.424,603,1.586,631,4.804,639,2.52,1274,1.699,1660,6.254,2143,5.625,2250,3.837,2251,4.659,2896,4.737,3538,6.131,3908,5.422,4541,6.613,4542,8.235,4543,10.666,4544,5.371,4545,5.742,4546,8.339,4547,10.213,4548,6.906,4549,6.379,4550,8.997,4551,6.906,4552,6.379,4553,6.379,4554,7.894,4555,6.379,4556,6.379,4557,5.371,4558,10.055,4559,8.645,4560,7.894,4561,6.379,4562,9.015,4563,5.371,4564,8.561,4565,6.379,4566,5.371,4567,7.894,4568,5.371,4569,6.379,4570,5.371,4571,7.894,4572,7.353,4573,8.084,4574,5.371,4575,5.872,4576,4.698,4577,4.207,4578,4.499,4579,6.613,4580,5.371,4581,4.698,4582,4.965,4583,4.094,4584,5.371,4585,5.371,4586,7.894,4587,5.371,4588,5.371,4589,5.371,4590,5.371]],["title/injectables/CollaborativeStorageAdapterMapper.html",[539,0.901,4559,5.705]],["body/injectables/CollaborativeStorageAdapterMapper.html",[0,0.269,3,0.019,4,0.019,5,0.009,7,0.12,8,1.241,27,0.325,29,0.618,30,0.001,31,0.444,32,0.108,33,0.381,35,0.953,95,0.161,100,4.599,101,0.013,103,0.001,104,0.001,153,1.803,226,1.134,236,1.29,276,5.627,333,4.876,349,1.069,539,1.37,541,1.899,662,3.624,1660,6.652,1715,4.36,3538,5.101,3908,5.449,4486,6.081,4542,6.992,4546,9.87,4549,8.365,4559,8.672,4562,8.704,4564,7.587,4572,8.704,4573,9.569,4575,7.7,4576,6.94,4577,8.11,4578,6.646,4581,9.057,4583,6.047,4591,7.933,4592,10.352,4593,10.352,4594,7.933,4595,8.365,4596,8.365,4597,9.87,4598,6.411,4599,6.94,4600,6.94,4601,6.94,4602,4.329,4603,5.653,4604,7.933,4605,7.933,4606,7.933,4607,7.933,4608,7.933]],["title/modules/CollaborativeStorageAdapterModule.html",[201,1.804,4609,5.705]],["body/modules/CollaborativeStorageAdapterModule.html",[0,0.242,3,0.017,4,0.017,5,0.008,30,0.001,47,0.502,95,0.173,101,0.012,103,0.001,104,0.001,201,2.892,203,2.56,204,2.751,205,2.831,206,2.819,207,2.808,208,3.999,209,4.106,214,5.847,218,3.831,219,2.773,220,2.708,225,3.799,226,1.018,437,0.921,636,5.602,959,4.099,1112,5.073,1274,2.252,1765,9.372,1766,5.964,2017,3.116,2018,3.486,2019,3.361,3531,7.827,3538,4.747,3541,3.603,3878,3.986,3936,6.405,4541,11.436,4542,4.808,4543,6.228,4547,5.964,4558,5.753,4559,10.556,4579,9.147,4581,6.228,4582,6.582,4609,11.911,4610,7.119,4611,7.119,4612,7.119,4613,7.119,4614,9.372,4615,9.165,4616,11.65,4617,11.271,4618,7.119,4619,4.979,4620,7.119,4621,7.119,4622,6.582,4623,5.577,4624,7.119,4625,9.633,4626,7.119,4627,7.119,4628,7.119]],["title/controllers/CollaborativeStorageController.html",[259,2.591,4629,5.958]],["body/controllers/CollaborativeStorageController.html",[0,0.359,3,0.016,4,0.016,5,0.008,7,0.101,8,1.107,27,0.274,29,0.521,30,0.001,31,0.375,32,0.091,33,0.321,35,0.804,36,1.965,95,0.161,101,0.011,103,0.001,104,0.001,138,1.217,141,3.197,150,1.525,153,3.016,177,1.225,223,2.755,226,0.957,236,1.502,239,2.616,259,2.546,261,3.178,270,5.582,276,5.258,278,6.343,282,5.736,287,6.05,290,6.717,292,4.674,294,6.012,301,7.581,305,5.318,316,4.958,324,4.674,333,5.062,334,4.322,336,7.43,337,3.459,338,3.537,343,3.565,345,2.13,347,4.176,349,0.691,564,3.501,603,1.344,643,2.974,986,3.122,989,5.126,1274,2.117,1660,5.73,2250,2.743,2251,4.169,2345,7.463,2901,3.593,3538,6.095,4547,10.021,4556,8.545,4564,8.022,4598,7.463,4629,8.08,4630,6.457,4631,9.235,4632,6.693,4633,7.737,4634,6.693,4635,11.06,4636,9.551,4637,11.962,4638,9.213,4639,6.693,4640,6.693,4641,7.463,4642,9.235,4643,6.693,4644,7.04,4645,6.693,4646,6.693,4647,9.235,4648,6.343,4649,8.08,4650,7.737,4651,6.188,4652,6.188,4653,5.855,4654,6.188,4655,6.693,4656,6.693,4657,6.693,4658,6.693,4659,6.693,4660,6.693]],["title/modules/CollaborativeStorageModule.html",[201,1.804,4661,5.503]],["body/modules/CollaborativeStorageModule.html",[0,0.252,3,0.017,4,0.017,5,0.009,30,0.001,95,0.173,101,0.012,103,0.001,104,0.001,201,2.951,203,2.664,204,2.863,205,2.946,206,2.934,207,2.921,208,4.08,209,4.189,214,5.914,218,3.935,219,2.886,220,2.818,223,4.073,225,3.902,226,1.059,227,3.05,1274,2.343,1355,9.481,1689,6.956,1747,8.755,2469,3.362,3538,3.65,4543,8.656,4575,8.286,4579,6.205,4609,10.678,4629,9.746,4630,5.179,4650,11.508,4651,6.848,4652,6.848,4661,11.529,4662,7.407,4663,7.407,4664,7.407,4665,7.407,4666,10.678,4667,10.678,4668,10.678,4669,6.848,4670,7.407,4671,6.48,4672,6.848,4673,7.407,4674,6.48,4675,6.205,4676,6.848,4677,7.407,4678,7.407]],["title/injectables/CollaborativeStorageService.html",[539,0.901,4666,5.705]],["body/injectables/CollaborativeStorageService.html",[0,0.184,3,0.013,4,0.013,5,0.006,7,0.082,8,0.952,26,2.194,27,0.472,29,0.898,30,0.001,31,0.646,32,0.158,33,0.553,34,1.353,35,1.325,36,2.697,47,0.917,95,0.161,99,0.903,100,3.479,101,0.009,103,0,104,0,143,1.768,145,2.205,153,1.805,154,1.697,226,0.774,227,2.229,236,1.292,239,1.822,262,2.526,276,3.376,333,4.879,349,1.262,379,0.993,480,1.503,486,1.629,539,1.051,541,1.296,603,2.316,608,2.388,643,2.406,1274,1.713,1612,3.285,1660,5.207,1695,5.475,1747,8.183,1757,5.28,2250,3.855,2251,4.677,2469,2.457,3060,3.459,3538,2.668,3908,8.825,4486,4.665,4541,8.678,4546,6.417,4552,6.417,4553,6.417,4555,6.417,4556,7.6,4561,6.417,4562,8.489,4564,7.161,4565,6.417,4569,6.417,4573,8.115,4577,4.241,4579,4.535,4598,4.375,4630,8.329,4648,5.454,4666,6.653,4667,8.678,4674,10.423,4679,5.414,4680,7.941,4681,5.414,4682,9.081,4683,9.405,4684,8.228,4685,5.414,4686,5.414,4687,5.414,4688,7.941,4689,7.921,4690,5.414,4691,4.165,4692,6.653,4693,5.454,4694,5.414,4695,5.414,4696,8.575,4697,10.199,4698,5.414,4699,6.221,4700,6.653,4701,6.352,4702,7.342,4703,7.342,4704,4.535,4705,5.414,4706,5.414,4707,5.414,4708,5.414,4709,7.941,4710,5.414,4711,5.414,4712,5.414,4713,5.414,4714,5.414,4715,5.414,4716,5.414,4717,5.414,4718,5.414]],["title/injectables/CollaborativeStorageUc.html",[539,0.901,4650,5.705]],["body/injectables/CollaborativeStorageUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,8,1.102,27,0.489,29,0.929,30,0.001,31,0.668,32,0.163,33,0.573,35,1.366,36,2.744,47,0.871,95,0.156,101,0.011,103,0.001,104,0.001,153,1.511,177,1.683,226,0.951,236,1.495,239,2.109,262,2.309,276,4.833,333,4.459,349,1.174,379,1.15,539,1.217,541,1.591,560,3.785,603,1.847,1660,5.714,1757,6.112,3908,4.566,4552,7.429,4553,7.429,4555,7.429,4561,7.429,4562,9.016,4564,7.666,4565,7.429,4569,7.429,4575,7.838,4578,5.57,4630,8.629,4635,10.511,4636,9.524,4638,9.187,4648,6.314,4650,7.701,4653,5.816,4654,6.147,4666,9.524,4668,9.524,4671,5.816,4672,6.147,4674,5.816,4675,5.57,4699,7.202,4700,7.701,4701,7.679,4702,8.499,4703,8.499,4719,12.343,4720,6.648,4721,10.538,4722,6.648,4723,10.538,4724,6.648,4725,6.648,4726,6.648,4727,6.648,4728,6.648,4729,11.369,4730,6.648,4731,9.193,4732,8.499,4733,6.648,4734,6.648,4735,6.648,4736,6.648,4737,6.648,4738,6.648,4739,6.648]],["title/classes/Column.html",[0,0.231,2630,3.572]],["body/classes/Column.html",[0,0.221,2,0.729,3,0.015,4,0.015,5,0.008,7,0.099,8,1.086,27,0.54,29,0.979,30,0.001,31,0.705,32,0.178,33,0.604,35,1.541,36,1.927,47,0.836,55,1.949,59,2.022,95,0.132,101,0.017,103,0.001,104,0.001,105,0.702,112,0.719,119,2.121,137,5.697,180,1.867,262,2.283,349,1.076,381,3.043,382,3.87,437,0.842,448,3.713,474,2.78,479,3.393,517,2.495,519,3.669,604,3.68,608,1.5,662,2.848,686,4.276,1150,2.589,1203,3.915,1600,2.447,1601,4.767,1604,6.729,1676,4.134,1882,2.716,2450,6.265,2630,5.909,2724,7.905,2727,6.455,2728,6.455,2729,6.455,2730,6.023,2731,6.455,2733,4.328,2734,5.56,2735,6.618,2737,6.333,2738,5.56,2739,6.487,2741,4.55,2742,4.788,2744,6.553,2745,4.55,2747,6.455,2749,4.55,2751,4.328,2778,5.496,2792,5.119,2815,5.452,3964,6.589,3965,4.734,3966,4.734,3967,5.452,3969,5.694,3975,4.093,3976,6.222,3977,5.099,3980,5.496,4740,6.017,4741,6.017,4742,6.017,4743,6.509,4744,6.509,4745,6.017,4746,6.017,4747,5.694,4748,6.017]],["title/classes/ColumnBoard.html",[0,0.231,1863,4.042]],["body/classes/ColumnBoard.html",[0,0.207,2,0.683,3,0.014,4,0.014,5,0.007,7,0.093,8,1.038,27,0.545,29,0.983,30,0.001,31,0.707,32,0.178,33,0.606,35,1.542,36,1.842,47,0.816,55,1.863,59,1.896,95,0.128,101,0.017,103,0,104,0,105,0.659,112,0.688,119,2.048,131,4.499,137,5.446,180,1.803,262,2.205,349,1.131,381,2.908,382,3.808,437,0.789,448,3.549,474,2.607,479,3.243,517,3.32,519,3.721,604,3.518,608,1.407,662,2.723,686,4.087,1150,2.428,1203,3.835,1600,2.295,1601,4.634,1604,6.499,1676,3.952,1863,6.5,1882,2.547,2450,6.182,2630,4.542,2724,7.79,2727,6.17,2728,6.17,2729,6.17,2730,5.757,2731,6.17,2733,4.058,2734,5.314,2735,6.433,2737,6.054,2738,5.314,2739,6.306,2741,4.267,2742,4.577,2744,6.329,2745,4.267,2747,6.17,2749,4.267,2751,4.058,2778,5.253,2817,5.113,3294,8.559,3964,4.44,3965,4.44,3966,4.44,3967,5.113,3969,5.34,3975,3.839,3976,5.947,3977,4.782,3980,5.253,4749,10.691,4750,5.643,4751,6.104,4752,6.104,4753,5.34,4754,6.104,4755,6.104,4756,6.104,4757,6.104,4758,6.104,4759,6.104,4760,8.006,4761,5.643,4762,5.643,4763,5.643,4764,5.113,4765,5.643]],["title/injectables/ColumnBoardCopyService.html",[539,0.901,2944,5.705]],["body/injectables/ColumnBoardCopyService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.129,26,2.274,27,0.386,29,0.733,30,0.001,31,0.528,32,0.158,33,0.452,35,0.827,36,2.004,39,2.534,95,0.162,99,1.149,101,0.011,103,0.001,104,0.001,120,4.144,177,2.212,192,4.388,226,0.985,227,2.836,236,1.532,239,1.58,262,2.352,349,0.711,379,1.178,381,2.313,437,1.563,521,3.73,529,2.665,539,1.247,541,1.649,560,2.836,603,2.427,608,2.786,1158,3.29,1450,4.908,1663,2.914,1741,7.749,1862,4.815,1863,6.372,1864,2.551,1882,5.043,1885,5.25,2278,5.651,2418,5.533,2425,3.727,2931,5.396,2934,8.708,2944,7.891,2963,6.932,2981,4.179,2982,3.857,2988,8.24,3019,6.712,3034,6.368,3036,6.368,3087,5.123,3088,8.723,3193,4.388,3258,10.7,3268,4.908,3269,8.24,3294,6.712,3536,9.667,3541,3.485,4766,9.924,4767,7.503,4768,10.734,4769,6.887,4770,9.419,4771,6.025,4772,6.887,4773,6.368,4774,6.887,4775,6.887,4776,6.887,4777,6.887,4778,3.823,4779,6.368,4780,6.887,4781,6.887,4782,6.887,4783,6.368,4784,6.887,4785,6.368,4786,5.566,4787,6.887,4788,6.887,4789,6.887,4790,6.887,4791,6.887,4792,6.887]],["title/classes/ColumnBoardFactory.html",[0,0.231,4793,6.296]],["body/classes/ColumnBoardFactory.html",[0,0.166,2,0.547,3,0.011,4,0.011,5,0.006,7,0.074,8,0.882,27,0.532,29,1.012,30,0.001,31,0.693,32,0.183,33,0.593,34,1.8,35,1.458,47,0.519,49,1.928,55,2.48,59,3.283,83,2.26,95,0.125,99,0.815,101,0.012,103,0,104,0,112,0.584,120,3.238,131,2.757,133,2.574,140,2.737,153,2.012,154,2.259,155,2.456,177,1.621,180,1.319,236,1.603,271,4.912,319,3.323,349,0.76,376,2.129,377,2.218,379,0.611,382,3.882,413,2.267,437,0.952,447,7.266,448,4.552,449,5.567,452,4.159,453,5.567,454,5.762,455,4.159,456,4.159,457,4.159,458,4.085,459,4.543,460,5.003,461,6.526,462,5.865,463,7.093,464,2.788,469,2.762,470,4.159,471,2.788,472,5.207,473,5.376,474,4.208,475,5.056,476,4.122,477,2.762,478,2.603,479,4.16,480,3.293,481,2.69,482,2.645,483,2.762,484,5.129,485,2.788,486,3.568,487,4.914,488,2.762,489,6.986,490,4.205,491,6.701,492,2.788,493,4.391,494,2.762,495,2.788,496,2.762,497,2.788,498,2.762,499,3.114,500,2.901,501,2.762,502,6.164,503,2.788,504,2.762,505,4.159,506,3.89,507,4.159,508,2.788,509,2.667,510,2.645,511,2.184,512,2.762,513,2.762,514,2.762,515,2.788,516,2.788,517,1.874,518,2.762,519,1.514,520,2.788,521,2.915,522,2.762,523,2.788,524,2.788,526,2.901,527,2.933,556,1.231,1203,1.561,1862,3.417,1863,2.901,1882,2.04,1885,3.726,2630,2.564,2732,3.357,2976,4.095,4126,4.821,4764,4.095,4793,8.185,4794,7.36,4795,4.888,4796,9.852,4797,4.888,4798,4.888,4799,4.888]],["title/entities/ColumnBoardNode.html",[154,1.456,3139,5.191]],["body/entities/ColumnBoardNode.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,27,0.428,30,0.001,32,0.168,34,1.37,49,4.576,95,0.165,96,2.21,101,0.017,103,0.001,104,0.001,105,0.868,112,0.829,131,4.6,138,1.9,154,2.233,155,2.684,172,3.704,173,2.379,180,1.872,181,2.153,236,1.309,349,1.079,403,4.465,437,1.04,524,4.588,1600,3.025,1601,4.42,1862,8.111,1882,4.841,2450,4.96,2503,4.545,2504,3.594,2608,4.82,2976,6.739,3109,5.479,3120,6.268,3139,7.963,3187,4.937,3245,5.433,3294,8.267,3330,9.375,3332,10.149,3556,6.132,3558,6.411,3579,4.996,4064,5.125,4066,5.125,4800,10.149,4801,7.963,4802,8.044,4803,6.268,4804,8.044,4805,9.658,4806,9.139,4807,9.658,4808,7.437,4809,6.739,4810,7.437,4811,7.437,4812,7.437]],["title/interfaces/ColumnBoardNodeProps.html",[105,0.735,4806,5.958]],["body/interfaces/ColumnBoardNodeProps.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.126,30,0.001,32,0.161,34,1.418,49,4.213,95,0.167,96,2.288,101,0.018,103,0.001,104,0.001,105,0.899,107,1.998,112,0.848,131,4.931,154,2.283,172,3.765,173,2.463,180,2.113,181,2.229,236,1.355,349,1.103,403,4.622,437,1.077,524,4.749,1600,3.131,1601,4.52,1862,7.468,1882,3.475,2450,5.072,2503,4.705,2504,3.72,2608,4.929,2976,6.976,3109,5.603,3120,6.409,3139,6.347,3187,5.111,3245,5.624,3294,9.167,3330,6.729,3332,7.285,3556,6.347,3558,7.238,3579,5.172,4064,5.305,4066,5.305,4800,7.285,4803,4.996,4805,9.876,4806,10.318,4807,9.876,4808,7.699,4809,6.976,4810,7.699,4811,7.699,4812,7.699]],["title/interfaces/ColumnBoardProps.html",[105,0.735,4764,5.705]],["body/interfaces/ColumnBoardProps.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.125,30,0.001,32,0.16,36,1.75,47,0.905,95,0.149,101,0.019,103,0.001,104,0.001,105,0.888,107,1.974,112,0.842,119,1.674,131,4.915,180,2.101,262,1.802,349,1.279,437,1.064,474,3.513,517,4.063,519,2.548,604,4.306,608,1.896,1150,3.271,1203,4.189,1600,3.093,1601,3.48,1676,4.836,1863,6.96,1882,3.432,2450,5.032,2630,5.559,2724,6.43,2734,5.048,2735,6.225,2738,5.048,2739,6.102,2747,5.861,2778,7.114,2817,6.89,3294,9.35,3975,5.173,3976,7.279,3977,6.443,3980,6.43,4749,7.604,4750,7.604,4760,9.798,4761,7.604,4762,7.604,4763,7.604,4764,8.878,4765,7.604]],["title/injectables/ColumnBoardService.html",[539,0.901,1851,5.191]],["body/injectables/ColumnBoardService.html",[0,0.141,3,0.01,4,0.01,5,0.005,7,0.063,8,0.778,10,2.636,12,2.977,26,2.506,27,0.484,29,0.921,30,0.001,31,0.663,32,0.162,33,0.568,34,1.671,35,1.389,36,2.674,47,0.865,49,1.636,83,3.454,95,0.138,99,0.692,101,0.007,103,0,104,0,131,2.993,177,1.463,226,0.593,236,2.102,262,2.946,349,1.123,376,3.937,377,4.102,379,0.811,437,1.705,480,1.151,486,1.952,524,2.365,529,1.173,539,0.859,541,0.993,565,3.851,603,2.089,604,1.685,608,2.506,685,2.745,708,1.723,1150,1.649,1203,3.849,1676,1.893,1851,4.945,1863,7.46,1880,2.683,1882,4.695,2017,1.815,2018,2.031,2019,1.958,2170,2.322,2425,2.244,2450,4.658,2466,2.955,2630,4.192,2732,6.208,2792,4.516,2808,5.952,2820,3.137,2863,3.834,3087,3.085,3088,7.272,3098,5.435,3099,3.834,3100,3.834,3101,5.998,3103,7.388,3104,3.834,3213,2.642,3275,5.998,3293,5.998,3294,8.429,3365,8.085,3461,5.435,3535,8.784,3670,3.628,3878,2.322,4097,5.676,4101,2.192,4119,3.351,4126,5.921,4127,3.834,4481,2.801,4482,2.899,4483,2.462,4766,11.145,4773,3.834,4813,4.147,4814,6.488,4815,6.488,4816,6.488,4817,6.488,4818,4.147,4819,6.488,4820,4.147,4821,6.488,4822,4.147,4823,6.488,4824,4.147,4825,5.998,4826,6.488,4827,4.147,4828,6.488,4829,4.147,4830,6.488,4831,4.147,4832,4.147,4833,6.488,4834,4.147,4835,4.147,4836,6.488,4837,4.147,4838,4.147,4839,4.147,4840,4.147,4841,4.147,4842,6.488,4843,4.147,4844,6.488,4845,4.147,4846,4.147,4847,4.147,4848,4.147,4849,4.147,4850,4.147,4851,4.147,4852,4.147,4853,4.147,4854,4.147,4855,9.038,4856,7.991,4857,4.147,4858,4.147,4859,4.147,4860,4.147,4861,6.488,4862,4.147,4863,4.147,4864,4.147,4865,4.147,4866,4.147,4867,4.147,4868,4.147,4869,4.147,4870,4.147,4871,4.147,4872,4.147,4873,4.147,4874,4.147,4875,6.488,4876,4.147,4877,4.147,4878,6.488,4879,6.488,4880,4.147,4881,4.147,4882,4.147,4883,4.147,4884,4.147,4885,4.147,4886,4.147,4887,4.147,4888,4.147,4889,4.147,4890,4.147,4891,6.488,4892,6.488,4893,4.147,4894,6.488,4895,6.488,4896,4.147,4897,4.147,4898,4.147,4899,6.488,4900,4.147,4901,2.848,4902,3.249,4903,4.147,4904,4.147,4905,4.147,4906,4.147,4907,3.834]],["title/entities/ColumnBoardTarget.html",[154,1.456,2631,4.853]],["body/entities/ColumnBoardTarget.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,26,2.423,27,0.468,30,0.001,32,0.156,47,0.807,49,4.51,95,0.16,96,2.145,101,0.017,103,0.001,104,0.001,112,0.814,138,2.08,143,1.739,145,3.175,154,2.19,155,2.606,172,4.131,173,2.31,174,4.075,175,3.453,180,1.4,181,2.09,182,2.54,236,1.27,349,1.058,474,3.336,480,2.168,486,2.35,519,3.174,524,4.454,604,3.173,1150,3.106,1203,3.876,1276,2.441,1676,4.676,1863,6.082,1882,5.067,2439,3.824,2604,9.511,2608,3.603,2620,6.528,2631,8.651,2710,7.811,2711,7.491,2722,4.008,2723,9.474,3569,4.976,4801,5.953,4908,11.225,4909,7.81,4910,10.573,4911,7.81,4912,7.81,4913,7.81,4914,4.793,4915,10.247,4916,7.81,4917,7.81,4918,4.912,4919,5.044,4920,7.81,4921,7.81]],["title/injectables/ColumnBoardTargetService.html",[539,0.901,4922,5.705]],["body/injectables/ColumnBoardTargetService.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.173,26,2.746,27,0.453,29,0.86,30,0.001,31,0.619,32,0.151,33,0.53,34,1.667,35,1.176,36,2.513,95,0.156,96,2.688,97,3.158,99,1.215,101,0.012,103,0.001,104,0.001,173,2.155,177,1.791,226,1.042,236,1.185,262,2.78,345,2.319,349,1.141,379,0.911,437,1.594,539,1.295,541,1.744,603,2.372,608,2.723,1150,2.898,1203,3.528,1768,5.3,1851,9.671,1882,4.929,2249,6.801,2288,5.808,2631,6.973,2677,5.332,2710,5.554,3284,6.703,3325,6.737,3345,5.888,4910,6.737,4922,8.198,4923,11.811,4924,7.287,4925,9.786,4926,9.786,4927,7.287,4928,7.287,4929,9.786,4930,7.287,4931,10.215,4932,9.786,4933,7.287,4934,11.049,4935,7.287,4936,7.287,4937,9.786,4938,7.287,4939,7.287,4940,7.287,4941,7.287,4942,7.287,4943,7.287,4944,7.287]],["title/controllers/ColumnController.html",[259,2.591,2697,5.958]],["body/controllers/ColumnController.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.874,10,3.568,27,0.401,29,0.762,30,0.001,31,0.548,32,0.191,33,0.47,35,1.176,36,2.513,59,1.499,95,0.15,100,1.62,101,0.008,103,0,104,0,138,1.78,142,1.887,145,2.023,150,1.099,177,1.334,223,1.986,226,0.69,236,1.185,259,1.835,261,2.29,262,2.78,270,6.283,282,7.336,287,7.737,290,8.591,294,6.667,324,4.952,333,4.141,334,3.115,335,6.304,336,8.239,337,2.493,338,2.549,340,2.318,343,2.569,345,1.535,346,5.809,347,4.825,349,0.498,437,1.136,603,0.969,608,2.256,631,2.475,685,3.083,819,2.557,1198,7.097,1203,2.327,2468,6.236,2619,5.596,2630,5.511,2690,7.097,2692,7.097,2697,6.375,2702,2.277,2792,4.962,2871,7.118,2873,5.555,2875,7.46,2876,7.46,2879,7.737,2881,7.097,2894,8.656,2895,7.908,2896,4.372,2899,3.437,2900,2.726,2901,2.589,2908,3.898,2918,7.097,2919,7.097,2922,4.22,3199,3.587,3247,6.949,3368,5.005,3779,8.119,4019,3.033,4025,4.041,4032,4.459,4037,4.22,4060,5.888,4100,6.104,4945,4.823,4946,8.119,4947,6.737,4948,8.119,4949,4.823,4950,11.227,4951,10.576,4952,9.786,4953,4.823,4954,4.459,4955,4.823,4956,4.823,4957,4.823,4958,4.823,4959,4.823,4960,4.823,4961,8.561,4962,4.823,4963,4.823,4964,4.823,4965,4.823,4966,4.823,4967,6.737,4968,4.823,4969,4.823,4970,4.823,4971,4.823,4972,4.823,4973,9.786,4974,4.823,4975,4.823,4976,4.823,4977,4.823,4978,4.823,4979,4.823,4980,4.823,4981,4.823]],["title/entities/ColumnNode.html",[154,1.456,3136,5.503]],["body/entities/ColumnNode.html",[0,0.323,3,0.022,4,0.022,5,0.011,30,0.001,32,0.13,95,0.17,96,2.612,101,0.016,103,0.001,104,0.001,154,2.481,155,3.173,173,2.812,180,1.704,181,2.545,349,0.982,403,5.277,437,1.23,1600,3.575,1601,5.301,2450,5.511,2503,5.373,2504,4.247,3109,6.088,3120,6.964,3136,9.379,3187,5.835,3198,10.731,3245,6.422,3556,7.247,3558,7.123,3579,5.906,4064,6.057,4066,6.057,4800,8.318,4982,9.508]],["title/interfaces/ColumnProps.html",[105,0.735,4747,5.958]],["body/interfaces/ColumnProps.html",[0,0.294,3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.15,36,1.844,47,0.919,95,0.152,101,0.02,103,0.001,104,0.001,105,0.935,107,2.08,112,0.87,119,1.764,180,2.153,262,1.899,349,1.241,437,1.121,474,3.703,517,3.323,519,2.685,604,4.452,608,1.998,1150,3.447,1203,4.247,1600,3.259,1601,3.668,1676,5.001,1882,3.617,2450,5.203,2630,6.303,2724,6.649,2734,5.32,2735,6.437,2738,5.32,2739,6.31,2747,6.176,2778,7.291,2792,6.192,2815,7.261,3975,5.451,3976,7.526,3977,6.79,3980,6.649,4740,8.014,4745,8.014,4746,8.014,4747,9.587,4748,8.014]],["title/classes/ColumnResponse.html",[0,0.231,2903,5.503]],["body/classes/ColumnResponse.html",[0,0.279,2,0.921,3,0.019,4,0.019,5,0.01,7,0.125,27,0.525,29,0.64,30,0.001,31,0.461,32,0.179,33,0.563,34,2.183,47,0.874,95,0.157,101,0.014,103,0.001,104,0.001,112,0.842,138,2.252,150,1.874,245,3.44,247,3.6,253,4.027,379,1.325,404,3.356,556,2.072,769,4.162,814,4.134,1203,4.092,2717,5.861,2720,6.665,2722,4.221,2792,4.648,2855,5.388,2856,5.645,2857,5.645,2903,10.356,3207,9.769,3654,7.607,3658,6.818,3662,5.469,3664,5.469,4136,10.374,4983,8.225,4984,8.225,4985,8.225,4986,8.225,4987,8.225,4988,8.225,4989,8.225,4990,8.225]],["title/classes/ColumnResponseMapper.html",[0,0.231,2907,5.705]],["body/classes/ColumnResponseMapper.html",[0,0.293,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.31,27,0.353,29,0.672,30,0.001,31,0.483,32,0.149,33,0.414,34,1.47,35,1.037,95,0.152,99,1.44,100,2.899,101,0.014,103,0.001,104,0.001,226,1.234,236,2.051,349,1.129,376,3.759,413,3.693,437,1.116,521,3.418,529,2.442,604,3.507,777,5.123,778,6.066,783,6.419,1203,2.756,1216,4.923,1559,4.808,2278,5.178,2630,6.822,2744,5.428,2792,6.777,2903,10.187,2907,9.155,3019,6.15,3207,6.579,3213,5.499,3654,5.123,3658,6.355,3668,6.761,3674,7.551,3675,6.15,4088,7.551,4090,7.23,4109,6.761,4136,9.155,4991,10.929,4992,10.929,4993,7.979,4994,7.551,4995,8.631,4996,8.631,4997,8.631,4998,8.631,4999,8.631]],["title/injectables/ColumnService.html",[539,0.901,3533,5.503]],["body/injectables/ColumnService.html",[0,0.222,3,0.015,4,0.015,5,0.008,7,0.099,8,1.091,10,3.697,12,4.175,26,2.393,27,0.503,29,0.957,30,0.001,31,0.688,32,0.168,33,0.59,34,1.116,35,1.426,36,2.811,47,0.738,49,2.584,55,2.25,59,2.035,83,2.794,95,0.15,99,1.093,101,0.011,103,0.001,104,0.001,177,1.666,226,0.937,236,1.838,262,3.008,345,2.085,349,0.94,376,2.853,377,2.973,379,0.819,437,1.352,524,3.736,539,1.204,541,1.568,603,1.316,608,2.832,685,3.85,1203,3.79,1863,7.48,1882,2.734,2425,3.545,2630,7.296,2732,4.499,3087,4.872,3088,8.59,3304,5.64,3365,9.373,3368,6.25,3374,8.611,3378,5.488,3533,7.353,3790,7.623,3810,10.445,4097,7.961,4099,7.961,4119,5.294,4126,4.291,4994,5.731,5000,6.551,5001,6.551,5002,6.551,5003,9.1,5004,6.551,5005,9.1,5006,6.551,5007,9.1,5008,6.551,5009,9.1,5010,6.551,5011,6.551,5012,6.551,5013,6.551,5014,6.551,5015,6.551,5016,6.551]],["title/injectables/ColumnUc.html",[539,0.901,2692,5.503]],["body/injectables/ColumnUc.html",[0,0.172,3,0.012,4,0.012,5,0.006,7,0.077,8,0.908,26,2.985,27,0.491,29,0.934,30,0.001,31,0.672,32,0.164,33,0.576,35,1.402,36,2.656,39,3.408,47,0.639,55,1.949,59,2.354,95,0.143,99,0.847,101,0.008,103,0,104,0,177,1.966,180,1.357,226,0.726,262,2.947,349,0.525,379,0.947,382,2.733,437,1.457,448,4.917,539,1.003,541,1.216,560,2.091,603,1.82,608,3.017,639,2.384,1203,3.43,1274,1.607,1609,6.747,1624,6.897,1625,3.327,1695,6.169,1764,3.377,1799,5.398,2250,3.713,2251,4.534,2450,5.349,2451,8.587,2453,5.934,2454,5.934,2455,3.694,2456,8.239,2458,3.778,2459,5.51,2460,5.398,2462,3.979,2463,5.899,2465,3.979,2466,5.398,2469,2.305,2482,7.99,2630,5.909,2692,6.121,2792,6.07,3095,3.778,3374,8.188,3532,9.144,3533,9.432,3790,10.746,3795,4.104,3796,4.104,3797,4.104,3800,4.104,3801,4.104,3803,7.304,3809,8.375,3988,7.925,4050,3.872,4100,8.413,4101,5.308,4109,7.867,4113,8.375,4177,4.696,4946,8.375,4947,8.375,4948,8.375,5017,5.079,5018,5.079,5019,7.575,5020,5.079,5021,7.575,5022,5.079,5023,7.575,5024,10.042,5025,5.079,5026,7.575,5027,5.079,5028,5.079,5029,5.079,5030,5.079,5031,5.079,5032,5.079,5033,5.079]],["title/classes/ColumnUrlParams.html",[0,0.231,4950,5.958]],["body/classes/ColumnUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,2630,6.204,3790,10.639,3814,5.762,4950,10.348,5034,9.809,5035,9.809]],["title/entities/ColumnboardBoardElement.html",[154,1.456,2629,5.191]],["body/entities/ColumnboardBoardElement.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.143,27,0.386,30,0.001,32,0.129,95,0.158,96,2.587,101,0.016,103,0.001,104,0.001,112,0.916,138,1.713,154,2.467,155,3.143,173,2.785,180,1.688,181,2.521,403,5.228,1882,5.207,2503,5.322,2604,9.04,2626,8.223,2628,7.89,2629,8.796,2630,4.94,2631,9.266,2632,8.24,2677,5.871,2972,7.18,3016,9.667,4908,10.669,5036,9.419,5037,11.54,5038,9.419,5039,4.322,5040,8.24]],["title/injectables/CommonCartridgeExportService.html",[539,0.901,5041,5.705]],["body/injectables/CommonCartridgeExportService.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.064,8,0.785,26,2.721,27,0.447,29,0.85,30,0.001,31,0.611,32,0.17,33,0.524,35,1.256,36,2.224,39,2.937,47,0.819,95,0.143,99,0.7,101,0.007,103,0,104,0,177,1.474,226,0.6,236,0.682,262,2.543,333,1.775,349,1.167,363,3.666,379,0.819,437,1.564,481,3.602,539,0.866,541,1.004,556,2.028,591,3.699,603,2.62,608,2.273,1194,3.391,1203,3.705,1245,6.749,1559,2.88,1654,3.108,1848,3.878,1849,7.059,1858,5.669,1864,4.298,1878,3.12,1879,3.12,2001,6.662,2193,3.679,2624,4.669,2985,3.39,2986,3.39,3073,4.17,3852,4.496,4357,4.17,4440,3.051,4595,5.29,5041,5.484,5042,11.293,5043,7.208,5044,4.195,5045,8.05,5046,8.05,5047,5.727,5048,8.05,5049,6.546,5050,8.05,5051,8.552,5052,8.321,5053,4.195,5054,4.195,5055,8.847,5056,7.388,5057,8.823,5058,4.195,5059,4.195,5060,4.195,5061,6.052,5062,4.195,5063,4.195,5064,6.246,5065,4.195,5066,3.971,5067,6.136,5068,6.546,5069,4.195,5070,6.546,5071,4.17,5072,4.195,5073,4.195,5074,7.042,5075,2.989,5076,4.195,5077,3.878,5078,3.39,5079,3.769,5080,4.195,5081,6.052,5082,4.195,5083,4.195,5084,3.286,5085,4.195,5086,3.286,5087,4.195,5088,4.195,5089,4.195,5090,4.195,5091,2.37,5092,4.195,5093,4.195,5094,5.29,5095,6.546,5096,4.195,5097,3.514,5098,4.17,5099,4.195,5100,5.29,5101,4.195,5102,4.195,5103,3.769,5104,3.878,5105,2.748,5106,2.833,5107,4.195,5108,4.195,5109,9.863,5110,6.546,5111,6.744,5112,6.546,5113,6.052,5114,8.05,5115,2.989,5116,5.727,5117,6.052,5118,6.052,5119,4.761,5120,4.195,5121,2.989,5122,4.195,5123,5.484,5124,5.727,5125,5.727,5126,2.989,5127,6.546,5128,6.546,5129,4.195,5130,3.878,5131,4.195,5132,4.195,5133,4.195,5134,4.195,5135,6.546,5136,4.195,5137,6.546,5138,4.195,5139,4.195,5140,3.878,5141,4.195,5142,4.195,5143,4.195]],["title/classes/CommonCartridgeFileBuilder.html",[0,0.231,5055,5.335]],["body/classes/CommonCartridgeFileBuilder.html",[0,0.262,2,0.583,3,0.012,4,0.012,5,0.015,7,0.079,8,0.926,27,0.495,29,0.716,30,0.001,31,0.515,32,0.139,33,0.441,35,1.105,36,1.957,47,0.718,95,0.149,101,0.017,103,0,104,0,105,0.833,112,0.613,177,2.443,236,2.139,262,2.015,345,1.659,349,1.175,379,0.965,381,3.089,437,1.471,454,5.156,480,2.823,486,3.059,490,2.738,603,2.662,1203,2.465,1245,4.986,1276,2.875,1669,5.295,1880,3.803,2001,6.869,3160,4.919,5043,8.167,5055,6.048,5056,4.178,5057,5.302,5067,8.971,5079,6.252,5084,6.048,5086,6.048,5094,6.239,5098,7.245,5100,4.211,5106,5.215,5144,7.972,5145,7.972,5146,4.365,5147,9.189,5148,8.506,5149,7.752,5150,8.519,5151,7.138,5152,7.138,5153,4.211,5154,8.519,5155,7.72,5156,5.211,5157,5.211,5158,8.519,5159,5.211,5160,7.704,5161,9.189,5162,5.211,5163,9.511,5164,7.704,5165,5.211,5166,5.211,5167,4.211,5168,4.211,5169,3.972,5170,3.713,5171,6.024,5172,3.519,5173,6.048,5174,6.239,5175,4.082,5176,5.501,5177,4.082,5178,6.467,5179,4.211,5180,4.365,5181,4.365,5182,4.365,5183,8.519,5184,4.365,5185,6.467,5186,4.365,5187,4.365,5188,6.467,5189,4.365,5190,4.365,5191,4.365,5192,4.365,5193,4.365,5194,4.365,5195,4.365,5196,4.365,5197,4.365,5198,4.365,5199,4.365,5200,4.211,5201,4.365,5202,4.365,5203,4.365,5204,4.365,5205,4.365,5206,3.365,5207,4.365,5208,4.365,5209,4.365]],["title/classes/CommonCartridgeLtiResource.html",[0,0.231,5210,5.958]],["body/classes/CommonCartridgeLtiResource.html",[0,0.214,2,0.707,3,0.015,4,0.015,5,0.011,7,0.096,8,1.063,27,0.455,29,0.492,30,0.001,31,0.354,32,0.152,33,0.303,35,1.232,47,0.88,95,0.141,101,0.015,103,0.001,104,0.001,119,1.805,145,1.753,153,2.016,177,1.623,181,1.69,345,2.01,349,1.059,379,0.79,381,2.979,437,0.817,486,1.9,603,1.268,984,3.825,1194,2.171,1203,2.832,1242,3.636,1245,5.728,1276,2.772,1869,3.971,2001,7.509,2193,4.498,3976,4.337,5043,7.908,5056,3.417,5057,6.091,5078,5.103,5079,5.903,5111,7.43,5123,5.29,5144,7.563,5145,7.563,5149,7.814,5169,4.813,5170,4.5,5171,6.715,5172,4.265,5206,7.18,5210,7.759,5211,9.811,5212,5.524,5213,8.031,5214,8.984,5215,10.279,5216,6.314,5217,5.838,5218,6.314,5219,6.314,5220,5.29,5221,5.838,5222,6.314,5223,6.314,5224,5.524,5225,6.314,5226,6.314,5227,6.314,5228,5.524,5229,5.524,5230,3.971,5231,5.524,5232,6.314,5233,5.524,5234,6.314,5235,7.43,5236,6.314,5237,6.314,5238,8.2,5239,6.314,5240,6.314,5241,6.314,5242,5.524,5243,8.869,5244,8.869,5245,8.869,5246,8.869,5247,8.869,5248,8.869,5249,8.869,5250,8.869,5251,8.869,5252,6.314,5253,6.314,5254,6.314,5255,6.314,5256,5.897,5257,8.869,5258,8.869,5259,8.869,5260,8.869,5261,6.314,5262,6.314,5263,6.314,5264,6.314,5265,6.314,5266,5.103,5267,5.103,5268,5.524]],["title/classes/CommonCartridgeManifestElement.html",[0,0.231,5173,5.335]],["body/classes/CommonCartridgeManifestElement.html",[0,0.232,2,0.765,3,0.016,4,0.016,5,0.008,7,0.104,8,1.123,27,0.384,29,0.532,30,0.001,31,0.383,32,0.128,33,0.328,35,0.82,47,0.482,95,0.153,101,0.015,103,0.001,104,0.001,177,2.105,181,1.828,236,2.024,349,0.967,379,1.171,381,3.145,437,0.883,486,2.054,603,2.31,984,4.039,1242,3.932,1245,6.902,1276,2.927,1869,4.295,1880,4.42,2109,7.34,5043,8.061,5057,4.69,5079,6.938,5098,7.676,5106,4.613,5123,5.721,5144,6.902,5145,6.902,5148,9.439,5170,4.866,5171,8.624,5172,4.613,5173,7.336,5174,9.736,5176,4.866,5206,7.426,5224,8.192,5228,8.192,5229,8.192,5230,5.889,5231,8.192,5266,7.567,5269,5.35,5270,11.499,5271,10.687,5272,10.631,5273,6.314,5274,6.829,5275,5.974,5276,5.974,5277,8.192,5278,5.974,5279,9.364,5280,6.829,5281,9.364,5282,9.364,5283,9.364,5284,9.364,5285,9.364,5286,6.829,5287,9.364,5288,6.829,5289,6.829,5290,6.829,5291,6.829,5292,9.364,5293,9.364,5294,9.364,5295,9.364,5296,9.364,5297,9.364,5298,6.829,5299,6.829,5300,6.829]],["title/classes/CommonCartridgeMetadataElement.html",[0,0.231,5275,5.958]],["body/classes/CommonCartridgeMetadataElement.html",[0,0.286,2,0.942,3,0.02,4,0.02,5,0.01,7,0.128,8,1.289,27,0.44,29,0.655,30,0.001,31,0.471,32,0.147,33,0.404,35,1.011,47,0.837,59,2.614,95,0.136,101,0.018,103,0.001,104,0.001,177,1.54,181,2.252,345,2.678,349,0.869,379,1.052,381,3.612,984,4.638,1203,2.686,1276,3.361,2109,8.14,3689,5.996,3976,5.779,5043,8.199,5056,4.554,5057,7.386,5079,6.824,5084,6.592,5086,6.592,5144,7.654,5145,7.654,5170,5.996,5171,7.763,5172,5.683,5206,8.066,5242,7.361,5269,6.592,5272,11.547,5273,7.779,5275,9.408,5301,8.414,5302,8.414,5303,8.414,5304,8.414,5305,8.414,5306,8.414,5307,10.753,5308,8.414,5309,8.414,5310,8.414,5311,8.414,5312,8.414,5313,8.414]],["title/classes/CommonCartridgeOrganizationBuilder.html",[0,0.231,5179,5.503]],["body/classes/CommonCartridgeOrganizationBuilder.html",[0,0.283,2,0.647,3,0.013,4,0.013,5,0.014,7,0.088,8,0.998,27,0.438,29,0.648,30,0.001,31,0.466,32,0.133,33,0.4,35,0.694,36,1.772,47,0.754,95,0.154,101,0.018,103,0,104,0,105,0.899,177,2.277,181,1.547,236,2.093,262,1.266,345,1.84,349,1.218,379,1.041,381,3.279,437,1.525,454,3.954,490,2.049,603,2.442,686,3.931,1203,2.659,1245,5.378,1276,3.051,1669,4.336,1880,4.037,2001,7.648,3160,5.306,5043,7.991,5055,4.528,5056,4.507,5057,5.719,5067,9.266,5079,6.52,5084,6.524,5086,6.524,5094,6.729,5098,7.514,5100,4.67,5106,7.215,5144,7.312,5145,7.312,5146,4.842,5147,8.632,5148,7.648,5149,8.143,5150,8.949,5154,6.976,5158,9.485,5160,6.976,5161,9.531,5163,10.054,5164,6.976,5167,4.67,5168,4.67,5169,4.405,5170,4.118,5171,6.395,5172,3.904,5173,6.524,5174,6.729,5175,4.528,5176,5.934,5177,4.528,5178,8.178,5179,6.729,5180,4.842,5181,4.842,5182,4.842,5183,8.949,5184,4.842,5185,6.976,5186,4.842,5187,4.842,5188,6.976,5189,4.842,5190,4.842,5191,4.842,5192,4.842,5193,4.842,5194,4.842,5195,4.842,5196,4.842,5197,4.842,5198,4.842,5199,4.842,5200,4.67,5201,4.842,5202,4.842,5203,4.842,5204,4.842,5205,4.842,5206,3.732,5207,4.842,5208,4.842,5209,4.842,5314,7.699,5315,5.779,5316,5.779,5317,5.779,5318,5.779,5319,5.779,5320,5.779]],["title/classes/CommonCartridgeOrganizationItemElement.html",[0,0.231,5177,5.335]],["body/classes/CommonCartridgeOrganizationItemElement.html",[0,0.284,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,8,1.284,27,0.439,29,0.651,30,0.001,31,0.468,32,0.146,33,0.401,35,1.005,47,0.834,95,0.15,101,0.018,103,0.001,104,0.001,177,1.531,181,2.238,345,2.662,349,1.106,379,1.046,381,3.597,984,4.619,1203,3.773,1245,7.631,1276,3.348,1880,3.458,3160,8.207,3306,6.757,3976,5.743,5043,8.001,5056,4.525,5067,8.164,5079,6.167,5081,9.902,5098,5.327,5106,7.982,5113,7.731,5144,7.631,5145,7.631,5161,10.069,5171,7.741,5172,5.648,5176,5.958,5177,8.391,5206,8.047,5238,7.731,5266,6.757,5269,6.551,5321,8.362,5322,8.362,5323,8.362,5324,8.362]],["title/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.231,5276,5.958]],["body/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.299,2,0.985,3,0.021,4,0.021,5,0.01,7,0.133,8,1.326,27,0.453,29,0.685,30,0.001,31,0.493,32,0.12,33,0.422,35,1.057,95,0.112,101,0.015,103,0.001,104,0.001,177,1.611,345,2.801,349,0.909,379,1.101,708,3.656,984,4.772,1245,7.145,1276,3.458,3160,7.049,5043,7.886,5079,5.068,5106,8.576,5144,7.815,5145,7.815,5171,8.747,5172,5.944,5206,8.199,5269,6.894,5276,9.679,5277,10.587,5325,8.801,5326,8.137,5327,11.064,5328,8.137,5329,8.801,5330,6.894,5331,8.801,5332,8.137,5333,8.801,5334,8.801,5335,8.801]],["title/classes/CommonCartridgeResourceItemElement.html",[0,0.231,5175,5.335]],["body/classes/CommonCartridgeResourceItemElement.html",[0,0.23,2,0.758,3,0.016,4,0.016,5,0.008,7,0.103,8,1.116,27,0.492,29,0.527,30,0.001,31,0.379,32,0.145,33,0.325,35,1.278,47,0.657,95,0.161,101,0.015,103,0.001,104,0.001,112,0.739,119,1.895,177,1.948,181,2.492,236,1.864,349,1.099,379,0.847,381,2.274,529,1.916,603,2.137,984,4.015,1150,2.693,1276,2.91,2001,7.739,2170,3.792,2193,4.859,3160,7.908,4344,6.875,5043,8.41,5067,8.734,5074,8.145,5078,5.472,5079,7.147,5116,5.924,5124,5.924,5125,5.924,5144,8.016,5145,8.016,5149,9.157,5169,5.162,5170,4.825,5171,7.505,5172,4.574,5175,7.294,5176,9.365,5206,7.4,5210,5.924,5211,5.673,5213,8.976,5214,9.259,5215,8.608,5220,5.673,5221,6.261,5269,5.305,5336,8.913,5337,9.31,5338,6.771,5339,6.771,5340,6.771,5341,5.924,5342,7.523,5343,5.924,5344,8.608,5345,10.64,5346,6.771,5347,6.771,5348,6.771,5349,6.771,5350,6.771,5351,6.771,5352,6.771]],["title/classes/CommonCartridgeResourceWrapperElement.html",[0,0.231,5278,5.958]],["body/classes/CommonCartridgeResourceWrapperElement.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.469,29,0.723,30,0.001,31,0.52,32,0.127,33,0.446,35,1.116,95,0.118,101,0.015,103,0.001,104,0.001,177,1.7,345,2.956,349,0.959,379,1.162,984,4.935,1276,3.576,5043,8.038,5079,5.348,5144,8.008,5145,8.008,5171,8.865,5172,6.274,5176,9.222,5206,8.358,5269,7.276,5277,10.848,5278,10.009,5326,8.587,5328,8.587,5353,9.288,5354,11.441,5355,9.288,5356,9.288]],["title/classes/CommonCartridgeWebContentResource.html",[0,0.231,5341,5.958]],["body/classes/CommonCartridgeWebContentResource.html",[0,0.261,2,0.859,3,0.018,4,0.018,5,0.012,7,0.116,8,1.214,27,0.494,29,0.598,30,0.001,31,0.43,32,0.165,33,0.368,35,1.362,47,0.909,95,0.144,101,0.017,103,0.001,104,0.001,119,2.062,145,2.131,177,1.405,181,2.054,345,2.443,349,1.171,379,0.96,381,3.403,984,4.369,1203,2.451,1245,6.542,1276,3.166,2193,5.455,5043,8.278,5056,4.154,5057,6.958,5074,10.55,5077,9.366,5078,6.203,5079,6.53,5111,8.487,5116,6.715,5117,9.366,5118,7.097,5119,5.583,5144,8.096,5145,8.096,5170,5.469,5171,7.428,5172,5.185,5206,7.788,5212,6.715,5213,8.883,5214,9.745,5217,7.097,5220,6.43,5266,6.203,5267,6.203,5268,6.715,5341,8.863,5342,10.13,5357,7.097,5358,7.676,5359,7.676,5360,7.676,5361,7.676]],["title/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.231,5343,5.958]],["body/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.23,2,0.759,3,0.016,4,0.016,5,0.011,7,0.103,8,1.117,27,0.47,29,0.528,30,0.001,31,0.38,32,0.157,33,0.325,35,1.279,47,0.877,95,0.145,101,0.015,103,0.001,104,0.001,119,1.897,145,1.883,177,1.706,181,1.815,345,2.159,349,1.184,379,0.848,381,3.131,437,0.877,486,2.041,603,1.362,984,4.02,1194,3.204,1203,2.976,1242,3.906,1245,6.02,1276,2.913,1869,4.266,2001,7.745,2170,6.731,2193,4.639,2677,3.062,3976,4.659,5043,8.048,5056,3.671,5057,6.402,5078,5.481,5079,6.132,5111,8.921,5123,5.682,5124,5.934,5125,5.934,5144,7.762,5145,7.762,5149,8.118,5169,5.17,5170,4.833,5171,6.976,5172,4.581,5200,7.532,5206,7.405,5212,5.934,5213,8.343,5214,9.266,5220,5.682,5224,8.154,5228,8.154,5229,8.154,5230,5.862,5231,8.154,5235,5.682,5242,5.934,5266,5.481,5267,5.481,5268,5.934,5342,9.713,5343,8.154,5344,10.601,5357,6.271,5362,6.783,5363,6.783,5364,6.783,5365,10.649,5366,6.783,5367,6.783,5368,6.783,5369,6.783,5370,9.321,5371,9.321,5372,6.783,5373,9.321,5374,6.783]],["title/modules/CommonToolModule.html",[201,1.804,5375,4.953]],["body/modules/CommonToolModule.html",[0,0.267,3,0.018,4,0.018,5,0.009,30,0.001,95,0.16,101,0.013,103,0.001,104,0.001,155,2.621,201,3.038,203,2.825,204,3.036,205,3.124,206,3.111,207,3.098,208,4.201,209,4.312,214,6.013,218,4.091,219,3.06,220,2.988,225,4.057,226,1.123,227,3.234,560,3.234,654,2.336,1274,2.485,1663,3.324,1665,5.146,1744,10.308,1770,4.287,1901,4.399,2365,5.146,5375,10.369,5376,7.856,5377,7.856,5378,7.856,5379,7.856,5380,8.256,5381,10.857,5382,10.857,5383,10.857,5384,7.856,5385,6.348,5386,6.872,5387,7.856,5388,7.856,5389,7.856,5390,6.581]],["title/injectables/CommonToolService.html",[539,0.901,5381,5.335]],["body/injectables/CommonToolService.html",[0,0.276,3,0.019,4,0.019,5,0.01,7,0.123,8,1.26,27,0.431,29,0.819,30,0.001,31,0.589,32,0.144,33,0.504,35,1.263,95,0.166,101,0.013,103,0.001,104,0.001,105,0.877,119,2.14,131,3.044,226,1.162,349,1.204,539,1.392,541,1.945,564,3.579,603,2.342,654,2.417,834,2.547,1836,7.185,1837,6.83,1839,5.744,2565,6.647,5381,8.237,5391,10.777,5392,6.566,5393,11.657,5394,10.514,5395,8.125,5396,8.125,5397,8.306,5398,10.514,5399,7.819,5400,11.657,5401,8.125,5402,8.125,5403,8.125,5404,10.514,5405,6.807,5406,7.512,5407,8.125,5408,8.125]],["title/injectables/CommonToolValidationService.html",[539,0.901,5382,5.335]],["body/injectables/CommonToolValidationService.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.063,8,0.783,27,0.475,29,0.903,30,0.001,31,0.697,32,0.165,33,0.541,35,1.356,47,0.819,95,0.143,101,0.011,103,0,104,0,112,0.519,119,2.005,131,1.568,142,1.637,143,2.023,145,3.293,226,0.598,236,1.699,274,2.512,283,6.047,292,2.118,333,5.384,340,2.012,349,0.432,363,4.502,413,2.476,437,1.351,480,1.814,486,1.259,517,1.605,519,3.901,529,2.57,539,0.865,541,1.002,556,3.092,564,2.468,603,2.619,604,2.655,646,2.983,654,1.245,662,3.647,834,1.312,1237,2.387,1715,1.763,1817,2.6,1836,4.282,1837,4.125,1839,3.961,1865,7.021,1922,2.265,2033,2.827,2145,2.54,2486,4.07,2554,8.293,2565,4.476,2580,8.411,3249,5.475,5382,5.12,5391,10.965,5409,3.279,5410,8.039,5411,6.535,5412,6.535,5413,6.535,5414,6.535,5415,6.535,5416,6.535,5417,6.535,5418,6.535,5419,6.535,5420,12.946,5421,4.186,5422,3.662,5423,6.535,5424,3.87,5425,6.535,5426,12.445,5427,4.186,5428,6.535,5429,4.186,5430,6.535,5431,4.186,5432,6.535,5433,4.186,5434,6.535,5435,12.277,5436,4.186,5437,6.535,5438,4.186,5439,4.982,5440,5.717,5441,6.535,5442,5.717,5443,5.717,5444,5.717,5445,5.717,5446,5.717,5447,4.186,5448,4.186,5449,2.875,5450,4.186,5451,4.186,5452,4.186,5453,4.186,5454,6.535,5455,4.186,5456,4.186,5457,4.186,5458,4.186,5459,3.87,5460,4.186,5461,2.6,5462,6.535,5463,4.186,5464,4.186,5465,4.186,5466,5.717,5467,3.113,5468,6.535,5469,3.191,5470,4.186,5471,4.186,5472,4.186,5473,4.186,5474,3.662,5475,4.186,5476,3.383,5477,6.535,5478,4.186,5479,3.87,5480,6.535,5481,3.507,5482,3.507,5483,4.186,5484,4.186,5485,3.383,5486,4.186,5487,2.742]],["title/classes/ConsentRequestBody.html",[0,0.231,5488,5.705]],["body/classes/ConsentRequestBody.html",[0,0.285,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,27,0.511,30,0.001,32,0.171,33,0.652,34,1.432,47,0.836,55,2.116,95,0.125,101,0.01,103,0,104,0,110,7.993,111,4.731,112,0.667,114,8.603,116,9.56,117,7.704,119,1.711,135,5.965,138,2.271,142,5.109,143,2.189,144,4.303,145,3.864,147,4.513,148,1.858,150,1.334,153,2.443,180,1.506,239,1.929,245,2.818,248,3.508,249,4.347,282,3.637,287,3.835,347,2.144,348,4.197,382,3.434,517,4.12,662,1.841,696,3.315,838,5.877,946,2.717,986,4.126,1147,3.682,1227,4.259,1239,3.594,1631,7.358,1720,6.585,1962,3.222,2145,7.187,2344,3.339,2362,5.043,3539,4.385,4619,4.345,4699,6.585,5461,3.637,5488,7.042,5489,10.746,5490,10.089,5491,7.042,5492,7.042,5493,6.585,5494,5.855,5495,5.855,5496,6.441,5497,5.855,5498,4.905,5499,7.354,5500,5.609,5501,7.354,5502,7.771,5503,7.354,5504,3.415,5505,5.855,5506,5.413,5507,7.771,5508,6.114,5509,9.936,5510,6.252,5511,7.771,5512,5.855,5513,8.419,5514,4.463,5515,5.122,5516,5.122,5517,5.122,5518,5.413,5519,3.893,5520,6.407,5521,5.877,5522,4.463,5523,4.731,5524,4.463,5525,4.905,5526,4.731,5527,5.413,5528,4.905,5529,5.413,5530,4.463,5531,5.413,5532,5.122,5533,4.905,5534,4.905,5535,5.413,5536,5.355,5537,6.793,5538,5.413]],["title/classes/ConsentResponse.html",[0,0.231,5539,5.503]],["body/classes/ConsentResponse.html",[0,0.337,2,0.555,3,0.012,4,0.012,5,0.006,7,0.075,27,0.534,29,0.386,30,0.001,31,0.277,32,0.178,33,0.662,34,1.69,47,0.946,70,5.306,72,3.375,77,6.772,95,0.126,101,0.008,103,0,104,0,110,7.377,112,0.59,118,7.111,119,1.513,122,5.022,128,4.496,129,9.298,130,7.808,131,3.343,133,2.6,135,7.292,138,2.347,141,5.332,142,3.88,143,2.366,144,3.677,145,3.543,148,1.572,150,1.129,153,2.707,239,2.561,245,3.416,248,4.139,249,5.22,303,5.825,379,0.62,480,2.064,556,1.873,816,2.273,1194,2.556,1606,4.024,1631,6.161,1676,3.393,1731,6.319,2128,5.022,2145,6.018,2344,5.09,2555,7.561,3268,5.298,3396,3.463,3539,4.724,4056,4.003,4195,8.678,5500,5.657,5533,6.228,5536,6.319,5539,9.354,5540,4.954,5541,8.251,5542,8.251,5543,7.477,5544,7.477,5545,7.477,5546,7.212,5547,7.435,5548,4.954,5549,9.765,5550,4.954,5551,7.808,5552,7.435,5553,4.954,5554,7.435,5555,6.228,5556,4.954,5557,7.477,5558,8.251,5559,4.954,5560,4.954,5561,7.435,5562,6.504,5563,4.954,5564,7.435,5565,4.954,5566,7.477,5567,4.954,5568,7.435,5569,8.677,5570,6.699,5571,4.954,5572,4.954,5573,4.954,5574,6.874,5575,6.874,5576,4.954,5577,4.954,5578,4.334,5579,4.58,5580,4.58,5581,4.58]],["title/classes/ConsentSessionResponse.html",[0,0.231,5582,5.705]],["body/classes/ConsentSessionResponse.html",[0,0.348,2,0.874,3,0.018,4,0.018,5,0.009,7,0.118,27,0.497,29,0.608,30,0.001,31,0.641,32,0.166,33,0.633,34,1.745,47,0.991,95,0.13,101,0.013,103,0.001,104,0.001,110,7.621,112,0.814,135,6.998,138,2.08,141,4.895,148,2.478,150,1.779,153,2.6,245,3.183,249,4.145,379,0.977,556,3.408,816,4.702,1326,8.149,1339,7.221,1631,6.365,3539,4.954,4195,9.396,5549,6.832,5582,8.584,5583,12.607,5584,7.221,5585,8.959,5586,9.474,5587,12.141,5588,7.81,5589,5.116,5590,9.474,5591,7.81,5592,7.81,5593,7.81,5594,7.81,5595,7.81]],["title/modules/ConsoleWriterModule.html",[201,1.804,3528,5.191]],["body/modules/ConsoleWriterModule.html",[0,0.327,3,0.022,4,0.022,5,0.011,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.336,203,3.46,204,3.718,205,3.826,206,3.811,207,3.795,208,4.612,209,4.735,218,4.649,219,3.748,220,3.66,226,1.376,3443,9.47,3453,6.051,3528,10.529,5596,9.621,5597,9.621,5598,9.621,5599,8.895,5600,7.775,5601,9.621,5602,8.417]],["title/injectables/ConsoleWriterService.html",[539,0.901,3443,4.528]],["body/injectables/ConsoleWriterService.html",[0,0.333,3,0.03,4,0.023,5,0.012,7,0.149,8,1.418,27,0.402,29,0.764,30,0.001,31,0.549,32,0.134,33,0.471,35,1.178,47,0.896,95,0.124,101,0.016,103,0.001,104,0.001,226,1.402,519,3.664,521,3.885,539,1.565,541,2.348,992,4.686,993,4.63,994,4.63,2820,5.719,3443,7.864,3453,6.169,5599,10.936,5600,9.558,5603,9.809,5604,11.828,5605,9.809,5606,9.809]],["title/injectables/ContentElementFactory.html",[539,0.901,3535,5.503]],["body/injectables/ContentElementFactory.html",[0,0.202,3,0.014,4,0.014,5,0.01,7,0.09,8,1.019,27,0.488,29,0.463,30,0.001,31,0.333,32,0.157,33,0.286,34,1.951,35,1.431,49,2.347,83,3.976,95,0.162,101,0.01,103,0,104,0,226,0.851,236,2.261,349,1.23,376,4.988,377,5.198,437,1.481,454,4.038,486,1.79,524,3.394,529,1.683,539,1.125,541,1.424,564,1.827,593,2.204,603,2.719,1194,2.046,1203,1.9,1242,6.594,1600,2.237,1861,8.748,1869,3.742,1880,5.708,2170,3.332,2439,2.913,2486,1.973,2732,7.435,2799,5.57,2802,5.219,2805,5.57,2808,5.159,2811,5.348,2818,8.329,2819,4.426,2820,4.112,2821,2.618,2822,3.57,3193,3.791,3216,3.532,3218,3.532,3224,4.395,3227,3.054,3518,5.206,3535,6.871,4101,5.722,4126,7.501,5256,7.919,5607,12.261,5608,5.95,5609,10.826,5610,10.009,5611,10.826,5612,10.826,5613,10.826,5614,8.503,5615,5.95,5616,5.95,5617,5.95,5618,5.95,5619,5.95,5620,5.95,5621,3.791,5622,5.95,5623,3.843,5624,5.95,5625,3.791,5626,5.95,5627,3.843,5628,5.95,5629,3.843,5630,5.95,5631,5.95]],["title/classes/ContentElementResponseFactory.html",[0,0.231,3711,5.191]],["body/classes/ContentElementResponseFactory.html",[0,0.238,2,0.783,3,0.016,4,0.016,5,0.011,7,0.106,8,1.141,27,0.443,29,0.741,30,0.001,31,0.533,32,0.159,33,0.457,35,1.144,95,0.168,99,1.167,100,2.35,101,0.012,103,0.001,104,0.001,112,0.756,226,1,236,1.549,349,0.983,413,4.075,437,1.4,480,1.942,486,2.104,529,2.693,564,2.148,603,2.174,778,5.284,1559,5.11,1880,5.667,1907,6.467,1918,6.467,1938,3.99,2170,3.917,2441,8.048,2447,7.256,2449,8.744,2450,5.515,2486,2.319,2802,7.129,2808,7.047,2819,5.203,2820,3.382,2821,3.077,2822,4.197,3193,4.457,3669,8.079,3709,7.711,3710,7.711,3711,7.256,5632,11.615,5633,10.005,5634,10.821,5635,9.519,5636,9.519,5637,9.519,5638,9.519,5639,9.519,5640,6.995,5641,6.995,5642,6.995,5643,5.913,5644,6.995,5645,6.995,5646,5.48,5647,6.12,5648,6.12,5649,6.12,5650,6.12,5651,6.12,5652,9.519,5653,6.995,5654,6.995,5655,6.995,5656,6.12,5657,6.995,5658,6.995,5659,6.995,5660,6.995]],["title/injectables/ContentElementService.html",[539,0.901,1850,4.953]],["body/injectables/ContentElementService.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,10,3.394,12,3.833,26,2.578,27,0.498,29,0.948,30,0.001,31,0.682,32,0.176,33,0.584,34,1.423,35,1.419,36,2.803,55,2.106,95,0.15,99,0.968,101,0.01,103,0,104,0,177,1.791,226,0.83,236,1.592,262,3.002,349,1.106,379,1.045,437,1.467,529,2.363,539,1.106,541,1.389,603,1.966,608,2.871,685,3.535,785,2.898,1850,6.076,1855,6.544,1861,10.406,1880,5.247,1882,2.422,2193,4.33,2425,3.141,2450,2.756,2463,6.287,2619,3.092,2792,6.878,2896,5.012,3087,4.317,3088,8.258,3245,3.921,3276,7.723,3304,6.077,3316,5.078,3365,9.053,3368,5.737,3374,8.159,3378,4.862,3535,9.835,4099,7.308,4101,5.657,4119,4.69,4184,9.896,5656,5.078,5661,11.516,5662,5.804,5663,5.804,5664,5.804,5665,8.353,5666,5.804,5667,8.353,5668,5.804,5669,8.353,5670,5.804,5671,8.353,5672,5.804,5673,8.353,5674,7.011,5675,5.804,5676,5.804,5677,5.078,5678,5.804,5679,5.804,5680,5.804,5681,5.804,5682,5.804,5683,5.804,5684,5.804,5685,5.804,5686,5.804,5687,4.222,5688,5.804,5689,5.804,5690,5.804,5691,5.804]],["title/injectables/ContentElementUpdateVisitor.html",[539,0.901,5677,5.958]],["body/injectables/ContentElementUpdateVisitor.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.071,8,0.85,27,0.515,29,0.966,30,0.001,31,0.695,32,0.174,33,0.595,35,1.466,36,2.855,47,0.328,95,0.131,99,0.776,101,0.008,103,0,104,0,112,0.563,177,1.572,226,0.665,236,1.153,247,2.036,262,3.017,301,3.092,349,1.352,379,0.582,437,1.111,539,0.938,541,1.113,556,1.785,603,2.188,604,4.201,785,2.322,1194,2.952,1276,1.454,1676,2.122,1770,2.538,1863,6.137,1880,5.322,2193,4.183,2367,4.068,2450,4.561,2463,5.642,2486,2.35,2591,8.1,2630,5.423,2739,4.081,2768,2.76,2792,5.842,2799,6.773,2802,6.346,2805,6.773,2808,6.273,2811,6.502,2818,3.383,2821,2.046,2824,5.938,2825,5.938,2826,5.938,2827,5.938,2828,5.938,2829,5.938,2830,5.938,2832,5.938,2833,5.938,2834,5.938,2835,5.938,2836,5.938,2837,5.938,2838,5.938,2839,5.938,2840,5.938,2841,5.938,2896,2.79,3005,4.3,3224,2.404,3411,6.686,5661,11.775,5674,7.136,5677,6.201,5692,4.65,5693,7.088,5694,7.088,5695,7.088,5696,7.088,5697,4.65,5698,3.194,5699,4.65,5700,4.65,5701,4.65,5702,4.65,5703,4.65,5704,4.65,5705,4.65,5706,4.65,5707,6.553,5708,4.65,5709,4.3,5710,3.896,5711,4.713,5712,4.713,5713,4.713,5714,4.713,5715,4.713,5716,4.65,5717,4.65,5718,4.65,5719,4.3,5720,4.65,5721,7.088,5722,4.3,5723,4.65,5724,4.65,5725,4.3,5726,4.65,5727,4.3,5728,4.65,5729,4.65,5730,4.65,5731,7.088,5732,4.65,5733,8.588,5734,4.65,5735,4.65,5736,4.65,5737,4.3,5738,4.65,5739,4.65,5740,4.3,5741,4.65,5742,4.3,5743,4.65,5744,7.088,5745,4.3,5746,4.65,5747,7.088,5748,4.3,5749,4.65,5750,4.65,5751,7.088,5752,4.65,5753,3.758,5754,4.068,5755,4.65,5756,4.3,5757,4.65]],["title/classes/ContentElementUrlParams.html",[0,0.231,5758,5.958]],["body/classes/ContentElementUrlParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,803,4.813,1880,4.877,3814,5.734,5758,10.317,5759,11.793,5760,9.025,5761,11.717,5762,9.025]],["title/classes/ContextExternalTool.html",[0,0.231,1837,3.495]],["body/classes/ContextExternalTool.html",[0,0.243,2,0.801,3,0.017,4,0.017,5,0.009,7,0.109,8,1.159,27,0.537,29,0.954,30,0.001,31,0.401,32,0.176,33,0.588,34,1.865,35,0.86,47,0.864,55,2.635,95,0.155,101,0.016,103,0.001,104,0.001,105,0.772,112,0.768,131,2.681,180,1.733,181,2.587,349,0.739,379,0.895,381,2.404,382,2.159,564,4.3,654,2.129,1276,3.022,1683,6.818,1837,4.961,1839,3.527,2580,7.68,3727,4.342,5399,7.579,5763,7.63,5764,11.479,5765,5.607,5766,8.595,5767,5.975,5768,8.938,5769,8.938,5770,9.822,5771,8.939,5772,7.157,5773,7.157,5774,7.157,5775,9.475,5776,7.157,5777,5.206,5778,7.157,5779,5.607,5780,4.759,5781,5.1,5782,5.455,5783,6.617,5784,6.617,5785,6.617,5786,6.617,5787,4.56,5788,4.915,5789,4.759,5790,5.206,5791,6.889,5792,5.323]],["title/injectables/ContextExternalToolAuthorizableService.html",[539,0.901,5793,5.503]],["body/injectables/ContextExternalToolAuthorizableService.html",[0,0.295,3,0.02,4,0.02,5,0.01,7,0.132,8,1.315,12,5.035,26,2.677,27,0.449,29,0.854,30,0.001,31,0.615,32,0.15,33,0.527,34,1.48,35,1.044,36,2.335,40,5.306,95,0.165,99,1.449,101,0.014,103,0.001,104,0.001,177,1.59,226,1.242,227,3.576,262,2.636,345,2.765,349,0.897,379,1.086,437,1.124,539,1.452,541,2.079,564,4.086,608,2.002,1276,2.715,1679,8.867,1715,3.659,1837,6.485,2469,3.943,2486,3.988,3084,8.031,5383,10.426,5763,6.995,5793,8.867,5794,10.523,5795,8.031,5796,8.687,5797,8.687,5798,8.687]],["title/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.231,5799,5.705]],["body/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,27,0.465,29,0.713,30,0.001,31,0.513,32,0.168,33,0.44,95,0.144,101,0.015,103,0.001,104,0.001,112,0.901,131,3.432,138,1.666,150,2.087,245,2.974,284,4.088,379,1.146,556,2.308,564,3.954,809,6.405,812,6.47,814,4.605,829,5.085,1073,7.564,2017,5.637,2484,5.594,2486,4.27,5799,9.504,5800,11.394,5801,11.048,5802,8.887,5803,8.47]],["title/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.231,5801,5.503]],["body/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.25,2,0.825,3,0.017,4,0.017,5,0.009,7,0.112,26,2.62,27,0.532,29,0.924,30,0.001,31,0.665,32,0.18,33,0.533,47,0.837,55,2.121,95,0.141,99,1.229,101,0.012,103,0.001,104,0.001,112,0.783,138,2.315,149,4.226,150,1.678,245,3.543,379,0.921,556,1.856,564,4.055,814,3.703,1237,4.202,1982,2.93,2017,5.855,2484,5.995,2486,4.379,5056,6.013,5789,4.898,5800,12.211,5801,9.993,5804,6.811,5805,7.767,5806,6.278,5807,8.081,5808,9.114,5809,9.858,5810,6.811,5811,6.811,5812,6.811,5813,9.294,5814,6.811,5815,6.811,5816,6.445,5817,6.171,5818,6.811,5819,7.367,5820,7.367,5821,6.811,5822,4.825,5823,6.811,5824,6.811,5825,5.771,5826,6.811]],["title/classes/ContextExternalToolContextParams.html",[0,0.231,5827,5.705]],["body/classes/ContextExternalToolContextParams.html",[0,0.373,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,27,0.449,30,0.001,32,0.15,47,0.775,95,0.152,101,0.014,103,0.001,104,0.001,112,0.871,138,1.996,142,4.943,143,2.814,144,3.963,145,3.508,148,2.757,150,1.979,245,3.154,556,2.188,564,4.086,803,4.478,834,2.723,847,4.149,1866,8.499,1867,4.226,1871,6.19,2430,7.582,2486,3.988,2860,5.407,4803,7.217,5763,6.995,5827,9.193,5828,9.72,5829,8.687,5830,7.565,5831,7.599,5832,8.687,5833,8.687,5834,8.687,5835,8.687,5836,8.687,5837,7.599]],["title/entities/ContextExternalToolEntity.html",[154,1.456,5838,4.953]],["body/entities/ContextExternalToolEntity.html",[0,0.238,3,0.016,4,0.016,5,0.008,7,0.106,27,0.514,29,0.906,30,0.001,32,0.171,33,0.458,47,0.886,55,2.333,95,0.154,96,1.928,101,0.016,103,0.001,104,0.001,105,0.757,112,0.758,131,2.629,138,2.282,143,2.59,144,2.312,154,2.039,155,2.342,160,4.004,172,4.171,173,2.076,174,3.795,178,2.916,180,1.258,181,1.879,182,2.283,564,4.273,654,2.088,1338,5.221,1669,4.968,2486,2.327,4266,5.002,4272,5.207,4273,4.259,4803,6.979,5039,4.974,5399,6.833,5763,7.465,5767,5.927,5787,4.472,5788,4.821,5789,4.667,5790,5.106,5791,5.002,5792,5.221,5830,7.315,5838,6.94,5839,10.754,5840,5.672,5841,9.744,5842,7.02,5843,10.176,5844,7.02,5845,7.02,5846,9.273,5847,7.02,5848,8.46,5849,7.02,5850,7.02,5851,5.88,5852,4.533,5853,7.994,5854,6.49,5855,6.49,5856,6.49,5857,6.141,5858,5.88,5859,5.672,5860,5.88]],["title/classes/ContextExternalToolFactory.html",[0,0.231,5861,6.296]],["body/classes/ContextExternalToolFactory.html",[0,0.159,2,0.524,3,0.011,4,0.011,5,0.006,7,0.071,8,0.854,27,0.528,29,1.021,30,0.001,31,0.706,32,0.182,33,0.596,34,1.469,35,1.44,47,0.826,49,1.847,55,2.444,59,3.394,95,0.138,96,1.286,97,2.03,101,0.008,103,0,104,0,112,0.566,120,3.135,133,2.492,140,2.622,153,1.961,154,1.844,155,2.378,177,1.304,180,1.277,236,1.159,271,4.862,319,3.217,333,1.982,349,0.736,379,0.586,382,3.848,413,2.194,437,0.922,447,7.019,448,4.478,449,5.447,452,4.026,453,5.447,454,5.558,455,4.026,456,4.026,457,4.026,458,3.955,459,4.426,460,4.874,461,6.441,462,5.757,463,6.974,464,2.671,469,2.646,470,4.026,471,2.671,472,5.095,473,5.26,474,4.118,475,4.947,476,3.99,477,2.646,478,2.494,479,4.092,480,3.395,481,2.577,482,2.534,483,2.646,484,5.019,485,2.671,486,3.521,487,4.787,488,2.646,489,7.122,490,4.15,491,6.614,492,2.671,493,3.534,494,2.646,495,2.671,496,2.646,497,2.671,498,2.646,501,2.646,502,6.063,503,2.671,504,2.646,505,4.026,506,3.766,507,4.026,508,2.671,509,2.555,510,2.534,511,2.092,512,2.646,513,2.646,514,2.646,515,2.671,516,2.671,517,1.795,518,2.646,519,1.451,520,2.671,521,2.822,522,2.646,523,2.671,525,2.723,526,2.78,527,2.81,556,2.173,564,2.648,708,2.96,1837,2.403,1839,2.308,1864,1.734,1866,2.945,1871,3.337,2486,1.553,2580,4.667,3540,3.024,4126,3.068,4206,3.706,4314,6.146,4316,3.406,5399,2.751,5766,3.068,5767,2.386,5768,5.432,5770,3.923,5861,7.974,5862,7.125,5863,3.784,5864,7.125,5865,7.125,5866,4.683,5867,7.011,5868,3.669,5869,3.163,5870,4.683]],["title/classes/ContextExternalToolIdParams.html",[0,0.231,5871,5.191]],["body/classes/ContextExternalToolIdParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,47,0.83,95,0.149,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,142,4.6,143,2.618,144,3.2,145,3.265,148,3.083,150,2.213,245,3.083,256,6.922,564,4.035,803,4.799,2486,3.899,3232,7.082,5763,6.838,5828,9.502,5871,8.964,5872,8.138,5873,8.498]],["title/classes/ContextExternalToolIdParams-1.html",[0,0.192,708,2.352,5871,4.316]],["body/classes/ContextExternalToolIdParams-1.html",[0,0.402,2,1.101,3,0.023,4,0.023,5,0.012,7,0.149,26,2.693,27,0.403,30,0.001,32,0.134,95,0.161,99,1.64,101,0.016,103,0.001,104,0.001,112,0.941,138,1.788,148,3.12,150,2.24,245,3.106,256,7.007,564,3.637,803,4.834,2484,5.377,2486,3.927,3232,7.119,5871,9.03,5874,10.952,5875,7.152,5876,7.946]],["title/modules/ContextExternalToolModule.html",[201,1.804,3529,5.335]],["body/modules/ContextExternalToolModule.html",[0,0.257,3,0.018,4,0.018,5,0.009,30,0.001,95,0.163,101,0.012,103,0.001,104,0.001,201,2.981,203,2.719,204,2.922,205,3.007,206,2.994,207,2.982,208,4.122,209,4.232,214,5.949,218,3.989,219,2.945,220,2.876,225,3.956,226,1.081,560,3.113,564,3.681,654,2.249,1274,2.392,2486,3.325,3529,11.215,5079,4.353,5375,9.326,5385,6.109,5763,4.396,5793,11.135,5877,7.56,5878,7.56,5879,7.56,5880,7.56,5881,9.773,5882,10.044,5883,8.899,5884,11.544,5885,11.544,5886,7.56]],["title/classes/ContextExternalToolPostParams.html",[0,0.231,5887,5.705]],["body/classes/ContextExternalToolPostParams.html",[0,0.378,2,0.828,3,0.017,4,0.017,5,0.009,7,0.112,27,0.522,29,0.867,30,0.001,32,0.183,33,0.57,47,0.899,55,2.126,95,0.157,101,0.012,103,0.001,104,0.001,112,0.785,138,2.317,143,1.646,148,2.346,149,4.234,150,1.685,245,3.246,248,4.124,249,4.503,564,4.283,654,2.199,803,4.542,847,3.532,1866,7,1867,3.597,2344,4.217,2486,4.313,3431,7.041,4803,6.678,5399,6.538,5536,6.296,5763,7.565,5767,5.672,5828,10.512,5830,7,5837,6.468,5867,8.096,5887,8.278,5888,6.836,5889,7.985,5890,7.394,5891,7.394,5892,7.394,5893,5.378,5894,7.394,5895,9.438,5896,6.194,5897,6.194,5898,6.194,5899,7.394,5900,6.836,5901,6.836,5902,7.394,5903,4.65,5904,5.534,5905,5.636]],["title/interfaces/ContextExternalToolProps.html",[105,0.735,5770,5.705]],["body/interfaces/ContextExternalToolProps.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,29,0.987,30,0.001,32,0.178,33,0.587,34,2.082,47,0.935,55,2.728,95,0.161,101,0.017,103,0.001,104,0.001,105,0.858,107,1.907,112,0.823,131,2.977,180,1.424,181,2.127,349,0.821,564,3.542,654,2.364,1276,2.484,1683,6.028,1837,4.079,1839,3.917,2580,8.305,3727,4.823,5399,7.778,5763,4.622,5764,6.954,5765,6.227,5766,8.972,5767,6.461,5768,9.664,5769,6.059,5770,9.663,5775,10.245,5779,6.227,5780,5.285,5781,5.664,5782,6.059,5783,7.349,5784,7.349,5785,7.349,5786,7.349,5787,5.064,5788,5.459,5789,5.285,5790,5.782,5791,7.386,5792,5.912]],["title/injectables/ContextExternalToolRepo.html",[539,0.901,5383,5.335]],["body/injectables/ContextExternalToolRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.708,10,2.4,12,2.71,18,2.989,26,2.419,27,0.529,29,1.013,30,0.001,31,0.719,32,0.181,33,0.616,34,1.683,35,1.531,36,2.568,40,2.856,47,0.522,95,0.155,96,1.623,97,1.597,101,0.006,103,0,104,0,112,0.293,131,2.213,133,2.066,154,1.979,155,1.229,173,1.089,177,1.081,180,1.059,226,0.527,227,1.517,236,1.689,262,2.813,310,2.56,349,1.227,379,0.461,381,1.237,382,3.641,437,1.44,448,3.031,486,1.777,519,1.141,529,1.671,539,0.782,541,0.882,564,3.802,603,2.537,608,1.362,662,2.325,680,4.13,686,2.788,687,4.686,718,2.045,738,3.086,748,3.223,1242,4.871,1274,1.165,1338,2.74,1601,3.129,1715,1.552,1837,5.712,1839,2.911,1866,6.529,1869,3.715,1871,4.209,1874,5.168,1938,2.101,2026,2.379,2237,8.595,2239,4.209,2240,4.209,2241,4.209,2242,4.209,2243,4.13,2244,4.13,2245,4.209,2246,4.13,2247,4.209,2248,2.679,2249,4.871,2250,3.467,2251,3.819,2253,4.296,2254,2.625,2256,4.871,2257,2.625,2259,2.625,2261,2.413,2262,4.13,2263,2.625,2265,2.625,2267,4.209,2271,4.209,2273,3.99,2274,4.13,2276,2.625,2278,2.21,2279,2.261,2280,2.625,2282,2.625,2284,2.576,2285,2.625,2291,2.488,2302,2.576,2303,4.393,2325,4.948,2338,3.223,2565,1.815,3540,4.775,4206,1.25,4386,2.347,4486,3.47,4689,3.927,4691,3.098,4803,2.21,5383,4.627,5399,3.47,5504,3.004,5766,6.065,5767,3.01,5768,4.503,5775,5.975,5830,2.317,5838,8.306,5841,4.948,5843,9.082,5848,2.679,5852,3.815,5853,8.279,5867,2.679,5906,9.976,5907,3.223,5908,5.461,5909,5.907,5910,5.907,5911,5.907,5912,3.684,5913,5.461,5914,9.598,5915,3.684,5916,8.645,5917,5.907,5918,3.684,5919,5.461,5920,3.684,5921,4.948,5922,3.406,5923,3.684,5924,5.907,5925,3.684,5926,5.907,5927,3.684,5928,3.684,5929,3.684,5930,2.679,5931,2.679,5932,2.679,5933,2.679,5934,2.679,5935,2.679,5936,2.679,5937,2.679,5938,2.679,5939,3.684,5940,3.684,5941,3.684,5942,2.625,5943,4.209,5944,2.977,5945,3.223,5946,2.808,5947,3.684,5948,3.435,5949,3.406,5950,2.576,5951,5.907,5952,3.684,5953,3.684,5954,3.684,5955,3.684,5956,3.684,5957,3.406,5958,3.684,5959,3.684,5960,3.406,5961,3.684,5962,3.406,5963,3.406,5964,3.684,5965,3.684,5966,3.684,5967,3.684,5968,3.684,5969,3.684,5970,3.406,5971,3.406,5972,5.907,5973,5.907,5974,5.907]],["title/classes/ContextExternalToolRequestMapper.html",[0,0.231,5975,5.958]],["body/classes/ContextExternalToolRequestMapper.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,8,1.254,27,0.428,29,0.904,30,0.001,31,0.65,32,0.159,33,0.502,34,1.373,35,1.257,95,0.156,101,0.013,103,0.001,104,0.001,141,3.85,349,1.199,413,4.019,480,2.238,564,4.135,603,2.332,654,2.397,785,4.024,2486,3.85,2580,7.606,5399,4.735,5763,6.753,5766,5.28,5767,4.107,5768,6.144,5780,5.359,5867,5.863,5887,10.295,5895,9.707,5905,6.144,5942,5.743,5975,9.151,5976,10.736,5977,6.513,5978,10.46,5979,10.159,5980,10.46,5981,8.06,5982,10.159,5983,7.051,5984,8.06,5985,8.762,5986,7.051,5987,8.06,5988,8.06,5989,8.06,5990,8.06,5991,8.06,5992,7.452,5993,7.051,5994,6.752,5995,7.051]],["title/classes/ContextExternalToolResponse.html",[0,0.231,5996,5.503]],["body/classes/ContextExternalToolResponse.html",[0,0.231,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,27,0.539,29,0.894,30,0.001,31,0.381,32,0.182,33,0.577,34,1.817,47,0.94,55,2.01,95,0.135,101,0.011,103,0.001,104,0.001,112,0.742,138,2.359,149,4.578,150,1.551,245,3.524,379,0.851,404,2.777,480,1.89,486,2.048,556,1.714,564,4.328,654,2.024,814,3.421,819,2.388,834,2.134,1866,7.568,1867,3.311,2859,4.177,4803,6.401,5399,6.267,5763,7.741,5767,5.436,5787,4.336,5789,4.525,5791,4.85,5806,6.028,5822,4.458,5828,10.757,5830,6.709,5857,5.954,5859,5.5,5867,7.759,5905,5.188,5996,9.724,5997,5.954,5998,7.55,5999,8.173,6000,5.954,6001,5.954,6002,5.954,6003,5.954,6004,8.995,6005,5.954,6006,5.954,6007,5.954,6008,5.188,6009,6.292,6010,6.806,6011,6.806,6012,6.806,6013,6.806,6014,5.954,6015,6.292,6016,5.954]],["title/classes/ContextExternalToolResponseMapper.html",[0,0.231,6017,5.705]],["body/classes/ContextExternalToolResponseMapper.html",[0,0.226,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,8,1.103,27,0.466,29,0.93,30,0.001,31,0.669,32,0.155,33,0.546,34,1.134,35,1.367,95,0.144,101,0.011,103,0.001,104,0.001,236,1.716,347,3.371,349,1.233,413,4.158,437,1.544,480,1.849,564,4.111,603,2.118,654,1.981,777,3.953,785,3.325,819,3.23,1715,2.805,1837,6.128,1843,6.157,1870,5.826,2486,3.959,3667,5.826,3669,4.428,4486,6.683,4803,3.996,5399,3.912,5763,6.944,5767,4.69,5806,3.763,5830,4.188,5867,4.844,5895,9.102,5905,5.076,5976,11.04,5979,9.227,5983,5.826,5985,7.71,5994,5.579,5995,5.826,5996,9.649,6004,10.106,6017,7.71,6018,9.204,6019,9.204,6020,9.204,6021,9.204,6022,5.826,6023,9.204,6024,9.982,6025,6.659,6026,10.229,6027,9.204,6028,6.157,6029,6.157,6030,5.579,6031,6.157,6032,5.217,6033,4.656,6034,5.826,6035,6.659,6036,6.659,6037,6.659,6038,6.659,6039,8.509,6040,6.659,6041,6.659,6042,5.381,6043,6.157,6044,6.157,6045,5.826,6046,5.579,6047,6.157,6048,6.659]],["title/injectables/ContextExternalToolRule.html",[539,0.901,1698,5.705]],["body/injectables/ContextExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.17,27,0.452,29,0.859,30,0.001,31,0.618,32,0.161,33,0.529,35,1.173,95,0.161,101,0.012,103,0.001,104,0.001,119,2.579,131,4.131,154,2.85,177,1.329,226,1.038,239,3.092,345,2.311,349,1.008,379,0.908,437,0.939,539,1.292,541,1.738,564,3.891,604,4.481,662,3.985,1276,2.269,1606,6.383,1634,7.872,1655,4.356,1672,7.856,1698,8.178,1813,4.689,1817,6.063,1824,6.491,1837,6.755,1839,3.578,3349,6.491,3350,4.904,3353,6.394,3356,4.904,3357,6.594,3358,7.261,3540,6.304,5838,9.7,5852,4.689,6049,11.794,6050,6.712,6051,6.712,6052,6.712,6053,6.712,6054,6.956,6055,7.26,6056,7.26]],["title/classes/ContextExternalToolScope.html",[0,0.231,5916,5.958]],["body/classes/ContextExternalToolScope.html",[0,0.216,2,0.714,3,0.015,4,0.015,5,0.008,7,0.097,8,1.07,26,2.783,27,0.531,29,0.948,30,0.001,31,0.682,32,0.177,33,0.584,34,1.755,35,1.463,95,0.142,99,1.063,101,0.011,103,0.001,104,0.001,112,0.709,119,2.097,180,1.6,227,2.624,310,2.763,349,1.153,382,3.546,480,1.77,486,1.918,519,1.975,556,3.462,564,3.74,603,2.447,1866,7.021,2288,6.116,3540,4.117,4803,6.182,5504,5.269,5830,6.48,5838,4.637,5841,5.34,5852,4.117,5867,7.494,5869,4.306,5906,10.866,5916,11.494,6057,5.577,6058,6.03,6059,6.03,6060,6.03,6061,8.928,6062,8.928,6063,8.928,6064,8.928,6065,6.03,6066,6.03,6067,4.378,6068,4.306,6069,4.378,6070,4.378,6071,8.928,6072,6.375,6073,8.928,6074,6.375,6075,8.928,6076,6.375,6077,8.928,6078,6.375,6079,4.306,6080,6.03,6081,4.378,6082,4.306,6083,4.378,6084,4.306,6085,7.541]],["title/classes/ContextExternalToolSearchListResponse.html",[0,0.231,6086,5.958]],["body/classes/ContextExternalToolSearchListResponse.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,27,0.466,29,0.717,30,0.001,31,0.516,32,0.169,33,0.442,95,0.144,101,0.015,103,0.001,104,0.001,112,0.903,131,3.447,138,1.674,150,2.097,245,2.983,284,4.094,379,1.151,556,2.318,564,4.202,808,8.799,809,6.434,812,6.489,814,4.626,829,5.108,2486,4.094,5763,7.181,5802,8.913,5828,9.979,5996,11.059,6086,9.953,6087,8.051]],["title/injectables/ContextExternalToolService.html",[539,0.901,5883,4.398]],["body/injectables/ContextExternalToolService.html",[0,0.213,3,0.015,4,0.015,5,0.007,7,0.095,8,1.057,12,4.047,26,2.636,27,0.51,29,0.969,30,0.001,31,0.697,32,0.17,33,0.597,35,1.455,36,2.786,95,0.148,99,1.045,101,0.01,103,0,104,0,131,2.347,177,1.147,226,0.896,227,2.579,262,3.032,310,2.715,345,1.994,349,1.144,379,0.784,437,1.51,539,1.167,541,1.5,564,4.23,608,2.869,1715,2.639,1837,6.959,2486,2.924,3232,3.508,5383,9.49,5392,5.063,5763,7.389,5766,7.935,5768,4.776,5794,11.116,5795,5.793,5807,6.415,5867,4.557,5883,5.696,5914,10.243,5942,4.464,5986,5.481,6088,8.82,6089,7.716,6090,8.82,6091,8.82,6092,8.82,6093,6.265,6094,8.82,6095,6.265,6096,8.82,6097,6.265,6098,8.82,6099,6.265,6100,8.82,6101,5.793,6102,8.82,6103,5.793,6104,8.82,6105,6.265,6106,8.686,6107,6.265,6108,6.265,6109,8.82,6110,6.265,6111,8.82,6112,6.265,6113,6.265]],["title/injectables/ContextExternalToolUc.html",[539,0.901,6114,5.705]],["body/injectables/ContextExternalToolUc.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.066,8,0.805,26,2.944,27,0.453,29,0.86,30,0.001,31,0.619,32,0.156,33,0.53,34,1.144,35,1.273,36,2.548,39,3.222,47,0.58,95,0.155,99,0.723,101,0.007,103,0,104,0,131,4.638,177,1.833,226,0.62,236,1.629,239,1.886,262,2.875,349,1.034,379,0.84,437,1.672,529,1.9,539,0.889,541,1.038,560,1.785,564,4.053,603,2.293,608,3.003,643,2.984,654,1.997,662,3.331,1150,1.724,1606,5.42,1612,2.63,1695,5.84,1715,1.826,1784,3.089,1789,3.396,1792,5.875,1793,2.63,1795,3.396,1836,5.334,1837,6.813,1839,2.136,1866,5.822,1867,2.109,1893,5.875,2469,1.968,2486,3.512,2982,2.427,3232,6.187,3798,3.153,4206,4.063,4803,5.554,5763,6.639,5766,4.399,5830,5.822,5883,7.136,5884,9.256,5942,3.089,5982,11.099,6032,3.396,6042,6.642,6089,5.875,6114,5.625,6115,11.418,6116,3.792,6117,7.6,6118,8.22,6119,6.209,6120,7.6,6121,7.6,6122,4.335,6123,7.879,6124,7.346,6125,4.008,6126,4.335,6127,4.335,6128,6.715,6129,4.335,6130,4.335,6131,6.381,6132,4.335,6133,6.715,6134,4.335,6135,4.335,6136,4.335,6137,4.335,6138,4.335,6139,3.396,6140,2.66,6141,4.335,6142,8.22,6143,4.884,6144,6.715,6145,6.209,6146,4.335,6147,4.335,6148,8.098,6149,6.715,6150,6.209,6151,6.715,6152,3.396,6153,4.335,6154,6.209,6155,4.335,6156,4.335,6157,3.304,6158,9.257,6159,4.335,6160,4.335,6161,6.209,6162,4.335]],["title/injectables/ContextExternalToolValidationService.html",[539,0.901,5884,5.705]],["body/injectables/ContextExternalToolValidationService.html",[0,0.224,3,0.015,4,0.015,5,0.008,7,0.1,8,1.096,27,0.43,29,0.817,30,0.001,31,0.667,32,0.143,33,0.503,35,1.098,36,1.945,95,0.166,101,0.011,103,0.001,104,0.001,131,3.424,168,3.761,177,2.074,226,0.943,236,1.073,262,2.698,283,5.61,301,4.384,340,3.169,379,1.143,437,1.182,529,1.866,539,1.21,541,1.578,564,4.169,569,4.699,590,4.047,603,2.536,608,2.611,654,2.719,696,2.601,1715,2.777,1756,4.529,1836,4.869,1837,6.858,1839,4.504,1864,3.385,2145,5.546,2486,4.186,2565,4.504,3460,5.524,3851,5.328,3852,4.529,5071,4.201,5382,9.89,5409,5.166,5422,5.769,5424,6.096,5763,6.588,5768,5.026,5794,9.911,5883,7.951,5884,7.658,6032,5.166,6033,4.61,6034,5.769,6124,8.394,6131,4.201,6140,5.61,6143,4.796,6163,9.141,6164,5.988,6165,6.096,6166,7.748,6167,6.594,6168,9.141,6169,9.141,6170,6.594,6171,5.166,6172,5.328,6173,6.594,6174,6.594,6175,6.594,6176,6.096,6177,7.658,6178,6.096,6179,6.594,6180,6.594,6181,5.769,6182,6.096,6183,6.594,6184,6.594,6185,6.594,6186,6.594,6187,6.594,6188,6.594]],["title/classes/ContextRef.html",[0,0.231,5766,4.461]],["body/classes/ContextRef.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.51,29,0.732,30,0.001,31,0.526,32,0.185,33,0.451,34,2.123,47,0.813,95,0.119,101,0.015,103,0.001,104,0.001,112,0.915,181,3.084,379,1.175,381,3.156,404,3.835,405,5.171,564,3.99,1866,7.838,1867,4.572,2504,4.198,4344,5.638,5763,7.556,5764,11.367,5766,8.734,6189,8.688,6190,10.654,6191,8.688]],["title/classes/ContextRefParams.html",[0,0.231,6192,5.958]],["body/classes/ContextRefParams.html",[0,0.39,2,1.045,3,0.022,4,0.022,5,0.011,7,0.141,26,2.632,27,0.47,30,0.001,32,0.17,95,0.164,99,1.557,101,0.015,103,0.001,104,0.001,112,0.911,138,2.087,148,2.961,150,2.126,245,3.258,803,4.682,847,4.457,1866,8.369,1867,4.54,2484,5.64,4803,7.455,5830,7.814,5837,8.163,5874,11.488,5875,6.787,6192,10.038,6193,9.331,6194,9.331,6195,9.331,6196,9.331]],["title/injectables/ConverterUtil.html",[539,0.901,2138,5.705]],["body/injectables/ConverterUtil.html",[0,0.429,3,0.023,4,0.023,5,0.012,7,0.147,8,1.406,27,0.396,29,0.913,30,0.001,31,0.542,32,0.16,33,0.464,35,1.161,47,0.891,95,0.149,101,0.016,103,0.001,104,0.001,153,2.198,226,1.382,349,0.999,479,4.915,539,1.552,541,2.314,2138,9.822,4649,10.257,6197,9.668,6198,11.725,6199,11.725,6200,9.668,6201,9.668,6202,9.668,6203,8.938,6204,9.668]],["title/classes/CookiesDto.html",[0,0.231,6205,5.705]],["body/classes/CookiesDto.html",[0,0.332,2,1.096,3,0.023,4,0.023,5,0.012,7,0.148,27,0.52,29,0.762,30,0.001,31,0.548,32,0.173,33,0.47,47,0.93,101,0.016,103,0.001,104,0.001,112,0.938,181,3.161,379,1.224,381,3.287,6205,11.297,6206,9.785,6207,11.098,6208,11.098,6209,11.811,6210,9.785,6211,9.785,6212,9.785,6213,9.785,6214,9.785]],["title/classes/CopyApiResponse.html",[0,0.231,6215,5.335]],["body/classes/CopyApiResponse.html",[0,0.226,2,0.744,3,0.016,4,0.016,5,0.008,7,0.101,27,0.518,29,0.518,30,0.001,31,0.372,32,0.191,33,0.628,34,2.155,47,0.935,95,0.117,100,3.088,101,0.011,103,0.001,104,0.001,112,0.73,138,2.245,149,4.54,150,1.515,153,3.012,245,2.763,319,4.15,347,4.794,379,1.15,556,1.675,769,3.364,814,4.621,834,3.564,844,6.567,1203,4.117,1209,5.849,1220,5.148,1390,10.102,1864,3.405,1880,5.333,1924,3.905,2418,6.678,2504,2.97,2722,3.412,2979,9.349,2980,8.876,2981,4.034,3264,8.043,5330,7.202,6215,10.102,6216,10.802,6217,6.648,6218,7.202,6219,6.314,6220,6.112,6221,9.219,6222,6.648,6223,8.043,6224,6.648,6225,6.147,6226,8.499,6227,6.551,6228,6.648,6229,6.648,6230,8.499,6231,6.648,6232,6.648,6233,6.648,6234,6.648]],["title/classes/CopyFileDto.html",[0,0.231,6235,5.191]],["body/classes/CopyFileDto.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,26,2.777,27,0.521,29,0.69,30,0.001,31,0.713,32,0.174,33,0.582,34,2.068,47,0.784,95,0.141,99,1.478,101,0.015,103,0.001,104,0.001,107,2.126,112,0.882,284,2.736,379,1.108,404,3.615,556,2.798,812,6.336,1982,3.523,3538,6.459,6235,8.469,6236,6.082,6237,13.108,6238,8.859,6239,8.07,6240,10.661,6241,11.11,6242,8.859,6243,8.859,6244,7.159,6245,7.159,6246,7.159,6247,7.159]],["title/classes/CopyFileListResponse.html",[0,0.231,6248,5.335]],["body/classes/CopyFileListResponse.html",[0,0.369,2,0.672,3,0.014,4,0.014,5,0.007,7,0.091,27,0.471,29,0.467,30,0.001,31,0.559,32,0.177,33,0.551,34,1.458,47,0.903,55,2.973,56,6.077,59,2.659,70,6.275,83,1.843,95,0.138,101,0.018,103,0,104,0,112,0.68,138,1.977,149,3.793,150,1.368,154,1.283,180,1.787,245,3.554,247,2.628,284,3.797,379,0.751,382,3.28,404,3.492,556,1.512,810,7.713,811,6.653,812,6.2,814,3.017,816,4.576,817,2.885,818,4.792,819,2.107,820,4.197,821,5.527,822,4.928,823,3.933,824,3.198,825,4.197,826,4.197,828,5.382,829,4.75,834,3.126,1161,4.851,1165,4.703,1194,2.064,1295,3.362,1982,3.403,2720,6.271,2860,4.914,3570,2.939,6236,3.971,6239,3.992,6244,4.851,6245,4.851,6246,4.851,6247,4.851,6248,6.704,6249,5.606,6250,5.029,6251,9.846,6252,6.004,6253,6.004,6254,5.135,6255,5.931,6256,8.188,6257,6.532,6258,3.126,6259,8.085,6260,5.029,6261,4.851,6262,5.029,6263,3.223,6264,5.029,6265,4.197,6266,5.029,6267,5.029,6268,5.029,6269,4.703,6270,4.851,6271,5.029,6272,5.029,6273,4.278,6274,4.851,6275,3.992,6276,4.851,6277,4.367,6278,5.029,6279,5.029,6280,4.851,6281,5.029,6282,4.465,6283,3.332,6284,2.958,6285,3.933,6286,4.465]],["title/classes/CopyFileParams.html",[0,0.231,6287,4.677]],["body/classes/CopyFileParams.html",[0,0.456,2,0.721,3,0.015,4,0.021,5,0.011,7,0.098,26,2.588,27,0.368,30,0.001,32,0.167,39,1.731,47,0.955,95,0.159,99,1.074,101,0.022,103,0.001,104,0.001,105,0.694,112,0.714,119,1.829,138,1.635,143,1.433,147,4.825,148,2.042,149,4.265,150,1.466,151,5.976,153,1.463,154,1.376,245,3.639,247,2.817,248,5.099,249,4.535,348,3.213,803,4.986,804,6.726,834,3.247,847,3.074,984,2.776,986,2.176,1075,3.78,1135,5.726,1136,4.216,1137,4.216,1194,2.212,1276,2.012,2677,5.325,2860,5.103,3570,3.151,4206,2.183,5904,6.604,6236,4.805,6249,6.784,6255,6.117,6284,3.171,6287,6.173,6288,4.499,6289,7.241,6290,5.63,6291,6.436,6292,8.124,6293,5.95,6294,6.436,6295,4.499,6296,8.124,6297,7.838,6298,7.838,6299,4.499,6300,4.42,6301,6.995,6302,4.42,6303,4.499,6304,4.347,6305,6.071,6306,4.279,6307,4.347,6308,4.42,6309,4.347,6310,4.347,6311,4.1,6312,4.499,6313,4.499,6314,4.499,6315,4.1,6316,4.1,6317,4.216,6318,4.279,6319,4.499]],["title/classes/CopyFileResponse.html",[0,0.231,6251,5.335]],["body/classes/CopyFileResponse.html",[0,0.381,2,0.723,3,0.015,4,0.015,5,0.008,7,0.098,27,0.46,29,0.503,30,0.001,31,0.661,32,0.167,33,0.498,34,1.912,47,0.948,55,2.701,56,5.428,70,5.605,83,1.982,95,0.142,101,0.018,103,0.001,104,0.001,112,0.715,138,1.887,149,4.27,150,1.471,154,1.38,180,1.614,245,3.61,247,2.826,284,3.647,379,0.807,404,3.676,810,6.367,811,4.875,812,6.403,818,3.615,828,5.665,829,5,834,3.252,1161,5.217,1165,5.058,1194,2.22,1295,3.615,1982,3.583,2717,4.601,2720,6.525,2860,5.112,3570,3.161,6236,5.479,6239,6.898,6244,5.217,6245,5.217,6246,5.217,6247,5.217,6248,5.058,6249,7.735,6250,5.409,6251,10.03,6254,5.405,6255,6.126,6256,8.414,6257,6.796,6258,3.362,6259,8.35,6260,5.409,6261,5.217,6262,5.409,6263,3.466,6264,5.409,6265,4.514,6266,5.409,6267,5.409,6268,5.409,6269,5.058,6270,5.217,6271,5.409,6272,5.409,6273,4.601,6274,5.217,6275,4.293,6276,5.217,6277,4.696,6278,5.409,6279,5.409,6280,5.217,6281,5.409,6282,4.802,6283,3.584,6284,3.181,6285,4.229,6286,4.802,6320,6.456,6321,6.456,6322,6.456,6323,6.456]],["title/classes/CopyFileResponseBuilder.html",[0,0.231,6324,6.296]],["body/classes/CopyFileResponseBuilder.html",[0,0.318,2,1.047,3,0.022,4,0.022,5,0.015,7,0.142,8,1.377,27,0.383,29,0.728,30,0.001,31,0.746,32,0.128,33,0.449,34,1.957,35,1.124,47,0.986,95,0.119,101,0.015,103,0.001,104,0.001,236,1.521,349,0.966,413,3.83,437,1.21,454,5.456,662,2.941,785,4.67,6236,5.331,6239,8.625,6251,10.62,6324,10.623,6325,11.49,6326,8.647,6327,11.49,6328,9.353]],["title/interfaces/CopyFiles.html",[105,0.735,6329,5.335]],["body/interfaces/CopyFiles.html",[3,0.022,4,0.022,5,0.014,7,0.14,30,0.001,32,0.156,47,1.012,55,1.985,95,0.117,101,0.021,103,0.001,104,0.001,105,1.393,107,2.213,112,0.905,284,3.519,1147,7.774,1149,6.042,1295,5.165,2032,5.801,6329,8.925,6330,7.226,6331,7.727,6332,10.433,6333,10.433,6334,5.877,6335,7.226,6336,6.449,6337,6.449,6338,6.449,6339,6.449,6340,6.709,6341,6.861,6342,6.573,6343,6.861,6344,6.861]],["title/classes/CopyFilesOfParentParamBuilder.html",[0,0.231,6345,5.958]],["body/classes/CopyFilesOfParentParamBuilder.html",[0,0.307,2,1.012,3,0.026,4,0.031,5,0.013,7,0.137,8,1.349,26,2.715,27,0.37,29,0.704,30,0.001,31,0.506,32,0.124,33,0.434,35,1.086,39,3.026,95,0.155,99,1.508,101,0.015,103,0.001,104,0.001,107,2.169,141,4.317,349,0.934,413,3.772,437,1.169,454,5.342,2677,5.787,3304,5.616,3538,5.543,6236,5.22,6258,5.857,6345,9.842,6346,11.249,6347,8.356,6348,11.249,6349,10.68,6350,8.356,6351,10.261,6352,8.356,6353,10.401]],["title/classes/CopyFilesOfParentParams.html",[0,0.231,6309,4.6]],["body/classes/CopyFilesOfParentParams.html",[0,0.457,2,0.735,3,0.015,4,0.021,5,0.011,7,0.099,26,2.604,27,0.269,30,0.001,32,0.162,39,1.765,47,0.951,95,0.16,99,1.095,101,0.022,103,0.001,104,0.001,105,0.708,112,0.723,119,1.854,138,1.193,143,1.461,147,4.891,148,2.082,149,4.3,150,1.495,151,6.057,153,1.492,154,1.402,245,3.648,247,2.872,248,5.13,249,4.573,348,3.276,803,5.016,804,6.783,834,3.281,847,3.134,984,2.83,986,2.218,1075,3.854,1135,5.804,1136,4.298,1137,4.298,1194,2.256,1276,2.051,2677,5.362,2860,5.157,3570,3.213,4206,2.226,5904,6.651,6236,4.227,6249,5.967,6255,6.169,6284,3.233,6287,4.507,6288,4.587,6289,4.587,6292,8.173,6293,6.067,6295,4.587,6296,8.173,6297,7.904,6298,7.904,6299,4.587,6300,4.507,6301,7.068,6302,4.507,6303,4.587,6304,4.432,6305,6.153,6306,4.363,6307,4.432,6308,4.507,6309,6.153,6310,4.432,6311,4.181,6312,4.587,6313,4.587,6314,4.587,6315,4.181,6316,4.181,6317,4.298,6318,4.363,6319,4.587,6354,6.562]],["title/classes/CopyFilesOfParentPayload.html",[0,0.231,6310,4.6]],["body/classes/CopyFilesOfParentPayload.html",[0,0.454,2,0.707,3,0.015,4,0.026,5,0.011,7,0.096,26,2.642,27,0.42,30,0.001,32,0.17,39,2.758,47,0.944,95,0.158,99,1.053,101,0.022,103,0.001,104,0.001,105,0.681,112,0.704,119,1.805,138,1.865,143,1.406,147,4.761,148,2.004,149,4.229,150,1.439,151,5.897,153,1.435,154,1.35,245,3.631,247,2.764,248,5.068,249,4.498,348,3.153,803,5.09,804,6.671,834,3.214,847,3.016,984,2.723,986,2.135,1075,3.709,1135,5.651,1136,4.136,1137,4.136,1194,2.171,1276,1.974,2677,5.287,2860,5.051,3570,3.092,4206,2.142,5904,6.985,6236,5.159,6249,7.283,6255,6.067,6284,3.112,6287,4.337,6288,4.415,6289,4.415,6292,8.293,6295,4.415,6296,8.074,6297,7.773,6298,7.773,6299,4.415,6300,4.337,6301,6.924,6302,4.337,6303,4.415,6304,4.265,6305,5.99,6306,4.198,6307,4.265,6308,4.337,6309,4.265,6310,5.99,6311,4.023,6312,4.415,6313,4.415,6314,4.415,6315,4.023,6316,4.023,6317,4.136,6318,4.198,6319,4.415,6355,6.314,6356,6.314,6357,6.314]],["title/injectables/CopyFilesService.html",[539,0.901,6358,5.705]],["body/injectables/CopyFilesService.html",[0,0.201,3,0.014,4,0.023,5,0.01,7,0.09,8,1.014,26,2.286,27,0.442,29,0.889,30,0.001,31,0.685,32,0.171,33,0.518,34,1.945,35,1.187,36,1.8,39,2.658,47,0.417,95,0.155,99,0.985,100,1.984,101,0.014,103,0,104,0,107,1.417,177,1.548,226,0.844,236,0.961,262,2.165,347,3.098,349,1.179,358,2.598,379,1.058,437,1.725,479,4.583,539,1.12,541,1.414,603,2.514,608,1.362,631,3.031,844,3.25,1203,1.886,1390,4.627,1559,3.721,2677,3.819,2945,8.642,2963,6.968,2979,4.627,2980,4.393,2981,3.584,2982,3.308,2995,8.453,2996,8.278,3003,4.948,3538,5.855,5487,5.541,5530,4.502,6235,9.326,6236,5.298,6239,6.57,6258,3.075,6309,3.99,6345,5.167,6358,7.086,6359,10.557,6360,5.907,6361,9.882,6362,8.459,6363,7.82,6364,5.907,6365,8.718,6366,5.907,6367,5.907,6368,5.907,6369,8.459,6370,5.907,6371,9.882,6372,11.311,6373,8.459,6374,5.907,6375,5.907,6376,5.167,6377,5.461,6378,8.459,6379,5.907,6380,5.907,6381,8.645,6382,5.907,6383,5.907,6384,5.907,6385,5.907,6386,7.82,6387,5.907,6388,7.4,6389,5.907,6390,5.907,6391,4.393,6392,5.907,6393,5.907,6394,5.461,6395,5.907,6396,8.459,6397,5.907,6398,5.461,6399,4.627,6400,4.773,6401,5.167,6402,8.459,6403,5.907,6404,5.907]],["title/modules/CopyHelperModule.html",[201,1.804,6405,4.953]],["body/modules/CopyHelperModule.html",[0,0.327,3,0.022,4,0.022,5,0.011,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.336,203,3.46,204,3.718,205,3.826,206,3.811,207,3.795,208,4.612,209,4.735,218,4.649,219,3.748,220,3.66,226,1.376,2945,10.36,6216,8.06,6405,10.047,6406,9.621,6407,9.621,6408,9.621,6409,8.895,6410,9.621,6411,8.895,6412,9.621]],["title/injectables/CopyHelperService.html",[539,0.901,2945,4.953]],["body/injectables/CopyHelperService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.12,26,1.442,27,0.437,29,0.831,30,0.001,31,0.713,32,0.146,33,0.512,35,1.282,47,0.915,95,0.146,101,0.011,103,0.001,104,0.001,133,2.38,226,0.973,236,1.107,250,6.31,347,4.553,349,1.315,437,1.608,480,1.89,486,2.048,539,1.237,541,1.629,696,2.684,708,3.881,844,3.745,1597,3.958,1684,4.227,1922,3.683,2439,3.332,2585,5.921,2945,6.795,2963,8.375,2980,7.935,2999,8.638,3003,5.701,3647,6.292,6216,9.619,6399,8.357,6413,11.483,6414,6.806,6415,9.343,6416,9.343,6417,9.343,6418,9.343,6419,6.806,6420,10.668,6421,9.343,6422,9.619,6423,6.806,6424,9.343,6425,6.806,6426,6.292,6427,6.806,6428,9.343,6429,6.806,6430,5.701,6431,6.806,6432,4.525,6433,6.806,6434,5.701,6435,4.85,6436,6.806,6437,6.806,6438,6.806,6439,6.806,6440,10.668,6441,6.806,6442,5.062,6443,9.343,6444,6.806,6445,9.343,6446,6.806,6447,6.806,6448,6.806,6449,6.806,6450,6.806,6451,6.806,6452,6.806]],["title/classes/CopyMapper.html",[0,0.231,6453,5.503]],["body/classes/CopyMapper.html",[0,0.24,2,0.791,3,0.017,4,0.017,5,0.008,7,0.107,8,1.149,26,2.724,27,0.446,29,0.847,30,0.001,31,0.609,32,0.159,33,0.522,35,1.307,39,3.52,95,0.163,99,1.179,100,4.223,101,0.012,103,0.001,104,0.001,236,1.15,271,3.75,347,2.589,349,1.124,413,4.084,437,1.509,778,5.322,1203,2.257,1858,4.58,2622,5.067,2624,4.283,2963,7.875,2980,5.258,2995,5.538,5066,4.289,6215,9.139,6216,9.773,6399,7.511,6426,6.536,6453,7.747,6454,7.069,6455,9.587,6456,9.587,6457,9.587,6458,9.773,6459,7.069,6460,10.059,6461,9.587,6462,9.773,6463,7.069,6464,10.059,6465,9.587,6466,7.069,6467,7.069,6468,8.864,6469,7.069,6470,7.069,6471,7.069,6472,7.069,6473,7.069,6474,7.069,6475,9.587,6476,9.587,6477,5.922,6478,7.069,6479,7.069,6480,7.069,6481,9.587,6482,7.069,6483,7.069,6484,7.069,6485,7.069,6486,7.069,6487,8.864,6488,6.536]],["title/modules/CoreModule.html",[201,1.804,6489,4.528]],["body/modules/CoreModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,30,0.001,95,0.162,101,0.013,103,0.001,104,0.001,153,1.847,201,3.382,203,2.922,204,3.14,205,3.231,206,3.218,207,3.205,208,2.976,209,4.383,214,6.462,218,4.182,219,3.166,220,3.091,225,4.147,226,1.162,986,3.941,1221,4.987,2250,3.33,3854,6.699,4633,8.808,6489,9.307,6490,8.125,6491,8.125,6492,8.125,6493,10.568,6494,10.956,6495,10.956,6496,8.125,6497,8.237,6498,8.237,6499,8.808,6500,9.721,6501,7.351,6502,10.514,6503,7.492,6504,7.82,6505,10.514,6506,7.351,6507,9.199,6508,9.721,6509,10.514,6510,8.808,6511,6.566]],["title/classes/County.html",[0,0.231,6512,5.705]],["body/classes/County.html",[0,0.347,2,0.871,3,0.018,4,0.018,5,0.009,7,0.118,27,0.497,29,0.606,30,0.001,31,0.724,32,0.166,33,0.373,47,0.963,55,2.199,83,3.138,95,0.13,96,2.137,101,0.019,103,0.001,104,0.001,105,0.84,112,0.812,143,2.276,144,3.76,145,2.838,154,2.185,172,3.87,173,2.301,174,4.065,175,3.44,178,3.232,180,1.394,181,2.082,182,2.531,376,3.388,377,3.531,379,0.973,406,5.024,407,5.93,408,5.024,409,5.93,1669,4.05,1982,4.065,2500,5.283,4272,5.577,4282,3.405,5806,5.775,5822,5.096,6512,11.326,6513,11.015,6514,6.806,6515,9.986,6516,9.986,6517,8.942,6518,7.78,6519,7.78,6520,7.78,6521,7.78,6522,8.562,6523,8.942,6524,8.942,6525,6.806,6526,6.806,6527,6.806,6528,6.806,6529,6.806,6530,6.806,6531,5.343,6532,6.806,6533,6.806,6534,6.095]],["title/entities/Course.html",[154,1.456,1864,2.522]],["body/entities/Course.html",[0,0.183,2,0.886,3,0.008,4,0.008,5,0.004,7,0.15,26,2.097,27,0.494,30,0.001,31,0.489,32,0.16,33,0.528,34,1.165,39,1.84,47,0.87,62,3.163,83,3.284,95,0.146,96,0.903,101,0.011,103,0,104,0,105,0.355,112,0.428,119,1.096,138,2.193,143,2.648,144,2.876,145,0.913,153,1.984,154,1.151,155,1.097,160,3.902,168,3.071,172,3.6,173,0.972,174,2.142,175,1.453,178,1.365,180,0.589,181,0.88,182,1.069,236,1.935,239,2.151,253,1.609,316,1.764,348,2.689,349,1.297,379,0.411,404,1.341,413,1.658,437,1.624,473,1.793,480,2.97,486,3.462,490,1.165,519,1.668,528,1.711,529,1.524,556,2.899,565,3.196,603,1.589,644,3.983,651,2.572,652,2.572,654,2.353,662,3.461,708,1.365,725,2.753,834,2.145,910,2.298,1158,2.572,1203,1.049,1276,1.027,1600,1.236,1654,2.557,1663,2.279,1669,2.804,1757,2.185,1864,3.472,1962,1.809,1982,3.146,2608,5.31,2611,6.279,2615,3.733,2623,2.298,2625,2.041,3060,3.445,3112,2.185,3113,2.123,3284,1.994,3392,2.094,3550,3.039,3689,2.342,3735,2.041,3759,3.527,3760,3.527,4057,1.931,4206,1.827,4207,5.53,4222,2.753,4256,4.976,4282,2.357,4357,5.561,4778,1.824,4914,2.017,5039,2.471,6442,2.445,6503,2.342,6535,2.875,6536,6.582,6537,5.896,6538,6.22,6539,5.259,6540,5.127,6541,4.698,6542,6.22,6543,5.49,6544,5.53,6545,6.349,6546,4.979,6547,4.711,6548,3.287,6549,4.711,6550,3.287,6551,3.287,6552,4.711,6553,3.478,6554,3.287,6555,4.711,6556,3.287,6557,6.92,6558,2.753,6559,3.287,6560,4.711,6561,3.287,6562,4.711,6563,3.287,6564,2.875,6565,3.287,6566,2.875,6567,3.287,6568,3.287,6569,6.325,6570,3.287,6571,4.711,6572,3.287,6573,3.287,6574,3.287,6575,2.041,6576,2.875,6577,2.875,6578,3.267,6579,3.837,6580,2.875,6581,5.088,6582,2.875,6583,3.917,6584,2.656,6585,3.163,6586,2.185,6587,3.527,6588,2.017,6589,3.387,6590,1.84,6591,4.352,6592,4.352,6593,2.875,6594,2.656,6595,2.342,6596,2.875,6597,2.875,6598,2.753,6599,2.445,6600,2.875,6601,2.875,6602,2.575,6603,2.875,6604,3.305,6605,9.964,6606,4.875,6607,2.656,6608,3.637,6609,2.123,6610,2.041,6611,1.972,6612,2.656,6613,2.875,6614,2.875,6615,4.711,6616,4.711,6617,4.711,6618,6.392,6619,4.352,6620,4.105,6621,4.711,6622,4.005,6623,4.105,6624,2.445,6625,2.875,6626,2.875,6627,2.094,6628,3.58,6629,2.875,6630,2.875,6631,2.875,6632,4.711,6633,2.875,6634,2.875,6635,2.875,6636,2.875,6637,2.875,6638,2.875,6639,2.875,6640,5.528,6641,5.985,6642,2.875,6643,2.875,6644,2.875,6645,2.875,6646,2.875,6647,2.391,6648,2.875,6649,2.875,6650,2.875,6651,2.875,6652,2.875,6653,2.22,6654,2.875,6655,2.753,6656,2.875,6657,5.985,6658,4.711,6659,2.875,6660,2.875,6661,2.656,6662,2.656,6663,2.257,6664,2.875,6665,5.528,6666,2.875,6667,2.875,6668,2.875,6669,2.875]],["title/controllers/CourseController.html",[259,2.591,6670,5.958]],["body/controllers/CourseController.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.103,8,1.116,27,0.381,29,0.725,30,0.001,31,0.522,32,0.145,33,0.447,35,1.118,36,2.438,56,4.502,70,4.648,95,0.169,100,2.274,101,0.011,103,0.001,104,0.001,138,1.693,143,1.508,150,1.543,177,1.948,223,2.788,226,0.968,236,1.731,247,2.964,259,2.576,261,3.215,262,2.72,270,6.226,294,6.391,310,4.611,333,3.94,337,3.5,338,3.579,343,3.607,349,0.962,379,0.847,437,1.554,529,1.916,584,6.97,598,3.899,603,2.137,608,2.146,811,5.039,819,4.462,831,8.011,1299,4.925,1559,4.681,2152,9.308,2193,3.766,2619,4.959,2879,6.97,2901,3.635,3717,3.978,4778,5.168,5047,9.308,6670,8.145,6671,6.771,6672,9.837,6673,6.771,6674,10.024,6675,10.024,6676,9.31,6677,6.771,6678,6.261,6679,7.207,6680,6.771,6681,6.289,6682,5.673,6683,4.063,6684,8.913,6685,6.771,6686,8.913,6687,6.261,6688,6.771,6689,5.673,6690,5.924,6691,6.771,6692,6.771,6693,6.771,6694,6.771,6695,6.771,6696,5.305,6697,6.771,6698,6.771,6699,5.673,6700,6.771,6701,6.771,6702,6.771,6703,6.771,6704,6.771,6705,5.673,6706,6.771]],["title/injectables/CourseCopyService.html",[539,0.901,6707,5.503]],["body/injectables/CourseCopyService.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.076,8,0.899,10,2.035,26,1.903,27,0.437,29,0.832,30,0.001,31,0.651,32,0.178,33,0.512,35,1.198,36,2.122,39,2.417,47,0.529,83,1.538,95,0.142,99,0.836,101,0.008,103,0,104,0,120,3.298,143,1.115,177,2.052,217,6.971,226,0.716,227,2.062,236,1.22,239,2.803,262,2.677,271,2.933,347,4.376,349,1.03,379,0.938,437,1.688,539,0.992,541,1.199,556,1.262,603,2.644,608,2.867,654,1.49,696,1.976,844,4.126,1150,1.992,1203,1.599,1741,6.8,1829,3.924,1858,4.292,1864,4.875,1879,3.726,1882,3.749,2418,2.943,2656,4.048,2929,9.733,2931,3.924,2941,8.642,2945,8.451,2951,3.924,2952,4.631,2963,7.238,2971,10.362,2978,4.197,2979,3.924,2980,3.726,2981,3.039,2982,2.805,2988,7.86,2994,4.382,2995,3.924,2996,4.197,3022,3.819,3268,3.57,4357,3.192,4771,4.382,6399,3.924,6422,6.281,6434,7.527,6536,3.331,6537,3.384,6542,3.57,6545,3.644,6707,6.058,6708,11.208,6709,7.527,6710,7.497,6711,7.497,6712,7.497,6713,4.197,6714,9.389,6715,4.631,6716,5.009,6717,7.497,6718,9.974,6719,5.009,6720,7.497,6721,12.439,6722,11.208,6723,7.497,6724,5.009,6725,5.009,6726,8.63,6727,6.559,6728,4.631,6729,5.009,6730,5.009,6731,5.009,6732,5.009,6733,5.009,6734,4.631,6735,5.009,6736,5.009,6737,5.009,6738,5.009,6739,5.009,6740,7.497,6741,5.009,6742,7.497,6743,5.009,6744,4.197,6745,5.009,6746,5.009,6747,5.009,6748,5.009,6749,5.009,6750,5.009,6751,4.631,6752,5.009,6753,5.009,6754,5.009,6755,7.497,6756,5.009,6757,5.009,6758,5.009,6759,5.009,6760,5.009,6761,5.009]],["title/injectables/CourseCopyUC.html",[539,0.901,6762,5.705]],["body/injectables/CourseCopyUC.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.208,26,2.776,27,0.463,29,0.785,30,0.001,31,0.565,32,0.138,33,0.484,35,1.211,36,2.145,39,2.712,95,0.166,99,1.271,101,0.013,102,3.829,103,0.001,104,0.001,119,1.55,131,3.776,177,1.845,226,1.089,236,1.239,262,2.475,349,0.787,379,1.261,437,1.461,519,2.36,529,2.155,539,1.334,541,1.823,560,3.136,603,2.512,608,2.323,643,3.386,1113,6.854,1158,3.639,1559,4.434,1612,4.622,1631,6.261,1739,9.419,1784,5.428,1858,5.973,2017,3.334,2018,4.935,2019,4.758,2020,6.422,2469,3.458,2963,4.92,2981,4.622,2982,4.266,3609,5.326,3798,5.541,6707,10.59,6709,8.444,6762,8.444,6763,11.116,6764,6.664,6765,10.072,6766,7.618,6767,7.618,6768,7.618,6769,9.319,6770,7.618,6771,6.664,6772,7.618,6773,7.618,6774,6.381,6775,7.043,6776,7.618,6777,6.664,6778,6.664,6779,4.92]],["title/injectables/CourseExportUc.html",[539,0.901,6686,5.705]],["body/injectables/CourseExportUc.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.125,8,1.272,26,2.829,27,0.435,29,0.826,30,0.001,31,0.594,32,0.145,33,0.509,35,0.99,36,2.258,39,3.45,95,0.166,99,1.375,101,0.014,103,0.001,104,0.001,131,3.975,177,1.942,226,1.178,262,2.572,349,0.851,379,1.327,437,1.066,539,1.404,541,1.973,603,2.131,608,1.9,643,3.663,1612,5,1695,6.203,1739,9.709,1784,5.873,1858,5.069,2469,3.741,3798,5.995,5041,10.382,5043,6.591,5047,9.283,5056,6.707,5057,8.512,5061,9.811,5079,4.746,6686,8.89,6763,10.851,6774,6.904,6780,8.242,6781,8.242,6782,8.242,6783,10.612,6784,8.242,6785,8.242,6786,8.242,6787,8.242,6788,8.242,6789,8.242]],["title/classes/CourseFactory.html",[0,0.231,6790,5.705]],["body/classes/CourseFactory.html",[0,0.15,2,0.495,3,0.01,4,0.01,5,0.005,7,0.067,8,0.818,27,0.535,29,1.01,30,0.001,31,0.706,32,0.18,33,0.597,34,1.419,35,1.417,47,0.482,55,2.712,59,3.141,95,0.128,99,0.738,101,0.007,103,0,104,0,112,0.542,120,3.002,133,2.386,140,2.478,153,2.298,154,2.161,155,2.277,177,1.249,180,1.223,236,1.11,271,4.984,319,3.081,349,1.044,379,0.553,382,3.802,413,2.101,437,1.558,447,7.14,448,4.378,449,5.289,452,3.856,453,5.289,454,5.6,455,3.856,456,3.856,457,3.856,458,3.787,459,4.273,460,4.706,461,6.49,462,5.612,463,6.963,464,2.524,469,2.501,470,3.856,471,2.524,472,4.947,473,5.107,474,3.998,475,4.803,476,3.821,477,2.501,478,2.357,479,4.001,480,3.192,481,2.435,482,2.395,483,2.501,484,4.873,485,2.524,486,3.458,487,4.622,488,2.501,489,7.27,490,4.076,491,6.496,492,2.524,493,4.13,494,2.501,495,2.524,496,2.501,497,2.524,498,2.501,499,2.819,500,2.627,501,2.501,502,5.929,503,2.524,504,2.501,505,3.856,506,3.606,507,3.856,508,2.524,509,2.415,510,2.395,511,1.977,512,2.501,513,2.501,514,2.501,515,2.524,516,2.524,517,1.697,518,2.501,519,1.371,520,2.524,521,2.702,522,2.501,523,2.524,525,2.573,526,2.627,527,5.615,648,3.153,649,3.373,654,1.316,1572,3.219,1864,3.084,3759,6.131,4357,4.347,6536,2.942,6543,4.291,6545,6.807,6591,3.576,6790,6.976,6791,4.425,6792,9.359,6793,6.309,6794,6.823,6795,4.425,6796,4.425,6797,6.309,6798,4.425,6799,4.091,6800,6.823,6801,4.425,6802,4.425,6803,3.467,6804,3.576,6805,8.328,6806,3.467,6807,5.075,6808,5.345,6809,4.091,6810,4.425,6811,4.425,6812,4.425,6813,3.467]],["title/entities/CourseGroup.html",[154,1.456,6585,4]],["body/entities/CourseGroup.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.188,26,2.419,27,0.468,30,0.001,31,0.64,32,0.173,39,1.806,47,0.806,62,3.944,95,0.166,96,1.845,101,0.015,103,0.001,104,0.001,105,0.999,112,0.841,138,2.077,154,1.978,155,2.241,172,3.382,173,1.986,174,3.681,175,2.969,178,2.79,180,1.203,181,1.797,182,2.184,236,1.506,239,2.124,349,0.694,437,0.868,480,1.864,486,2.02,519,2.08,556,2.332,644,5.21,654,3.396,662,2.911,760,3.727,910,4.695,970,3.247,986,2.27,1242,3.867,1276,2.099,1600,2.525,1654,3.189,1858,4.422,1864,4.917,1982,2.671,2334,3.83,2365,4.399,2608,5.712,2611,5.051,2615,3.664,2621,3.944,2623,4.695,2625,4.171,2638,4.399,2768,3.986,2821,2.954,3022,5.119,3390,4.612,4206,2.278,4282,2.939,5039,4.247,6218,5.261,6538,4.785,6543,7.18,6578,5.616,6585,5.437,6587,6.063,6588,4.121,6589,5.822,6590,3.76,6606,6.596,6610,4.171,6612,5.426,6627,4.278,6628,7.043,6665,5.426,6814,6.208,6815,5.875,6816,6.715,6817,6.715,6818,4.536,6819,6.208,6820,6.715,6821,6.715,6822,6.715,6823,7.754,6824,4.171,6825,4.465,6826,6.208,6827,6.208,6828,4.884,6829,6.208,6830,6.208,6831,6.208,6832,6.208,6833,6.208,6834,6.208]],["title/classes/CourseGroupFactory.html",[0,0.231,6835,6.296]],["body/classes/CourseGroupFactory.html",[0,0.167,2,0.552,3,0.012,4,0.012,5,0.006,7,0.075,8,0.888,27,0.533,29,1.022,30,0.001,31,0.714,32,0.182,33,0.604,34,1.516,35,1.461,47,0.523,55,2.666,59,3.295,95,0.134,99,0.822,101,0.008,103,0,104,0,112,0.588,120,3.259,133,2.59,140,2.761,153,2.023,154,2.267,155,2.472,177,1.356,180,1.327,271,4.922,319,3.344,349,0.765,379,0.617,382,3.889,413,2.281,437,1.151,447,7.277,448,4.566,449,5.591,452,4.186,453,5.591,454,5.775,455,4.186,456,4.186,457,4.186,458,4.112,459,4.566,460,5.028,461,6.543,462,5.887,463,7.103,464,2.812,469,2.786,470,4.186,471,2.812,472,5.229,473,5.399,474,4.226,475,5.077,476,4.148,477,2.786,478,2.626,479,4.173,480,3.301,481,2.713,482,2.668,483,2.786,484,5.151,485,2.812,486,3.577,487,4.939,488,2.786,489,7.203,490,4.216,491,6.719,492,2.812,493,4.413,494,2.786,495,2.812,496,2.786,497,2.812,498,2.786,499,3.141,500,2.926,501,2.786,502,6.184,503,2.812,504,2.786,505,4.186,506,3.915,507,4.186,508,2.812,509,2.69,510,2.668,511,2.202,512,2.786,513,2.786,514,2.786,515,2.812,516,2.812,517,1.89,518,2.786,519,1.527,520,2.812,521,2.934,522,2.786,523,2.812,525,2.867,526,2.926,527,2.958,648,3.513,649,3.758,1864,1.826,6543,4.659,6585,4.351,6790,4.13,6793,6.849,6797,6.849,6799,4.558,6809,4.558,6823,4.13,6835,8.227,6836,4.93,6837,4.93,6838,4.558,6839,4.93,6840,4.558]],["title/injectables/CourseGroupRepo.html",[539,0.901,1740,5.335]],["body/injectables/CourseGroupRepo.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,10,3.8,12,4.292,13,6.803,18,4.733,26,2.698,27,0.522,29,0.969,30,0.001,31,0.697,32,0.17,33,0.597,34,1.161,35,1.494,36,2.76,39,1.834,40,4.523,42,6.803,47,0.754,49,2.689,95,0.146,96,1.873,97,2.955,98,4.047,99,1.137,101,0.011,103,0.001,104,0.001,154,1.457,155,3.121,180,1.676,226,0.975,236,1.109,262,2.991,349,1.187,382,3.467,437,1.381,479,5.037,539,1.238,541,1.632,608,2.649,679,7.483,685,3.958,686,4.415,687,5.403,711,4.184,712,4.234,713,4.184,714,4.234,716,4.184,717,4.234,718,3.784,724,5.071,1740,7.328,1864,3.464,3635,4.682,5948,6.682,6538,8.188,6543,4.287,6585,6.75,6841,6.817,6842,8.648,6843,8.648,6844,6.817,6845,7.13,6846,6.817,6847,6.817,6848,6.817,6849,5.197,6850,6.817,6851,9.353]],["title/injectables/CourseGroupRule.html",[539,0.901,1699,5.503]],["body/injectables/CourseGroupRule.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,27,0.46,29,0.874,30,0.001,31,0.629,32,0.163,33,0.539,35,1.2,95,0.158,101,0.012,103,0.001,104,0.001,119,2.434,131,4.48,154,2.836,177,1.829,226,1.075,239,3.081,345,2.393,349,1.032,379,0.94,437,1.547,539,1.322,541,1.8,603,1.51,604,3.055,662,4.025,1276,2.35,1606,6.473,1609,5.499,1610,6.888,1624,5.163,1634,7.951,1637,8.742,1655,4.511,1672,7.256,1699,8.075,1700,9.716,1813,6.453,1817,6.206,1824,4.999,3349,6.644,3350,5.078,3353,6.545,3356,5.078,3357,6.749,6543,4.728,6585,7.793,6852,11.96,6853,7.518,6854,7.518,6855,7.518,6856,7.518,6857,6.577,6858,6.577,6859,6.298,6860,6.577]],["title/injectables/CourseGroupService.html",[539,0.901,6861,6.296]],["body/injectables/CourseGroupService.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.127,8,1.282,26,2.837,27,0.484,29,0.919,30,0.001,31,0.661,32,0.161,33,0.566,35,1.285,36,2.649,39,2.877,95,0.15,98,4.953,99,1.392,101,0.014,103,0.001,104,0.001,177,1.527,226,1.193,227,3.435,262,2.886,345,2.656,349,1.105,379,1.044,437,1.383,539,1.416,541,1.997,608,2.721,662,4.142,1740,9.754,2425,5.789,5948,7.24,6538,8.412,6585,4.902,6861,9.889,6862,8.344,6863,10.696,6864,10.696,6865,7.3,6866,8.344,6867,10.696,6868,8.344,6869,10.696,6870,8.344,6871,10.696,6872,8.344,6873,8.344,6874,8.344]],["title/classes/CourseMapper.html",[0,0.231,6690,5.958]],["body/classes/CourseMapper.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,8,1.389,27,0.388,29,0.739,30,0.001,31,0.531,32,0.13,33,0.455,35,1.14,95,0.147,99,1.582,100,3.893,101,0.016,103,0.001,104,0.001,236,1.543,349,0.98,413,3.854,437,1.499,785,4.736,1864,4.951,6690,10.139,6875,9.485,6876,11.59,6877,11.59,6878,9.485,6879,10.92,6880,9.485,6881,9.485,6882,9.485,6883,9.485,6884,9.485,6885,9.485,6886,9.485,6887,9.485,6888,9.485]],["title/classes/CourseMetadataListResponse.html",[0,0.231,6689,5.705]],["body/classes/CourseMetadataListResponse.html",[0,0.306,2,0.724,3,0.015,4,0.015,5,0.008,7,0.098,26,1.91,27,0.484,29,0.504,30,0.001,31,0.362,32,0.178,33,0.567,34,1.914,47,0.886,55,2.949,56,5.917,59,2.802,70,6.109,83,3.932,95,0.132,99,1.079,101,0.015,103,0.001,104,0.001,112,0.716,138,2.043,149,4.273,150,1.473,153,2.854,172,2.065,180,1.616,245,3.208,247,2.831,253,3.166,284,3.649,379,1.128,382,3.39,404,2.639,517,2.479,556,1.629,810,7.706,811,6.622,812,5.143,814,3.25,816,4.765,817,3.108,818,3.621,819,2.269,820,4.521,821,5.824,822,5.193,823,4.236,824,5.531,825,4.521,826,4.521,828,4.067,829,3.589,1203,3.772,1396,4.521,1864,3.846,1880,4.646,2128,4.368,2722,3.319,2856,3.444,2857,3.444,3735,6.45,6536,4.3,6537,7.014,6542,7.399,6545,7.552,6618,5.226,6620,4.929,6622,4.81,6663,7.132,6689,7.555,6879,10.519,6889,8.338,6890,5.979,6891,6.467,6892,6.467,6893,5.226,6894,5.066,6895,7.716,6896,5.066,6897,5.979,6898,5.066,6899,5.066,6900,4.017,6901,4.704,6902,5.226]],["title/classes/CourseMetadataResponse.html",[0,0.231,6879,5.705]],["body/classes/CourseMetadataResponse.html",[0,0.288,2,0.662,3,0.014,4,0.014,5,0.007,7,0.09,26,2.287,27,0.513,29,0.461,30,0.001,31,0.331,32,0.174,33,0.587,34,2.133,47,0.965,55,2.128,56,4.094,59,3.073,70,4.228,83,4.235,95,0.125,99,0.987,101,0.014,103,0,104,0,112,0.672,138,2.226,149,4.107,150,1.348,153,2.782,172,2.704,180,1.06,245,3.117,247,2.589,253,4.146,284,2.615,379,1.059,404,2.414,517,3.246,810,5.197,811,3.201,812,3.374,816,4.954,824,5.751,828,3.72,829,3.283,1203,4.179,1209,5.49,1396,5.92,1864,4.402,1880,5.177,2128,5.719,2235,4.634,2722,3.036,2856,4.51,2857,4.51,3735,7.603,6536,5.63,6537,8.267,6542,8.722,6545,8.903,6618,4.78,6620,4.509,6622,4.4,6663,8.407,6689,4.955,6879,9.571,6889,11.783,6890,5.469,6893,4.78,6894,4.634,6895,8.598,6896,6.634,6897,7.829,6898,6.634,6899,6.634,6900,5.26,6901,6.159,6902,6.843,6903,5.915,6904,5.915,6905,5.915,6906,5.915,6907,5.915,6908,5.915,6909,5.915,6910,5.915]],["title/entities/CourseNews.html",[154,1.456,6911,5.065]],["body/entities/CourseNews.html",[0,0.344,3,0.012,4,0.021,5,0.006,7,0.172,9,3.617,26,2.143,27,0.211,30,0.001,31,0.429,32,0.138,34,0.878,47,0.869,83,2.352,95,0.153,96,2.511,101,0.018,103,0,104,0,105,0.557,112,0.858,138,0.938,143,2.612,144,3.864,154,2.311,155,1.721,172,3.745,173,1.525,174,3.047,175,2.28,180,1.813,181,2.708,182,1.678,236,1.487,239,2.481,349,0.533,355,5.749,358,4.021,381,1.732,403,5.074,413,1.588,459,4.691,521,3.62,563,4.548,643,2.292,644,5.17,654,3.216,655,3.851,834,2.402,992,4.367,993,4.776,994,4.315,995,4.564,996,4.988,1203,2.919,1221,4.702,1600,1.939,1654,3.638,1660,2.592,1676,3.496,1752,3.378,1770,2.814,1864,3.385,2193,3.698,2503,5.165,2608,4.218,2621,3.029,2677,5.81,2722,2.646,3390,3.542,3392,3.286,3393,3.606,3395,3.675,3396,3.606,3397,3.836,3411,3.165,3544,3.483,3569,3.286,4206,1.749,4298,3.931,4299,3.751,4440,3.751,5039,4.194,5119,3.751,5687,6.649,6283,2.862,6501,3.606,6588,3.165,6590,2.888,6611,3.094,6824,4.759,6911,5.698,6912,4.167,6913,5.157,6914,4.648,6915,4.167,6916,6.799,6917,5.903,6918,4.167,6919,8.875,6920,5.094,6921,4.947,6922,5.698,6923,5.698,6924,6.725,6925,7.545,6926,4.167,6927,5.459,6928,4.167,6929,3.931,6930,3.931,6931,4.948,6932,4.167,6933,3.931,6934,3.931,6935,4.167,6936,3.836,6937,4.167,6938,3.061,6939,3.165,6940,3.931,6941,4.167,6942,4.167,6943,7.161,6944,4.167,6945,7.387,6946,4.167,6947,4.167,6948,5.84,6949,3.931,6950,6.391,6951,4.04,6952,5.019,6953,3.931,6954,3.751,6955,3.931,6956,4.167]],["title/classes/CourseQueryParams.html",[0,0.231,6675,5.958]],["body/classes/CourseQueryParams.html",[0,0.394,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.388,30,0.001,32,0.13,95,0.159,101,0.021,103,0.001,104,0.001,112,0.92,138,1.725,142,4.534,143,2.58,144,3.818,145,3.218,148,3.01,150,2.161,153,2.156,245,3.039,248,4.837,250,6.407,834,3.633,1308,8.62,5043,5.892,5056,7.235,5057,9.182,5079,5.462,6675,10.139,6957,9.485,6958,9.485,6959,9.485,6960,9.485]],["title/injectables/CourseRepo.html",[539,0.901,1741,4.132]],["body/injectables/CourseRepo.html",[0,0.224,3,0.01,4,0.01,5,0.005,7,0.064,8,0.792,10,2.686,12,3.033,18,3.345,26,2.845,27,0.488,29,0.907,30,0.001,31,0.653,32,0.171,33,0.559,34,1.126,35,1.4,36,2.688,39,3.492,40,3.196,56,3.196,58,4.269,59,3.082,83,1.304,95,0.126,96,1.167,98,2.521,99,0.709,101,0.007,103,0,104,0,119,1.345,120,4.028,143,1.472,145,1.179,154,0.908,155,2.206,173,1.256,180,1.454,226,0.607,236,1.614,262,2.93,349,1.273,382,2.763,437,1.721,479,4.544,480,1.179,486,1.278,490,4.021,539,0.875,541,1.017,608,2.422,679,6.442,685,2.797,686,3.12,687,4.107,711,2.607,712,2.638,713,2.607,714,2.638,716,2.607,717,2.638,718,2.358,767,4.54,1741,4.011,1755,4.54,1858,3.158,1864,4.411,2031,5.174,2288,3.924,2775,3.027,3635,2.917,3640,3.716,3760,5.998,4357,5.834,4428,6.357,4434,3.433,4689,6.088,4778,5.831,5504,4.456,5948,6.109,5950,6.402,6085,6.701,6538,3.027,6543,4.157,6544,5.673,6545,4.808,6679,3.966,6849,3.238,6961,3.927,6962,6.61,6963,7.099,6964,6.61,6965,6.112,6966,6.112,6967,4.248,6968,7.486,6969,6.654,6970,4.248,6971,4.248,6972,4.248,6973,6.112,6974,4.248,6975,4.248,6976,6.112,6977,4.248,6978,4.248,6979,6.036,6980,10.419,6981,3.927,6982,6.112,6983,7.671,6984,3.927,6985,3.927,6986,3.927,6987,6.112,6988,6.112,6989,3.433,6990,3.927,6991,3.927,6992,3.927,6993,5.783,6994,6.112,6995,6.112,6996,6.112,6997,8.011,6998,4.808,6999,4.808,7000,7.502,7001,3.927,7002,3.716,7003,3.927,7004,3.927,7005,3.927]],["title/injectables/CourseRule.html",[539,0.901,1700,5.065]],["body/injectables/CourseRule.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,8,1.225,27,0.468,29,0.889,30,0.001,31,0.639,32,0.166,33,0.548,35,1.228,95,0.154,101,0.013,103,0.001,104,0.001,119,2.467,131,4.541,154,2.857,177,1.424,226,1.112,239,3.131,345,2.476,349,1.056,379,0.973,437,1.476,539,1.353,541,1.862,604,3.161,662,4.064,1276,2.432,1606,6.561,1609,6.281,1610,6.273,1625,5.096,1634,8.028,1655,4.668,1672,7.355,1700,7.602,1813,6.601,1817,6.348,1824,5.173,1864,4.95,3349,6.796,3350,5.255,3353,6.695,3356,5.255,3357,6.904,4357,6.512,6543,4.893,6544,7.146,7006,7.78,7007,7.78,7008,7.78,7009,7.78,7010,7.78]],["title/classes/CourseScope.html",[0,0.231,6980,5.958]],["body/classes/CourseScope.html",[0,0.237,2,0.511,3,0.011,4,0.011,5,0.005,7,0.069,8,0.838,26,2.819,27,0.497,29,0.842,30,0.001,31,0.606,32,0.163,33,0.519,34,0.778,35,1.352,36,2.302,39,3.482,40,2.208,56,3.38,58,4.514,83,1.402,95,0.13,96,1.254,98,2.71,99,0.762,101,0.008,103,0,104,0,112,0.555,119,2.087,143,1.017,145,1.268,173,1.35,180,1.522,226,0.653,236,1.668,262,2.37,310,1.979,349,1.294,382,3.094,437,1.739,480,1.268,486,1.374,490,3.374,519,1.414,539,0.925,603,2.173,608,2.493,679,4.106,687,2.311,767,4.8,1741,2.77,1755,4.8,1858,3.339,1864,4.169,2031,5.376,2288,6.087,2775,3.254,3635,3.136,3640,3.995,3760,6.232,4357,6.062,4428,3.577,4689,4.647,4778,6.004,5504,5.21,5948,6.29,5950,6.652,6058,4.721,6059,4.721,6060,4.721,6065,4.721,6066,4.721,6067,3.136,6068,3.084,6069,3.136,6070,3.136,6079,3.084,6080,4.721,6081,3.136,6082,3.084,6083,3.136,6084,3.084,6085,6.927,6538,3.254,6543,4.396,6544,5.937,6545,5.084,6679,4.194,6849,3.481,6961,4.221,6963,3.995,6966,4.221,6968,4.98,6969,5.152,6973,4.221,6976,4.221,6979,6.316,6980,11.416,6981,6.462,6982,6.462,6983,7.97,6984,6.462,6985,6.462,6986,8.796,6987,6.462,6988,6.462,6989,3.69,6990,6.462,6991,4.221,6992,4.221,6993,6.115,6994,6.462,6995,6.462,6996,6.462,6997,8.323,6998,5.084,6999,5.084,7000,7.851,7001,4.221,7002,3.995,7003,4.221,7004,4.221,7005,4.221,7011,6.989,7012,6.989,7013,6.989,7014,6.989,7015,4.566,7016,4.566,7017,4.566,7018,4.566,7019,4.566]],["title/injectables/CourseService.html",[539,0.901,1849,4.6]],["body/injectables/CourseService.html",[0,0.253,3,0.017,4,0.017,5,0.009,7,0.113,8,1.19,12,4.557,26,2.93,27,0.508,29,0.967,30,0.001,31,0.695,32,0.17,33,0.596,35,1.432,36,2.817,39,3.005,95,0.142,98,4.421,99,1.242,101,0.012,103,0.001,104,0.001,177,1.363,226,1.065,227,3.067,262,3.013,345,2.371,349,1.231,379,0.931,437,1.445,539,1.314,541,1.783,608,2.747,662,4.015,1741,7.23,1849,6.708,1858,3.558,1864,3.678,2425,5.374,4428,7.78,4434,8.025,4778,6.89,5948,6.929,6865,6.516,7020,7.448,7021,9.931,7022,9.931,7023,7.448,7024,9.931,7025,7.448,7026,7.448,7027,9.931,7028,7.448,7029,9.931,7030,7.448,7031,7.448,7032,11.172,7033,7.448,7034,7.448,7035,7.448]],["title/injectables/CourseUc.html",[539,0.901,6684,5.705]],["body/injectables/CourseUc.html",[0,0.302,3,0.021,4,0.021,5,0.011,7,0.135,8,1.336,26,2.7,27,0.456,29,0.867,30,0.001,31,0.624,32,0.152,33,0.535,35,1.069,36,2.37,39,2.394,59,2.765,95,0.162,98,5.282,99,1.484,101,0.015,103,0.001,104,0.001,177,1.629,226,1.272,227,3.663,247,3.895,345,2.832,349,0.919,377,4.039,379,1.113,490,4.52,539,1.474,541,2.13,831,8.912,1741,8.124,1864,3.295,2031,5.028,4451,5.669,6679,5.339,6684,9.333,6713,7.454,6734,8.227,7036,8.898,7037,11.14,7038,8.898,7039,11.14,7040,8.898,7041,6.971]],["title/classes/CourseUrlParams.html",[0,0.231,6674,5.958]],["body/classes/CourseUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,1858,6.066,1864,4.381,3814,5.762,6674,10.348,7042,9.809,7043,9.809]],["title/classes/CreateCardBodyParams.html",[0,0.231,4951,5.958]],["body/classes/CreateCardBodyParams.html",[0,0.393,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.388,30,0.001,32,0.129,33,0.555,95,0.159,99,1.579,101,0.016,103,0.001,104,0.001,112,0.919,138,1.721,142,3.702,143,2.784,145,3.213,148,3.003,149,4.402,150,2.156,249,4.682,834,3.628,847,4.52,2344,6.601,4100,10.473,4101,7.061,4951,10.125,5536,7.373,7044,11.573,7045,8.749,7046,7.695,7047,9.463,7048,9.463]],["title/classes/CreateContentElementBodyParams.html",[0,0.231,3686,5.705]],["body/classes/CreateContentElementBodyParams.html",[0,0.365,2,0.94,3,0.02,4,0.02,5,0.01,7,0.127,27,0.44,30,0.001,32,0.187,33,0.515,55,2.685,95,0.15,99,1.401,101,0.014,103,0.001,104,0.001,112,0.853,138,1.953,142,4.882,143,2.391,144,4.111,145,3.663,148,2.664,149,4.085,150,1.913,153,2.441,245,2.816,249,4.344,486,3.231,834,3.367,847,4.011,989,5.961,1880,5.161,2193,4.79,2742,6.596,2860,5.292,3432,5.983,3437,6.107,3686,8.996,4050,9.025,4101,7.088,5537,8.678,7046,5.583,7049,11.84,7050,7.034,7051,8.397,7052,9.929,7053,9.395,7054,8.397,7055,8.397,7056,8.397]],["title/interfaces/CreateJwtParams.html",[105,0.735,7057,5.958]],["body/interfaces/CreateJwtParams.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.111,30,0.001,32,0.18,33,0.658,47,1.004,85,8.202,95,0.124,101,0.012,103,0.001,104,0.001,105,0.789,107,1.755,112,0.779,348,4.897,349,1.013,413,3.021,437,1.53,662,3.085,1376,5.729,1378,5.439,1401,6.126,1413,4.341,1417,5.574,1421,4.542,1546,7.135,1558,7.296,4539,7.478,6227,8.791,7057,9.684,7058,6.761,7059,9.664,7060,10.334,7061,9.664,7062,11.742,7063,10.639,7064,9.069,7065,6.761,7066,6.761,7067,6.761,7068,6.761,7069,8.582,7070,6.761,7071,9.069,7072,9.069,7073,6.761,7074,6.398,7075,6.398,7076,6.761,7077,9.069,7078,6.761,7079,6.761,7080,6.761,7081,6.761,7082,6.761,7083,5.729,7084,5.729,7085,6.398,7086,6.761,7087,6.761,7088,6.761,7089,6.761]],["title/interfaces/CreateJwtPayload.html",[105,0.735,1527,5.335]],["body/interfaces/CreateJwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.182,33,0.594,39,3.445,47,1.008,48,5.876,55,2.277,85,7.991,101,0.017,103,0.001,104,0.001,105,1.142,107,1.97,112,0.84,119,2.669,128,3.306,180,1.471,239,1.883,359,4.925,511,3.667,759,5.377,1417,6.257,1421,5.098,1527,9.177,1547,5.97,1558,6.105,1663,4.478,1757,5.458,2343,8.796,3078,6.178,4206,4.197,5105,5.377,6227,5.849,7059,6.43,7061,6.43,7083,6.43,7084,6.43,7090,7.589,7091,7.589,7092,9.999,7093,6.876,7094,5.098,7095,7.589,7096,7.181,7097,7.181]],["title/classes/CreateNewsParams.html",[0,0.231,7098,5.503]],["body/classes/CreateNewsParams.html",[0,0.327,2,0.797,3,0.017,4,0.017,5,0.008,7,0.108,27,0.501,30,0.001,32,0.167,33,0.462,34,1.641,47,0.925,83,2.958,95,0.148,99,1.187,100,3.236,101,0.012,103,0.001,104,0.001,112,0.765,138,2.223,148,2.259,149,3.665,150,1.622,153,2.979,154,2.87,245,3.205,247,3.116,248,4.557,249,3.897,253,3.486,802,6.138,803,3.931,834,2.232,838,6.735,847,3.401,989,5.347,1203,3.903,1579,5.602,1755,6.616,2193,4.945,2677,5.282,2711,6.31,2856,5.131,2857,5.131,3224,3.68,6219,6.616,6917,7.052,6920,7.26,6924,6.481,6925,7.88,7098,7.785,7099,12.6,7100,6.228,7101,7.547,7102,7.634,7103,7.119,7104,6.582,7105,5.964,7106,6.138,7107,8.07,7108,7.343,7109,6.582,7110,6.582,7111,7.454,7112,7.119,7113,7.119,7114,7.007,7115,7.119,7116,5.753,7117,7.119,7118,7.343,7119,6.582,7120,6.582]],["title/classes/CreateSubmissionItemBodyParams.html",[0,0.231,7121,5.958]],["body/classes/CreateSubmissionItemBodyParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.131,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,119,2.666,138,1.75,142,4.573,143,2.603,147,6.276,148,3.053,150,2.192,153,2.187,245,3.065,2821,5.763,3229,8.144,7121,10.228,7122,9.159,7123,11.691,7124,8.895,7125,8.417,7126,10.228,7127,9.447,7128,8.895]],["title/classes/CurrentUserMapper.html",[0,0.231,7129,5.065]],["body/classes/CurrentUserMapper.html",[0,0.222,2,0.732,3,0.015,4,0.015,5,0.008,7,0.099,8,1.09,27,0.462,29,0.879,30,0.001,31,0.632,32,0.154,33,0.542,34,1.114,35,1.356,39,3.037,47,0.969,48,6.271,59,3.246,85,8.134,95,0.156,99,1.091,101,0.011,103,0.001,104,0.001,105,0.706,143,1.456,145,1.816,236,1.064,239,3.03,270,6.288,276,3.864,283,4.014,294,3.287,340,3.143,349,1.166,413,4.145,528,5.439,529,1.85,1527,8.184,1547,8.629,1550,5.479,1551,3.662,2343,4.492,3078,5.636,3355,4.418,3717,3.842,4206,3.829,4786,5.285,6054,4.66,7092,9.123,7129,6.76,7130,11.863,7131,5.722,7132,9.089,7133,9.089,7134,10.446,7135,9.089,7136,9.089,7137,6.54,7138,9.089,7139,6.54,7140,6.54,7141,5.967,7142,9.123,7143,6.54,7144,7.77,7145,9.089,7146,6.54,7147,6.139,7148,5.285,7149,6.54,7150,5.285,7151,6.54,7152,6.54,7153,5.722,7154,6.54,7155,4.985,7156,6.54,7157,6.047,7158,6.54,7159,6.54,7160,6.54,7161,6.54,7162,6.54,7163,6.54,7164,6.54,7165,5.722,7166,6.54,7167,6.54]],["title/interfaces/CustomLtiProperty.html",[105,0.735,7168,5.958]],["body/interfaces/CustomLtiProperty.html",[0,0.188,3,0.013,4,0.013,5,0.007,7,0.084,26,1.711,30,0.001,31,0.534,32,0.13,47,0.956,49,3.185,95,0.133,96,2.219,97,2.401,101,0.018,103,0,104,0,105,0.598,107,1.329,112,0.641,119,2.266,143,2.981,144,4.525,145,3.717,154,1.726,168,4.607,172,4.402,173,1.639,174,3.212,175,2.45,177,1.014,178,2.302,180,0.993,181,1.483,182,1.802,236,0.901,321,5.875,349,0.572,480,2.908,486,3.35,490,1.965,556,2.034,653,2.864,662,2.54,822,4.651,834,3.491,1194,1.905,1306,3.362,1410,6.663,1426,3.222,1669,2.885,1922,6.026,1982,2.204,2256,3.19,2439,2.713,2608,2.556,3078,2.766,4282,2.425,6263,2.975,6594,4.477,6607,4.477,7168,8.338,7169,5.123,7170,6.766,7171,7.702,7172,7.467,7173,7.467,7174,5.123,7175,5.123,7176,7.467,7177,5.123,7178,5.123,7179,6.243,7180,7.467,7181,7.467,7182,5.123,7183,4.121,7184,4.341,7185,3.578,7186,4.341,7187,3.578,7188,6.766,7189,3.578,7190,4.341,7191,4.341,7192,4.121,7193,5.123,7194,5.123,7195,4.477,7196,4.341,7197,5.123,7198,3.948,7199,4.341,7200,3.53,7201,3.289,7202,4.121,7203,3.324,7204,3.485,7205,4.03,7206,4.477,7207,4.341,7208,4.641,7209,4.641,7210,5.123,7211,4.223,7212,4.477,7213,4.641,7214,5.123,7215,4.223,7216,4.477,7217,4.341,7218,4.477,7219,4.223,7220,4.477,7221,4.641,7222,5.123,7223,4.641,7224,5.123,7225,4.641,7226,5.123,7227,5.123,7228,5.123,7229,5.123,7230,4.641,7231,5.123,7232,4.641,7233,5.123,7234,4.223,7235,4.477,7236,3.874,7237,4.121,7238,4.641,7239,5.123,7240,4.121,7241,4.477]],["title/classes/CustomLtiPropertyDO.html",[0,0.231,7242,5.705]],["body/classes/CustomLtiPropertyDO.html",[0,0.335,2,0.826,3,0.017,4,0.017,5,0.009,7,0.112,26,2.091,27,0.455,29,0.575,30,0.001,31,0.553,32,0.152,33,0.354,47,1.003,95,0.141,101,0.016,103,0.001,104,0.001,112,0.784,119,2.519,180,1.323,379,0.923,480,3.61,1194,2.537,1426,4.292,1683,5.739,1922,6.891,1982,2.935,2439,3.613,3078,3.685,4402,6.456,6263,3.962,7171,7.976,7179,6.465,7184,5.782,7185,4.766,7186,5.782,7187,4.766,7189,4.766,7190,5.782,7191,5.782,7192,5.489,7196,5.782,7198,5.259,7199,5.782,7200,4.702,7201,4.381,7202,5.489,7203,4.428,7205,7.179,7207,5.782,7209,6.182,7211,5.626,7213,6.182,7215,5.626,7217,5.782,7219,5.626,7221,6.182,7223,6.182,7225,6.182,7230,6.182,7232,6.182,7234,5.626,7236,5.16,7238,6.182,7240,5.489,7242,9.316,7243,6.823,7244,9.125,7245,9.87,7246,7.38,7247,6.456,7248,5.626,7249,5.782,7250,6.9,7251,5.782,7252,5.782,7253,6.823,7254,6.823,7255,6.823,7256,6.823,7257,6.823,7258,6.823,7259,6.823,7260,6.456,7261,6.823,7262,6.823,7263,6.823,7264,6.823,7265,6.823,7266,6.823,7267,6.823,7268,6.823,7269,6.823,7270,6.823,7271,6.823,7272,6.823]],["title/classes/CustomParameter.html",[0,0.231,2554,4.398]],["body/classes/CustomParameter.html",[0,0.256,2,0.843,3,0.018,4,0.018,5,0.009,7,0.114,27,0.56,29,0.586,30,0.001,31,0.67,32,0.19,33,0.645,47,0.972,95,0.095,101,0.012,103,0.001,104,0.001,112,0.794,119,2.036,153,2.554,181,2.678,249,4.545,379,0.942,381,2.53,486,3.38,834,2.361,1865,8.005,1982,2.996,2504,3.365,2554,8.046,2559,7.854,4282,3.297,4344,4.519,5449,7.716,5487,7.359,5504,4.564,5767,5.724,5787,4.799,5788,5.173,6608,5.088,6609,4.864,7273,12.733,7274,7.532,7275,7.255,7276,8.356,7277,10.005,7278,7.532,7279,7.532,7280,7.532,7281,7.532,7282,7.532,7283,7.532,7284,7.532,7285,7.532,7286,7.532,7287,6.964,7288,6.964,7289,6.31,7290,6.31,7291,5.088,7292,6.087,7293,6.589,7294,6.589,7295,6.589,7296,6.589,7297,6.589,7298,6.589]],["title/classes/CustomParameterEntity.html",[0,0.231,7299,5.503]],["body/classes/CustomParameterEntity.html",[0,0.219,2,0.723,3,0.015,4,0.015,5,0.008,7,0.098,27,0.545,29,0.503,30,0.001,31,0.629,32,0.186,33,0.624,47,0.948,95,0.114,96,1.774,101,0.011,103,0.001,104,0.001,112,0.715,119,1.833,138,2.396,143,2.85,144,3.698,153,2.358,160,6.403,172,4.25,173,1.909,181,2.411,249,4.197,379,0.807,381,2.169,486,3.121,834,3.935,1865,7.393,1867,3.141,1982,2.568,2484,6.096,2500,4.656,2504,2.884,2559,7.253,4282,2.826,4344,3.874,5449,7.125,5487,6.796,5504,4.215,5767,5.287,5787,4.113,5788,4.434,6608,4.361,6609,4.17,7275,6.7,7276,7.716,7287,5.969,7288,5.969,7289,5.409,7290,5.409,7291,4.361,7292,5.217,7293,5.648,7294,5.648,7295,5.648,7296,5.648,7297,5.648,7298,5.648,7299,9.542,7300,13.431,7301,13.431,7302,6.456,7303,9.008,7304,6.456,7305,6.456,7306,6.456,7307,6.456,7308,6.456,7309,6.456,7310,6.456,7311,6.456,7312,6.456]],["title/classes/CustomParameterEntry.html",[0,0.231,2580,4.461]],["body/classes/CustomParameterEntry.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,27,0.514,29,0.744,30,0.001,31,0.732,32,0.172,33,0.602,47,0.922,101,0.016,103,0.001,104,0.001,112,0.924,181,3.115,363,7.318,379,1.195,381,3.209,480,3.486,1982,3.799,2580,8.775,4282,4.181,7249,7.484,7273,12.081,7313,9.553,7314,11.64,7315,9.553,7316,8.003]],["title/classes/CustomParameterEntryEntity.html",[0,0.231,5846,5.191]],["body/classes/CustomParameterEntryEntity.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,27,0.506,29,0.717,30,0.001,31,0.723,32,0.169,33,0.593,47,0.91,95,0.117,96,2.528,101,0.015,103,0.001,104,0.001,112,0.903,138,2.069,172,4.232,173,2.722,181,3.045,363,7.224,379,1.151,381,3.091,480,3.429,1982,3.66,2500,5.88,4282,4.028,5846,10.104,7249,7.21,7316,7.71,7317,12.9,7318,9.203,7319,11.377,7320,9.203]],["title/classes/CustomParameterEntryParam.html",[0,0.231,5895,5.191]],["body/classes/CustomParameterEntryParam.html",[0,0.392,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.473,30,0.001,31,0.699,32,0.158,33,0.554,47,0.918,95,0.146,101,0.016,103,0.001,104,0.001,112,0.916,138,2.099,148,2.989,149,4.39,150,2.146,245,3.026,248,5.207,249,4.668,363,6.987,480,3.464,564,3.831,2510,6.711,5893,6.851,5895,8.796,7321,7.749,7322,11.535,7323,9.419,7324,9.419,7325,9.419]],["title/classes/CustomParameterEntryResponse.html",[0,0.231,6004,5.335]],["body/classes/CustomParameterEntryResponse.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,27,0.502,29,0.705,30,0.001,31,0.719,32,0.168,33,0.588,47,0.905,95,0.115,101,0.015,103,0.001,104,0.001,112,0.895,138,2.049,149,4.285,150,2.064,181,3.015,245,3.363,363,7.183,379,1.133,381,3.042,480,3.404,564,3.939,1982,3.603,4282,3.965,6004,10.336,7249,7.096,7316,7.588,7321,7.968,7322,11.86,7326,9.058,7327,11.265,7328,9.058,7329,9.058]],["title/classes/CustomParameterFactory.html",[0,0.231,7330,5.705]],["body/classes/CustomParameterFactory.html",[0,0.258,2,0.431,3,0.009,4,0.009,5,0.005,7,0.058,8,0.733,27,0.506,29,0.983,30,0.001,31,0.692,32,0.179,33,0.567,34,1.041,35,1.39,47,0.431,55,2.358,59,3.129,95,0.12,101,0.016,103,0,104,0,112,0.485,120,2.689,133,2.138,140,2.154,145,2.407,153,1.729,154,1.626,155,2.04,177,1.119,180,1.553,239,0.882,249,1.556,271,5.094,319,2.76,349,1.22,363,2.154,379,0.481,382,3.68,413,1.883,437,1.578,447,6.713,448,4.128,449,4.898,452,3.454,453,4.898,454,5.204,455,3.454,456,3.454,457,3.454,458,3.393,459,3.904,460,4.299,461,6.367,462,5.25,463,6.688,464,2.194,469,2.173,470,3.454,471,2.194,472,4.582,473,4.73,474,3.703,475,4.448,476,3.423,477,2.173,478,2.048,479,3.773,480,3.043,481,2.116,482,2.081,483,2.173,484,4.513,485,2.194,486,3.297,487,4.223,488,2.173,489,7.482,490,3.886,491,6.193,492,2.194,493,3.032,494,2.173,495,2.194,496,2.173,497,2.194,498,2.173,501,2.173,502,5.59,503,2.194,504,2.173,505,3.454,506,3.231,507,3.454,508,2.194,509,2.099,510,2.081,511,1.718,512,2.173,513,2.173,514,2.173,515,2.194,516,2.194,517,1.475,518,2.173,519,1.191,520,2.194,521,2.421,522,2.173,523,2.194,525,2.236,526,2.283,527,5.201,564,1.181,708,1.598,1194,1.322,1237,2.194,1426,3.555,1839,1.895,1865,2.74,1909,3.511,1922,3.308,2133,4.299,2483,2.797,2486,1.275,2491,2.135,2494,2.689,2554,4.914,2559,2.689,2565,1.895,4314,6.74,4316,2.797,5056,2.081,5439,2.932,5449,2.641,5467,4.547,5469,2.932,5504,3.843,5589,3.052,5767,1.96,5806,2.173,5863,3.108,5868,3.013,5869,2.598,7179,2.519,7185,2.484,7187,2.484,7189,2.484,7200,2.45,7201,2.283,7203,2.308,7275,2.484,7330,6.374,7331,5.348,7332,6.113,7333,5.348,7334,3.846,7335,2.797,7336,4.547,7337,3.013,7338,2.797,7339,2.641,7340,2.389,7341,3.365,7342,3.365,7343,3.365,7344,6.656,7345,5.121,7346,3.365,7347,3.709,7348,3.108,7349,2.797,7350,2.932,7351,3.365,7352,2.86,7353,3.365,7354,3.365,7355,3.222,7356,3.365,7357,3.365,7358,2.598,7359,3.365,7360,3.365,7361,3.365,7362,2.641,7363,3.365,7364,3.365,7365,3.222,7366,3.365,7367,2.74,7368,4.66,7369,5.348,7370,6.656,7371,3.013,7372,5.348,7373,5.348,7374,3.365,7375,3.222,7376,3.013,7377,5.121,7378,3.365,7379,3.365,7380,3.365,7381,3.365,7382,3.365,7383,5.348,7384,3.365,7385,3.222,7386,2.519,7387,3.222,7388,3.365,7389,3.365,7390,3.365,7391,3.365]],["title/classes/CustomParameterPostParams.html",[0,0.231,7392,5.503]],["body/classes/CustomParameterPostParams.html",[0,0.325,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,27,0.549,30,0.001,31,0.609,32,0.188,33,0.628,47,0.962,95,0.138,101,0.012,103,0.001,104,0.001,112,0.76,119,1.949,138,2.438,147,5.141,148,2.239,149,4.636,150,1.608,153,2.471,245,3.37,248,5.364,249,5.291,804,6.522,847,3.371,1867,3.433,2484,6.14,5487,7.12,5504,4.416,5767,5.539,5893,8.479,7275,7.02,7276,8.085,7392,7.738,7393,13.528,7394,7.056,7395,8.286,7396,7.056,7397,7.056,7398,7.738,7399,7.056,7400,5.379,7401,7.056,7402,9.106,7403,7.056,7404,7.056,7405,7.056,7406,7.056,7407,7.056,7408,9.106,7409,7.056,7410,7.056,7411,9.106,7412,7.056,7413,7.056,7414,7.056,7415,7.056,7416,7.056]],["title/classes/CustomParameterResponse.html",[0,0.231,5813,5.335]],["body/classes/CustomParameterResponse.html",[0,0.226,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,27,0.548,29,0.519,30,0.001,31,0.637,32,0.187,33,0.628,47,0.953,95,0.117,101,0.011,103,0.001,104,0.001,112,0.731,119,1.873,138,2.411,149,4.981,150,1.517,153,2.397,181,2.463,245,3.475,249,4.267,379,0.833,381,2.237,834,3.306,1867,3.24,1982,2.648,2484,6.129,2504,2.975,2859,6.473,4282,2.915,4344,3.996,5487,6.909,5504,4.285,5767,5.374,5787,4.243,5788,4.574,5813,9.355,6608,4.498,6609,4.301,7275,6.811,7276,7.845,7289,5.579,7290,5.579,7291,4.498,7292,5.381,7293,5.826,7294,5.826,7295,5.826,7296,5.826,7297,5.826,7298,5.826,7395,8.04,7402,10.003,7408,10.003,7411,10.003,7417,13.503,7418,6.659,7419,9.204,7420,6.659,7421,6.659,7422,6.659,7423,6.659,7424,6.659,7425,6.659,7426,6.659,7427,6.659,7428,6.659,7429,6.659,7430,6.659]],["title/controllers/DashboardController.html",[259,2.591,7431,5.958]],["body/controllers/DashboardController.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.102,8,1.111,27,0.434,29,0.826,30,0.001,31,0.594,32,0.145,33,0.509,35,1.274,36,2.636,55,2.666,95,0.157,100,4.263,101,0.011,103,0.001,104,0.001,138,1.928,150,1.532,177,1.231,223,2.769,226,0.962,259,2.559,261,3.194,262,2.876,270,6.503,271,4.846,294,6.742,310,2.915,324,5.365,333,4.486,334,4.344,337,3.477,338,3.555,343,3.583,345,2.141,349,1.095,437,1.602,608,2.444,1076,7.279,2879,6.07,2901,3.611,3717,5.444,4154,8.882,6672,8.568,6678,6.219,7431,8.107,7432,6.726,7433,7.186,7434,10.602,7435,6.726,7436,6.726,7437,11.104,7438,9.571,7439,9.267,7440,6.726,7441,6.726,7442,8.141,7443,9.996,7444,9.267,7445,6.726,7446,5.884,7447,6.726,7448,8.882,7449,6.726,7450,5.127,7451,6.726,7452,6.726,7453,6.726,7454,6.726,7455,10.602,7456,8.107,7457,6.726,7458,6.726,7459,6.726,7460,6.726,7461,6.726,7462,6.726,7463,6.726,7464,6.219]],["title/classes/DashboardEntity.html",[0,0.231,7465,4.953]],["body/classes/DashboardEntity.html",[0,0.169,2,0.336,3,0.007,4,0.007,5,0.004,7,0.126,8,0.598,26,2.458,27,0.513,29,0.872,30,0.001,31,0.627,32,0.171,33,0.537,34,1.761,35,1.434,39,2.011,47,0.842,55,2.651,83,0.92,95,0.081,101,0.016,103,0,104,0,105,0.323,112,0.396,119,1.522,181,0.802,191,2.701,192,1.91,226,0.429,236,1.619,349,1.341,379,0.375,381,2.154,404,3.388,405,2.746,413,2.302,437,1.68,480,1.386,519,3.595,529,1.814,556,1.883,603,2.662,696,2.949,708,2.664,844,1.65,970,4.015,1076,4.763,1203,3.035,1276,0.937,1488,5.699,1503,3.18,1559,3.289,1676,2.926,1880,4.526,2235,3.91,2439,1.468,2585,3.559,2606,6.706,2618,1.726,2619,1.597,2661,2.23,2722,3.837,2742,5.636,3199,4.769,3396,2.096,3569,3.18,3663,6.956,3735,3.1,4154,4.181,4914,1.84,6430,2.511,6537,2.025,6579,9.373,6583,3.63,6663,3.428,6895,6.157,7442,5.328,7465,3.63,7466,2.623,7467,4.991,7468,6.541,7469,4.991,7470,4.991,7471,6.541,7472,6.263,7473,7.51,7474,4.991,7475,6.042,7476,4.991,7477,4.991,7478,4.991,7479,4.991,7480,4.991,7481,4.991,7482,6.541,7483,2.998,7484,2.998,7485,2.998,7486,2.998,7487,2.998,7488,4.366,7489,2.998,7490,2.23,7491,2.998,7492,4.366,7493,2.998,7494,4.614,7495,4.366,7496,9.559,7497,2.998,7498,9.721,7499,2.998,7500,2.998,7501,6.834,7502,2.998,7503,4.366,7504,9.559,7505,2.998,7506,2.998,7507,4.366,7508,2.998,7509,4.366,7510,2.998,7511,4.366,7512,2.998,7513,4.366,7514,2.998,7515,4.366,7516,2.998,7517,4.366,7518,2.998,7519,2.998,7520,4.366,7521,2.998,7522,4.366,7523,2.23,7524,4.366,7525,2.623,7526,4.366,7527,4.366,7528,4.366,7529,2.623,7530,4.366,7531,2.623,7532,4.366,7533,2.623,7534,3.712,7535,8.768,7536,2.623,7537,4.366,7538,2.623,7539,4.366,7540,2.623,7541,4.366,7542,2.623,7543,2.623,7544,2.623,7545,2.623,7546,2.623,7547,4.366,7548,2.623,7549,4.366,7550,2.511,7551,4.366,7552,2.623,7553,2.096,7554,4.366,7555,2.623,7556,2.623,7557,2.623,7558,2.623,7559,2.422,7560,2.623,7561,4.366,7562,2.623,7563,2.285,7564,2.623,7565,2.623,7566,2.623,7567,2.623,7568,2.623,7569,2.623,7570,2.623,7571,2.623,7572,2.623,7573,4.366,7574,4.366,7575,2.511,7576,5.61,7577,2.623,7578,4.366,7579,2.623,7580,2.623,7581,2.623,7582,2.623,7583,2.623,7584,2.623,7585,2.623,7586,2.623,7587,2.623,7588,2.623,7589,2.623,7590,2.623,7591,2.623,7592,2.623,7593,2.623,7594,2.623,7595,2.623,7596,2.623,7597,2.623,7598,2.623,7599,2.623,7600,2.623,7601,2.623,7602,4.366,7603,2.623,7604,2.623,7605,2.623,7606,4.366,7607,4.366,7608,2.623,7609,2.623,7610,2.623,7611,2.623,7612,2.623,7613,2.623,7614,2.623,7615,5.61,7616,2.623,7617,2.623]],["title/entities/DashboardGridElementModel.html",[154,1.456,7618,5.335]],["body/entities/DashboardGridElementModel.html",[0,0.309,3,0.015,4,0.015,5,0.008,7,0.18,27,0.486,30,0.001,32,0.154,33,0.437,34,2.023,39,2.451,47,0.838,49,2.588,55,2.645,95,0.151,96,2.503,97,2.844,101,0.019,103,0.001,104,0.001,105,0.983,112,0.723,138,2.16,143,2.645,144,2.162,154,2.237,155,2.19,160,3.742,172,3.925,173,1.941,174,4.162,178,3.784,180,1.633,181,1.756,182,2.963,236,1.702,239,2.594,379,0.821,404,3.718,405,3.611,480,1.822,486,1.974,556,2.295,1203,3.925,1654,4.326,1864,3.374,2356,8.223,2606,7.47,2608,4.828,2609,7.977,2611,5.71,2613,7.362,2615,3.581,2617,4.773,2621,3.854,2722,3.367,4273,3.981,5039,3.011,6575,4.076,6590,3.674,6931,4.238,7433,7.929,7618,8.198,7619,5.497,7620,9.933,7621,9.933,7622,6.562,7623,6.562,7624,6.562,7625,6.562,7626,6.562,7627,6.562,7628,6.562,7629,7.362,7630,6.776,7631,5.497,7632,7.632,7633,5.497,7634,5.497,7635,5.497,7636,5.497,7637,5.497,7638,5.302,7639,5.497,7640,5.497,7641,7.362,7642,6.626,7643,5.497,7644,4.587,7645,5.497,7646,5.497,7647,5.497,7648,5.497,7649,5.497]],["title/interfaces/DashboardGridElementModelProperties.html",[105,0.735,7629,5.503]],["body/interfaces/DashboardGridElementModelProperties.html",[0,0.314,3,0.016,4,0.016,5,0.008,7,0.182,30,0.001,32,0.169,33,0.548,34,2.202,39,2.49,47,0.912,49,2.648,55,2.782,95,0.152,96,2.543,97,2.91,101,0.019,103,0.001,104,0.001,105,0.999,107,1.611,112,0.735,143,2.359,144,2.212,154,2.264,172,3.645,173,1.986,174,4.213,178,3.845,180,1.659,181,1.797,182,3.011,236,1.506,239,2.62,379,0.84,404,3.777,405,3.695,556,1.691,1203,4.051,1654,4.395,1864,4.229,2356,7.705,2606,7.786,2608,4.271,2609,7.056,2611,5.051,2613,5.426,2615,3.664,2617,4.884,2621,3.944,2722,3.446,4273,4.074,5039,3.081,6575,4.171,6590,3.76,6931,4.337,7433,8.129,7618,7.252,7619,5.625,7620,10.252,7621,10.252,7629,8.56,7630,8.492,7631,5.625,7632,7.754,7633,5.625,7634,5.625,7635,5.625,7636,5.625,7637,5.625,7638,5.426,7639,5.625,7640,5.625,7641,7.48,7642,6.733,7643,5.625,7644,4.695,7645,5.625,7646,5.625,7647,5.625,7648,5.625,7649,5.625]],["title/classes/DashboardGridElementResponse.html",[0,0.231,7650,5.503]],["body/classes/DashboardGridElementResponse.html",[0,0.313,2,0.585,3,0.012,4,0.012,5,0.006,7,0.079,27,0.515,29,0.407,30,0.001,31,0.293,32,0.176,33,0.612,34,2.288,47,0.936,55,2.191,83,2.375,95,0.098,101,0.015,103,0,104,0,112,0.614,138,2.247,150,1.19,153,3.035,154,1.117,172,2.47,245,3.5,247,2.287,253,5.573,319,4.158,379,1.273,404,3.759,517,2.966,556,1.948,769,2.644,814,2.626,816,5.405,824,4.12,844,2.875,970,4.923,1076,4.928,1203,4.2,1396,5.408,1880,5.585,2720,5.793,2722,3.969,2742,5.382,2856,6.063,2857,6.063,3735,7.513,6536,6.124,6537,7.342,6622,3.886,6663,8.307,6893,6.251,6894,6.06,6895,9.169,6896,7.216,6899,6.06,6900,4.804,6901,5.626,6902,6.251,6927,3.723,7433,4.865,7442,5.512,7450,5.896,7534,8.085,7642,6.7,7650,9.519,7651,4.57,7652,9.509,7653,9.106,7654,9.106,7655,5.224,7656,5.224,7657,5.224,7658,8.784,7659,6.767,7660,5.224,7661,5.224,7662,5.224,7663,5.224,7664,4.57,7665,5.224,7666,5.224,7667,5.224,7668,4.57,7669,4.57,7670,4.57,7671,4.57,7672,4.57]],["title/classes/DashboardGridSubElementResponse.html",[0,0.231,7658,5.503]],["body/classes/DashboardGridSubElementResponse.html",[0,0.335,2,0.659,3,0.014,4,0.014,5,0.007,7,0.089,27,0.467,29,0.459,30,0.001,31,0.33,32,0.167,33,0.283,34,2.316,47,0.948,55,1.816,83,1.808,95,0.107,101,0.016,103,0,104,0,112,0.67,138,1.96,150,1.342,153,3.072,154,1.259,172,1.88,245,3.565,247,2.578,253,5.585,319,3.811,379,1.348,404,4.026,517,2.258,556,1.483,769,2.98,816,4.527,824,3.137,844,3.241,970,4.081,1076,3.752,1203,4.287,1396,4.117,1880,5.59,2720,6.205,2722,4.332,2742,4.461,2856,6.075,2857,6.075,3735,7.767,6536,6.56,6537,6.664,6622,4.38,6663,8.588,6893,6.821,6894,6.613,6895,9.222,6896,7.729,6899,4.614,6900,3.658,6901,4.284,6902,4.759,6927,4.197,7433,5.309,7442,4.197,7450,6.434,7534,7.338,7642,7.176,7650,8.707,7651,5.152,7652,8.631,7653,8.265,7654,8.265,7658,9.878,7659,5.152,7664,5.152,7668,5.152,7669,5.152,7670,5.152,7671,5.152,7672,5.152,7673,5.889,7674,5.889,7675,5.889,7676,5.889,7677,5.889]],["title/classes/DashboardMapper.html",[0,0.231,7446,5.958]],["body/classes/DashboardMapper.html",[0,0.257,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.461,29,0.877,30,0.001,31,0.631,32,0.154,33,0.541,34,1.29,35,1.353,95,0.127,99,1.264,100,4.029,101,0.012,103,0.001,104,0.001,236,1.833,284,2.339,349,1.164,413,4.142,437,1.552,556,1.908,603,2.577,778,5.574,785,3.782,1203,2.418,2109,5.202,2742,4.003,3735,4.705,6477,6.345,6537,5.116,6583,8.725,6663,5.202,7433,6.316,7446,8.785,7450,9.144,7465,8.725,7472,6.345,7501,9.144,7642,5.509,7650,9.694,7653,6.345,7654,6.345,7658,9.103,7678,7.575,7679,10.042,7680,10.042,7681,10.042,7682,7.575,7683,10.042,7684,7.575,7685,10.042,7686,7.575,7687,7.575,7688,7.575,7689,7.575,7690,7.575,7691,7.575,7692,7.575,7693,7.575,7694,7.575,7695,7.575,7696,7.575,7697,7.575,7698,7.575,7699,10.042,7700,7.575,7701,10.042,7702,7.575,7703,7.575,7704,7.575,7705,7.575,7706,7.575]],["title/entities/DashboardModelEntity.html",[154,1.456,7630,5.065]],["body/entities/DashboardModelEntity.html",[0,0.32,3,0.016,4,0.016,5,0.008,7,0.183,27,0.386,30,0.001,32,0.129,34,2.06,39,2.89,47,0.815,49,2.721,55,2.485,95,0.153,96,2.591,97,2.99,101,0.019,103,0.001,104,0.001,105,1.018,112,0.749,138,1.715,143,2.571,144,2.273,154,2.296,155,2.302,172,3.687,173,2.04,174,4.273,178,3.917,180,1.69,181,1.846,182,3.068,236,1.748,239,2.864,379,0.863,404,3.848,405,3.797,480,1.916,486,2.076,556,1.738,1203,3.687,1654,5.102,1864,3.493,2356,8.4,2606,6.757,2608,4.957,2609,8.19,2611,5.863,2613,5.575,2615,3.765,2617,5.018,2621,4.053,2722,3.54,4273,4.186,5039,3.166,6575,4.285,6590,3.863,6931,4.456,7433,7.851,7618,7.388,7619,5.78,7620,9.332,7621,9.332,7629,7.62,7630,7.991,7631,5.78,7632,7.9,7633,5.78,7634,5.78,7635,5.78,7636,5.78,7637,5.78,7638,5.575,7639,5.78,7640,5.78,7641,7.62,7642,8.4,7643,5.78,7644,4.823,7645,5.78,7646,5.78,7647,5.78,7648,7.9,7649,5.78,7707,6.899,7708,6.379,7709,6.899]],["title/injectables/DashboardModelMapper.html",[539,0.901,7710,5.335]],["body/injectables/DashboardModelMapper.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.802,27,0.499,29,0.948,30,0.001,31,0.682,32,0.169,33,0.584,34,1.14,35,1.437,36,2.789,39,1.161,47,0.305,95,0.104,96,1.186,99,0.72,101,0.007,103,0,104,0,154,1.431,173,1.276,177,0.79,226,0.617,236,1.502,239,1.881,262,2.992,349,1.294,379,0.54,437,1.725,529,1.221,539,0.886,541,1.033,556,1.087,603,2.484,608,2.922,928,2.375,1076,2.75,1158,2.062,1488,3.29,1559,2.944,1676,3.054,1864,4.336,2109,2.964,2249,5.318,2256,2.485,2291,2.915,2606,6.286,2617,3.139,2768,6.768,3279,3.018,3284,4.061,3543,3.381,6579,6.581,6584,3.488,6662,3.488,6895,4.597,7433,7.778,7442,3.076,7465,8.024,7501,9.552,7535,7.83,7550,3.616,7618,8.932,7620,3.488,7621,3.488,7630,9.428,7638,3.488,7642,3.139,7710,5.243,7711,4.316,7712,8.197,7713,8.197,7714,6.693,7715,6.693,7716,6.693,7717,6.693,7718,8.197,7719,6.693,7720,6.693,7721,8.197,7722,4.316,7723,4.316,7724,4.316,7725,12.532,7726,4.316,7727,4.316,7728,6.693,7729,4.316,7730,6.693,7731,4.316,7732,9.251,7733,6.693,7734,4.316,7735,6.693,7736,4.316,7737,4.316,7738,4.316,7739,6.693,7740,4.316,7741,6.693,7742,4.316,7743,4.316,7744,4.316,7745,9.995,7746,6.693,7747,4.316,7748,4.316,7749,4.316,7750,4.316,7751,4.316,7752,4.316,7753,4.316,7754,4.316,7755,4.316,7756,4.316,7757,4.316,7758,4.316,7759,4.316,7760,4.316,7761,4.316,7762,4.316,7763,3.991,7764,4.316,7765,6.693,7766,4.316,7767,6.693,7768,4.316,7769,4.316,7770,4.316,7771,6.693,7772,4.316,7773,6.693,7774,4.316,7775,6.693,7776,4.316,7777,4.316,7778,4.316,7779,6.693,7780,6.693,7781,4.316,7782,4.316,7783,4.316,7784,3.776,7785,4.316,7786,4.316,7787,4.316,7788,4.316,7789,4.316,7790,4.316,7791,3.776,7792,6.693,7793,4.316,7794,4.316]],["title/injectables/DashboardRepo.html",[539,0.901,7795,5.335]],["body/injectables/DashboardRepo.html",[0,0.307,3,0.015,4,0.015,5,0.008,7,0.099,8,1.085,9,3.067,26,2.794,27,0.485,29,0.922,30,0.001,31,0.663,32,0.162,33,0.568,34,1.541,35,1.352,36,2.836,39,3.029,49,2.563,95,0.143,96,1.785,97,2.816,99,1.084,101,0.015,103,0.001,104,0.001,105,0.701,154,1.934,177,1.656,226,0.929,236,1.057,239,1.491,262,2.946,349,1.266,379,0.813,437,1.685,448,2.663,511,2.903,539,1.198,541,1.555,608,2.898,631,5.342,679,3.817,1276,2.031,1663,2.75,2249,6.482,2291,4.389,3279,4.543,3284,5.49,6895,4.463,7195,7.312,7433,7.707,7465,9.327,7501,6.897,7630,4.833,7710,8.819,7732,7.916,7791,5.685,7795,7.089,7796,6.008,7797,8.366,7798,7.916,7799,8.366,7800,6.498,7801,9.625,7802,6.498,7803,9.107,7804,6.498,7805,8.366,7806,6.498,7807,9.625,7808,6.498,7809,6.008,7810,6.008,7811,8.366,7812,6.008,7813,5.685,7814,7.58,7815,4.953,7816,8.366,7817,6.008,7818,8.366,7819,6.008,7820,9.625,7821,6.008,7822,8.366,7823,6.008,7824,6.008]],["title/classes/DashboardResponse.html",[0,0.231,7450,5.191]],["body/classes/DashboardResponse.html",[0,0.342,2,0.683,3,0.014,4,0.014,5,0.007,7,0.093,27,0.412,29,0.475,30,0.001,31,0.342,32,0.158,33,0.293,34,2.328,47,0.93,55,1.863,83,1.874,95,0.11,101,0.017,103,0,104,0,112,0.688,138,1.575,150,1.391,153,3.106,154,1.851,172,1.949,245,3.583,247,2.672,253,5.662,319,4.543,379,1.37,404,4.107,517,2.34,556,2.181,769,3.089,814,3.068,816,2.801,824,3.251,844,4.765,970,4.187,1076,3.889,1203,4.157,1396,4.267,1880,5.446,2720,6.329,2722,4.444,2742,4.577,2856,6.159,2857,6.159,3735,7.46,6536,5.757,6537,6.797,6622,4.54,6663,8.249,6893,6.997,6894,6.783,6895,8.942,6896,6.783,6899,4.782,6900,3.791,6901,4.44,6902,4.932,6927,6.17,7433,6.887,7442,4.349,7450,8.814,7534,7.485,7642,8.411,7650,9.344,7651,5.34,7652,8.804,7653,8.43,7654,8.43,7658,8.849,7659,5.34,7668,5.34,7669,5.34,7670,5.34,7671,5.34,7672,5.34,7825,6.104,7826,6.104,7827,6.104]],["title/injectables/DashboardUc.html",[539,0.901,7448,5.705]],["body/injectables/DashboardUc.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.096,8,1.066,26,2.946,27,0.48,29,0.913,30,0.001,31,0.681,32,0.16,33,0.563,35,1.337,36,2.587,39,3.654,47,0.725,95,0.149,99,1.057,101,0.01,103,0.001,104,0.001,143,1.41,177,1.627,226,0.906,227,2.608,236,1.03,262,2.838,271,4.017,292,3.206,349,1.061,379,1.112,437,1.517,511,2.83,519,1.962,529,1.792,539,1.176,541,1.516,603,2.355,608,2.878,639,2.973,1741,7.574,2031,3.579,2619,4.734,2663,5.306,2742,5.427,4451,4.036,4455,4.351,4778,3.516,6993,5.542,7433,8.013,7448,7.446,7456,9.74,7465,8.098,7496,9.326,7504,10.458,7535,4.962,7575,5.306,7795,6.963,7798,7.776,7803,7.776,7814,9.326,7828,6.334,7829,10.269,7830,10.269,7831,8.889,7832,6.334,7833,6.334,7834,6.334,7835,6.334,7836,6.334,7837,6.334,7838,6.334,7839,8.889,7840,6.334,7841,6.334,7842,5.856,7843,4.829,7844,6.334,7845,6.334,7846,6.334,7847,6.334,7848,10.269,7849,8.889,7850,8.889,7851,6.334,7852,6.334,7853,6.334,7854,6.334]],["title/classes/DashboardUrlParams.html",[0,0.231,7437,5.958]],["body/classes/DashboardUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,3814,5.762,7433,7.439,7437,10.348,7456,11.11,7855,9.809,7856,9.809]],["title/classes/DatabaseManagementConsole.html",[0,0.231,7857,5.705]],["body/classes/DatabaseManagementConsole.html",[0,0.197,2,0.65,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,27,0.438,29,0.762,30,0.001,31,0.548,32,0.134,33,0.514,35,1.176,36,2.513,47,0.41,95,0.124,101,0.019,103,0,104,0,105,0.626,119,1.7,138,1.78,142,4.187,143,1.292,145,2.972,153,2.964,219,3.254,262,2.78,284,2.58,345,1.848,349,1.011,379,0.726,437,1.611,490,4.782,510,4.521,556,2.975,603,1.166,608,2.467,1654,4.647,1759,7.087,2026,6.32,2768,3.445,3229,3.522,3247,5.253,3440,5.078,3442,4.862,3443,7.117,3446,6.75,3448,7.908,3452,8.555,3453,6.732,3454,3.445,3456,4.547,3457,5.472,4321,6.494,5600,4.69,5602,5.078,6258,3.022,7857,6.998,7858,10.486,7859,7.723,7860,8.353,7861,8.649,7862,9.535,7863,5.804,7864,7.723,7865,9.939,7866,8.967,7867,5.804,7868,7.723,7869,7.929,7870,5.804,7871,8.885,7872,8.436,7873,5.395,7874,6.368,7875,5.804,7876,5.078,7877,4.862,7878,7.723,7879,8.159,7880,7.723,7881,5.078,7882,7.723,7883,7.723,7884,5.366,7885,5.366,7886,5.366,7887,8.967,7888,7.723,7889,9.047,7890,3.987,7891,7.308,7892,5.366,7893,5.366,7894,5.078]],["title/controllers/DatabaseManagementController.html",[259,2.591,7895,5.958]],["body/controllers/DatabaseManagementController.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.113,8,1.189,27,0.508,29,0.869,30,0.001,31,0.625,32,0.153,33,0.536,35,1.49,36,2.816,47,0.901,95,0.126,101,0.012,103,0.001,104,0.001,119,2.272,138,2.256,223,3.061,226,1.063,259,2.828,261,3.53,262,3.012,310,3.222,333,3.146,345,2.366,349,1.281,437,0.962,608,2.286,2900,4.201,3456,5.824,6681,6.699,7859,11.009,7861,9.622,7862,8.744,7872,8.302,7877,6.228,7894,8.677,7895,8.677,7896,12.76,7897,7.435,7898,7.435,7899,9.918,7900,9.17,7901,9.918,7902,7.435,7903,9.918,7904,7.435,7905,10.417,7906,9.918,7907,7.435,7908,6.874,7909,9.918,7910,7.435,7911,7.435,7912,9.918,7913,7.435,7914,11.161,7915,9.918,7916,7.435,7917,7.435,7918,7.435,7919,7.435,7920,7.435,7921,7.435,7922,7.435,7923,7.435,7924,7.435]],["title/modules/DatabaseManagementModule.html",[201,1.804,7925,5.705]],["body/modules/DatabaseManagementModule.html",[0,0.327,3,0.023,4,0.023,5,0.011,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.339,203,3.469,204,3.727,205,3.836,206,3.82,207,3.804,208,4.617,209,4.74,218,4.656,219,3.757,220,3.669,226,1.379,1759,5.787,7925,11.577,7926,9.644,7927,9.644,7928,9.644,7929,11.513,7930,8.917,7931,8.917,7932,8.079]],["title/injectables/DatabaseManagementService.html",[539,0.901,7929,5.503]],["body/injectables/DatabaseManagementService.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.945,27,0.525,29,0.949,30,0.001,31,0.697,32,0.167,33,0.585,35,1.494,36,2.852,47,0.973,95,0.139,96,2.167,97,2.324,99,0.895,101,0.009,103,0,104,0,143,2.083,173,1.586,177,0.982,226,0.767,262,3.039,345,1.707,349,1.285,379,0.671,437,1.658,539,1.044,541,1.284,574,8.173,603,1.584,608,2.738,686,3.723,696,3.689,751,4.088,1150,3.72,1559,3.47,1654,5.787,2249,5.938,2289,5.327,3279,3.75,3284,4.785,3830,6.373,3841,8.183,5130,4.959,6952,6.127,7861,8.333,7865,6.178,7874,7.861,7900,7.292,7905,10.392,7908,7.292,7929,6.373,7930,11.994,7933,4.692,7934,7.887,7935,7.292,7936,7.887,7937,7.887,7938,7.887,7939,10.313,7940,7.887,7941,5.363,7942,7.887,7943,5.363,7944,7.887,7945,5.363,7946,7.887,7947,5.363,7948,7.887,7949,5.363,7950,7.887,7951,5.363,7952,5.363,7953,7.887,7954,5.363,7955,5.363,7956,5.363,7957,5.363,7958,5.363,7959,5.363,7960,5.363,7961,5.363,7962,9.354,7963,7.887,7964,5.363,7965,5.363,7966,5.363,7967,5.363,7968,7.887,7969,5.363,7970,5.363,7971,5.363,7972,7.887,7973,5.363,7974,5.363,7975,5.363,7976,5.363,7977,5.363,7978,5.363,7979,5.363]],["title/classes/DeleteFilesConsole.html",[0,0.231,7980,5.958]],["body/classes/DeleteFilesConsole.html",[0,0.265,2,0.873,3,0.018,4,0.018,5,0.012,7,0.118,8,1.227,27,0.419,29,0.797,30,0.001,31,0.573,32,0.14,33,0.491,35,0.936,36,2.178,55,2.711,83,2.393,95,0.145,101,0.013,103,0.001,104,0.001,138,1.418,153,2.597,236,1.268,262,2.504,345,2.481,379,0.975,437,1.008,480,2.164,486,2.345,603,1.566,608,1.797,818,4.365,824,4.152,1274,2.466,1572,7.443,1770,5.584,2250,4.683,2251,5.477,2702,3.68,3448,6.299,3452,8.332,3453,7.63,3454,4.627,5386,10.613,6258,6.316,6599,9.371,7980,8.953,7981,11.425,7982,7.795,7983,9.462,7984,7.795,7985,10.833,7986,7.795,7987,10.234,7988,11.313,7989,11.313,7990,9.995,7991,9.571,7992,11.425,7993,7.795,7994,11.425,7995,7.795,7996,6.106,7997,7.207,7998,7.207,7999,6.819,8000,7.795,8001,7.795,8002,7.795,8003,7.795,8004,4.966]],["title/injectables/DeleteFilesUc.html",[539,0.901,7985,5.705]],["body/injectables/DeleteFilesUc.html",[0,0.171,3,0.012,4,0.012,5,0.011,7,0.076,8,0.903,27,0.477,29,0.834,30,0.001,31,0.6,32,0.154,33,0.514,35,1.286,36,2.129,47,0.637,55,1.941,58,4.864,83,2.769,95,0.148,99,0.841,101,0.008,103,0.001,104,0,112,0.598,143,2.008,145,1.4,154,1.077,177,1.651,208,1.846,220,1.918,226,0.721,236,1.628,262,2.806,280,5.173,330,3.462,349,0.931,379,0.942,437,1.657,480,1.4,486,1.517,539,0.997,541,1.207,579,2.685,595,3.17,603,2.699,608,2.684,662,2.836,696,4.431,708,3.129,982,4.864,986,1.704,1174,2.706,1274,1.595,1922,2.728,2032,3.17,2250,3.696,2251,4.517,2295,3.666,2300,3.949,2425,2.728,2585,5.553,3539,3.68,6258,5.209,6336,3.524,6337,6.305,6338,3.524,6339,3.524,6401,6.59,7983,6.964,7985,6.31,7988,8.753,7996,5.901,7998,4.66,7999,4.41,8004,3.212,8005,11.969,8006,5.041,8007,10.005,8008,6.59,8009,7.532,8010,7.532,8011,10.005,8012,5.041,8013,9.078,8014,9.754,8015,7.532,8016,7.532,8017,7.964,8018,5.041,8019,6.31,8020,9.368,8021,7.532,8022,8.875,8023,5.041,8024,7.532,8025,5.041,8026,7.532,8027,5.041,8028,5.041,8029,7.532,8030,4.223,8031,4.41,8032,4.073,8033,4.66,8034,5.041,8035,5.041,8036,9.018,8037,10.005,8038,10.005,8039,5.041,8040,9.018,8041,5.041,8042,5.041,8043,5.041,8044,9.018,8045,5.041,8046,5.041,8047,5.041,8048,7.532,8049,5.041,8050,5.041,8051,3.749,8052,5.041,8053,5.041,8054,5.041,8055,5.041,8056,5.041,8057,5.041,8058,5.041,8059,4.223,8060,5.041,8061,4.66,8062,5.041,8063,4.66,8064,3.749,8065,4.66,8066,4.66,8067,5.041,8068,5.041,8069,5.041,8070,7.532,8071,4.66,8072,5.041,8073,6.59,8074,5.041,8075,5.041,8076,5.041,8077,5.041,8078,5.041]],["title/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.231,8079,5.335]],["body/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.377,2,1.385,3,0.017,4,0.017,5,0.009,7,0.112,27,0.507,29,0.574,30,0.001,31,0.413,32,0.174,33,0.593,47,0.784,95,0.125,99,1.229,101,0.018,102,5.963,103,0.001,104,0.001,112,0.783,119,2.261,120,3.241,180,1.991,236,1.93,238,6.397,347,4.069,358,5.219,379,0.921,382,3.352,490,3.939,643,5.656,819,4.163,982,4.757,1194,2.532,1924,4.327,1936,5.742,2333,6.969,6263,3.955,8079,9.688,8080,8.704,8081,7.396,8082,6.445,8083,8.101,8084,10.347,8085,9.294,8086,7.367,8087,5.615,8088,7.367,8089,6.811,8090,8.978,8091,6.811,8092,6.811,8093,6.171,8094,5.479,8095,6.171,8096,5.953,8097,6.445,8098,7.966,8099,8.624,8100,6.171,8101,5.249,8102,5.059,8103,5.059,8104,5.358,8105,6.171]],["title/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.231,8098,5.503]],["body/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.378,2,1.385,3,0.017,4,0.017,5,0.009,7,0.112,27,0.507,29,0.575,30,0.001,31,0.413,32,0.169,33,0.594,47,0.838,95,0.125,99,1.231,101,0.018,102,5.967,103,0.001,104,0.001,112,0.784,119,2.263,180,1.993,236,1.931,238,6.403,347,4.073,358,5.223,379,0.923,382,3.355,490,2.617,643,5.659,819,4.166,982,4.766,1194,3.823,1924,4.335,1936,5.748,2333,6.974,6263,3.962,8079,7.732,8080,8.712,8081,7.399,8082,6.456,8083,8.106,8084,10.351,8085,9.301,8087,5.626,8089,6.823,8090,8.986,8091,6.823,8092,6.823,8093,6.182,8094,5.489,8095,6.182,8096,5.964,8097,6.456,8098,9.999,8099,8.634,8100,6.182,8101,5.259,8102,5.069,8103,5.069,8104,5.368,8105,6.182,8106,9.87]],["title/classes/DoBaseFactory.html",[0,0.231,4314,4.853]],["body/classes/DoBaseFactory.html",[0,0.172,2,0.569,3,0.012,4,0.012,5,0.006,7,0.077,8,0.908,27,0.531,29,1.019,30,0.001,31,0.699,32,0.182,33,0.599,34,1.83,35,1.473,47,0.639,49,2.003,55,2.512,59,3.338,95,0.115,96,1.395,97,2.201,101,0.008,103,0,104,0,112,0.601,120,3.332,133,2.649,140,2.844,143,1.131,153,2.059,154,2.296,155,2.528,177,1.387,180,1.357,236,0.826,271,4.883,319,3.42,349,0.525,379,0.635,382,3.912,413,2.333,437,0.657,447,7.313,448,4.618,449,5.675,452,4.28,453,5.675,454,5.696,455,4.28,456,4.28,457,4.28,458,4.205,459,4.649,460,5.119,461,6.199,462,5.963,463,7.083,464,2.897,469,2.87,470,4.28,471,2.897,472,5.308,473,5.48,474,4.29,475,5.153,476,4.242,477,2.87,478,2.705,479,4.494,480,3.404,481,2.795,482,2.749,483,2.87,484,5.229,485,2.897,486,3.609,487,5.028,488,2.87,489,7.249,490,4.426,491,7.053,492,2.897,493,3.757,494,2.87,495,2.897,496,2.87,497,2.897,498,4.28,501,2.87,502,6.253,503,2.897,504,2.87,505,4.28,506,4.004,507,4.28,508,2.897,509,2.771,510,2.749,511,2.269,512,2.87,513,2.87,514,2.87,515,2.897,516,2.897,517,1.947,518,2.87,519,1.573,520,2.897,521,3.588,522,2.87,523,2.897,525,2.953,526,3.015,992,2.426,993,2.398,994,2.398,995,2.536,996,2.771,1932,3.551,2026,3.28,2404,4.696,4126,3.327,4314,5.398,4316,3.694,8107,5.079,8108,5.079,8109,5.079,8110,5.079]],["title/classes/DomainObject.html",[0,0.231,1601,2.882]],["body/classes/DomainObject.html",[0,0.295,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.315,9,4.101,26,2.548,27,0.518,29,0.676,30,0.001,31,0.487,32,0.15,33,0.417,34,2.153,35,1.044,95,0.11,101,0.018,103,0.001,104,0.001,105,0.937,112,0.871,181,2.937,349,1.133,379,1.086,381,4.377,437,1.124,448,4.93,479,5.062,662,3.974,686,5.18,1276,3.43,1597,6.995,1598,12.048,1599,7.599,1600,3.266,1601,4.643,1602,9.193,1603,8.031,1604,8.161,1605,10.145,7473,7.277,8111,10.973,8112,8.687,8113,8.687]],["title/classes/DomainObjectFactory.html",[0,0.231,8114,6.296]],["body/classes/DomainObjectFactory.html",[0,0.167,2,0.549,3,0.011,4,0.011,5,0.006,7,0.074,8,0.885,27,0.527,29,1.012,30,0.001,31,0.693,32,0.181,33,0.594,34,1.894,35,1.459,47,0.626,55,2.483,59,3.288,95,0.125,101,0.008,103,0,104,0,112,0.586,120,3.247,133,3.103,140,2.747,153,2.017,154,1.896,155,2.463,177,1.351,180,1.769,226,0.701,236,0.798,271,4.841,319,3.332,357,3.739,358,2.158,379,0.613,382,3.885,413,2.273,447,7.271,448,4.558,449,5.577,452,4.17,453,5.577,454,5.767,455,4.17,456,4.17,457,4.17,458,4.097,459,4.553,460,5.014,461,6.119,462,5.875,463,7.037,464,2.798,469,2.772,470,4.17,471,2.798,472,5.217,473,5.386,474,4.216,475,5.065,476,4.133,477,2.772,478,2.613,479,4.447,480,3.296,481,2.7,482,2.655,483,2.772,484,5.139,485,2.798,486,3.572,487,4.925,488,2.772,489,7.195,490,4.307,491,6.993,492,2.798,493,3.66,494,2.772,495,2.798,496,2.772,497,2.798,498,4.17,501,2.772,502,6.172,503,2.798,504,2.772,505,4.17,506,3.901,507,4.17,508,2.798,509,4.841,510,3.994,511,2.192,512,2.772,513,2.772,514,2.772,515,2.798,516,2.798,517,2.83,518,2.772,519,1.52,520,2.798,521,3.909,522,2.772,523,2.798,525,2.853,526,2.912,529,1.388,992,3.525,993,3.484,994,3.484,995,3.685,996,4.027,1076,3.125,1597,4.292,1601,3.123,1684,3.047,1715,2.066,1891,3.568,1892,3.496,1932,3.43,2026,3.168,3832,3.369,6317,3.213,8114,6.823,8115,4.906,8116,4.906,8117,4.906,8118,7.38,8119,3.568]],["title/classes/DownloadFileParams.html",[0,0.231,6304,4.6]],["body/classes/DownloadFileParams.html",[0,0.456,2,0.721,3,0.015,4,0.021,5,0.011,7,0.098,26,2.656,27,0.368,30,0.001,32,0.167,39,1.731,47,0.955,95,0.159,99,1.074,101,0.022,103,0.001,104,0.001,105,0.694,112,0.714,119,1.829,138,1.635,143,1.433,147,4.825,148,2.042,149,4.265,150,1.466,151,5.976,153,1.463,154,1.376,245,3.639,247,2.817,248,5.099,249,4.535,348,3.213,803,4.986,804,6.726,834,3.247,847,3.074,984,2.776,986,2.176,1075,3.78,1135,5.726,1136,4.216,1137,4.216,1194,2.212,1276,2.012,2677,4.676,2860,5.103,3570,3.151,4206,2.183,5889,5.201,5904,6.604,6236,4.805,6249,6.784,6255,6.117,6284,3.171,6287,4.42,6288,4.499,6289,4.499,6290,5.63,6292,7.842,6295,4.499,6296,8.124,6297,7.838,6298,7.838,6299,4.499,6300,4.42,6301,7.966,6302,4.42,6303,4.499,6304,6.071,6305,7.572,6306,4.279,6307,4.347,6308,4.42,6309,4.347,6310,4.347,6311,4.1,6312,4.499,6313,4.499,6314,4.499,6315,4.1,6316,4.1,6317,4.216,6318,4.279,6319,4.499,8120,6.436,8121,6.436]],["title/classes/DtoCreator.html",[0,0.231,8122,5.958]],["body/classes/DtoCreator.html",[0,0.205,2,0.424,3,0.009,4,0.009,5,0.005,7,0.057,8,0.724,27,0.516,29,0.849,30,0.001,31,0.629,32,0.178,33,0.523,34,1.029,35,1.384,95,0.127,99,0.632,100,2.887,101,0.006,103,0,104,0,112,0.48,119,1.749,120,2.657,143,1.345,145,1.677,177,1.106,226,0.542,236,0.983,239,2.825,347,3.664,349,1.255,376,2.631,377,2.741,379,0.942,437,1.7,539,0.799,603,2.717,604,1.539,643,1.683,769,1.917,844,5.167,1038,2.602,1203,1.928,1559,4.618,1609,3.324,1610,2.325,1625,2.481,1695,4.962,1864,3.477,1880,3.554,1882,5.678,1886,2.602,2017,1.658,2018,1.855,2019,1.788,2193,4.047,2469,1.719,2622,3.981,2624,4.869,2626,8.969,2629,4.604,2631,5.367,2634,1.778,2642,7.865,2710,2.887,2711,2.481,2972,2.887,3008,8.214,3009,5.06,3013,5.06,3016,3.173,3035,3.314,3404,3.173,3414,2.382,3417,3.173,3735,2.353,3753,5.714,3878,2.121,4486,4.425,5097,3.173,6432,5.008,6983,7.2,7490,8.356,7644,2.648,7784,3.314,8122,6.59,8123,11.745,8124,3.502,8125,9.535,8126,9.521,8127,6.04,8128,6.04,8129,6.04,8130,7.946,8131,7.946,8132,6.04,8133,6.04,8134,6.04,8135,6.04,8136,6.04,8137,3.788,8138,3.788,8139,3.788,8140,3.788,8141,5.584,8142,10.872,8143,3.788,8144,8.381,8145,5.584,8146,3.788,8147,5.584,8148,3.788,8149,3.788,8150,3.788,8151,3.788,8152,5.584,8153,3.788,8154,5.584,8155,3.788,8156,5.584,8157,3.788,8158,5.584,8159,3.788,8160,2.755,8161,5.284,8162,5.284,8163,3.502,8164,3.502,8165,3.314,8166,5.584,8167,3.502,8168,5.584,8169,5.584,8170,3.502,8171,3.502,8172,3.502,8173,3.502,8174,3.502,8175,3.502,8176,3.502,8177,3.502,8178,3.502,8179,3.502,8180,5.584,8181,3.314,8182,3.502,8183,3.502,8184,3.502,8185,3.502,8186,6.964,8187,3.502,8188,3.502,8189,3.502,8190,3.314,8191,3.314,8192,5.584,8193,3.502,8194,3.502,8195,3.314,8196,3.314,8197,3.173,8198,3.314,8199,3.314,8200,3.502,8201,3.502,8202,3.502,8203,3.502,8204,3.502,8205,3.502,8206,3.314,8207,3.502,8208,3.502,8209,3.502,8210,3.502,8211,3.502,8212,3.502,8213,3.502,8214,3.502,8215,3.173,8216,3.502,8217,3.061,8218,3.502,8219,3.502,8220,3.502]],["title/injectables/DurationLoggingInterceptor.html",[539,0.901,8221,6.296]],["body/injectables/DurationLoggingInterceptor.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.13,8,1.303,27,0.445,29,0.846,30,0.001,31,0.609,32,0.149,33,0.522,35,1.028,95,0.159,101,0.014,103,0.001,104,0.001,131,3.205,153,1.945,226,1.223,345,2.724,349,0.884,379,1.07,437,1.107,478,5.79,521,4.731,539,1.439,541,2.048,961,5.605,963,6.523,1274,2.707,1276,2.675,1755,5.877,2046,9.509,2182,9.106,2250,4.455,2251,5.674,2940,5.78,4539,8.286,6504,8.085,6511,8.783,8221,10.049,8222,11.945,8223,7.912,8224,10.049,8225,9.509,8226,8.557,8227,9.509,8228,10.995,8229,10.995,8230,8.557,8231,9.509,8232,7.912,8233,8.557,8234,8.557,8235,8.557,8236,8.557,8237,8.557]],["title/classes/ElementContentBody.html",[0,0.231,8238,4.6]],["body/classes/ElementContentBody.html",[0,0.454,2,0.64,3,0.013,4,0.013,5,0.007,7,0.087,9,2.697,27,0.234,30,0.001,31,0.631,32,0.188,47,0.875,83,1.754,95,0.143,99,0.953,101,0.022,103,0,104,0,112,0.656,138,1.039,143,1.272,148,1.813,149,3.69,150,1.302,153,2.415,172,1.824,180,2.02,245,3.628,248,5.055,249,4.753,284,1.765,305,4.756,480,3.13,802,5.262,803,3.37,834,1.791,847,2.729,1194,1.964,1203,1.824,1579,3.323,1880,4.394,2193,4.56,2439,2.798,2820,2.763,2821,2.514,2860,4.07,3216,3.391,3218,3.391,3221,3.356,3224,5.013,3227,2.932,3232,3.2,3705,3.549,3726,3.549,3727,6.839,4101,6.402,5621,6.18,5623,6.264,5625,6.18,5627,6.264,5629,6.264,5674,3.743,5711,6.449,5712,6.449,5713,6.449,5714,6.449,5715,6.449,5903,3.593,5904,6.783,7046,3.799,7106,3.64,8238,8.378,8239,5.672,8240,3.924,8241,5.714,8242,5.714,8243,5.41,8244,6.449,8245,6.449,8246,3.924,8247,6.449,8248,3.507,8249,3.859,8250,6.449,8251,6.449,8252,3.799,8253,3.799,8254,3.799,8255,3.799,8256,3.924,8257,3.924,8258,3.924,8259,3.924,8260,3.924]],["title/controllers/ElementController.html",[259,2.591,2699,5.958]],["body/controllers/ElementController.html",[0,0.15,3,0.01,4,0.01,5,0.005,7,0.067,8,0.815,10,3.374,27,0.382,29,0.727,30,0.001,31,0.523,32,0.189,33,0.448,35,1.122,36,2.442,95,0.146,100,1.48,101,0.007,103,0,104,0,138,1.698,142,1.724,143,1.514,150,1.004,177,1.245,223,1.814,226,0.63,236,1.106,259,1.676,261,2.092,262,2.723,270,6.164,282,7.13,287,7.519,290,8.349,294,6.567,324,4.725,333,4.27,334,2.845,335,6.054,336,8.115,337,2.277,338,2.329,340,2.117,343,2.347,345,1.402,346,5.542,347,4.749,349,0.702,437,1.305,603,0.885,608,2.152,631,3.49,685,2.878,819,3.276,844,2.425,1198,6.815,1880,4.41,2193,4.314,2449,3.56,2463,2.588,2468,5.989,2619,5.374,2691,6.506,2693,6.711,2699,5.949,2702,2.08,2703,3.855,2821,4.108,2822,4.08,2871,6.792,2873,7.118,2875,7.118,2876,7.118,2879,7.519,2881,5.495,2894,9.228,2896,4.08,2899,3.14,2900,2.49,2901,2.365,2908,3.56,2918,5.495,2919,5.495,3160,4.333,3247,6.706,3304,3.395,3368,4.671,3562,5.327,3689,4.846,3690,3.855,3704,5.184,3705,2.737,3709,3.14,3710,3.14,3711,3.359,3712,3.691,3717,4.878,3719,4.074,3724,4.074,3726,2.737,3727,6.122,3728,3.56,3729,3.56,3993,3.359,4019,2.771,4021,3.359,4022,3.359,4037,3.855,4046,3.855,4047,3.855,4048,3.855,4052,3.855,4154,6.957,4954,4.074,4967,6.287,5758,11.013,7121,8.827,8244,4.521,8245,4.521,8247,5.522,8250,5.522,8251,5.522,8252,6.208,8261,4.406,8262,7.678,8263,7.678,8264,8.305,8265,4.406,8266,4.406,8267,4.406,8268,4.406,8269,4.406,8270,4.406,8271,6.8,8272,4.406,8273,4.406,8274,4.406,8275,8.169,8276,4.406,8277,4.406,8278,4.406,8279,4.406,8280,4.406,8281,4.406,8282,4.406,8283,5.495,8284,4.406,8285,4.406,8286,4.406,8287,9.337,8288,4.406,8289,4.406,8290,4.406,8291,4.406,8292,4.406,8293,4.406,8294,4.406,8295,4.406,8296,4.406,8297,4.406,8298,4.406]],["title/injectables/ElementUc.html",[539,0.901,2693,5.503]],["body/injectables/ElementUc.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.875,26,2.957,27,0.484,29,0.92,30,0.001,31,0.662,32,0.165,33,0.567,35,1.379,36,2.623,39,3.317,59,1.502,95,0.15,99,0.806,101,0.008,103,0,104,0,119,1.79,177,1.925,180,1.308,226,0.691,236,1.431,239,1.109,262,2.925,349,0.908,379,0.913,382,2.654,437,1.485,448,4.845,529,2.488,539,0.966,541,1.157,560,1.991,603,2.221,608,2.887,639,2.269,685,2.046,785,2.414,822,2.784,1274,1.53,1609,5.788,1624,3.321,1625,3.167,1695,6.068,1764,3.215,1799,5.202,1850,7.126,1855,9.812,1861,3.907,1880,5.003,2033,3.266,2193,3.964,2250,4.706,2450,5.613,2451,8.43,2453,5.719,2454,5.719,2455,3.517,2456,8.118,2458,3.596,2459,5.31,2460,6.267,2462,3.788,2463,6.744,2465,3.788,2466,5.202,2468,4.333,2469,2.194,2480,4.05,2482,5.43,2693,5.899,2732,3.321,2811,5.531,2821,4.865,2822,5.277,3095,3.596,3160,4.651,3229,5.944,3304,3.645,3534,9.278,3795,3.907,3796,3.907,3797,3.907,3800,3.907,3801,3.907,3980,2.933,4155,7.694,4183,4.47,5643,4.534,5674,6.418,5761,8.131,8262,8.131,8263,6.749,8299,4.835,8300,7.3,8301,8.795,8302,4.835,8303,4.835,8304,4.835,8305,7.3,8306,4.835,8307,7.3,8308,4.835,8309,4.835,8310,4.835,8311,4.23,8312,4.47,8313,4.835,8314,4.835,8315,4.835,8316,7.3,8317,4.835,8318,4.835,8319,4.835,8320,4.835,8321,4.47,8322,4.835,8323,4.47,8324,4.47,8325,3.907,8326,4.835,8327,4.835,8328,7.3,8329,4.835,8330,4.835,8331,4.835,8332,4.47,8333,3.685,8334,4.835]],["title/modules/EncryptionModule.html",[201,1.804,8335,4.953]],["body/modules/EncryptionModule.html",[0,0.287,3,0.02,4,0.02,5,0.01,30,0.001,47,0.596,95,0.164,101,0.014,103,0.001,104,0.001,201,3.146,203,3.039,204,3.265,205,3.36,206,3.346,207,3.333,208,3.949,209,4.054,214,6.131,218,4.288,219,3.292,220,3.214,225,4.253,226,1.208,236,1.374,349,0.873,437,1.093,474,3.609,584,8.907,598,4.865,636,6.27,637,7.683,639,5.06,1274,2.673,1922,5.835,2250,5.297,2251,5.966,8335,9.611,8336,8.449,8337,8.449,8338,8.449,8339,8.832,8340,10.389,8341,7.812,8342,7.392,8343,8.449,8344,11.875,8345,8.449,8346,8.449,8347,8.449,8348,7.812,8349,8.449]],["title/classes/EntityNotFoundError.html",[0,0.231,291,4.953]],["body/classes/EntityNotFoundError.html",[0,0.262,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,8,1.219,27,0.539,29,0.601,30,0.001,31,0.432,32,0.186,33,0.546,35,0.927,47,0.91,55,1.661,59,2.399,95,0.129,101,0.013,103,0.001,104,0.001,112,0.807,138,2.284,154,2.174,177,2.495,180,1.822,182,2.511,226,1.104,291,7.396,292,5.146,347,2.827,379,0.965,382,3.891,687,5.755,816,5.546,819,2.709,946,5.276,984,5.213,986,4.086,1021,4.448,1201,8.286,1202,7.499,1203,3.859,1204,7.245,1208,4.986,1209,4.285,1210,4.986,1211,4.986,1212,4.986,1213,4.986,1214,4.986,1215,4.632,1216,4.403,1217,6.048,1218,6.467,1222,4.855,3820,7.137,8350,10.169,8351,7.72,8352,7.72,8353,7.72,8354,7.72]],["title/classes/ErrorLoggable.html",[0,0.231,8355,5.503]],["body/classes/ErrorLoggable.html",[0,0.334,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,8,1.009,27,0.485,29,0.837,30,0.001,31,0.602,32,0.167,33,0.516,35,1.182,47,0.759,95,0.15,101,0.01,103,0,104,0,112,0.668,119,1.713,143,1.873,148,2.67,172,3.636,177,1.968,226,0.838,246,4.738,283,6.6,316,3.148,340,2.818,345,1.866,349,1.224,379,0.733,437,1.473,448,2.403,480,3.161,486,1.764,493,2.908,511,2.62,521,3.333,603,2.651,604,2.382,756,3.841,984,4.245,986,4.463,992,4.019,993,3.972,994,3.972,995,4.201,996,3.2,997,4.027,998,3.961,1021,3.292,1072,3.899,1073,3.599,1150,3.347,1159,4.178,1198,7.691,1207,7.361,1220,3.284,1221,3.599,1271,4.516,1272,5.05,1276,2.63,1277,5.299,1716,3.557,2109,4.027,2256,3.376,2677,3.799,3850,4.738,4692,4.912,7843,4.47,8355,6.8,8356,5.864,8357,9.842,8358,8.414,8359,8.414,8360,8.414,8361,5.864,8362,5.864,8363,9.842,8364,5.864,8365,8.414,8366,5.864,8367,5.864,8368,5.558,8369,5.773,8370,8.414,8371,5.864,8372,8.414,8373,5.864,8374,5.864,8375,5.864,8376,5.864,8377,8.414,8378,5.864,8379,5.864,8380,10.754,8381,5.864,8382,5.864,8383,4.47,8384,5.864,8385,8.414,8386,5.864,8387,5.864,8388,8.414,8389,5.864,8390,4.099,8391,5.421,8392,4.361,8393,4.912,8394,5.864,8395,5.864,8396,5.864,8397,5.864,8398,5.864,8399,5.864,8400,8.414,8401,5.864,8402,5.864,8403,5.864,8404,5.864]],["title/injectables/ErrorLogger.html",[539,0.901,8405,5.705]],["body/injectables/ErrorLogger.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,27,0.51,29,0.97,30,0.001,31,0.698,32,0.17,33,0.598,35,1.438,72,3.419,95,0.158,101,0.012,103,0.001,104,0.001,107,1.807,177,1.379,203,2.709,226,1.077,358,3.314,379,0.942,437,1.548,519,4.111,539,1.324,541,1.803,603,1.513,639,3.535,986,3.383,1021,4.682,1271,6.463,2250,4.605,2940,5.088,6493,6.087,7873,4.864,8405,9.411,8406,12.808,8407,7.532,8408,10.005,8409,10.005,8410,10.005,8411,10.471,8412,7.532,8413,10.005,8414,7.532,8415,10.005,8416,7.532,8417,10.005,8418,7.532,8419,10.005,8420,7.532,8421,6.589,8422,7.838,8423,6.087,8424,6.964,8425,6.589,8426,11.066,8427,7.532,8428,7.532,8429,7.532,8430,7.532]],["title/classes/ErrorMapper.html",[0,0.231,8431,5.958]],["body/classes/ErrorMapper.html",[0,0.294,2,0.97,3,0.02,4,0.02,5,0.01,7,0.131,8,1.314,27,0.355,29,0.675,30,0.001,31,0.486,32,0.118,33,0.416,35,1.041,95,0.152,101,0.014,103,0.001,104,0.001,226,1.239,236,2.054,282,5.384,287,5.678,349,0.895,413,3.701,986,4.497,1158,6.031,1159,6.176,1160,6.79,1189,7.583,2468,7.495,2618,7.271,8431,9.587,8432,8.668,8433,11.11,8434,8.668,8435,10.203,8436,8.668,8437,10.958,8438,5.763,8439,12.017,8440,8.668,8441,8.668,8442,6.607,8443,8.668,8444,8.668]],["title/modules/ErrorModule.html",[201,1.804,6493,5.503]],["body/modules/ErrorModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.163,101,0.015,103,0.001,104,0.001,153,2.059,201,3.248,203,3.258,204,3.501,205,3.603,206,3.587,207,3.573,208,4.126,209,3.406,214,6.241,218,4.48,219,3.529,220,3.446,225,4.443,226,1.295,486,3.389,636,5.267,2250,3.713,3246,7.49,3454,6.687,4321,6.835,4483,6.687,6493,10.869,6506,7.876,6510,10.746,8445,9.058,8446,9.058,8447,9.058,8448,10.415,8449,6.905,8450,9.437,8451,9.058,8452,9.058,8453,6.905]],["title/classes/ErrorResponse.html",[0,0.231,1215,4.086]],["body/classes/ErrorResponse.html",[0,0.238,2,0.786,3,0.016,4,0.016,5,0.008,7,0.106,27,0.514,29,0.547,30,0.001,31,0.393,32,0.19,33,0.52,47,0.978,55,2.618,59,2.181,95,0.089,101,0.012,103,0.001,104,0.001,112,0.758,153,2.464,168,5.442,177,2.537,226,1.004,348,5.807,361,5.392,379,1.193,819,3.348,946,6.145,984,5.247,986,4.416,1021,5.021,1202,7.553,1203,4.099,1215,5.725,1216,4.004,1227,8.46,1228,7.097,1229,6.25,1236,6.833,1237,6.634,1239,5.856,1241,8.348,1242,5.495,1244,8.822,1245,6.162,1246,8.822,1347,6.141,2504,3.136,2722,3.602,3867,6.49,3868,5.351,3869,6.49,8454,7.02,8455,7.02,8456,9.542,8457,7.02,8458,7.02,8459,7.02,8460,7.02]],["title/classes/ErrorUtils.html",[0,0.231,1159,4.853]],["body/classes/ErrorUtils.html",[0,0.254,2,0.839,3,0.017,4,0.017,5,0.009,7,0.114,8,1.195,27,0.489,29,0.93,30,0.001,31,0.669,32,0.136,33,0.573,35,1.435,47,0.791,59,2.327,95,0.142,101,0.012,103,0.001,104,0.001,105,0.808,145,2.08,153,2.715,226,1.071,236,1.218,340,3.6,349,1.234,413,4.238,556,2.511,604,4.852,986,4.773,1150,4.75,1159,7.103,1201,7.33,3668,9.356,3856,5.868,8461,7.49,8462,9.967,8463,9.967,8464,12.435,8465,9.967,8466,9.967,8467,7.49,8468,9.053,8469,9.967,8470,7.49,8471,9.967,8472,7.49,8473,10.005,8474,9.967,8475,7.49,8476,7.49,8477,11.943,8478,7.49]],["title/injectables/EtherpadService.html",[539,0.901,8479,5.958]],["body/injectables/EtherpadService.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.121,8,1.246,26,2.593,27,0.426,29,0.809,30,0.001,31,0.582,32,0.158,33,0.499,35,0.959,36,2.211,39,2.796,47,0.935,94,3.883,95,0.155,101,0.017,103,0.001,104,0.001,145,2.216,177,1.461,226,1.141,236,1.298,262,2.532,284,3.21,345,2.54,349,1.073,379,0.998,437,1.495,539,1.375,541,1.91,560,3.285,579,4.251,603,1.603,608,1.839,685,3.377,986,3.514,1174,4.284,1203,3.909,1274,2.525,1858,5.848,2250,4.737,2251,5.527,2439,3.907,8479,9.092,8480,7.98,8481,10.392,8482,6.981,8483,9.466,8484,7.98,8485,10.392,8486,7.98,8487,7.378,8488,6.981,8489,10.392,8490,7.98,8491,7.98,8492,7.98,8493,7.98,8494,7.378,8495,7.98,8496,7.378,8497,5.686]],["title/classes/ExternalGroupDto.html",[0,0.231,8498,5.191]],["body/classes/ExternalGroupDto.html",[0,0.278,2,0.917,3,0.019,4,0.019,5,0.01,7,0.124,27,0.553,29,0.638,30,0.001,31,0.693,32,0.189,33,0.561,47,0.925,83,3.796,95,0.134,101,0.013,103,0.001,104,0.001,112,0.839,181,2.829,379,1.024,381,2.751,564,2.515,655,5.882,970,3.961,1982,3.258,2504,3.659,3060,5.097,4282,3.586,4344,4.915,6938,4.862,6939,5.027,8248,7.182,8498,9.757,8499,11.437,8500,7.573,8501,10.238,8502,10.57,8503,8.191,8504,8.191,8505,8.191,8506,8.92,8507,8.191,8508,8.191,8509,9.168,8510,8.191,8511,6.862,8512,7.573,8513,6.417,8514,7.166,8515,7.166,8516,7.166,8517,7.166,8518,7.166,8519,8.191,8520,8.191]],["title/classes/ExternalGroupUserDto.html",[0,0.231,8509,5.335]],["body/classes/ExternalGroupUserDto.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.739,30,0.001,31,0.531,32,0.171,33,0.455,47,0.818,95,0.12,99,1.582,101,0.016,103,0.001,104,0.001,112,0.92,181,3.102,379,1.186,381,3.186,970,6.303,4602,7.422,8499,10.92,8509,10.474,8521,8.77,8522,8.321,8523,10.715,8524,8.77,8525,8.298,8526,9.485,8527,8.77,8528,8.77]],["title/classes/ExternalSchoolDto.html",[0,0.231,8529,5.065]],["body/classes/ExternalSchoolDto.html",[0,0.318,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.531,29,0.728,30,0.001,31,0.727,32,0.177,33,0.597,47,0.957,101,0.015,103,0.001,104,0.001,112,0.912,181,3.075,379,1.17,381,3.141,655,6.251,1982,3.72,4282,4.094,6938,5.552,6939,5.74,8499,11.155,8529,9.904,8530,9.353,8531,7.822,8532,11.49,8533,9.353,8534,9.353,8535,6.957,8536,7.558]],["title/classes/ExternalSource.html",[0,0.231,8537,4.6]],["body/classes/ExternalSource.html",[0,0.329,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,27,0.517,29,0.755,30,0.001,31,0.543,32,0.173,33,0.465,47,0.927,48,5.999,101,0.016,103,0.001,104,0.001,112,0.932,181,3.142,193,7.049,194,7.592,379,1.212,381,3.255,655,6.35,6938,5.752,6939,5.948,8537,9.085,8538,13.131,8539,9.691,8540,11.742,8541,9.691]],["title/classes/ExternalSourceEntity.html",[0,0.231,8542,5.335]],["body/classes/ExternalSourceEntity.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.5,29,0.699,30,0.001,31,0.503,32,0.167,33,0.431,47,0.862,95,0.142,96,2.466,101,0.018,103,0.001,104,0.001,105,0.969,112,0.89,138,2.038,172,3.899,173,2.655,181,2.998,379,1.123,381,3.015,655,6.427,2500,5.79,3072,5.835,5039,5.14,6818,6.064,6938,5.329,6939,5.51,8542,8.776,8543,11.822,8544,8.3,8545,11.187,8546,11.202,8547,8.977,8548,7.122,8549,6.677,8550,7.033,8551,7.521]],["title/interfaces/ExternalSourceEntityProps.html",[105,0.735,8545,5.958]],["body/interfaces/ExternalSourceEntityProps.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.158,47,0.918,95,0.146,96,2.587,101,0.019,103,0.001,104,0.001,105,1.016,107,2.26,112,0.916,172,3.684,173,2.785,181,2.521,655,6.706,2500,5.965,3072,6.089,5039,5.295,6938,5.591,6939,5.781,8542,7.379,8543,8.708,8544,8.708,8545,10.915,8548,7.349,8549,7.005,8550,7.379,8551,7.89]],["title/classes/ExternalSourceResponse.html",[0,0.231,8552,5.705]],["body/classes/ExternalSourceResponse.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.51,29,0.732,30,0.001,31,0.526,32,0.17,33,0.451,47,0.917,48,5.918,95,0.119,101,0.015,103,0.001,104,0.001,112,0.915,138,2.096,150,2.141,181,3.084,193,6.835,194,7.361,245,3.496,379,1.175,381,3.156,655,6.264,6938,5.578,6939,5.767,8552,11.17,8553,12.994,8554,9.397,8555,11.523,8556,9.397]],["title/classes/ExternalTool.html",[0,0.231,2565,3.356]],["body/classes/ExternalTool.html",[0,0.198,2,0.653,3,0.014,4,0.014,5,0.007,7,0.088,8,1.005,27,0.549,29,0.949,30,0.001,31,0.683,32,0.182,33,0.638,34,1.671,35,1.178,47,0.946,55,2.445,95,0.144,101,0.014,103,0,104,0,105,0.629,112,0.665,119,2.408,180,1.502,181,2.243,349,1.013,379,0.729,381,1.958,382,1.759,413,3.643,1194,3.687,1276,2.619,1683,6.237,1867,2.836,1909,5.86,1930,4.711,1931,4.884,1982,2.318,2483,7.801,2484,6.084,2488,9.064,2491,3.236,2554,6.926,2565,4.129,4282,2.552,5056,5.804,5399,5.762,5765,4.567,5769,8.175,5771,5.39,5777,4.24,5779,4.567,5780,3.876,5781,4.154,5782,4.444,5789,3.876,5790,4.24,5806,6.06,5822,3.819,5825,6.565,6263,3.13,6534,4.567,7201,6.366,7203,6.435,7204,3.666,7236,4.076,7237,4.336,7240,4.336,7241,4.711,7337,8.402,7338,8.604,7339,8.124,7358,3.938,7362,4.004,7386,7.025,8557,11.727,8558,8.379,8559,8.379,8560,8.379,8561,5.83,8562,5.83,8563,5.83,8564,5.83,8565,5.83,8566,5.83,8567,5.83,8568,5.83,8569,7.747,8570,5.83,8571,7.747,8572,5.83,8573,5.1,8574,5.39,8575,5.1,8576,7.747]],["title/classes/ExternalToolConfig.html",[0,0.231,2488,5.065]],["body/classes/ExternalToolConfig.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,9,4.425,27,0.51,29,0.73,30,0.001,31,0.525,32,0.185,33,0.45,47,0.812,95,0.119,101,0.015,103,0.001,104,0.001,112,0.914,181,3.08,379,1.172,381,3.149,1867,4.561,2133,7.036,2484,5.893,2486,4.305,2487,7.853,2488,9.911,2489,8.667,2491,6.911,2495,6.68,2504,4.188,2505,6.68,4344,5.625,8577,12.983,8578,11.507]],["title/classes/ExternalToolConfigCreateParams.html",[0,0.231,2509,4.953]],["body/classes/ExternalToolConfigCreateParams.html",[0,0.333,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,9,6.546,27,0.484,30,0.001,32,0.184,47,0.835,95,0.124,101,0.016,103,0.001,104,0.001,112,0.939,1867,4.773,2133,7.176,2484,5.764,2486,4.211,2491,7.049,2508,9.069,2509,8.603,8579,12.7,8580,9.809,8581,9.809]],["title/classes/ExternalToolConfigEntity.html",[0,0.231,2501,5.503]],["body/classes/ExternalToolConfigEntity.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,9,5.266,27,0.499,29,0.694,30,0.001,31,0.5,32,0.186,33,0.428,47,0.787,95,0.141,96,2.45,101,0.015,103,0.001,104,0.001,112,0.886,138,2.029,143,1.985,172,3.887,173,2.637,181,2.986,379,1.115,381,2.995,834,3.817,1867,4.339,2133,6.879,2484,5.79,2486,4.23,2491,6.758,2495,6.354,2498,7.471,2500,5.766,2501,10.613,2504,3.984,2505,6.354,3395,6.354,4344,5.351,8582,12.757,8583,11.156,8584,8.918]],["title/classes/ExternalToolConfigResponse.html",[0,0.231,2519,5.503]],["body/classes/ExternalToolConfigResponse.html",[0,0.333,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,9,6.546,27,0.484,30,0.001,32,0.184,47,0.835,95,0.124,101,0.016,103,0.001,104,0.001,112,0.939,1867,4.773,2133,7.176,2484,5.764,2486,4.211,2491,7.049,2518,7.926,2519,9.558,8585,12.7,8586,9.809,8587,9.809]],["title/injectables/ExternalToolConfigurationService.html",[539,0.901,8588,5.503]],["body/injectables/ExternalToolConfigurationService.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.979,26,2.235,27,0.459,29,0.872,30,0.001,31,0.628,32,0.153,33,0.538,35,1.267,95,0.16,99,0.938,101,0.009,103,0,104,0,119,2.147,131,2.107,143,1.253,177,1.03,226,0.804,349,1.245,363,3.15,379,0.704,437,1.597,519,1.743,539,1.081,541,1.347,556,1.417,564,2.508,593,3.025,603,1.13,639,2.64,654,1.673,662,4.118,817,5.07,1553,3.933,1715,2.369,1836,7.148,1837,5.997,1839,4.024,1867,2.737,1909,2.596,2484,5.304,2486,4.174,2554,5.274,2565,6.754,5449,7.245,5504,4.286,5780,3.741,6033,3.933,8588,6.599,8589,8.908,8590,5.201,8591,9.614,8592,9.614,8593,8.167,8594,8.167,8595,5.201,8596,8.041,8597,5.626,8598,7.329,8599,5.626,8600,10.358,8601,5.626,8602,7.769,8603,10.346,8604,5.626,8605,8.889,8606,5.626,8607,5.819,8608,8.167,8609,8.889,8610,5.626,8611,8.167,8612,5.626,8613,5.626,8614,5.626,8615,5.626,8616,5.626,8617,9.229,8618,5.626,8619,6.842,8620,5.626,8621,5.626,8622,5.626,8623,8.167,8624,5.626,8625,4.713,8626,5.626,8627,5.626,8628,5.626,8629,4.922,8630,5.626,8631,5.626,8632,11.203,8633,5.626,8634,5.626,8635,6.842,8636,5.626,8637,5.626]],["title/injectables/ExternalToolConfigurationUc.html",[539,0.901,8638,5.705]],["body/injectables/ExternalToolConfigurationUc.html",[0,0.134,3,0.009,4,0.009,5,0.005,7,0.06,8,0.75,26,2.93,27,0.437,29,0.832,30,0.001,31,0.598,32,0.151,33,0.512,34,0.674,35,1.225,36,2.576,39,3.203,95,0.158,99,0.66,100,1.33,101,0.007,103,0,104,0,131,4.871,177,1.867,226,0.566,236,1.018,262,2.829,349,0.91,379,0.782,437,1.643,529,1.77,539,0.828,541,0.948,560,1.63,564,2.705,603,2.432,608,2.868,639,1.858,643,2.78,654,1.861,662,3.807,817,3.727,928,4.268,1073,3.839,1606,6.443,1612,2.402,1715,1.668,1764,2.633,1836,6.765,1837,5.849,1839,3.083,1866,5.541,1867,1.926,2469,1.797,2484,5.025,2486,4.125,2565,5.616,2619,2.109,2982,2.217,3095,2.945,3232,4.934,4206,3.756,4691,3.281,4803,5.286,5449,2.719,5467,4.653,5469,4.769,5807,5.641,5830,5.541,5883,6.897,6033,2.768,6123,8.235,6124,7.101,6131,6.498,6139,3.102,6140,3.839,6143,2.88,6148,5.473,6152,3.102,6161,5.784,6166,6.26,6178,3.661,8588,8.631,8600,5.784,8602,6.267,8603,5.241,8605,7.17,8607,4.458,8609,5.784,8617,5.473,8629,3.464,8638,5.241,8639,10.236,8640,3.661,8641,7.17,8642,6.784,8643,7.17,8644,5.784,8645,7.755,8646,7.755,8647,3.102,8648,7.944,8649,3.959,8650,3.661,8651,3.959,8652,3.464,8653,3.959,8654,3.959,8655,3.959,8656,6.256,8657,3.661,8658,3.959,8659,3.959,8660,3.959,8661,3.959,8662,3.661,8663,3.661,8664,3.661,8665,6.256,8666,6.256,8667,4.769,8668,5.784,8669,3.661,8670,3.959,8671,3.959,8672,6.256,8673,7.755,8674,3.2,8675,5.784,8676,5.784,8677,5.784,8678,3.959,8679,3.959,8680,6.256,8681,3.959,8682,3.959,8683,6.256,8684,3.959,8685,6.256,8686,3.959,8687,3.464,8688,5.784,8689,4.55,8690,5.784,8691,5.473,8692,5.473]],["title/classes/ExternalToolContentBody.html",[0,0.231,5711,4.528]],["body/classes/ExternalToolContentBody.html",[0,0.454,2,0.644,3,0.013,4,0.013,5,0.007,7,0.087,9,2.716,27,0.236,30,0.001,31,0.633,32,0.186,33,0.398,47,0.894,83,1.767,95,0.143,99,0.96,101,0.022,103,0,104,0,112,0.659,138,1.047,143,1.281,148,1.826,149,3.705,150,1.311,153,2.214,172,1.837,180,2.026,245,3.631,248,5.066,249,4.764,284,1.777,305,3.314,480,3.138,802,5.289,803,3.388,834,1.804,847,2.749,1194,1.978,1203,1.837,1579,3.346,1880,4.027,2193,4.573,2439,2.818,2820,2.783,2821,2.532,2860,2.836,3216,3.416,3218,3.416,3221,3.38,3224,5.033,3227,2.953,3232,5.453,3705,3.574,3726,3.574,3727,6.858,4101,5.635,5621,6.205,5623,6.289,5625,6.205,5627,6.289,5629,6.289,5674,3.769,5711,7.088,5712,6.475,5713,6.475,5714,6.475,5715,6.475,5903,3.619,5904,6.798,7046,3.826,7106,3.666,8238,8.2,8239,5.702,8240,3.952,8243,5.438,8244,6.475,8245,6.475,8246,3.952,8247,6.475,8248,3.532,8249,3.887,8250,6.475,8251,6.475,8252,3.826,8253,3.826,8254,3.826,8255,3.826,8256,3.952,8257,3.952,8258,3.952,8259,3.952,8260,3.952,8693,5.755,8694,5.755]],["title/classes/ExternalToolCreateParams.html",[0,0.231,8695,5.705]],["body/classes/ExternalToolCreateParams.html",[0,0.35,2,0.713,3,0.015,4,0.015,5,0.008,7,0.096,27,0.512,29,0.802,30,0.001,31,0.682,32,0.183,33,0.584,47,0.859,95,0.154,101,0.01,103,0.001,104,0.001,112,0.708,119,2.271,138,2.274,143,2.292,147,5.527,148,2.02,149,4.244,150,1.45,172,2.032,245,3.08,248,4.656,249,4.513,480,2.858,521,3.532,556,1.603,1194,3.539,1237,3.63,1867,3.097,1909,5.147,2278,5.351,2344,3.63,2484,5.79,2486,4.23,2491,3.533,2494,4.45,2506,9.492,2509,6.487,2510,4.535,3019,6.355,3704,4.851,3705,3.953,3726,3.953,3727,6.246,5536,5.682,5806,5.817,5893,6.487,5896,5.332,5897,5.332,5898,5.332,5903,4.003,5904,5.765,7201,6.111,7203,6.177,7358,4.299,7362,4.371,7392,9.492,7400,6.798,8253,5.93,8254,4.232,8255,5.93,8695,7.471,8696,10.309,8697,5.143,8698,9.346,8699,9.84,8700,5.568,8701,5.884,8702,6.364,8703,6.364,8704,5.884,8705,5.568,8706,6.364,8707,6.364,8708,6.364,8709,5.884,8710,6.364,8711,5.884,8712,6.364,8713,6.364]],["title/classes/ExternalToolElement.html",[0,0.231,2799,4.461]],["body/classes/ExternalToolElement.html",[0,0.224,2,0.737,3,0.015,4,0.015,5,0.008,7,0.1,8,1.095,27,0.542,29,0.958,30,0.001,31,0.689,32,0.176,33,0.59,35,1.545,36,1.943,47,0.839,55,1.965,59,2.045,95,0.116,101,0.017,103,0.001,104,0.001,105,0.71,112,0.725,119,2.134,137,5.742,145,1.828,180,1.879,262,2.297,349,1.083,381,3.067,382,3.881,448,3.742,474,2.812,479,3.42,480,2.535,517,2.524,519,3.684,556,2.852,604,2.675,608,1.517,662,2.871,686,4.31,1150,2.618,1600,2.475,1601,3.864,1604,6.77,1676,4.167,1882,2.747,2450,5.843,2486,3.476,2724,7.925,2727,6.506,2728,6.506,2729,6.506,2730,7.527,2731,6.506,2733,4.377,2734,5.604,2735,6.65,2737,6.383,2738,5.604,2739,6.519,2741,4.602,2742,4.826,2744,6.593,2745,4.602,2749,4.602,2751,4.377,2778,5.54,2799,7.416,3232,6.34,3964,4.788,3965,4.788,3966,4.788,3975,4.14,8714,9.692,8715,4.691,8716,6.583,8717,6.086,8718,6.583,8719,6.583,8720,5.759,8721,6.583,8722,5.759,8723,8.442,8724,6.086,8725,6.086,8726,6.086,8727,5.759,8728,6.086]],["title/classes/ExternalToolElementContent.html",[0,0.231,8729,5.705]],["body/classes/ExternalToolElementContent.html",[0,0.363,2,0.934,3,0.019,4,0.019,5,0.01,7,0.127,27,0.438,29,0.65,30,0.001,31,0.467,32,0.17,33,0.4,34,1.421,47,0.909,95,0.15,99,1.392,101,0.018,103,0.001,104,0.001,112,0.849,138,1.518,142,4.184,143,2.772,144,3.524,150,1.901,181,3.159,245,3.453,253,4.086,379,1.044,381,2.803,404,3.405,405,4.592,593,3.961,814,4.194,834,2.616,2193,3.376,2486,3.914,2504,3.728,2856,4.444,2857,4.444,2860,4.112,3232,6.611,3399,5.834,3411,5.121,3654,4.953,3658,6.22,3662,5.548,3664,5.548,4021,8.153,4101,6.239,4344,5.007,5629,5.389,6933,6.361,8729,11.034,8730,10.915,8731,6.743,8732,8.344,8733,7.715,8734,7.715,8735,7.715]],["title/classes/ExternalToolElementContentBody.html",[0,0.231,8251,4.528]],["body/classes/ExternalToolElementContentBody.html",[0,0.453,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,802,5.219,803,3.343,814,2.84,834,1.771,847,2.699,1194,1.942,1203,1.804,1579,3.285,1880,3.986,2193,4.884,2439,2.766,2820,2.732,2821,2.485,2860,2.784,3216,3.353,3218,3.353,3221,3.319,3224,4.981,3227,2.899,3232,3.164,3705,3.509,3726,3.509,3727,6.808,4101,5.587,5621,6.14,5623,6.224,5625,6.14,5627,6.224,5629,6.826,5674,3.701,5711,7.028,5712,6.408,5713,6.408,5714,6.408,5715,6.408,5903,3.553,5904,6.76,7046,3.756,7106,3.599,8238,8.512,8239,5.626,8240,3.88,8243,5.366,8244,6.408,8245,6.408,8246,3.88,8247,6.408,8248,3.467,8249,3.816,8250,6.408,8251,7.028,8252,3.756,8253,3.756,8254,3.756,8255,3.756,8256,3.88,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8736,4.426,8737,5.65,8738,5.65]],["title/entities/ExternalToolElementNodeEntity.html",[154,1.456,3142,5.335]],["body/entities/ExternalToolElementNodeEntity.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.131,27,0.353,30,0.001,32,0.118,33,0.524,95,0.165,96,2.371,101,0.018,103,0.001,104,0.001,105,0.931,112,0.868,138,1.57,143,2.433,144,2.843,154,2.336,155,2.88,173,2.552,180,1.958,181,2.31,349,0.891,403,4.791,437,1.116,564,3.356,1600,3.245,1601,4.624,1837,6.469,1880,4.52,2450,5.189,2486,3.623,2503,4.877,2504,3.856,3109,5.732,3120,6.557,3142,8.562,3187,5.297,3212,9.561,3355,5.83,3540,5.574,3558,6.707,3579,5.361,4064,5.499,4066,5.499,5039,5.015,5838,9.17,5839,7.23,8739,10.104,8740,8.631,8741,7.551,8742,7.979,8743,9.561,8744,7.979,8745,7.979,8746,7.979]],["title/interfaces/ExternalToolElementNodeEntityProps.html",[105,0.735,8743,5.958]],["body/interfaces/ExternalToolElementNodeEntityProps.html",[0,0.296,3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,32,0.119,33,0.528,95,0.165,96,2.397,101,0.018,103,0.001,104,0.001,105,0.941,107,2.093,112,0.874,143,1.942,144,2.874,154,2.352,173,2.58,180,2.16,181,2.335,349,0.901,403,4.842,437,1.128,564,3.378,1600,3.28,1601,4.656,1837,6.696,1880,3.608,2450,5.225,2486,2.893,2503,4.93,2504,3.897,3109,5.772,3120,6.602,3142,6.835,3187,5.354,3212,9.626,3355,5.893,3540,5.634,3558,7.397,3579,5.419,4064,5.558,4066,5.558,5039,5.049,5838,9.491,5839,7.309,8739,8.066,8742,8.066,8743,10.544,8744,8.066,8745,8.066,8746,8.066]],["title/interfaces/ExternalToolElementProps.html",[105,0.735,8727,5.958]],["body/interfaces/ExternalToolElementProps.html",[0,0.298,3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,32,0.151,33,0.529,36,1.864,47,0.922,95,0.14,101,0.02,103,0.001,104,0.001,105,0.946,107,2.103,112,0.876,119,1.783,145,2.433,180,2.164,262,1.92,349,1.247,474,3.743,480,2.433,517,3.359,519,2.714,556,2.779,604,3.56,608,2.02,1150,3.485,1600,3.295,1676,5.035,1882,3.657,2486,2.905,2724,6.694,2730,5.826,2734,5.378,2735,6.481,2738,5.378,2739,6.353,2778,7.327,2799,7.911,3232,7.316,3975,5.511,8714,8.101,8715,6.244,8723,10.201,8724,8.101,8725,8.101,8726,8.101,8727,9.653,8728,8.101]],["title/classes/ExternalToolElementResponse.html",[0,0.231,4021,5.191]],["body/classes/ExternalToolElementResponse.html",[0,0.347,2,0.873,3,0.018,4,0.018,5,0.009,7,0.118,27,0.516,29,0.607,30,0.001,31,0.437,32,0.185,33,0.374,34,1.946,47,0.856,95,0.145,99,1.3,101,0.017,103,0.001,104,0.001,112,0.813,138,2.207,142,3.049,143,2.279,144,2.568,150,1.776,181,3.058,245,3.506,253,3.816,379,0.975,381,2.618,404,3.181,405,4.289,593,2.887,834,2.444,2193,4.622,2486,4.287,2504,3.482,2855,5.106,2856,5.451,2857,5.451,2859,4.784,2860,5.043,3232,4.365,3399,5.45,3411,4.784,3654,6.782,3658,6.644,3662,5.183,3664,5.183,4021,9.604,4101,6.659,4344,4.677,5629,6.609,6933,5.942,8729,10.163,8730,11.955,8733,7.207,8734,7.207,8735,7.207,8747,7.207,8748,7.795,8749,7.207,8750,7.795,8751,7.207]],["title/classes/ExternalToolElementResponseMapper.html",[0,0.231,5647,5.958]],["body/classes/ExternalToolElementResponseMapper.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,8,1.213,27,0.494,29,0.788,30,0.001,31,0.567,32,0.165,33,0.485,34,1.305,35,1.361,95,0.144,99,1.278,100,2.573,101,0.013,103,0.001,104,0.001,112,0.803,119,2.059,236,1.96,349,1.17,376,3.337,413,3.963,437,0.991,593,2.837,603,2.276,604,3.113,662,2.409,777,4.547,778,5.616,781,6.002,783,5.698,1276,3.162,1559,4.451,1880,5.509,1938,4.37,2193,3.099,2441,8.426,2444,7.926,2445,7.926,2447,7.713,2486,4.154,2799,8.726,3232,4.29,3654,4.547,3658,5.884,3675,5.459,4021,9.185,4101,4.049,5230,7.125,5629,4.948,5646,6.002,5647,11.481,8729,8.476,8752,12.528,8753,9.185,8754,6.418,8755,6.002,8756,11.329,8757,6.191,8758,6.191,8759,6.191,8760,7.661]],["title/entities/ExternalToolEntity.html",[154,1.456,8761,4.853]],["body/entities/ExternalToolEntity.html",[0,0.219,3,0.015,4,0.015,5,0.008,7,0.098,27,0.533,29,0.808,30,0.001,31,0.581,32,0.18,33,0.614,47,0.904,55,1.938,95,0.142,96,1.774,101,0.015,103,0.001,104,0.001,112,0.715,119,2.285,138,2.366,143,2.933,144,3.89,154,1.925,155,2.154,160,5.917,168,5.138,172,4.25,173,1.909,174,3.583,177,1.182,178,2.682,180,1.157,181,1.728,182,2.1,363,3.615,1194,3.567,1237,3.682,1669,4.69,1909,5.18,1930,5.217,1931,5.409,1982,2.568,2484,5.979,2496,9.072,4266,6.419,4272,5.661,4273,3.917,4282,2.826,5056,5.615,5789,4.293,5790,4.696,5806,5.862,5822,4.229,5825,5.058,5840,5.217,6263,3.466,6534,5.058,7201,6.158,7203,6.225,7204,4.06,7236,4.514,7237,4.802,7240,4.802,7241,5.217,7299,9.072,8575,5.648,8761,6.419,8762,13.173,8763,8.691,8764,9.072,8765,9.072,8766,6.456,8767,6.456,8768,6.456,8769,6.456,8770,6.456,8771,6.456,8772,6.456,8773,6.456,8774,6.456,8775,6.456,8776,7.546,8777,6.456,8778,6.456,8779,6.456]],["title/classes/ExternalToolEntityFactory.html",[0,0.231,8780,6.296]],["body/classes/ExternalToolEntityFactory.html",[0,0.136,2,0.447,3,0.009,4,0.009,5,0.005,7,0.061,8,0.755,27,0.53,29,0.999,30,0.001,31,0.719,32,0.182,33,0.582,34,1.329,35,1.373,47,0.784,55,2.306,59,2.994,95,0.112,101,0.013,103,0,104,0,112,0.5,120,2.771,133,2.203,140,2.237,143,0.889,145,2.166,153,2.013,154,2.06,155,2.102,177,1.153,180,1.129,236,1.44,239,0.917,249,1.616,271,4.93,319,2.844,349,1.107,363,2.237,379,0.5,382,3.714,413,1.94,437,1.386,447,7.002,448,4.196,449,5.003,452,3.56,453,5.003,454,5.427,455,3.56,456,3.56,457,3.56,458,3.497,459,4.003,460,4.408,461,6.439,462,5.349,463,6.82,464,2.278,469,2.257,470,3.56,471,2.278,472,4.68,473,4.832,474,3.782,475,4.544,476,3.528,477,2.257,478,2.128,479,3.835,480,3.084,481,2.198,482,2.162,483,2.257,484,4.61,485,2.278,486,3.52,487,4.33,488,2.257,489,7.19,490,3.938,491,6.276,492,2.278,493,3.869,494,2.257,495,2.278,496,2.257,497,2.278,498,2.257,499,2.545,500,2.371,501,2.257,502,5.683,503,2.278,504,2.257,505,3.56,506,3.33,507,3.56,508,2.278,509,2.18,510,2.162,511,1.785,512,2.257,513,2.257,514,2.257,515,2.278,516,2.278,517,1.532,518,2.257,519,1.237,520,2.278,521,2.495,522,2.257,523,2.278,525,2.323,526,2.371,527,5.782,564,1.227,708,1.66,1194,1.373,1426,3.663,1865,2.847,1909,4.085,1922,3.409,1934,3.693,2133,5.003,2486,3.553,2491,2.217,2494,5.453,2496,6.303,2559,2.793,5056,2.162,5439,3.045,5449,2.744,5467,2.971,5487,4.127,5504,1.623,5589,3.145,5767,2.036,5806,2.257,5852,2.58,5869,2.698,7179,2.617,7185,2.58,7187,4.069,7188,3.347,7189,2.58,7200,2.545,7201,2.371,7203,2.397,7275,2.58,7276,2.971,7299,5.091,7335,2.906,7340,2.481,7358,2.698,7365,3.347,7367,2.847,7368,4.802,7375,3.347,7385,7.418,7387,3.347,8761,4.489,8763,3.347,8764,5.091,8765,5.091,8776,5.278,8780,7.212,8781,10.238,8782,3.995,8783,8.854,8784,8.186,8785,5.825,8786,5.825,8787,3.995,8788,3.995,8789,3.995,8790,5.825,8791,3.995,8792,6.3,8793,3.995,8794,8.854,8795,3.995,8796,3.995,8797,3.228,8798,3.347,8799,3.995,8800,3.995,8801,3.995,8802,3.995]],["title/classes/ExternalToolFactory.html",[0,0.231,7377,5.705]],["body/classes/ExternalToolFactory.html",[0,0.252,2,0.416,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,27,0.518,29,0.994,30,0.001,31,0.702,32,0.18,33,0.58,34,1.013,35,1.341,47,0.42,55,2.516,59,3.363,95,0.118,101,0.015,103,0,104,0,112,0.472,120,2.616,133,2.079,140,2.08,145,2.36,153,1.69,154,1.589,155,1.984,177,1.088,180,1.523,239,0.852,249,1.503,271,5.03,319,2.684,349,1.208,363,2.08,379,0.465,382,3.649,413,1.831,437,1.564,447,6.655,448,4.065,449,4.803,452,3.36,453,4.803,454,5.139,455,3.36,456,3.36,457,3.36,458,3.3,459,3.815,460,4.201,461,6.3,462,5.161,463,6.634,464,2.119,469,2.099,470,3.36,471,2.119,472,4.492,473,4.638,474,3.631,475,4.362,476,3.33,477,2.099,478,1.978,479,3.715,480,3.005,481,2.044,482,2.01,483,2.099,484,4.425,485,2.119,486,3.256,487,4.127,488,2.099,489,7.572,490,3.838,491,6.116,492,2.119,493,2.949,494,2.099,495,2.119,496,2.099,497,2.119,498,2.099,501,2.099,502,5.505,503,2.119,504,2.099,505,3.36,506,3.143,507,3.36,508,2.119,509,2.027,510,2.01,511,1.659,512,2.099,513,2.099,514,2.099,515,2.119,516,2.119,517,1.424,518,2.099,519,1.151,520,2.119,521,2.355,522,2.099,523,2.119,525,2.16,526,2.205,527,5.099,564,1.141,708,1.543,1194,1.277,1237,2.119,1426,3.458,1839,1.83,1865,2.647,1909,3.431,1922,3.218,2133,4.201,2483,2.702,2486,1.232,2491,2.062,2494,2.597,2554,3.84,2559,2.597,2565,1.83,4314,6.625,4316,2.702,5056,2.01,5439,2.831,5449,2.551,5467,4.423,5469,2.831,5504,3.778,5589,2.969,5767,1.893,5806,2.099,5863,3.002,5868,2.91,5869,2.509,7179,2.433,7185,2.399,7187,2.399,7189,2.399,7200,2.367,7201,2.205,7203,2.229,7275,2.399,7330,4.981,7331,8.134,7333,3.25,7335,2.702,7336,4.423,7337,2.91,7338,2.702,7339,2.551,7340,2.307,7341,3.25,7342,3.25,7343,3.25,7344,6.504,7345,4.981,7346,3.25,7347,3.608,7348,3.002,7349,2.702,7350,2.831,7351,3.25,7352,2.763,7353,3.25,7354,3.25,7355,3.112,7356,3.25,7357,3.25,7358,2.509,7359,3.25,7360,3.25,7361,3.25,7362,2.551,7363,3.25,7364,3.25,7365,3.112,7366,3.25,7367,2.647,7368,4.533,7369,5.202,7370,6.504,7371,2.91,7372,5.202,7373,5.202,7374,3.25,7375,3.112,7376,2.91,7377,6.228,7378,5.202,7379,3.25,7380,5.202,7381,3.25,7382,5.202,7383,8.677,7384,3.25,7385,7.12,7386,2.433,7387,3.112,7388,3.25,7389,3.25,7390,3.25,7391,3.25,8784,5.497,8786,5.497,8803,5.946,8804,3.715,8805,3.715,8806,3.715,8807,3.715]],["title/classes/ExternalToolIdParams.html",[0,0.231,8808,5.958]],["body/classes/ExternalToolIdParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.231,145,3.284,148,3.113,150,2.235,245,3.101,256,6.99,803,4.827,2484,5.369,2486,3.922,5805,8.879,5872,8.217,5873,8.581,8696,9.558,8808,10.348]],["title/classes/ExternalToolLogo.html",[0,0.231,8809,5.705]],["body/classes/ExternalToolLogo.html",[0,0.323,2,1.064,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.74,30,0.001,31,0.533,32,0.171,33,0.456,47,0.819,101,0.016,103,0.001,104,0.001,112,0.922,379,1.189,2484,5.922,2486,4.326,6342,8.927,7063,9.723,7386,8.206,8557,11.413,8573,8.318,8809,11.401,8810,9.508,8811,11.606,8812,11.606,8813,9.508,8814,9.508,8815,9.508,8816,8.79]],["title/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.231,8817,5.958]],["body/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.229,2,0.754,3,0.016,4,0.016,5,0.008,7,0.102,8,1.112,27,0.53,29,0.525,30,0.001,31,0.377,32,0.183,33,0.509,35,1.115,47,0.875,55,1.45,59,2.093,95,0.135,101,0.011,103,0.001,104,0.001,112,0.737,138,2.181,177,2.477,180,1.663,182,2.192,226,0.963,284,2.081,340,3.238,345,2.145,347,2.468,349,0.696,379,0.843,382,3.739,564,3.258,595,7.191,603,1.353,816,5.246,819,2.364,946,4.924,984,2.906,986,3.866,1021,4.473,1201,8.057,1202,6.052,1203,3.651,1204,6.761,1208,4.351,1209,3.74,1210,4.351,1211,4.351,1212,4.351,1213,4.351,1214,4.351,1215,4.042,1216,7.378,1222,4.237,1271,5.687,1272,5.446,1274,2.131,1276,2.9,1277,5.634,2484,4.817,2486,4.109,2656,9.239,5806,5.996,5822,4.413,7386,8.118,8368,5.485,8369,5.697,8817,8.117,8818,8.575,8819,4.237,8820,6.229,8821,4.801,8822,5.894,8823,9.278,8824,7.497,8825,5.644,8826,3.918,8827,4.088,8828,6.737]],["title/classes/ExternalToolLogoFetchedLoggable.html",[0,0.231,8829,5.958]],["body/classes/ExternalToolLogoFetchedLoggable.html",[0,0.303,2,1.001,3,0.021,4,0.021,5,0.011,7,0.136,8,1.339,27,0.458,29,0.696,30,0.001,31,0.501,32,0.153,33,0.429,35,1.074,47,0.86,95,0.113,101,0.015,103,0.001,104,0.001,177,1.636,284,2.76,345,2.845,349,0.923,379,1.118,564,2.744,1021,3.496,1267,7.819,1271,5.592,1272,6.254,1274,2.827,1276,3.492,1277,6.291,2484,5.531,2486,4.233,5806,6.886,5822,5.854,7386,8.363,8368,6.299,8369,6.542,8818,9.848,8820,8.263,8824,10.317,8829,9.773,8830,8.937,8831,8.937,8832,8.937]],["title/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.231,8833,5.958]],["body/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.293,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.31,27,0.448,29,0.672,30,0.001,31,0.483,32,0.149,33,0.414,35,1.037,47,0.846,95,0.139,101,0.014,103,0.001,104,0.001,177,1.58,180,1.958,182,2.807,226,1.234,284,2.666,292,6.38,345,2.747,349,0.891,379,1.079,564,2.65,1021,3.376,1271,6.097,1272,6.154,1274,2.73,1276,3.416,1277,6.212,2484,5.443,2486,4.18,2619,6.388,5805,8.385,5817,7.23,7386,8.258,8368,6.199,8369,6.438,8818,9.691,8819,5.428,8826,5.019,8827,5.236,8833,9.561,8834,7.979,8835,6.974,8836,6.974,8837,8.631]],["title/classes/ExternalToolLogoService.html",[0,0.231,8648,5.065]],["body/classes/ExternalToolLogoService.html",[0,0.162,2,0.533,3,0.011,4,0.011,5,0.006,7,0.072,8,0.865,26,2.059,27,0.468,29,0.889,30,0.001,31,0.64,32,0.156,33,0.548,34,1.229,35,1.321,36,2.339,47,0.913,95,0.158,99,0.794,101,0.008,103,0,104,0,177,1.779,226,0.681,236,1.914,262,2.639,349,1.215,379,0.902,437,1.672,484,5.724,519,2.235,529,3.11,556,2.449,564,1.462,579,2.536,603,2.467,604,3.54,608,2.008,639,2.234,696,1.878,819,1.67,958,7.985,959,2.741,960,5.5,961,3.118,984,2.053,986,2.946,1073,2.922,1174,2.556,1271,2.184,1274,1.506,1715,2.005,1908,5.141,1909,2.197,1920,3.328,2250,4.681,2484,5.34,2486,4.137,2565,6.149,3668,5.652,5806,2.69,6166,7.01,6172,3.847,6342,6.927,7063,9.855,7386,6.368,7523,3.541,8589,8.967,8595,4.401,8596,7.41,8598,6.641,8648,5.366,8674,3.847,8763,6.044,8809,8.751,8817,4.165,8829,4.165,8833,4.165,8838,4.76,8839,7.215,8840,7.215,8841,7.215,8842,7.215,8843,7.215,8844,7.215,8845,4.76,8846,7.215,8847,4.76,8848,7.215,8849,4.76,8850,4.76,8851,7.215,8852,4.76,8853,7.215,8854,4.76,8855,7.215,8856,4.76,8857,2.598,8858,7.215,8859,4.76,8860,4.401,8861,6.312,8862,9.992,8863,4.76,8864,4.76,8865,7.215,8866,4.76,8867,4.76,8868,4.401,8869,4.76,8870,4.76,8871,4.165,8872,4.165,8873,4.76,8874,4.76,8875,4.76,8876,4.76,8877,4.401,8878,4.76,8879,6.671,8880,4.76,8881,7.215,8882,3.392,8883,8.712,8884,4.76,8885,4.76,8886,3.215,8887,4.76,8888,3.729,8889,4.76,8890,4.76,8891,4.76,8892,4.76,8893,7.215,8894,4.76,8895,4.165,8896,4.76,8897,4.76,8898,7.215,8899,4.76,8900,4.76,8901,4.76,8902,4.76,8903,4.76]],["title/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.231,8861,5.958]],["body/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.225,2,0.743,3,0.015,4,0.015,5,0.008,7,0.101,8,1.101,27,0.528,29,0.517,30,0.001,31,0.372,32,0.183,33,0.505,35,1.103,47,0.871,55,2.445,95,0.133,101,0.011,103,0.001,104,0.001,112,0.729,138,2.169,177,2.47,180,1.646,182,2.159,226,0.949,284,2.05,340,3.19,347,2.431,349,0.686,379,1.148,382,3.722,556,2.652,564,3.233,603,1.844,816,5.213,818,6.908,819,2.329,946,4.885,984,2.863,986,3.841,1021,4.444,1201,8.031,1202,6.005,1203,3.627,1204,6.708,1208,4.286,1209,3.684,1210,4.286,1211,4.286,1212,4.286,1213,4.286,1214,4.286,1215,3.982,1216,3.786,1222,4.174,1223,5.2,1271,5.661,1272,5.403,1274,2.1,1276,2.87,1277,5.598,2484,4.779,2486,4.09,5805,7.361,5817,5.56,7386,8.081,8368,5.442,8369,5.652,8818,8.508,8819,4.174,8821,4.73,8826,3.86,8827,4.027,8834,6.137,8861,8.033,8904,11.406,8905,9.939,8906,6.637,8907,9.183,8908,6.637]],["title/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.231,8862,5.958]],["body/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.233,2,0.768,3,0.016,4,0.016,5,0.015,7,0.104,8,1.127,27,0.532,30,0.001,32,0.19,33,0.451,35,1.129,47,0.756,55,1.477,95,0.136,101,0.011,103,0.001,104,0.001,112,0.746,138,2.195,177,2.441,180,1.684,182,2.233,226,0.981,340,3.299,347,2.514,349,0.709,379,1.34,382,3.761,564,3.29,816,5.288,819,2.409,946,4.972,984,2.96,986,3.896,1021,4.508,1201,8.09,1202,6.112,1203,3.679,1204,6.827,1208,4.433,1209,3.81,1210,4.433,1211,4.433,1212,4.433,1213,4.433,1214,4.433,1215,4.118,1216,3.915,1222,4.317,1223,5.377,1271,5.719,1272,5.499,1274,2.171,1276,2.937,1277,5.678,1450,6.696,2484,4.864,2486,4.132,6258,4.893,7386,8.164,7843,9.501,8368,5.538,8369,5.753,8818,8.659,8819,4.317,8821,4.891,8822,6.005,8826,3.991,8827,4.164,8862,8.221,8909,9.397,8910,9.397,8911,8.688]],["title/modules/ExternalToolModule.html",[201,1.804,5881,5.191]],["body/modules/ExternalToolModule.html",[0,0.232,3,0.016,4,0.016,5,0.008,30,0.001,95,0.167,101,0.011,103,0.001,104,0.001,201,2.831,203,2.456,204,2.639,205,2.716,206,2.705,207,2.693,208,3.914,209,4.018,214,5.774,218,3.724,219,2.66,220,2.598,225,3.693,226,0.976,227,2.811,560,2.811,959,3.932,1274,2.16,2484,3.1,2486,2.264,3936,6.226,4619,3.53,5079,3.932,5375,9.052,5385,5.518,5881,10.961,6166,8.322,8335,9.052,8588,10.957,8648,9.653,8912,6.829,8913,6.829,8914,6.829,8915,6.829,8916,9.749,8917,9.486,8918,11.359,8919,11.359,8920,10.425,8921,10.425,8922,10.425,8923,6.829,8924,4.541,8925,4.774,8926,5.721]],["title/injectables/ExternalToolParameterValidationService.html",[539,0.901,8920,5.705]],["body/injectables/ExternalToolParameterValidationService.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.754,27,0.489,29,0.944,30,0.001,31,0.689,32,0.168,33,0.572,35,1.405,36,1.882,72,1.81,95,0.136,101,0.007,103,0,104,0,119,2.65,143,2.471,145,2.163,177,1.151,226,0.57,236,1.973,262,2.242,283,6.812,285,2.612,333,3.743,340,1.916,349,1.325,361,2.253,363,7.379,379,0.787,437,1.144,480,2.163,484,5.326,486,2.344,521,1.579,529,3.232,539,0.833,541,0.954,564,1.224,579,2.124,590,2.447,593,2.33,603,2.734,608,1.45,931,4.007,992,1.904,993,1.882,994,1.882,1174,2.14,1237,6.33,1715,1.679,1867,1.94,2033,2.693,2145,2.419,2256,2.296,2484,5.505,2486,4.131,2554,8.815,2565,5.763,3249,7.409,5382,8.389,5409,3.123,5449,2.738,5459,3.686,5461,2.476,5476,8.654,5479,3.686,5481,5.269,5482,5.269,5487,5.103,5504,1.62,5780,2.651,6166,6.278,6171,3.123,6172,3.222,6177,5.269,6506,4.398,7371,4.928,8589,9.245,8635,3.34,8647,3.123,8882,2.841,8920,5.269,8927,6.29,8928,6.29,8929,6.29,8930,6.29,8931,6.29,8932,6.29,8933,6.29,8934,6.29,8935,6.29,8936,6.29,8937,3.488,8938,6.29,8939,3.686,8940,6.29,8941,3.987,8942,6.29,8943,3.987,8944,6.29,8945,3.987,8946,6.29,8947,3.987,8948,6.29,8949,3.987,8950,6.29,8951,3.686,8952,6.29,8953,3.987,8954,6.29,8955,3.987,8956,6.29,8957,3.686,8958,3.987,8959,3.987,8960,3.987,8961,5.938,8962,3.987,8963,3.987,8964,3.987,8965,3.987,8966,3.987,8967,3.987,8968,2.9,8969,3.987,8970,3.987,8971,3.039,8972,3.987,8973,3.987,8974,3.987,8975,3.039,8976,3.987,8977,3.987,8978,3.987,8979,3.987,8980,3.987,8981,3.488,8982,3.987,8983,3.686,8984,3.987,8985,6.29,8986,3.987,8987,6.29,8988,3.987,8989,3.987,8990,3.987,8991,7.202,8992,3.987,8993,3.987,8994,3.987,8995,3.987,8996,6.29,8997,6.29,8998,3.987,8999,6.29]],["title/interfaces/ExternalToolProps.html",[105,0.735,7337,5.335]],["body/interfaces/ExternalToolProps.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,29,0.93,30,0.001,31,0.669,32,0.181,33,0.636,34,1.938,47,0.987,55,2.57,95,0.151,101,0.015,103,0.001,104,0.001,105,0.719,107,1.598,112,0.731,119,2.626,180,1.193,181,1.782,349,1.089,413,2.834,1194,4.105,1276,2.081,1683,5.352,1867,3.24,1909,5.952,1930,5.381,1931,5.579,1982,2.648,2483,8.685,2484,3.023,2488,7.845,2491,3.696,2554,7.712,2565,3.282,4282,2.915,5056,6.462,5399,5.406,5765,5.217,5769,5.076,5779,5.217,5780,4.428,5781,4.745,5782,5.076,5789,4.428,5790,4.844,5806,6.748,5822,4.362,5825,7.21,6263,3.575,6534,5.217,7201,7.088,7203,7.164,7204,4.188,7236,4.656,7237,4.953,7240,4.953,7241,5.381,7337,8.262,7338,8.982,7339,8.482,7358,4.498,7362,4.574,7386,7.822,8557,5.826,8569,6.157,8571,6.157,8573,5.826,8574,6.157,8575,5.826,8576,8.509]],["title/entities/ExternalToolPseudonymEntity.html",[154,1.456,9000,4.853]],["body/entities/ExternalToolPseudonymEntity.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,26,2.239,27,0.479,30,0.001,32,0.16,34,1.395,39,3.443,47,0.826,49,5.26,95,0.157,96,2.904,97,3.55,99,1.366,101,0.017,103,0.001,104,0.001,105,0.884,112,0.929,138,2.128,154,2.259,155,2.733,168,6.674,172,4.185,173,2.423,174,4.204,178,3.403,180,1.468,181,2.192,182,2.665,191,4.433,192,5.219,404,3.343,405,5.816,564,2.515,593,3.034,2486,4.244,4273,4.97,8857,6.984,9000,7.532,9001,11.432,9002,7.573,9003,7.12,9004,7.166,9005,8.191,9006,8.191,9007,8.191,9008,8.855,9009,5.446,9010,6.619,9011,6.862,9012,5.958,9013,6.417]],["title/injectables/ExternalToolPseudonymRepo.html",[539,0.901,9014,5.705]],["body/injectables/ExternalToolPseudonymRepo.html",[0,0.15,3,0.01,4,0.01,5,0.005,7,0.067,8,0.819,13,4.967,26,2.806,27,0.493,29,0.938,30,0.001,31,0.675,32,0.165,33,0.578,34,0.755,35,1.417,36,2.783,39,3.241,42,4.967,47,0.588,49,1.747,56,2.142,58,2.861,59,1.376,95,0.141,96,1.217,97,1.92,99,0.739,101,0.007,103,0,104,0,154,2.458,155,3.125,177,0.811,226,0.633,227,1.824,236,2.024,262,2.934,310,1.92,345,1.41,349,1.266,376,1.93,377,2.011,379,0.554,437,1.703,448,4.38,490,2.955,539,0.904,541,1.061,556,1.116,593,3.468,608,2.463,724,6.965,811,3.696,817,4.5,1601,4.712,1715,1.866,2249,5.392,2273,2.992,2284,3.097,2297,3.377,2302,4.774,2316,3.711,2486,4.065,2768,4.054,3279,3.097,3284,4.143,3345,3.58,4386,2.823,4400,3.711,4401,3.711,5504,3.386,5950,3.097,6679,2.658,6969,5.682,6998,3.222,6999,3.222,8857,6.575,9000,8.585,9003,7.745,9008,7.845,9009,4.541,9014,5.721,9015,12.261,9016,4.43,9017,6.314,9018,5.974,9019,6.314,9020,6.314,9021,6.314,9022,5.721,9023,5.974,9024,6.314,9025,4.43,9026,6.314,9027,4.43,9028,5.974,9029,4.43,9030,4.43,9031,6.314,9032,4.43,9033,6.314,9034,4.43,9035,6.314,9036,7.845,9037,4.43,9038,5.206,9039,4.43,9040,6.314,9041,4.43,9042,6.314,9043,4.43,9044,5.206,9045,5.974,9046,4.43,9047,4.43,9048,5.974,9049,9.352,9050,6.829,9051,4.43,9052,3.876,9053,4.096,9054,4.43,9055,4.096,9056,4.43,9057,3.876,9058,4.096,9059,5.974,9060,4.43,9061,4.43,9062,4.096,9063,4.096,9064,4.096,9065,4.096,9066,4.096,9067,4.096,9068,3.711,9069,4.43,9070,4.43,9071,4.43,9072,3.876,9073,4.43,9074,3.876]],["title/injectables/ExternalToolRepo.html",[539,0.901,8921,5.705]],["body/injectables/ExternalToolRepo.html",[0,0.132,3,0.009,4,0.009,5,0.005,7,0.059,8,0.737,10,2.499,12,2.822,18,3.113,26,2.328,27,0.531,29,1.002,30,0.001,31,0.73,32,0.178,33,0.617,34,1.303,35,1.533,36,2.664,40,1.874,47,0.713,55,0.834,56,1.874,58,2.503,59,1.204,95,0.15,96,1.69,97,1.68,99,0.646,101,0.006,103,0,104,0,112,0.308,133,2.151,154,2.479,155,2.052,173,1.146,177,1.126,180,1.102,227,1.596,236,1.244,262,2.918,310,1.68,349,1.222,379,0.485,381,1.302,382,3.687,437,1.619,448,3.134,490,2.712,519,1.201,539,0.814,541,0.928,564,1.19,593,3.923,603,2.207,608,2.007,680,4.3,686,2.903,687,4.805,718,2.151,738,3.247,747,3.583,767,2.662,811,3.329,817,4.184,1274,1.226,1601,5.008,1839,1.91,1909,2.838,1938,2.21,2031,3.476,2237,8.686,2239,4.383,2240,4.383,2241,4.383,2242,4.383,2243,4.3,2244,4.3,2245,4.383,2246,4.3,2247,4.383,2248,2.819,2249,5.013,2250,3.568,2251,3.93,2253,4.474,2254,2.762,2256,5.013,2257,2.762,2259,2.762,2261,5.009,2262,4.3,2263,2.762,2265,2.762,2267,4.383,2271,4.383,2273,4.154,2274,4.3,2276,2.762,2278,2.325,2279,2.379,2280,2.762,2282,2.762,2284,4.3,2285,2.762,2291,2.618,2302,4.3,2303,6.475,2491,4.832,2565,5.933,4451,2.469,4455,2.662,4523,2.883,4691,3.226,5504,3.107,5589,3.071,5852,2.503,5869,2.618,5907,3.39,5921,5.153,5922,3.583,5930,2.819,5931,2.819,5932,2.819,5933,2.819,5934,2.819,5935,2.819,5936,2.819,5937,2.819,5938,2.819,5944,3.132,5945,3.39,5946,2.954,5950,2.709,6679,2.325,6969,5.282,6979,4.575,6998,2.819,6999,2.819,7340,3.82,8761,8.708,8776,8.466,8921,5.153,9044,4.688,9068,3.247,9072,3.39,9074,3.39,9075,8.873,9076,6.151,9077,5.153,9078,6.151,9079,3.876,9080,3.583,9081,6.636,9082,3.876,9083,6.151,9084,3.876,9085,5.153,9086,3.876,9087,6.151,9088,3.583,9089,3.583,9090,2.954,9091,3.583,9092,3.39,9093,3.876,9094,5.381,9095,3.876,9096,6.151,9097,3.876,9098,3.583,9099,3.876,9100,3.876,9101,3.876,9102,5.381,9103,3.876,9104,3.876]],["title/classes/ExternalToolRepoMapper.html",[0,0.231,5944,5.503]],["body/classes/ExternalToolRepoMapper.html",[0,0.134,2,0.441,3,0.009,4,0.009,5,0.005,7,0.06,8,0.746,27,0.495,29,0.967,30,0.001,31,0.723,32,0.181,33,0.58,34,0.671,35,1.452,95,0.129,101,0.006,103,0,104,0,153,1.415,154,0.841,226,0.563,236,1.996,249,2.519,333,2.635,349,1.249,413,4.257,480,1.729,486,2.642,521,2.466,529,1.762,564,1.912,654,1.171,1194,2.141,1242,5.858,1426,3.621,1663,1.666,1839,1.94,1869,3.916,1909,5.578,1922,3.37,2133,5.749,2243,4.353,2244,4.353,2271,4.437,2273,2.659,2274,4.353,2278,3.736,2425,3.37,2483,8.474,2486,2.064,2491,2.185,2494,4.353,2496,8.929,2554,7.136,2565,5.251,2580,7.451,3019,4.437,4386,2.508,4387,3.084,4441,3.297,5056,3.37,5256,6.764,5466,5.447,5474,5.447,5476,5.032,5481,5.216,5482,5.216,5485,5.032,5487,4.079,5504,2.53,5589,3.109,5643,2.445,5767,3.173,5806,3.519,5846,8.671,5852,2.542,5868,3.084,5869,2.659,5944,5.032,7185,4.021,7187,4.021,7189,4.021,7200,3.967,7201,3.696,7203,3.736,7275,4.021,7276,4.631,7299,8.929,7338,8.474,7339,8.002,7340,3.868,7358,4.206,7362,4.277,7367,4.437,7386,2.578,8761,6.258,8763,3.297,8764,8.929,8765,8.929,8776,6.472,8981,5.447,8991,5.757,9075,10.276,9105,3.936,9106,6.227,9107,6.227,9108,6.227,9109,6.227,9110,6.227,9111,6.227,9112,6.227,9113,6.227,9114,6.227,9115,6.227,9116,6.227,9117,3.936,9118,8.782,9119,6.227,9120,3.936,9121,6.227,9122,3.936,9123,5.757,9124,6.227,9125,3.936,9126,5.757,9127,6.227,9128,3.936,9129,6.227,9130,3.936,9131,3.936,9132,3.936,9133,6.227,9134,3.936,9135,6.227,9136,3.936,9137,6.227,9138,3.936,9139,5.447,9140,6.227,9141,3.936,9142,3.936,9143,3.936,9144,3.936,9145,3.936,9146,3.936,9147,3.936,9148,3.936,9149,6.227,9150,3.444,9151,3.936,9152,3.936,9153,3.936,9154,3.639,9155,3.639,9156,3.936,9157,8.782,9158,8.782,9159,6.227,9160,6.227,9161,5.757,9162,6.227,9163,6.227,9164,6.227,9165,6.227,9166,6.227,9167,6.227,9168,6.227,9169,3.936,9170,3.936,9171,3.936,9172,3.936,9173,3.444,9174,3.639,9175,3.936,9176,3.936,9177,3.936,9178,3.639,9179,3.639,9180,3.936,9181,6.227,9182,6.227,9183,6.227,9184,6.227,9185,5.757,9186,5.757,9187,5.757]],["title/injectables/ExternalToolRequestMapper.html",[539,0.901,9188,5.705]],["body/injectables/ExternalToolRequestMapper.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.063,8,0.781,27,0.485,29,0.955,30,0.001,31,0.705,32,0.165,33,0.568,34,0.71,35,1.423,55,1.95,95,0.138,99,0.695,101,0.007,103,0,104,0,153,0.948,226,0.596,249,1.686,271,1.631,349,1.267,437,1.458,480,1.809,486,2.412,539,0.862,541,0.998,556,2.02,593,1.544,603,2.618,604,3.683,662,3.278,708,3.765,785,2.081,984,3.458,1194,2.239,1559,2.866,1715,1.756,1865,2.97,1867,2.028,1909,3.006,2484,5.479,2486,4.002,2506,8.424,2559,2.914,2565,2.054,2702,1.968,2987,6.112,5056,6.099,5439,3.178,5440,3.647,5442,3.647,5443,3.647,5444,3.647,5445,3.647,5446,3.647,5449,2.863,5467,3.101,5469,3.178,5487,2.731,5504,1.694,5589,2.081,5767,2.124,5781,2.97,5806,3.681,5977,3.369,5985,3.492,5993,3.647,5994,3.492,7201,3.867,7203,3.908,7275,2.692,7276,3.101,7371,3.266,7376,3.266,7392,7.947,7402,3.492,7408,3.492,7411,3.492,8695,8.238,8698,8.238,8699,7.593,8798,3.492,9081,6.909,9188,5.457,9189,11.16,9190,6.514,9191,6.514,9192,6.514,9193,6.514,9194,8.018,9195,8.018,9196,8.018,9197,8.018,9198,6.023,9199,6.514,9200,6.514,9201,4.169,9202,7.014,9203,6.514,9204,7.593,9205,4.169,9206,6.514,9207,4.169,9208,12.582,9209,9.834,9210,6.514,9211,4.169,9212,9.834,9213,4.169,9214,4.169,9215,9.064,9216,4.169,9217,8.238,9218,4.169,9219,9.064,9220,4.169,9221,4.169,9222,9.064,9223,4.169,9224,7.593,9225,4.169,9226,9.064,9227,6.023,9228,7.593,9229,4.169,9230,5.264,9231,7.101,9232,6.514,9233,8.238,9234,4.169,9235,7.014,9236,3.854,9237,3.854,9238,3.854,9239,3.854,9240,3.854,9241,3.854,9242,3.854,9243,3.647,9244,3.854,9245,3.647,9246,3.854,9247,3.854,9248,3.854,9249,3.854,9250,3.854,9251,3.854,9252,3.854,9253,10.952,9254,6.514,9255,4.169,9256,4.169,9257,4.169,9258,8.38,9259,6.514,9260,4.169,9261,4.169,9262,4.169,9263,4.169,9264,4.169,9265,4.169,9266,4.169,9267,6.514,9268,4.169,9269,4.169,9270,4.169,9271,4.169,9272,4.169,9273,4.169,9274,4.169,9275,4.169,9276,4.169,9277,4.169,9278,4.169,9279,4.169,9280,4.169,9281,4.169,9282,4.169,9283,4.169,9284,4.169,9285,4.169,9286,3.647,9287,6.514,9288,3.647,9289,4.169]],["title/classes/ExternalToolResponse.html",[0,0.231,9290,5.503]],["body/classes/ExternalToolResponse.html",[0,0.234,2,0.771,3,0.016,4,0.016,5,0.008,7,0.104,27,0.546,29,0.899,30,0.001,31,0.646,32,0.182,33,0.58,34,1.829,47,0.918,55,2.027,95,0.136,101,0.011,103,0.001,104,0.001,112,0.748,119,2.349,138,2.399,149,4.597,150,1.569,245,3.624,379,0.861,404,2.811,819,2.417,1194,3.69,1237,3.928,1909,5.325,1930,5.566,1982,2.739,2484,6.114,2516,8.992,5056,5.809,5789,4.579,5806,6.066,5813,8.409,5816,6.025,5822,4.512,5825,5.396,5997,6.025,5998,7.611,5999,6.025,6000,6.025,6001,6.025,6002,6.025,6003,6.025,6005,6.025,6006,6.025,6007,6.025,6008,5.25,6014,6.025,6016,6.025,6263,3.698,7201,6.372,7203,6.441,7236,4.815,7240,5.123,9290,9.765,9291,12.454,9292,9.419,9293,8.992,9294,8.992,9295,6.025,9296,6.887,9297,6.887,9298,6.887,9299,6.887,9300,6.887]],["title/injectables/ExternalToolResponseMapper.html",[539,0.901,9301,5.503]],["body/injectables/ExternalToolResponseMapper.html",[0,0.194,3,0.013,4,0.013,5,0.007,7,0.087,8,0.99,27,0.462,29,0.915,30,0.001,31,0.679,32,0.161,33,0.541,34,0.973,35,1.354,95,0.143,101,0.009,103,0,104,0,153,1.299,226,0.817,236,1.729,249,2.311,349,1.213,413,4.143,437,1.374,539,1.093,541,1.368,603,2.539,604,3.356,777,3.391,785,2.853,984,4.183,1194,1.964,1715,2.406,1865,4.071,1867,2.78,1909,2.636,2483,8.199,2484,5.332,2486,3.895,2516,9.443,2554,7.279,2559,3.995,2565,5.554,5056,3.092,5439,4.355,5440,4.999,5442,4.999,5443,4.999,5444,4.999,5445,4.999,5446,4.999,5449,3.924,5467,4.25,5469,4.355,5487,3.743,5504,2.321,5767,2.912,5780,3.799,5806,3.229,5813,8.324,7201,3.391,7203,3.428,7275,3.69,7276,4.25,7338,8.199,7339,7.298,7371,4.476,7376,4.476,7395,4.355,7402,4.787,7408,4.787,7411,4.787,8635,4.787,8674,4.617,8690,5.283,8798,4.787,8882,4.071,8961,4.355,9123,5.283,9189,10.862,9236,5.283,9237,5.283,9238,5.283,9239,5.283,9240,5.283,9241,5.283,9242,5.283,9243,4.999,9244,5.283,9245,4.999,9246,5.283,9247,5.283,9248,5.283,9249,5.283,9250,5.283,9251,5.283,9252,5.283,9253,10.421,9258,7.636,9290,8.587,9293,9.443,9294,9.443,9301,6.674,9302,8.259,9303,8.259,9304,8.259,9305,8.259,9306,8.259,9307,8.259,9308,5.714,9309,11.748,9310,8.259,9311,5.714,9312,8.259,9313,5.714,9314,8.259,9315,5.714,9316,8.259,9317,5.714,9318,6.919,9319,5.714,9320,5.714,9321,5.714,9322,5.714,9323,5.714,9324,5.283,9325,4.999,9326,5.714,9327,5.714,9328,5.714,9329,5.714,9330,5.714,9331,5.714,9332,5.714,9333,5.714,9334,5.714,9335,5.714,9336,5.714]],["title/classes/ExternalToolScope.html",[0,0.231,9094,5.958]],["body/classes/ExternalToolScope.html",[0,0.24,2,0.793,3,0.017,4,0.017,5,0.008,7,0.107,8,1.151,27,0.536,29,0.95,30,0.001,31,0.743,32,0.179,33,0.585,35,1.153,47,0.888,95,0.122,101,0.012,103,0.001,104,0.001,112,0.762,119,2.561,180,1.72,310,3.069,349,1.125,382,3.681,480,1.966,486,2.13,519,2.194,556,3.379,603,2.527,761,5.932,1909,3.267,2288,6.464,5504,5.391,5589,5.437,5852,4.573,6057,6.195,6058,6.484,6059,6.484,6060,6.484,6065,6.484,6066,6.484,6067,4.864,6068,4.783,6069,4.864,6070,4.864,6079,4.783,6080,6.484,6081,4.864,6082,4.783,6083,4.864,6084,4.783,6085,7.355,7203,6.534,7340,4.398,8761,5.046,9075,9.78,9094,8.398,9337,9.599,9338,8.875,9339,9.599,9340,9.599,9341,7.081,9342,8.875,9343,7.081,9344,9.599,9345,7.081,9346,6.547]],["title/classes/ExternalToolSearchListResponse.html",[0,0.231,9347,5.705]],["body/classes/ExternalToolSearchListResponse.html",[0,0.265,2,0.873,3,0.018,4,0.018,5,0.009,7,0.118,27,0.516,29,0.607,30,0.001,31,0.437,32,0.185,33,0.605,55,3.022,56,6.253,59,3.18,70,6.456,95,0.145,101,0.013,103,0.001,104,0.001,112,0.813,138,2.207,150,1.776,180,1.834,245,2.683,247,3.412,284,3.891,379,0.975,382,3.66,556,1.963,564,2.393,808,7.292,809,5.45,810,8.089,811,6.998,812,5.837,814,3.918,816,5.243,817,3.746,818,4.365,819,2.735,820,5.45,821,6.609,822,5.893,823,5.106,824,4.152,825,5.45,826,5.45,828,4.902,829,4.327,2484,4.645,2486,3.393,6087,6.819,9290,10.65,9291,9.462,9347,8.573,9348,7.207,9349,7.207]],["title/classes/ExternalToolSearchParams.html",[0,0.231,9204,5.705]],["body/classes/ExternalToolSearchParams.html",[0,0.381,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.46,30,0.001,31,0.738,32,0.154,33,0.615,34,1.914,47,0.904,95,0.142,101,0.015,103,0.001,104,0.001,112,0.892,138,2.043,148,2.862,149,4.655,150,2.055,153,2.554,248,5.106,249,4.95,564,3.932,1209,6.235,2484,5.554,2486,4.369,3539,4.584,5496,7.359,5589,6.109,8696,9.888,9204,9.411,9350,7.889,9351,11.234,9352,9.018,9353,7.889]],["title/interfaces/ExternalToolSearchQuery.html",[105,0.735,9081,5.191]],["body/interfaces/ExternalToolSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,31,0.74,32,0.174,33,0.659,47,0.969,101,0.016,103,0.001,104,0.001,105,1.066,107,2.371,112,0.943,119,2.593,808,7.041,2486,3.276,5589,6.599,7203,7.931,9081,9.056,9354,9.881,9355,8.645]],["title/injectables/ExternalToolService.html",[539,0.901,6166,4.18]],["body/injectables/ExternalToolService.html",[0,0.129,3,0.009,4,0.009,5,0.005,7,0.058,8,0.727,12,2.782,26,2.228,27,0.482,29,0.917,30,0.001,31,0.671,32,0.161,33,0.565,34,1.033,35,1.415,36,2.706,40,2.931,47,0.794,59,1.182,95,0.154,99,0.635,101,0.006,103,0,104,0,177,1.999,220,2.306,226,0.544,227,1.567,236,0.986,262,2.91,310,2.628,349,1.128,379,0.758,437,1.574,490,3.056,529,1.715,539,0.802,541,0.911,556,1.903,564,2.32,579,3.229,603,2.554,608,2.875,631,3.878,639,1.786,654,1.132,817,2.914,928,3.336,1174,3.255,1274,1.204,1391,2.493,1715,1.603,1744,7.822,1836,4.59,1839,1.875,1867,1.852,1909,1.756,2251,4.748,2256,3.491,2306,3.863,2425,2.06,2484,5.44,2486,3.904,2565,6.669,4619,1.967,5383,8.239,5392,3.075,5521,5.283,5589,4.302,5643,2.364,5781,2.712,5919,3.519,6131,3.863,6166,3.721,6432,4.031,6969,5.228,7336,4.509,7339,5.919,8339,2.831,8589,9.135,8607,2.712,8625,3.188,8857,2.077,8919,8.81,8921,8.399,8922,7.219,8924,4.031,8925,2.661,8961,2.901,9081,6.569,9139,6.61,9318,3.188,9356,6.063,9357,5.304,9358,5.304,9359,6.063,9360,6.063,9361,7.556,9362,5.304,9363,6.063,9364,7.556,9365,3.806,9366,7.649,9367,7.556,9368,6.268,9369,3.806,9370,6.063,9371,3.806,9372,6.063,9373,3.806,9374,6.063,9375,3.806,9376,3.806,9377,6.063,9378,3.806,9379,6.063,9380,3.806,9381,3.806,9382,3.806,9383,6.063,9384,6.986,9385,3.806,9386,9.723,9387,6.063,9388,3.806,9389,3.806,9390,8.758,9391,10.026,9392,3.806,9393,8.617,9394,2.712,9395,3.806,9396,3.806,9397,3.075,9398,3.519,9399,5.605,9400,3.806,9401,3.519,9402,5.605,9403,6.063,9404,3.806,9405,3.806,9406,3.806,9407,3.806,9408,3.806,9409,3.806,9410,3.806,9411,3.806,9412,6.063,9413,6.063,9414,6.063,9415,6.063,9416,3.806,9417,3.806,9418,3.806,9419,3.806,9420,3.33,9421,3.806,9422,3.806,9423,3.806,9424,3.806,9425,2.982,9426,3.806,9427,3.806,9428,3.806,9429,3.806,9430,6.063,9431,3.806,9432,3.806,9433,3.806,9434,3.806,9435,3.806,9436,3.806,9437,3.806,9438,3.806,9439,3.806,9440,3.806,9441,3.806,9442,3.806,9443,3.806,9444,3.806,9445,3.806,9446,3.806,9447,3.806]],["title/injectables/ExternalToolServiceMapper.html",[539,0.901,8922,5.705]],["body/injectables/ExternalToolServiceMapper.html",[0,0.31,3,0.021,4,0.021,5,0.011,7,0.139,8,1.358,27,0.374,29,0.712,30,0.001,31,0.69,32,0.125,33,0.439,35,1.098,47,0.869,95,0.156,101,0.015,103,0.001,104,0.001,226,1.307,349,0.944,539,1.499,541,2.188,1326,6.513,1327,7.386,1715,3.85,2484,5.142,2486,3.756,5504,3.714,5585,7.161,7202,6.799,7339,8.839,8589,8.635,8922,9.49,8924,6.077,9139,10.77,9161,8.451,9390,9.157,9394,6.513,9448,9.14,9449,11.329,9450,11.329,9451,9.14,9452,9.14,9453,9.14,9454,8.451,9455,9.14,9456,7.997,9457,9.14,9458,9.14,9459,8.451,9460,8.451]],["title/classes/ExternalToolSortingMapper.html",[0,0.231,9092,5.958]],["body/classes/ExternalToolSortingMapper.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.35,10,3.68,27,0.371,29,0.705,30,0.001,31,0.631,32,0.124,33,0.435,35,1.088,95,0.163,96,2.488,99,1.511,101,0.015,103,0.001,104,0.001,173,2.679,349,0.936,413,3.776,437,1.172,556,2.282,971,4.985,1839,4.464,2486,3.735,2565,4.464,4449,7.32,5852,5.85,6979,10.004,7340,6.997,8761,6.455,9075,9.437,9092,9.855,9231,10.049,9461,9.058,9462,11.265,9463,11.265,9464,9.058,9465,8.375,9466,9.058,9467,8.375,9468,8.375,9469,10.415,9470,8.375]],["title/injectables/ExternalToolUc.html",[539,0.901,9471,5.705]],["body/injectables/ExternalToolUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,26,2.933,27,0.48,29,0.913,30,0.001,31,0.657,32,0.16,33,0.563,35,1.361,36,2.767,39,3.156,47,0.645,95,0.149,99,0.86,100,1.732,101,0.008,103,0,104,0,177,1.852,226,0.737,236,1.246,239,2.097,262,2.954,310,3.962,349,1.117,379,0.958,437,1.62,490,3.588,539,1.014,541,1.234,560,2.123,603,2.356,608,3.049,643,5.355,817,3.682,1695,6.2,1715,2.172,1793,3.129,1909,2.38,2469,2.341,2484,5.469,2486,3.355,2488,5.698,2565,6.467,4057,5.37,5056,2.791,5781,3.675,6116,4.512,6131,4.881,6166,6.953,6969,6.139,8639,11.141,8647,4.04,8648,8.725,8857,6.718,8877,7.083,8895,6.703,8918,8.476,9081,7.713,9202,10.542,9235,8.852,9318,4.32,9357,6.703,9358,6.703,9362,6.703,9386,4.768,9471,6.418,9472,7.661,9473,8.451,9474,7.083,9475,9.141,9476,5.157,9477,7.661,9478,5.157,9479,7.661,9480,5.157,9481,7.661,9482,5.157,9483,5.157,9484,5.157,9485,7.661,9486,5.157,9487,7.661,9488,5.157,9489,10.811,9490,10.811,9491,7.661,9492,5.157,9493,5.157,9494,5.157,9495,7.661,9496,5.157,9497,5.157,9498,7.083,9499,5.157,9500,5.157,9501,5.157,9502,4.32]],["title/classes/ExternalToolUpdateParams.html",[0,0.231,9233,5.705]],["body/classes/ExternalToolUpdateParams.html",[0,0.345,2,0.694,3,0.014,4,0.014,5,0.007,7,0.094,27,0.519,29,0.79,30,0.001,31,0.676,32,0.184,33,0.579,34,1.729,47,0.894,95,0.153,101,0.01,103,0,104,0,112,0.695,119,2.244,138,2.305,143,2.259,147,5.448,148,1.967,149,4.194,150,1.412,172,1.979,245,3.165,248,4.853,249,4.461,480,2.818,521,3.467,556,1.561,1194,3.489,1237,3.535,1867,3.015,1909,5.088,2278,5.252,2344,3.535,2484,5.848,2486,4.272,2491,3.44,2494,4.333,2506,9.398,2509,6.367,2510,6.237,3019,6.237,3704,4.724,3705,3.85,3726,3.85,3727,6.157,5536,5.577,5806,5.734,5893,6.367,5896,5.192,5897,5.192,5898,5.192,5903,3.898,5904,5.683,7201,6.023,7203,6.089,7358,4.186,7362,4.257,7392,9.398,7400,6.672,8253,5.82,8254,4.121,8255,5.82,8696,10.412,8700,5.422,8701,5.73,8709,5.73,8711,5.73,9217,9.237,9224,9.743,9233,7.333,9503,5.192,9504,6.198,9505,5.422,9506,6.198,9507,5.422,9508,6.198,9509,6.198,9510,6.198,9511,5.73,9512,6.198,9513,6.198,9514,6.198]],["title/injectables/ExternalToolValidationService.html",[539,0.901,8918,5.705]],["body/injectables/ExternalToolValidationService.html",[0,0.179,3,0.012,4,0.012,5,0.006,7,0.08,8,0.934,27,0.468,29,0.889,30,0.001,31,0.64,32,0.161,33,0.548,34,1.577,35,1.311,36,2.58,47,0.654,72,2.393,95,0.15,101,0.009,103,0,104,0,177,1.872,226,0.754,236,1.858,262,2.833,283,7.009,340,2.534,349,0.545,360,2.952,361,2.979,363,4.361,379,0.974,437,0.682,484,4.821,519,2.412,529,3.231,539,1.031,541,1.262,564,2.843,590,3.236,593,3.43,603,2.623,608,2.632,639,2.474,931,4.962,1426,4.528,1715,2.22,1909,3.593,2484,5.362,2486,4.433,2565,6.777,3539,3.779,5211,4.416,5409,4.13,6166,7.009,6172,4.26,6177,7.758,8589,9.005,8596,7.796,8598,7.796,8647,4.13,8648,8.787,8857,4.249,8871,4.612,8882,5.549,8895,4.612,8918,6.524,8920,9.897,8937,4.612,8939,4.874,8951,4.874,8961,8.317,8983,4.874,9318,6.524,9384,4.874,9398,4.874,9399,4.874,9401,8.562,9515,7.787,9516,7.787,9517,7.787,9518,7.787,9519,7.787,9520,7.787,9521,7.787,9522,5.272,9523,7.787,9524,7.787,9525,5.272,9526,7.787,9527,5.272,9528,5.272,9529,5.272,9530,7.787,9531,5.272,9532,5.272,9533,7.787,9534,5.272,9535,7.787,9536,5.272,9537,5.272,9538,5.272,9539,7.787,9540,5.272,9541,5.272,9542,5.272,9543,5.272,9544,5.272,9545,5.272,9546,5.272,9547,5.272,9548,5.272]],["title/injectables/ExternalToolVersionService.html",[539,0.901,8919,5.705]],["body/injectables/ExternalToolVersionService.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,8,0.867,27,0.482,29,0.917,30,0.001,31,0.66,32,0.161,33,0.565,35,1.415,95,0.111,101,0.008,103,0,104,0,119,2.633,226,0.683,349,1.308,437,1.701,519,2.241,539,0.957,541,1.144,603,2.718,708,1.985,1715,2.012,2484,5.473,2486,3.998,2554,9.177,2565,5.635,5466,4.18,5474,4.18,5476,7.87,5481,4.002,5482,4.002,5780,3.176,8589,9.191,8919,6.06,9549,4.777,9550,7.234,9551,7.234,9552,7.234,9553,7.234,9554,7.234,9555,7.234,9556,7.234,9557,7.234,9558,7.234,9559,13.153,9560,4.777,9561,8.731,9562,7.234,9563,4.777,9564,7.234,9565,13.153,9566,4.777,9567,7.234,9568,4.777,9569,7.234,9570,4.777,9571,7.234,9572,4.777,9573,7.234,9574,4.777,9575,7.234,9576,8.731,9577,4.777,9578,4.777,9579,4.777,9580,7.234,9581,4.777,9582,4.777,9583,4.777,9584,4.777,9585,7.234,9586,7.234,9587,7.234,9588,4.777,9589,4.777,9590,4.777,9591,4.777,9592,4.777,9593,4.777,9594,11.076,9595,4.777,9596,12.057,9597,7.234,9598,4.777,9599,4.777,9600,4.777,9601,7.234,9602,4.777,9603,4.777,9604,7.234,9605,4.777,9606,4.777,9607,4.777,9608,4.777,9609,4.777,9610,4.777,9611,4.777,9612,4.777,9613,9.739,9614,9.739,9615,9.739,9616,4.777,9617,4.777,9618,4.777]],["title/classes/ExternalUserDto.html",[0,0.231,9619,4.953]],["body/classes/ExternalUserDto.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.544,29,0.671,30,0.001,31,0.482,32,0.181,33,0.661,47,0.963,95,0.109,99,1.437,101,0.014,103,0.001,104,0.001,112,0.867,181,2.921,379,1.077,381,2.893,651,5.723,652,5.723,653,6.193,655,6.022,3078,5.982,4602,6.538,6938,5.112,6939,5.286,7217,6.747,7218,6.959,8499,11.3,8521,7.962,8523,7.962,8524,7.962,9619,9.454,9620,10.914,9621,8.612,9622,8.612,9623,5.726,9624,6.264,9625,5.726,9626,6.264,9627,6.565,9628,6.959]],["title/injectables/FeathersAuthProvider.html",[539,0.901,1701,5.503]],["body/injectables/FeathersAuthProvider.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.005,26,2.955,27,0.484,29,0.921,30,0.001,31,0.663,32,0.162,33,0.568,35,1.365,36,2.743,39,3.279,47,0.802,49,3.869,95,0.136,96,1.601,97,2.527,99,0.972,101,0.01,103,0,104,0,105,0.629,145,1.619,226,0.833,236,0.948,239,2.861,262,2.957,310,2.527,345,1.856,349,1.222,379,0.729,437,1.667,529,1.649,539,1.109,541,1.395,560,4.039,593,2.159,603,1.97,608,2.619,654,1.734,929,3.46,971,3.208,998,3.938,1660,5.71,1701,6.771,1713,5.1,2289,5.66,2619,4.463,4206,3.854,6917,7.87,6924,7.021,7102,7.498,8119,6.095,8482,5.1,8483,8.604,9629,11.267,9630,5.39,9631,8.379,9632,9.07,9633,7.331,9634,8.379,9635,9.07,9636,5.83,9637,8.379,9638,5.83,9639,5.39,9640,5.83,9641,8.379,9642,5.83,9643,8.379,9644,5.83,9645,5.83,9646,5.83,9647,8.379,9648,8.379,9649,8.379,9650,5.83,9651,5.83,9652,5.83,9653,8.379,9654,8.379,9655,6.565,9656,6.771,9657,5.83,9658,4.884,9659,5.83,9660,5.83,9661,5.83,9662,7.331,9663,5.39,9664,5.83,9665,5.83]],["title/injectables/FeathersAuthorizationService.html",[539,0.901,1696,5.705]],["body/injectables/FeathersAuthorizationService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.003,26,2.875,27,0.439,29,0.835,30,0.001,31,0.6,32,0.146,33,0.514,35,1.364,36,2.516,39,3.353,47,0.834,95,0.124,99,0.971,101,0.01,103,0,104,0,154,2.527,155,3.577,226,0.832,236,1.362,239,2.956,262,2.782,319,4.839,333,5.452,345,1.853,349,0.865,379,0.728,437,1.386,529,2.368,539,1.108,541,1.393,565,4.969,608,2.617,643,2.587,696,2.296,989,6.562,1394,5.093,1660,7.011,1696,7.012,1701,9.554,1716,3.532,1815,5.566,2189,4.704,3246,5.566,6917,8.322,6924,8.098,6948,6.381,7102,9.121,9629,10.498,9666,5.821,9667,9.802,9668,8.371,9669,9.802,9670,5.821,9671,5.821,9672,5.821,9673,5.821,9674,6.381,9675,7.739,9676,8.371,9677,5.821,9678,5.821,9679,5.821,9680,7.739,9681,5.821,9682,5.821,9683,5.821,9684,5.821,9685,5.821,9686,5.821,9687,5.821,9688,3.709,9689,5.821,9690,5.821,9691,7.739,9692,5.821,9693,5.821,9694,5.821,9695,8.371,9696,5.821,9697,5.821]],["title/interfaces/FeathersError.html",[105,0.735,8473,5.705]],["body/interfaces/FeathersError.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.19,47,0.972,55,2.753,101,0.016,103,0.001,104,0.001,105,1.077,107,2.395,112,0.949,180,2.142,946,6.153,986,4.041,8473,10.012,9698,9.979,9699,9.979,9700,12.261]],["title/modules/FeathersModule.html",[201,1.804,1694,5.503]],["body/modules/FeathersModule.html",[0,0.301,3,0.021,4,0.021,5,0.011,30,0.001,95,0.141,101,0.015,103,0.001,104,0.001,141,5.314,153,2.018,201,3.474,203,4.37,204,3.431,205,3.531,206,3.516,207,3.502,208,4.45,209,4.569,218,4.424,219,3.459,220,3.377,226,1.269,316,5.973,493,5.518,560,4.58,945,6.828,1694,10.973,1716,7.371,2381,7.088,8483,10.254,8488,7.767,9701,8.878,9702,8.878,9703,8.878,9704,8.878,9705,8.715,9706,7.514,9707,8.99,9708,8.99,9709,9.32,9710,9.32,9711,9.733]],["title/injectables/FeathersRosterService.html",[539,0.901,9712,5.191]],["body/injectables/FeathersRosterService.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.606,26,2.271,27,0.469,29,0.892,30,0.001,31,0.662,32,0.166,33,0.55,34,0.861,35,1.351,36,2.653,47,0.949,51,3.672,55,0.655,72,2.294,95,0.145,99,0.508,101,0.005,103,0,104,0,105,0.904,119,0.619,153,0.692,177,1.653,203,1.818,226,0.435,236,1.469,239,1.159,262,2.889,284,3.311,349,1.136,358,2.223,379,0.632,437,1.684,475,2.593,528,1.584,529,2.135,539,0.669,541,0.728,560,3.107,564,2.317,593,1.872,603,2.676,608,2.954,696,1.993,928,4.607,970,3.649,1716,3.066,1836,4.02,1837,3.873,1839,3.194,1849,6.464,1858,3.605,1864,4.074,1866,1.914,1871,3.601,1878,2.263,1879,2.263,2097,5.912,2170,1.704,2333,2.969,2362,3.032,2565,6.191,3060,1.325,3540,3.264,3541,1.54,4206,1.714,4357,4.129,4481,2.055,4482,2.128,4483,1.806,4602,3.536,4603,2.168,4767,5.305,4778,4.647,5256,2.023,5521,3.533,5766,4.245,5805,5.276,5869,2.055,5883,6.18,5943,3.601,6033,2.128,6106,4.82,6124,6.363,6140,3.978,6143,2.213,6157,3.852,6166,5.873,6540,2.969,6543,4.076,6544,2.128,6647,2.213,6696,2.384,7141,5.494,7147,3.413,7340,3.139,7873,3.264,8607,2.168,8667,2.32,8689,2.213,8857,4.928,8882,5.377,9000,3.601,9003,7.235,9009,5.018,9022,4.234,9038,3.852,9712,3.852,9713,9.416,9714,2.459,9715,4.084,9716,4.084,9717,4.084,9718,3.601,9719,4.084,9720,5.054,9721,5.054,9722,5.054,9723,4.672,9724,5.054,9725,5.054,9726,5.054,9727,5.054,9728,5.054,9729,5.054,9730,5.054,9731,2.459,9732,6.573,9733,3.043,9734,4.084,9735,3.043,9736,3.043,9737,4.084,9738,3.043,9739,4.084,9740,3.043,9741,4.084,9742,8.401,9743,3.043,9744,4.084,9745,3.043,9746,4.084,9747,3.043,9748,4.084,9749,3.043,9750,4.084,9751,3.043,9752,7.848,9753,4.084,9754,3.043,9755,4.084,9756,3.043,9757,4.084,9758,3.043,9759,2.32,9760,2.459,9761,3.959,9762,5.912,9763,3.959,9764,4.084,9765,4.084,9766,6.766,9767,4.084,9768,2.459,9769,4.084,9770,2.459,9771,2.459,9772,4.084,9773,2.459,9774,2.459,9775,4.084,9776,2.459,9777,2.459,9778,2.459,9779,2.459,9780,2.459,9781,2.459,9782,2.459,9783,2.459,9784,2.459,9785,2.459,9786,5.237,9787,2.459,9788,2.459,9789,2.459,9790,2.459,9791,2.459,9792,2.459,9793,2.459,9794,2.459,9795,2.459,9796,2.459,9797,2.459,9798,4.084,9799,2.459,9800,2.384,9801,2.459,9802,3.36,9803,2.023,9804,2.384,9805,2.384,9806,2.459,9807,4.084,9808,2.459,9809,4.084,9810,2.459,9811,2.384,9812,2.459,9813,2.459,9814,2.459,9815,2.459,9816,2.459,9817,2.459,9818,2.459,9819,2.384,9820,2.384]],["title/interfaces/FeathersService.html",[105,0.735,9821,5.958]],["body/interfaces/FeathersService.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.081,27,0.46,29,0.809,30,0.001,31,0.582,32,0.161,33,0.498,34,1.536,35,1.247,36,2.604,47,0.793,59,3.49,95,0.142,101,0.019,102,5.219,103,0.001,104,0.001,105,0.698,107,1.552,141,5.644,201,1.713,203,2.326,226,0.925,236,1.052,271,5.089,284,1.997,316,6.343,333,4.394,349,0.668,353,4.441,437,1.166,493,3.207,511,2.889,521,3.572,529,1.83,539,1.194,560,5.273,591,6.348,593,2.395,603,1.299,639,3.035,685,3.816,763,4.441,931,4.12,945,7.251,984,3.889,992,4.308,993,4.257,994,4.257,995,4.502,996,4.921,1228,4.81,1609,3.559,1716,6.3,1932,6.305,2355,3.969,2381,4.12,3854,5.746,4691,5.893,5230,5.671,5504,3.664,6683,3.88,8449,4.929,8483,4.704,8968,4.704,9705,5.066,9706,4.368,9707,5.226,9708,5.226,9709,5.417,9710,5.417,9711,5.657,9821,9.828,9822,10.386,9823,5.657,9824,8.338,9825,12.516,9826,6.467,9827,10.386,9828,8.338,9829,6.467,9830,8.338,9831,6.467,9832,5.657,9833,5.979,9834,5.979,9835,5.979,9836,5.979,9837,5.979,9838,8.338,9839,5.979,9840,5.417,9841,5.066,9842,5.979,9843,5.979,9844,5.979,9845,5.979]],["title/injectables/FeathersServiceProvider.html",[539,0.901,8483,4.953]],["body/injectables/FeathersServiceProvider.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.102,8,1.111,27,0.434,29,0.722,30,0.001,31,0.519,32,0.156,33,0.445,34,1.146,35,0.808,36,2.256,47,0.806,95,0.145,101,0.019,102,5.329,103,0.001,104,0.001,105,0.726,141,6.269,153,1.529,201,1.782,203,3.333,226,0.962,236,1.094,271,4.469,316,6.134,333,4.486,349,0.695,353,6.365,360,3.767,379,0.841,437,1.199,493,4.596,511,3.005,521,3.67,529,1.903,539,1.227,541,1.61,560,5.324,591,5.237,593,2.491,603,1.351,639,3.157,763,4.62,931,4.285,945,7.012,984,3.997,992,4.427,993,4.375,994,4.375,995,4.627,996,5.057,1228,5.003,1609,3.701,1716,6.932,1932,6.479,2355,4.128,2381,5.904,3854,5.904,4691,3.528,5230,5.828,5504,3.765,6683,4.036,8449,5.127,8483,6.741,8968,4.892,9705,7.26,9706,6.26,9707,7.489,9708,7.489,9709,7.763,9710,7.763,9711,8.107,9821,9.996,9822,9.802,9823,5.884,9824,6.219,9825,11.079,9827,8.568,9828,6.219,9830,6.219,9832,5.884,9833,6.219,9834,6.219,9835,6.219,9836,6.219,9837,8.568,9838,8.568,9839,6.219,9840,5.635,9841,5.269,9842,6.219,9843,6.219,9844,6.219,9845,6.219,9846,9.267,9847,6.726,9848,6.726,9849,6.726]],["title/entities/FederalStateEntity.html",[154,1.456,6531,4.677]],["body/entities/FederalStateEntity.html",[0,0.341,3,0.018,4,0.018,5,0.009,7,0.115,27,0.491,30,0.001,31,0.699,32,0.164,33,0.481,47,0.966,55,1.627,83,3.079,95,0.127,96,2.077,101,0.019,103,0.001,104,0.001,105,0.816,112,0.796,138,2.18,143,2.669,144,3.949,145,3.328,154,2.144,155,2.523,160,5.72,172,3.983,173,2.236,174,3.989,175,3.343,178,3.141,180,1.355,181,2.023,182,2.459,376,3.293,377,3.432,406,4.883,407,5.763,408,4.883,409,5.763,1669,5.222,1982,3.989,2500,5.184,4266,5.387,4272,5.473,4282,3.309,5806,6.774,5822,4.952,6512,10.741,6513,10.913,6514,6.614,6515,6.614,6516,6.614,6517,6.614,6522,8.402,6523,10.487,6524,10.487,6525,6.614,6526,6.614,6527,6.614,6528,6.614,6529,6.614,6530,6.614,6531,6.888,6532,6.614,6533,6.614,6534,5.923,9850,7.56,9851,7.56,9852,7.56,9853,7.56]],["title/injectables/FederalStateRepo.html",[539,0.901,9854,5.705]],["body/injectables/FederalStateRepo.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.207,10,4.09,12,4.619,18,5.095,26,2.133,27,0.526,29,0.973,30,0.001,31,0.734,32,0.171,33,0.6,34,1.295,35,1.501,36,2.659,40,3.676,47,0.797,49,3.971,95,0.152,96,2.089,99,1.268,101,0.013,103,0.001,104,0.001,154,1.625,155,3.359,173,2.249,180,1.804,226,1.087,262,2.814,349,1.04,382,3.625,479,5.132,539,1.332,541,1.82,679,7.695,685,4.26,686,4.752,687,6.324,711,4.666,712,4.723,713,4.666,714,4.723,715,5.418,716,4.666,717,4.723,718,4.22,3635,5.222,6531,6.914,9077,8.434,9085,8.434,9854,8.434,9855,11.286,9856,7.603,9857,7.603,9858,7.603,9859,7.603]],["title/injectables/FederalStateService.html",[539,0.901,9860,5.705]],["body/injectables/FederalStateService.html",[0,0.302,3,0.021,4,0.021,5,0.011,7,0.135,8,1.336,27,0.456,29,0.867,30,0.001,31,0.681,32,0.152,33,0.535,35,1.069,36,2.37,47,0.858,95,0.154,99,1.484,101,0.015,103,0.001,104,0.001,177,1.629,226,1.272,227,3.663,262,2.665,345,2.832,349,0.919,379,1.113,437,1.151,539,1.474,541,2.13,608,2.051,685,3.765,1663,3.765,1715,3.748,1772,6.34,3832,6.111,4332,5.916,6531,7.651,9854,11.217,9860,9.333,9861,7.967,9862,12.162,9863,8.898,9864,11.14,9865,8.898,9866,8.898,9867,11.14,9868,8.898,9869,7.454,9870,6.783,9871,7.967,9872,8.898]],["title/interfaces/File.html",[5,0.008,105,0.735]],["body/interfaces/File.html",[3,0.022,4,0.022,5,0.015,7,0.14,30,0.001,32,0.156,47,1.007,55,1.985,95,0.117,101,0.021,103,0.001,104,0.001,105,1.393,107,2.213,112,0.905,284,4.097,1147,8.342,1149,6.042,1295,7.23,2032,5.801,6329,7.226,6330,7.226,6331,7.727,6332,7.454,6333,7.454,6334,5.877,6335,7.226,6336,6.449,6337,6.449,6338,6.449,6339,6.449,6340,6.709,6341,6.861,6342,6.573,6343,6.861,6344,6.861]],["title/classes/FileContentBody.html",[0,0.231,5712,4.528]],["body/classes/FileContentBody.html",[0,0.453,2,0.635,3,0.013,4,0.013,5,0.007,7,0.086,9,2.678,27,0.337,30,0.001,31,0.63,32,0.187,47,0.904,83,1.742,95,0.143,99,0.946,101,0.022,103,0,104,0,112,0.652,138,1.495,143,1.263,148,1.8,149,3.675,150,1.293,153,2.196,172,1.811,180,2.014,245,3.625,248,5.044,249,4.741,284,1.752,305,3.267,480,3.121,802,5.235,803,3.353,834,1.779,847,2.71,1194,1.95,1203,1.811,1579,3.299,1880,4.38,2193,4.547,2439,2.778,2510,5.855,2820,2.743,2821,2.496,2860,2.796,3216,5.734,3218,5.734,3221,3.333,3224,4.993,3227,2.911,3232,3.177,3705,3.524,3726,3.524,3727,6.82,4101,5.598,5621,6.155,5623,6.239,5625,6.155,5627,6.239,5629,6.239,5674,3.716,5711,6.423,5712,7.042,5713,6.423,5714,6.423,5715,6.423,5903,3.568,5904,6.769,7046,3.772,7106,3.615,8238,8.165,8239,6.635,8240,3.897,8243,5.382,8244,6.423,8245,6.423,8246,3.897,8247,6.423,8248,3.482,8249,3.832,8250,6.423,8251,6.423,8252,3.772,8253,3.772,8254,3.772,8255,3.772,8256,3.897,8257,3.897,8258,3.897,8259,3.897,8260,3.897,9873,5.673,9874,5.673]],["title/classes/FileDto.html",[0,0.231,6391,5.065]],["body/classes/FileDto.html",[0,0.308,2,1.016,3,0.021,4,0.021,5,0.016,7,0.138,27,0.526,29,0.707,30,0.001,31,0.719,32,0.175,33,0.436,47,0.906,95,0.143,101,0.015,103,0.001,104,0.001,112,0.896,284,3.791,379,1.135,829,5.039,1147,7.719,1149,5.947,1276,3.526,1295,6.873,1982,3.611,3539,3.705,6236,6.126,6273,6.469,6391,9.82,9875,9.079,9876,11.281,9877,9.079,9878,9.079,9879,9.079,9880,9.079,9881,6.036,9882,9.079,9883,7.942,9884,8.394]],["title/classes/FileDto-1.html",[0,0.192,708,2.352,6391,4.211]],["body/classes/FileDto-1.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,26,2.762,27,0.534,29,0.678,30,0.001,31,0.708,32,0.178,33,0.418,34,2.051,47,0.776,95,0.153,99,1.452,101,0.014,103,0.001,104,0.001,107,2.089,112,0.873,181,2.941,379,1.089,381,2.924,404,3.552,405,4.791,1982,3.462,3538,6.562,3570,5.895,4282,3.811,6236,6.179,6255,6.57,6269,6.82,6275,5.788,6284,5.933,6391,8.173,8438,5.788,9885,8.705,9886,10.594,9887,10.988,9888,8.705,9889,8.705,9890,8.705,9891,6.475,9892,7.616]],["title/classes/FileDtoBuilder.html",[0,0.231,9893,6.296]],["body/classes/FileDtoBuilder.html",[0,0.256,2,0.845,3,0.018,4,0.018,5,0.016,7,0.114,8,1.201,27,0.461,29,0.876,30,0.001,31,0.718,32,0.154,33,0.54,35,1.351,47,0.949,95,0.152,101,0.012,103,0.001,104,0.001,236,1.228,284,4.101,349,1.161,413,4.139,437,1.549,454,4.757,662,3.536,819,3.946,1147,8.223,1149,6.562,1295,7.176,1908,8.535,1920,5.276,6236,5.558,6391,9.876,9893,9.261,9894,10.479,9895,7.546,9896,10.017,9897,10.017,9898,10.017,9899,7.546,9900,10.017,9901,7.546,9902,10.017,9903,12.466,9904,7.546,9905,6.977,9906,7.546,9907,7.546,9908,7.546,9909,7.546,9910,7.546,9911,6.977,9912,7.546,9913,6.602]],["title/classes/FileElement.html",[0,0.231,2802,4.18]],["body/classes/FileElement.html",[0,0.213,2,0.703,3,0.015,4,0.015,5,0.007,7,0.095,8,1.059,27,0.547,29,0.97,30,0.001,31,0.697,32,0.177,33,0.597,35,1.552,36,1.879,47,0.924,55,1.9,59,1.95,95,0.112,101,0.017,103,0,104,0,105,0.677,112,0.701,119,2.079,137,5.553,145,1.742,180,1.831,262,2.239,349,1.145,381,2.966,382,3.835,448,3.619,474,2.68,479,3.308,480,3.078,517,3.385,519,3.754,604,2.55,608,1.446,662,2.777,686,4.168,1150,2.496,1600,2.36,1601,3.736,1604,6.598,1676,4.03,1882,2.619,2450,5.755,2724,7.84,2727,6.292,2728,6.292,2729,6.292,2730,7.372,2731,6.292,2733,4.172,2734,5.419,2735,6.513,2737,6.173,2738,5.419,2739,6.384,2741,4.387,2742,4.667,2744,6.425,2745,4.387,2749,4.387,2751,4.172,2778,5.357,2802,6.805,3216,6.581,3218,6.581,3964,4.564,3965,4.564,3966,4.564,3975,3.946,8715,4.471,8717,5.802,8720,5.49,8722,5.49,9914,10.803,9915,6.275,9916,6.275,9917,6.275,9918,6.275,9919,6.275,9920,5.802,9921,6.275,9922,5.802,9923,8.164,9924,5.802,9925,8.164,9926,5.802,9927,5.802,9928,5.802,9929,5.49,9930,5.802]],["title/classes/FileElementContent.html",[0,0.231,9931,5.705]],["body/classes/FileElementContent.html",[0,0.361,2,0.925,3,0.019,4,0.019,5,0.01,7,0.125,27,0.481,29,0.643,30,0.001,31,0.463,32,0.18,33,0.396,34,2.001,47,0.906,95,0.149,99,1.378,101,0.018,103,0.001,104,0.001,112,0.844,138,1.933,150,1.882,245,3.585,253,4.044,379,1.469,404,3.37,769,4.179,834,2.589,2193,4.752,2504,3.689,2856,4.399,2857,4.399,2860,4.07,3216,7.617,3218,7.617,3399,5.774,3411,5.069,3654,6.973,3658,6.179,3662,5.491,3664,5.491,3709,7.571,4101,6.209,5621,5.262,8731,6.674,9931,11.004,9932,11.467,9933,7.225,9934,7.636,9935,6.918,9936,6.918]],["title/classes/FileElementContentBody.html",[0,0.231,8244,4.528]],["body/classes/FileElementContentBody.html",[0,0.453,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,802,5.219,803,3.343,814,2.84,834,1.771,847,2.699,1194,1.942,1203,1.804,1579,3.285,1880,3.986,2193,4.884,2439,2.766,2820,2.732,2821,2.485,2860,2.784,3216,3.353,3218,3.353,3221,3.319,3224,4.981,3227,2.899,3232,3.164,3705,3.509,3726,3.509,3727,6.808,4101,5.587,5621,6.734,5623,6.224,5625,6.14,5627,6.224,5629,6.224,5674,3.701,5711,6.408,5712,7.028,5713,6.408,5714,6.408,5715,6.408,5903,3.553,5904,6.76,7046,3.756,7106,3.599,8238,8.512,8239,5.626,8240,3.88,8243,5.366,8244,7.028,8245,6.408,8246,3.88,8247,6.408,8248,3.467,8249,3.816,8250,6.408,8251,6.408,8252,3.756,8253,3.756,8254,3.756,8255,3.756,8256,3.88,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8736,4.426,9937,5.65,9938,5.65]],["title/entities/FileElementNode.html",[154,1.456,3145,5.335]],["body/entities/FileElementNode.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.13,27,0.446,30,0.001,32,0.149,47,0.936,95,0.159,96,2.356,101,0.018,103,0.001,104,0.001,105,0.925,112,0.864,138,1.98,154,2.326,155,2.862,172,4.145,173,2.536,180,1.95,181,2.295,349,0.886,403,4.76,437,1.109,1600,3.225,1601,5.06,1880,4.945,2450,5.168,2503,4.846,2504,3.831,3109,5.709,3120,6.53,3145,8.527,3187,5.263,3208,9.522,3216,7.466,3218,7.466,3558,6.68,3579,5.327,4064,5.464,4066,5.464,9935,7.184,9936,7.184,9939,11.055,9940,7.928,9941,7.502,9942,9.522,9943,7.928,9944,7.928,9945,7.928]],["title/interfaces/FileElementNodeProps.html",[105,0.735,9942,5.958]],["body/interfaces/FileElementNodeProps.html",[0,0.296,3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,32,0.15,47,0.966,95,0.16,96,2.397,101,0.018,103,0.001,104,0.001,105,0.941,107,2.093,112,0.874,154,2.352,172,3.848,173,2.58,180,2.16,181,2.335,349,0.901,403,4.842,437,1.128,1600,3.28,1601,5.1,1880,3.608,2450,5.225,2503,4.93,2504,3.897,3109,5.772,3120,6.602,3145,6.835,3187,5.354,3208,9.626,3216,7.745,3218,7.745,3558,7.397,3579,5.419,4064,5.558,4066,5.558,9935,7.309,9936,7.309,9939,8.066,9942,10.544,9943,8.066,9944,8.066,9945,8.066]],["title/interfaces/FileElementProps.html",[105,0.735,9929,5.958]],["body/interfaces/FileElementProps.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.162,36,1.787,47,0.976,95,0.136,101,0.02,103,0.001,104,0.001,105,0.906,107,2.015,112,0.853,119,1.709,145,2.331,180,2.122,262,1.84,349,1.289,474,3.587,480,2.982,517,4.117,519,2.601,604,3.412,608,1.935,1150,3.339,1600,3.157,1676,4.901,1882,3.504,2724,6.515,2730,5.583,2734,5.153,2735,6.308,2738,5.153,2739,6.184,2778,7.183,2802,7.267,3216,7.656,3218,7.656,3975,5.281,8715,5.983,9914,7.763,9923,9.929,9924,7.763,9925,9.929,9926,7.763,9927,7.763,9928,7.763,9929,9.395,9930,7.763]],["title/classes/FileElementResponse.html",[0,0.231,3709,4.853]],["body/classes/FileElementResponse.html",[0,0.348,2,0.876,3,0.018,4,0.018,5,0.009,7,0.119,27,0.517,29,0.609,30,0.001,31,0.438,32,0.187,33,0.375,34,2.149,47,0.858,95,0.145,99,1.305,101,0.017,103,0.001,104,0.001,112,0.815,138,2.21,150,1.783,245,3.549,253,3.831,379,1.432,404,3.193,769,3.96,834,2.453,2193,5.103,2504,3.496,2855,5.126,2856,5.465,2857,5.465,2859,4.803,2860,5.056,3216,6.795,3218,6.795,3399,5.471,3411,4.803,3654,7.488,3658,6.657,3662,5.203,3664,5.203,3709,8.989,4101,6.667,5621,6.537,9931,10.178,9932,11.968,9935,6.555,9936,6.555,9946,6.846,9947,6.846,9948,6.846,9949,6.846,9950,6.846]],["title/classes/FileElementResponseMapper.html",[0,0.231,5648,5.958]],["body/classes/FileElementResponseMapper.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.495,29,0.793,30,0.001,31,0.57,32,0.165,33,0.489,34,1.318,35,1.367,95,0.144,99,1.29,100,2.598,101,0.013,103,0.001,104,0.001,112,0.808,119,2.072,236,1.968,349,1.176,376,3.369,413,3.974,437,1,603,2.286,604,3.143,662,2.432,777,4.591,778,5.652,781,6.059,783,5.753,1276,3.182,1559,4.479,1880,5.521,1938,4.412,2193,3.129,2441,8.466,2444,7.977,2445,7.977,2447,7.761,2802,8.193,3216,4.591,3218,4.591,3654,4.591,3658,5.921,3675,5.512,3709,8.619,4101,4.088,5230,7.158,5621,4.928,5646,6.059,5648,11.508,8753,9.22,8754,6.48,8755,6.059,8757,6.25,8758,6.25,8759,6.25,9931,8.53,9951,12.568,9952,11.382,9953,7.735,9954,7.735]],["title/entities/FileEntity.html",[154,1.456,8022,5.191]],["body/entities/FileEntity.html",[0,0.12,3,0.008,4,0.008,5,0.01,7,0.155,26,2.385,27,0.525,30,0.001,31,0.507,32,0.178,33,0.623,47,0.911,49,4.324,55,2.084,83,2.973,95,0.135,96,1.565,97,1.527,99,0.588,101,0.009,103,0,104,0,105,0.38,112,0.452,119,1.46,133,1.992,138,2.333,143,2.962,144,4.303,145,3.197,154,1.218,155,1.176,160,6.053,172,4.094,173,1.042,174,2.266,180,0.631,181,0.943,182,1.146,236,1.783,280,5.661,349,1,357,2.685,376,1.534,377,1.599,406,2.275,407,4.343,408,2.275,409,4.343,437,0.456,480,2.513,486,2.723,490,1.249,519,1.765,529,0.997,556,3.005,570,5.059,603,0.708,662,2.256,708,1.463,760,1.955,818,5.068,834,1.786,986,1.191,1654,1.673,1660,4.143,1669,2.967,1715,1.484,1922,1.906,1982,1.401,2504,1.574,2608,4.703,3304,2.845,3538,2.808,3570,2.79,4263,4.773,4266,4.06,4272,3.915,4273,2.137,4276,2.951,4281,2.951,4282,1.542,4344,2.114,4619,1.821,4801,6.899,5039,2.614,5056,1.906,6258,2.967,6265,2.463,6283,3.163,6337,6.328,6558,2.951,6818,2.379,6921,1.906,7114,2.562,8017,6.732,8019,6.905,8022,4.343,8073,7.211,9892,3.082,9955,3.257,9956,5.469,9957,6.633,9958,6.633,9959,5.112,9960,6.283,9961,7.62,9962,7.211,9963,5.995,9964,6.905,9965,7.62,9966,7.62,9967,7.62,9968,3.523,9969,3.523,9970,7.62,9971,3.523,9972,4.238,9973,3.523,9974,3.523,9975,3.523,9976,3.523,9977,3.523,9978,3.523,9979,3.523,9980,3.523,9981,7.314,9982,3.523,9983,7.211,9984,3.523,9985,8.237,9986,3.523,9987,3.523,9988,3.523,9989,3.523,9990,5.268,9991,3.523,9992,3.523,9993,3.523,9994,3.523,9995,5.268,9996,3.523,9997,2.463,9998,2.62,9999,3.257,10000,3.257,10001,6.276,10002,5.268,10003,3.257,10004,8.368,10005,3.257,10006,3.257,10007,2.685,10008,3.257,10009,2.51,10010,6.633,10011,4.343,10012,5.268,10013,5.268,10014,5.268,10015,3.257,10016,3.257,10017,3.257,10018,4.238,10019,3.257,10020,3.257,10021,3.257,10022,5.797,10023,6.633,10024,3.257,10025,3.257,10026,2.951,10027,5.268,10028,3.257,10029,3.257,10030,3.257,10031,3.257,10032,3.257,10033,3.257,10034,5.268,10035,3.257,10036,5.268,10037,2.685,10038,5.268,10039,3.257,10040,2.562,10041,2.562,10042,3.257,10043,3.257,10044,3.257,10045,3.257,10046,2.685,10047,2.685,10048,2.76,10049,3.257,10050,3.257,10051,3.257,10052,5.268,10053,3.257]],["title/interfaces/FileEntityProps.html",[105,0.735,10001,5.958]],["body/interfaces/FileEntityProps.html",[0,0.129,3,0.009,4,0.009,5,0.01,7,0.159,26,2.715,30,0.001,31,0.561,32,0.184,33,0.658,47,0.952,49,3.708,55,2.348,83,3.614,95,0.138,96,1.663,97,1.646,99,0.634,101,0.01,103,0,104,0,105,0.41,107,0.911,112,0.481,119,2.139,133,1.328,143,2.776,144,4.149,145,2.781,154,1.294,172,4.058,173,1.123,174,2.407,180,0.681,181,1.017,182,1.236,236,1.775,280,6.457,349,1.035,357,2.896,376,3.749,377,3.907,406,2.453,407,4.614,408,2.453,409,4.614,437,0.491,490,1.347,519,1.875,529,1.075,556,3.063,570,4.632,603,0.763,662,2.373,708,1.578,760,2.108,818,5.61,834,1.898,986,1.284,1654,1.804,1660,4.725,1669,1.978,1715,1.6,1922,2.056,1982,1.511,2504,1.697,2608,4.622,3304,1.897,3538,2.983,3570,4.603,4272,4.118,4273,2.305,4276,3.182,4281,3.182,4282,1.663,4344,2.279,4619,1.963,5039,2.778,5056,2.056,6258,3.152,6265,2.656,6283,5.219,6337,7.004,6921,2.056,7114,2.763,8017,7.451,8019,7.876,8022,2.896,8073,8.225,9892,3.323,9955,3.512,9956,2.896,9957,3.512,9958,3.512,9959,2.707,9960,7.167,9961,8.692,9962,8.225,9963,6.838,9964,7.876,9965,8.692,9966,8.692,9967,8.692,9970,9.262,9972,2.825,9981,8.095,9983,8.225,9985,8.492,9990,3.512,9995,3.512,9997,2.656,9998,2.825,9999,3.512,10000,3.512,10001,7.531,10002,8.692,10003,3.512,10004,8.692,10005,3.512,10006,3.512,10007,2.896,10008,3.512,10009,2.707,10010,6.977,10011,4.614,10012,5.597,10013,5.597,10014,5.597,10015,3.512,10016,3.512,10017,3.512,10018,4.502,10019,3.512,10020,3.512,10021,3.512,10022,6.098,10023,6.977,10024,3.512,10025,3.512,10026,3.182,10027,5.597,10028,3.512,10029,3.512,10030,3.512,10031,3.512,10032,3.512,10033,3.512,10034,5.597,10035,3.512,10036,5.597,10037,2.896,10038,5.597,10039,3.512,10040,2.763,10041,2.763,10042,3.512,10043,3.512,10044,3.512,10045,3.512,10046,2.896,10047,2.896,10048,2.976,10049,3.512,10050,3.512,10051,3.512,10052,5.597,10053,3.512]],["title/classes/FileParamBuilder.html",[0,0.231,6376,5.958]],["body/classes/FileParamBuilder.html",[0,0.309,2,1.019,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,26,2.722,27,0.373,29,0.709,30,0.001,31,0.51,32,0.124,33,0.437,35,1.093,95,0.156,99,1.518,101,0.015,103,0.001,104,0.001,107,2.183,349,0.94,413,3.783,437,1.461,454,5.364,3304,6.134,3538,6.51,3570,4.455,4206,3.832,6236,5.242,6258,4.737,6284,5.567,6347,8.413,6349,9.625,6350,8.413,6353,10.444,6376,9.883,10054,10.444,10055,11.297,10056,11.879,10057,7.623,10058,9.099,10059,9.099,10060,9.099]],["title/classes/FileParams.html",[0,0.231,6302,4.677]],["body/classes/FileParams.html",[0,0.457,2,0.731,3,0.015,4,0.021,5,0.013,7,0.099,26,2.6,27,0.267,30,0.001,32,0.162,39,1.757,47,0.963,95,0.16,99,1.089,101,0.022,103,0.001,104,0.001,105,0.705,112,0.721,119,1.848,138,1.188,143,1.454,147,4.874,148,2.072,149,4.291,150,1.488,151,6.037,153,1.484,154,1.396,245,3.646,247,2.858,248,5.122,249,4.564,348,4.533,803,5.009,804,6.769,814,3.282,834,3.272,847,3.119,984,2.816,986,2.208,1075,3.836,1135,5.784,1136,4.277,1137,4.277,1194,2.245,1276,2.041,2677,4.712,2860,5.143,3570,3.197,4206,2.215,5904,6.639,6236,4.213,6249,5.947,6255,6.156,6284,3.218,6287,4.485,6288,4.565,6289,4.565,6292,7.883,6295,4.565,6296,8.161,6297,7.887,6298,7.887,6299,4.565,6300,4.485,6301,7.05,6302,6.236,6303,4.565,6304,4.41,6305,6.132,6306,4.342,6307,4.41,6308,4.485,6309,4.41,6310,4.41,6311,4.16,6312,4.565,6313,4.565,6314,4.565,6315,4.16,6316,4.16,6317,4.277,6318,4.342,6319,4.565,10061,6.53,10062,6.53]],["title/classes/FilePermissionEntity.html",[0,0.231,9981,5.503]],["body/classes/FilePermissionEntity.html",[0,0.24,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,10,4.736,26,2.028,27,0.526,29,0.549,30,0.001,31,0.395,32,0.149,33,0.339,49,4.287,95,0.148,96,2.631,97,3.058,99,1.177,101,0.016,103,0.001,104,0.001,105,0.761,112,0.76,119,2.373,138,2.286,143,2.912,144,3.155,145,3.237,160,4.025,172,4.28,173,2.087,181,2.563,236,1.148,379,0.882,381,2.37,480,3.237,486,3.507,556,2.936,685,4.933,834,3.002,1615,7.073,1616,7.751,1715,2.972,2500,4.95,6558,5.911,9981,7.738,10063,10.956,10064,6.524,10065,10.198,10066,10.778,10067,10.198,10068,9.576,10069,7.056,10070,7.056,10071,7.056,10072,10.778,10073,7.056,10074,7.056,10075,6.524,10076,6.524,10077,6.524,10078,6.524,10079,8.378,10080,6.173,10081,8.378,10082,6.173,10083,8.378,10084,6.173,10085,8.378,10086,6.173]],["title/interfaces/FilePermissionEntityProps.html",[105,0.735,10067,5.958]],["body/interfaces/FilePermissionEntityProps.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,10,5.059,26,2.534,30,0.001,32,0.175,33,0.637,49,3.941,95,0.152,96,2.745,97,3.258,99,1.254,101,0.016,103,0.001,104,0.001,105,0.811,107,1.804,112,0.793,119,2.802,143,2.663,144,3.292,145,2.774,172,4.087,173,2.223,181,2.012,236,1.223,556,3.013,685,5.269,834,3.133,1615,7.554,1616,8.278,1715,3.166,2500,5.165,9981,6.075,10063,6.298,10064,6.951,10065,10.893,10066,11.511,10067,9.819,10072,11.511,10075,6.951,10076,6.951,10077,6.951,10078,6.951,10079,8.742,10080,6.577,10081,8.742,10082,6.577,10083,8.742,10084,6.577,10085,8.742,10086,6.577]],["title/entities/FileRecord.html",[154,1.456,6254,4.086]],["body/entities/FileRecord.html",[0,0.27,3,0.008,4,0.008,5,0.008,7,0.151,26,2.485,27,0.452,30,0.001,31,0.58,32,0.154,33,0.381,34,0.922,39,0.89,47,0.852,49,4.229,55,1.479,83,3.048,95,0.131,96,1.487,97,1.434,99,0.552,101,0.016,103,0,104,0,105,0.742,112,0.546,119,2.021,133,2.777,138,2.006,143,2.21,144,2.886,145,1.503,153,0.752,154,2.214,155,1.104,172,3.901,173,0.978,174,2.153,178,1.374,180,0.593,181,1.449,182,1.076,226,0.473,236,1.838,239,0.759,347,2.517,349,1.335,358,2.382,360,3.032,376,1.441,377,1.502,437,1.518,490,2.437,519,2.46,529,0.936,556,2.501,565,3.214,570,4.218,654,2.044,662,3.921,696,1.305,708,1.374,741,3.938,749,3.546,818,5.267,834,3.112,984,2.335,986,2.323,990,2.357,1060,3.657,1155,3.858,1295,5.267,1559,2.382,1663,2.291,1756,3.718,1864,1.225,1924,1.943,1925,3.785,1982,3.158,2158,1.887,2334,3.088,2500,2.798,2585,3.005,2608,3.664,2618,1.905,2624,1.478,2634,1.553,2821,1.455,3060,1.441,3109,1.735,3304,2.703,3318,2.272,3570,4.861,3680,1.869,3833,4.027,4206,3.368,4216,2.522,4218,2.081,4266,2.357,4272,2.954,4282,1.448,4283,1.964,4778,1.836,4801,5.238,5091,1.869,5103,1.905,6236,5.242,6254,4.765,6255,4.78,6256,3.858,6257,5.202,6265,2.313,6273,2.357,6275,2.2,6277,4.998,6283,3.814,6284,5.283,6285,5.202,6578,2.007,6806,2.592,6807,4.027,6921,2.93,9891,2.461,9956,5.238,9959,5.659,9963,4.998,9997,2.313,10007,2.522,10011,2.522,10037,4.127,10040,2.406,10041,2.406,10046,2.522,10047,2.522,10087,2.673,10088,4.241,10089,6.221,10090,5.553,10091,6.221,10092,3.308,10093,7.078,10094,3.308,10095,3.308,10096,3.308,10097,3.308,10098,3.059,10099,3.059,10100,3.308,10101,3.308,10102,3.308,10103,3.308,10104,3.308,10105,6.515,10106,3.308,10107,3.308,10108,2.673,10109,2.522,10110,4.241,10111,2.461,10112,3.938,10113,3.938,10114,3.938,10115,2.081,10116,4.375,10117,4.375,10118,4.375,10119,4.375,10120,4.375,10121,4.375,10122,4.241,10123,5.364,10124,4.375,10125,2.522,10126,4.027,10127,2.461,10128,4.127,10129,2.522,10130,4.127,10131,5.384,10132,2.357,10133,2.592,10134,2.406,10135,2.406,10136,2.673,10137,2.673,10138,2.522,10139,2.461,10140,2.522,10141,2.673,10142,2.673,10143,2.673,10144,2.673,10145,2.673,10146,2.673,10147,2.673,10148,2.673,10149,2.673,10150,2.673,10151,7.6,10152,2.673,10153,2.673,10154,4.375,10155,2.673,10156,2.673,10157,4.375,10158,4.375,10159,4.375,10160,2.673,10161,2.673,10162,2.673,10163,2.673,10164,2.673,10165,2.673,10166,2.673,10167,4.375,10168,5.553,10169,2.592,10170,2.673,10171,4.375,10172,2.592,10173,2.673,10174,4.375,10175,2.673,10176,5.553,10177,5.553,10178,2.592,10179,5.553,10180,2.673,10181,2.673,10182,2.673,10183,2.673,10184,2.673,10185,2.673,10186,2.673,10187,2.592,10188,2.673,10189,2.673,10190,2.673,10191,2.673,10192,2.673,10193,2.673,10194,2.673,10195,2.673,10196,2.673]],["title/classes/FileRecordFactory.html",[0,0.231,10197,6.296]],["body/classes/FileRecordFactory.html",[0,0.164,2,0.541,3,0.011,4,0.011,5,0.009,7,0.073,8,0.875,27,0.531,29,1.01,30,0.001,31,0.702,32,0.18,33,0.592,34,1.498,35,1.453,47,0.515,49,1.907,55,2.471,59,3.268,95,0.133,101,0.008,103,0,104,0,112,0.58,120,3.211,133,2.553,140,2.707,153,1.999,154,2.248,155,2.436,177,1.336,180,1.308,236,1.711,271,4.9,319,3.296,349,0.754,379,0.605,382,3.874,413,2.248,437,1.137,447,7.253,448,4.533,449,5.537,452,4.125,453,5.537,454,5.744,455,4.125,456,4.125,457,4.125,458,4.052,459,4.513,460,4.97,461,6.504,462,5.838,463,7.079,464,2.758,469,2.732,470,4.125,471,2.758,472,5.178,473,5.346,474,4.185,475,5.028,476,4.088,477,2.732,478,2.575,479,4.143,480,3.282,481,2.661,482,2.617,483,2.732,484,5.101,485,2.758,486,3.556,487,4.882,488,2.732,489,7.173,490,4.191,491,6.679,492,2.758,493,4.362,494,2.732,495,2.758,496,2.732,497,2.758,498,2.732,499,3.08,500,2.87,501,2.732,502,6.138,503,2.758,504,2.732,505,4.125,506,3.858,507,4.125,508,2.758,509,2.638,510,2.617,511,2.16,512,2.732,513,2.732,514,2.732,515,2.758,516,2.758,517,1.854,518,2.732,519,1.498,520,2.758,521,2.891,522,2.732,523,2.758,524,2.758,525,2.812,526,2.87,527,2.901,818,2.707,984,2.085,1149,3.167,1163,3.041,1295,2.707,3570,2.367,4126,5.761,4206,1.64,6254,2.901,6255,2.638,6283,2.684,6284,2.382,6285,3.167,6808,3.788,7085,4.23,8438,3.215,9911,4.47,9963,3.517,10105,5.43,10130,3.685,10197,8.131,10198,4.835,10199,9.798,10200,4.835,10201,4.23,10202,6.749,10203,4.47,10204,4.835,10205,4.835,10206,4.835]],["title/classes/FileRecordListResponse.html",[0,0.231,6286,5.065]],["body/classes/FileRecordListResponse.html",[0,0.369,2,0.672,3,0.014,4,0.014,5,0.007,7,0.091,27,0.471,29,0.467,30,0.001,31,0.559,32,0.177,33,0.551,34,1.458,47,0.903,55,2.973,56,6.077,59,2.659,70,6.275,83,1.843,95,0.138,101,0.018,103,0,104,0,112,0.68,138,1.977,149,3.793,150,1.368,154,1.283,180,1.787,245,3.554,247,2.628,284,3.797,379,0.751,382,3.28,404,3.492,556,1.512,810,7.713,811,6.653,812,6.2,814,3.017,816,4.576,817,2.885,818,4.792,819,2.107,820,4.197,821,5.527,822,4.928,823,3.933,824,3.198,825,4.197,826,4.197,828,5.382,829,4.75,834,3.126,1161,4.851,1165,4.703,1194,2.064,1295,3.362,1982,3.403,2720,6.271,2860,4.914,3570,2.939,6236,3.971,6239,3.992,6244,4.851,6245,4.851,6246,4.851,6247,4.851,6248,4.703,6249,5.606,6250,5.029,6251,9.002,6254,5.135,6255,5.931,6256,8.188,6257,6.532,6258,3.126,6259,9.144,6260,5.029,6261,4.851,6262,5.029,6263,3.223,6264,5.029,6265,4.197,6266,5.029,6267,5.029,6268,5.029,6269,4.703,6270,4.851,6271,5.029,6272,5.029,6273,4.278,6274,4.851,6275,3.992,6276,4.851,6277,4.367,6278,5.029,6279,5.029,6280,4.851,6281,5.029,6282,4.465,6283,3.332,6284,2.958,6285,3.933,6286,6.365,10207,6.004,10208,6.004]],["title/classes/FileRecordMapper.html",[0,0.231,10209,6.296]],["body/classes/FileRecordMapper.html",[0,0.244,2,0.806,3,0.017,4,0.017,5,0.009,7,0.109,8,1.163,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,35,1.319,55,2.864,56,5.682,59,3.015,70,5.867,95,0.123,101,0.012,103,0.001,104,0.001,154,1.538,236,1.786,347,2.635,349,1.134,413,4.099,437,1.52,556,1.812,785,3.592,811,6.36,819,3.405,1135,6.182,1559,3.165,6236,5.452,6254,7.882,6257,4.713,6259,9.125,6286,8.166,6306,8.157,9894,10.28,10123,4.86,10132,6.914,10169,5.637,10172,7.601,10178,5.637,10209,8.971,10210,7.195,10211,9.703,10212,10.15,10213,8.971,10214,9.703,10215,7.195,10216,9.844,10217,6.652,10218,7.195,10219,8.971,10220,7.195,10221,6.652,10222,6.652,10223,6.295,10224,7.195,10225,6.652,10226,5.03,10227,9.703,10228,10.978,10229,10.978,10230,7.195,10231,7.195,10232,7.195,10233,10.978,10234,7.195]],["title/classes/FileRecordParams.html",[0,0.231,6292,4.528]],["body/classes/FileRecordParams.html",[0,0.454,2,0.704,3,0.015,4,0.021,5,0.011,7,0.095,26,2.694,27,0.419,30,0.001,32,0.17,39,1.691,47,0.944,95,0.158,99,1.048,101,0.022,103,0,104,0,105,0.678,112,0.702,119,1.799,138,1.86,143,1.399,147,4.746,148,1.994,149,4.22,150,1.432,151,5.877,153,1.429,154,1.343,245,3.629,247,2.751,248,5.06,249,4.488,348,3.138,803,4.948,804,6.657,834,3.206,847,3.002,984,2.711,986,2.125,1075,3.692,1135,5.632,1136,4.117,1137,4.117,1194,2.161,1276,1.964,2677,4.616,2859,3.857,2860,5.467,3570,5.006,4206,3.469,5889,7.143,5904,6.547,6236,5.148,6249,7.267,6255,6.617,6284,5.039,6287,4.317,6288,4.394,6289,4.394,6292,8.062,6295,4.394,6296,8.062,6297,7.757,6298,7.757,6299,4.394,6300,4.317,6301,6.907,6302,4.317,6303,4.394,6304,4.245,6305,5.971,6306,4.179,6307,4.245,6308,4.317,6309,4.245,6310,4.245,6311,4.004,6312,4.394,6313,4.394,6314,4.394,6315,4.004,6316,4.004,6317,4.117,6318,4.179,6319,4.394,10235,6.285,10236,6.285,10237,6.285,10238,6.285]],["title/injectables/FileRecordRepo.html",[539,0.901,10239,5.958]],["body/injectables/FileRecordRepo.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.069,8,0.834,10,2.827,12,3.193,18,3.522,26,2.881,27,0.519,29,0.975,30,0.001,31,0.701,32,0.171,33,0.601,34,1.616,35,1.504,36,2.83,40,2.195,47,0.597,49,2.745,56,2.195,58,2.932,59,2.947,95,0.13,98,2.695,99,0.757,101,0.007,103,0,104,0,124,2.282,154,1.487,155,2.322,180,1.247,226,0.649,227,1.869,236,1.756,262,3.033,349,1.227,376,1.977,382,2.862,437,1.686,479,4.621,490,4.622,539,0.921,541,1.087,603,2.168,608,2.672,679,6.599,685,2.945,686,3.285,687,4.282,711,2.787,712,2.82,713,2.787,714,2.82,715,3.235,716,2.787,717,2.82,718,2.52,767,3.118,1454,2.566,1559,4.748,1752,2.974,2031,3.932,2333,2.667,3570,5.501,4206,3.218,4451,2.893,4455,3.118,4691,2.382,5504,4.928,5948,4.047,5950,4.865,6236,5.627,6254,7.402,6679,2.724,6969,7.688,6998,3.302,6999,3.302,7041,3.557,10132,4.959,10239,6.088,10240,4.54,10241,8.462,10242,6.959,10243,8.462,10244,8.462,10245,6.959,10246,6.434,10247,6.959,10248,6.959,10249,4.54,10250,9.828,10251,4.54,10252,6.959,10253,4.54,10254,4.54,10255,4.54,10256,4.54,10257,4.54,10258,6.959,10259,4.54,10260,6.434,10261,4.54,10262,6.959,10263,4.54,10264,6.959,10265,4.54,10266,4.54,10267,4.54,10268,8.462,10269,4.54,10270,4.54,10271,8.462,10272,4.54,10273,4.54,10274,4.198,10275,4.54,10276,4.54,10277,4.54,10278,4.54]],["title/classes/FileRecordResponse.html",[0,0.231,6259,5.065]],["body/classes/FileRecordResponse.html",[0,0.355,2,0.619,3,0.013,4,0.013,5,0.007,7,0.084,27,0.534,29,0.43,30,0.001,31,0.623,32,0.182,33,0.457,34,1.782,47,0.944,55,2.645,56,5.058,70,5.222,83,2.475,95,0.133,101,0.017,103,0,104,0,112,0.64,138,2.347,149,3.979,150,1.259,154,1.181,180,1.444,245,3.613,247,2.419,284,3.231,379,0.691,404,3.289,810,5.84,811,4.362,812,5.427,818,5.329,828,5.069,829,4.474,834,2.983,1161,4.465,1165,4.329,1194,3.271,1295,5.329,1982,3.206,2717,3.937,2720,5.985,2859,5.84,2860,5.722,3570,4.659,6236,6.113,6239,3.674,6244,4.465,6245,4.465,6246,4.465,6247,4.465,6248,4.329,6249,8.631,6250,4.629,6251,8.713,6254,6.673,6255,6.543,6256,9.074,6257,7.286,6258,2.877,6259,8.273,6260,6.752,6261,4.465,6262,4.629,6263,2.966,6264,4.629,6265,3.863,6266,4.629,6267,4.629,6268,4.629,6269,4.329,6270,4.465,6271,4.629,6272,4.629,6273,3.937,6274,4.465,6275,3.674,6276,4.465,6277,4.019,6278,4.629,6279,4.629,6280,4.465,6281,6.752,6282,7.078,6283,5.282,6284,4.689,6285,6.233,6286,4.11,10279,5.525,10280,5.525,10281,5.525,10282,5.525,10283,5.525,10284,5.525,10285,5.525,10286,5.525,10287,5.525,10288,5.525,10289,5.525,10290,5.525]],["title/classes/FileRecordScope.html",[0,0.231,10250,5.958]],["body/classes/FileRecordScope.html",[0,0.214,2,0.707,3,0.015,4,0.015,5,0.008,7,0.096,8,1.063,26,2.778,27,0.537,29,0.971,30,0.001,31,0.699,32,0.177,33,0.598,34,1.076,35,1.498,47,0.724,49,2.49,95,0.141,96,1.735,97,2.737,99,1.053,101,0.01,103,0.001,104,0.001,112,0.704,119,2.086,124,4.458,143,1.975,154,1.35,180,1.589,227,2.6,236,1.443,310,3.844,349,1.21,382,3.534,437,0.817,480,2.462,486,2.668,519,1.956,593,3.285,603,2.439,1155,4.5,2288,6.085,3570,3.092,4206,2.142,4485,5.838,5504,5.258,6058,5.99,6059,5.99,6060,5.99,6065,5.99,6066,5.99,6067,4.337,6068,4.265,6069,4.337,6070,4.337,6079,4.265,6080,5.99,6081,4.337,6082,4.265,6083,4.337,6084,4.265,6085,7.509,6236,5.635,6254,3.789,6285,5.81,6305,5.99,9959,4.5,9963,4.593,10091,4.947,10250,11.705,10291,12.144,10292,5.103,10293,8.869,10294,8.869,10295,8.869,10296,7.759,10297,8.869,10298,8.869,10299,6.314,10300,8.869,10301,5.524,10302,8.869,10303,8.869,10304,5.838,10305,7.759,10306,6.314,10307,8.869,10308,5.524,10309,6.314,10310,5.524,10311,5.838]],["title/classes/FileRecordSecurityCheck.html",[0,0.231,10105,5.065]],["body/classes/FileRecordSecurityCheck.html",[0,0.241,2,0.389,3,0.008,4,0.008,5,0.007,7,0.154,26,2.519,27,0.394,29,0.271,30,0.001,31,0.568,32,0.123,33,0.341,34,0.96,39,0.935,47,0.862,49,3.546,55,1.213,83,3.242,95,0.134,96,1.549,97,1.507,99,0.58,101,0.017,103,0,104,0,105,0.767,112,0.565,119,2.063,133,1.971,138,1.635,143,1.821,144,2.343,145,0.965,154,1.922,172,3.986,173,1.028,174,2.242,178,1.444,180,0.623,181,1.903,182,1.131,226,0.497,236,1.934,239,0.798,347,3.293,349,1.346,358,1.53,360,3.157,376,3.097,377,3.228,379,0.435,381,1.168,437,1.538,480,2.496,486,2.705,490,2.521,519,2.534,529,0.984,556,2.554,565,2.064,570,5.02,654,1.677,662,3.961,696,1.371,708,1.444,741,2.529,749,2.278,818,4.58,834,3.311,984,1.5,986,2.404,990,2.478,1060,3.808,1155,5.828,1295,4.58,1559,2.48,1663,2.386,1756,2.388,1864,1.288,1924,2.042,1925,3.942,1982,3.253,2158,1.983,2334,1.983,2500,2.914,2585,1.93,2608,3.774,2618,2.002,2624,1.553,2634,1.632,2821,1.53,3060,1.514,3109,1.824,3304,1.736,3318,2.388,3570,4.964,3680,1.965,3833,2.586,4206,3.439,4216,2.65,4218,2.187,4272,3.076,4282,1.522,4283,2.064,4778,1.93,5091,1.965,5103,2.002,6236,4.704,6254,4.266,6255,4.463,6256,4.017,6257,5.889,6265,2.431,6273,2.478,6275,2.312,6277,5.172,6283,3.947,6284,4.996,6285,3.693,6578,2.11,6806,2.724,6807,4.193,6921,1.882,9891,2.586,9956,2.65,9959,4.017,9963,2.529,9997,2.431,10007,2.65,10011,2.65,10037,4.298,10040,2.529,10041,2.529,10046,2.65,10047,2.65,10087,2.81,10088,2.724,10089,4.417,10090,2.81,10091,4.417,10093,6.61,10105,6.687,10108,2.81,10109,2.65,10110,4.417,10111,2.586,10112,4.101,10113,4.101,10114,4.101,10115,2.187,10116,4.556,10117,4.556,10118,4.556,10119,4.556,10120,4.556,10121,4.556,10122,6.408,10123,6.502,10124,5.746,10125,4.298,10126,4.193,10127,2.586,10128,4.298,10129,2.65,10130,4.298,10131,5.571,10132,2.478,10133,2.724,10134,2.529,10135,2.529,10136,2.81,10137,2.81,10138,2.65,10139,2.586,10140,2.65,10141,2.81,10142,2.81,10143,2.81,10144,2.81,10145,2.81,10146,2.81,10147,2.81,10148,2.81,10149,2.81,10150,2.81,10151,7.779,10152,2.81,10153,2.81,10154,4.556,10155,2.81,10156,2.81,10157,4.556,10158,4.556,10159,4.556,10160,2.81,10161,2.81,10162,2.81,10163,2.81,10164,2.81,10165,2.81,10166,2.81,10167,4.556,10168,5.746,10169,2.724,10170,2.81,10171,4.556,10172,2.724,10173,2.81,10174,4.556,10175,2.81,10176,5.746,10177,5.746,10178,2.724,10179,5.746,10180,2.81,10181,2.81,10182,2.81,10183,2.81,10184,2.81,10185,2.81,10186,2.81,10187,2.724,10188,2.81,10189,2.81,10190,2.81,10191,2.81,10192,2.81,10193,2.81,10194,2.81,10195,2.81,10196,2.81,10312,5.638,10313,3.477,10314,3.477,10315,3.477,10316,3.477]],["title/classes/FileResponseBuilder.html",[0,0.231,10317,5.958]],["body/classes/FileResponseBuilder.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.015,7,0.142,8,1.381,27,0.385,29,0.732,30,0.001,31,0.747,32,0.128,33,0.451,35,1.129,47,0.88,95,0.146,101,0.015,103,0.001,104,0.001,105,1.014,284,2.902,349,0.971,413,3.838,437,1.215,454,5.472,662,2.955,3539,3.835,6236,5.347,6326,8.688,6340,9.451,9881,6.248,9883,8.221,9894,10.081,10317,10.081,10318,11.523,10319,9.397,10320,9.501,10321,10.081]],["title/classes/FileSecurityCheckEntity.html",[0,0.231,9985,5.503]],["body/classes/FileSecurityCheckEntity.html",[0,0.249,2,0.822,3,0.017,4,0.017,5,0.009,7,0.111,27,0.521,29,0.572,30,0.001,31,0.411,32,0.162,33,0.532,47,0.872,83,3.637,95,0.141,96,2.016,101,0.016,103,0.001,104,0.001,105,0.792,112,0.781,138,2.247,172,4.267,173,2.171,181,2.632,236,1.927,347,4.339,376,4.83,377,5.033,379,0.918,381,2.465,480,3.429,486,3.716,556,2.793,570,7.27,834,3.477,1155,8.441,1715,3.091,1924,4.311,1925,6.875,2500,5.083,9985,7.946,9997,5.131,9998,9.658,10063,10.878,10123,8.001,10125,7.496,10126,7.314,10127,5.459,10128,7.496,10129,5.595,10322,6.786,10323,10.363,10324,9.833,10325,7.34,10326,7.34,10327,7.34,10328,10.952,10329,9.092,10330,7.34]],["title/interfaces/FileSecurityCheckEntityProps.html",[105,0.735,10323,5.958]],["body/interfaces/FileSecurityCheckEntityProps.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.126,30,0.001,32,0.161,33,0.632,47,0.945,83,3.28,95,0.15,96,2.288,101,0.018,103,0.001,104,0.001,105,0.899,107,1.998,112,0.848,172,4.107,173,2.463,181,2.229,236,1.738,347,4.712,376,3.627,377,3.78,556,2.971,570,7.238,834,3.349,1155,9.167,1715,3.507,1924,4.891,1925,7.468,2500,5.521,9985,6.729,9997,5.822,9998,6.194,10063,6.976,10123,8.69,10125,6.347,10126,7.945,10127,6.194,10128,8.143,10129,6.347,10322,7.699,10323,10.318,10328,11.894,10329,7.699]],["title/controllers/FileSecurityController.html",[259,2.591,10331,5.958]],["body/controllers/FileSecurityController.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.227,27,0.419,29,0.797,30,0.001,31,0.573,32,0.156,33,0.491,35,1.229,47,0.913,95,0.164,100,2.618,101,0.013,103,0.001,104,0.001,124,6.332,138,1.861,141,5.795,150,1.776,177,1.427,223,3.209,226,1.114,236,1.268,259,3.893,262,2.833,324,3.945,333,3.298,337,4.029,345,2.481,349,0.805,437,1.008,608,2.359,1150,3.1,1162,7.207,1165,6.106,1299,5.669,2702,3.68,4019,4.902,6236,5.301,6258,4.058,6306,8.066,6681,5.265,6682,6.53,6683,4.677,6705,6.53,9998,5.798,10216,9.571,10331,8.953,10332,11.425,10333,7.795,10334,10.234,10335,10.234,10336,7.795,10337,9.371,10338,7.795,10339,7.795,10340,7.795,10341,7.795,10342,7.795,10343,11.425,10344,10.563,10345,7.795,10346,7.795,10347,7.795,10348,7.795,10349,7.207,10350,7.795,10351,7.795,10352,7.795,10353,7.795,10354,7.795,10355,7.795,10356,7.795]],["title/injectables/FileSystemAdapter.html",[539,0.901,10357,5.705]],["body/injectables/FileSystemAdapter.html",[0,0.152,3,0.01,4,0.01,5,0.015,7,0.068,8,0.825,27,0.495,29,0.87,30,0.001,31,0.626,32,0.158,33,0.536,35,1.451,36,2.654,47,0.978,95,0.129,101,0.007,103,0,104,0,112,0.546,153,2.14,226,0.64,262,2.89,274,6.922,333,4.729,348,5.76,349,1.108,358,1.968,360,7.281,379,1.049,437,1.388,539,0.911,541,1.071,590,4.224,603,1.684,608,2.342,686,3.249,838,4.811,1391,4.508,1615,4.175,1616,4.576,1668,5.246,1669,3.583,2026,4.444,2143,6.708,2156,6.362,2193,3.808,2295,3.255,2306,4.384,2334,2.552,2591,3.505,2768,6.848,2775,6.708,2820,5.944,3245,3.022,3472,6.362,3831,5.391,6258,3.583,7866,5.765,7890,8.567,10357,5.765,10358,11.365,10359,11.365,10360,4.475,10361,9.387,10362,6.882,10363,6.882,10364,6.882,10365,8.385,10366,8.385,10367,6.882,10368,8.385,10369,8.385,10370,6.882,10371,6.882,10372,4.475,10373,5.765,10374,10.666,10375,6.882,10376,4.475,10377,3.889,10378,9.414,10379,10.162,10380,6.882,10381,6.362,10382,5.246,10383,8.704,10384,11.536,10385,6.882,10386,4.475,10387,3.411,10388,8.385,10389,4.475,10390,6.362,10391,9.92,10392,8.385,10393,4.475,10394,7.753,10395,7.753,10396,8.704,10397,9.414,10398,6.882,10399,4.475,10400,6.362,10401,6.362,10402,5.561,10403,8.385,10404,4.475,10405,6.882,10406,4.475,10407,4.475,10408,6.882,10409,4.475,10410,4.137,10411,6.362,10412,4.475,10413,4.475,10414,4.475,10415,8.385,10416,4.475,10417,4.475,10418,4.475,10419,4.475,10420,4.475,10421,6.882,10422,4.475,10423,4.475,10424,3.505,10425,4.475,10426,4.475,10427,4.475]],["title/modules/FileSystemModule.html",[201,1.804,10428,5.705]],["body/modules/FileSystemModule.html",[0,0.327,3,0.022,4,0.022,5,0.014,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.336,203,3.46,204,3.718,205,3.826,206,3.811,207,3.795,208,4.612,209,4.735,218,4.649,219,3.748,220,3.66,226,1.376,10357,11.932,10358,8.895,10359,8.895,10428,11.571,10429,9.621,10430,9.621,10431,9.621,10432,9.621,10433,9.621]],["title/classes/FileUrlParams.html",[0,0.231,6300,4.677]],["body/classes/FileUrlParams.html",[0,0.454,2,0.701,3,0.015,4,0.021,5,0.011,7,0.095,26,2.566,27,0.418,30,0.001,32,0.17,33,0.423,39,1.685,47,0.957,95,0.158,99,1.045,101,0.022,103,0,104,0,105,0.676,112,0.7,119,1.795,138,1.857,143,1.395,147,4.735,148,1.988,149,4.215,150,1.427,151,5.865,153,1.424,154,1.339,245,3.628,247,2.742,248,5.055,249,4.482,348,3.128,803,4.943,804,6.648,814,5.131,834,3.2,847,2.993,984,3.804,986,2.118,1075,5.996,1135,5.62,1136,4.104,1137,4.104,1194,3.509,1276,1.958,2677,4.609,2860,5.03,3570,3.068,4206,2.125,5904,6.539,6236,5.141,6249,7.257,6255,6.046,6284,3.087,6287,4.303,6288,4.38,6289,4.38,6292,7.764,6295,4.38,6296,8.054,6297,7.746,6298,7.746,6299,4.38,6300,6.058,6301,7.888,6302,4.303,6303,4.38,6304,4.232,6305,5.958,6306,4.166,6307,4.232,6308,4.303,6309,4.232,6310,4.232,6311,3.992,6312,4.38,6313,4.38,6314,4.38,6315,3.992,6316,3.992,6317,4.104,6318,4.166,6319,4.38,10434,8.82,10435,6.265,10436,6.265,10437,6.265,10438,6.265]],["title/modules/FilesModule.html",[201,1.804,10439,5.705]],["body/modules/FilesModule.html",[0,0.302,3,0.021,4,0.021,5,0.011,30,0.001,95,0.17,101,0.015,103,0.001,104,0.001,201,3.222,203,3.2,204,3.439,205,3.539,206,3.524,207,3.509,208,4.454,209,3.346,214,6.213,218,4.431,219,3.467,220,3.385,225,4.394,226,1.272,1274,2.815,2425,4.816,2702,4.2,7980,9.746,7985,11.217,7989,7.784,8013,10.82,8014,11.217,8033,8.227,10439,11.814,10440,8.898,10441,8.898,10442,8.898,10443,8.898]],["title/injectables/FilesRepo.html",[539,0.901,8013,5.503]],["body/injectables/FilesRepo.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.085,8,0.975,10,3.305,12,3.732,18,4.116,26,2.663,27,0.515,29,0.96,30,0.001,31,0.691,32,0.169,33,0.592,34,1.386,35,1.446,36,2.675,40,2.705,49,3.78,55,2.51,56,2.705,58,6.795,83,2.943,95,0.153,96,2.234,97,2.425,99,0.933,101,0.009,103,0,104,0,154,1.739,155,2.714,173,1.655,177,1.024,180,1.458,226,0.8,236,1.323,262,2.938,349,1.087,361,3.161,379,0.7,382,3.175,437,1.595,479,4.847,490,2.884,539,1.077,541,1.339,608,2.209,662,3.953,679,7.07,685,3.442,686,3.84,687,4.85,711,3.434,712,3.475,713,3.434,714,3.475,715,3.986,716,3.434,717,3.475,718,3.105,722,4.265,767,3.842,1660,2.812,1715,2.356,2248,4.069,2249,6.059,2253,5.916,2291,3.779,3597,4.521,4321,6.384,4689,3.72,5946,4.265,6258,6.072,7988,9.205,7999,7.116,8013,6.573,8019,4.687,8022,8.02,8119,4.069,9960,4.265,9962,4.894,9972,4.161,9983,4.894,10065,4.894,10444,5.595,10445,8.134,10446,8.134,10447,8.134,10448,5.595,10449,8.134,10450,5.595,10451,5.595,10452,8.134,10453,5.595,10454,5.595,10455,8.134,10456,5.595,10457,5.595,10458,7.52,10459,4.521,10460,8.134,10461,5.595,10462,5.595,10463,7.116,10464,5.172,10465,5.595,10466,5.595,10467,5.595,10468,5.595,10469,5.595,10470,5.595]],["title/injectables/FilesService.html",[539,0.901,10471,6.296]],["body/injectables/FilesService.html",[0,0.25,3,0.017,4,0.017,5,0.009,7,0.111,8,1.18,26,2.924,27,0.506,29,0.962,30,0.001,31,0.692,32,0.169,33,0.593,35,1.424,36,2.809,39,3.189,95,0.15,99,1.227,101,0.012,103,0.001,104,0.001,154,1.572,155,3.285,177,1.346,226,1.051,262,3.007,345,2.34,349,1.314,379,0.92,437,1.273,539,1.303,541,1.76,608,2.733,696,4.676,2425,6.007,6865,6.433,8013,9.58,8022,5.605,10471,9.103,10472,7.353,10473,9.846,10474,9.846,10475,9.846,10476,9.846,10477,7.353,10478,9.846,10479,7.353,10480,9.846,10481,7.353,10482,9.846,10483,7.353,10484,9.846,10485,7.353,10486,9.846,10487,10.96,10488,9.846,10489,7.353,10490,9.846,10491,9.846,10492,7.353]],["title/modules/FilesStorageAMQPModule.html",[201,1.804,10493,5.958]],["body/modules/FilesStorageAMQPModule.html",[0,0.303,3,0.021,4,0.021,5,0.011,30,0.001,95,0.167,101,0.015,103,0.001,104,0.001,201,3.228,203,3.214,204,3.454,205,3.554,206,3.54,207,3.525,208,4.463,209,3.361,214,6.22,218,4.443,219,3.482,220,3.4,225,4.406,226,1.278,259,3.4,1164,6.813,1274,2.827,3538,4.404,6236,4.147,6258,4.653,6489,8.913,10493,12.344,10494,8.937,10495,8.937,10496,8.937,10497,10.832,10498,11.727,10499,8.263,10500,6.248,10501,8.263]],["title/modules/FilesStorageApiModule.html",[201,1.804,10502,5.335]],["body/modules/FilesStorageApiModule.html",[0,0.283,3,0.019,4,0.019,5,0.01,30,0.001,95,0.172,101,0.014,103,0.001,104,0.001,201,3.127,203,3.001,204,3.225,205,3.319,206,3.305,207,3.291,208,4.324,209,3.138,218,4.254,219,3.251,220,3.174,222,5.183,223,4.404,225,4.219,226,1.193,259,3.174,959,4.805,1164,6.361,1315,8.628,1734,9.796,2702,3.939,3538,4.112,3936,7.112,6236,3.872,6258,4.344,6489,8.757,10331,10.328,10344,12.177,10497,10.643,10500,5.834,10501,7.715,10502,11.049,10503,8.344,10504,8.344,10505,8.344,10506,11.805,10507,6.537,10508,6.743,10509,6.743]],["title/injectables/FilesStorageClientAdapterService.html",[539,0.901,6365,4.853]],["body/injectables/FilesStorageClientAdapterService.html",[0,0.24,3,0.022,4,0.017,5,0.011,7,0.107,8,1.151,26,2.473,27,0.478,29,0.909,30,0.001,31,0.654,32,0.16,33,0.56,35,1.308,36,2.677,95,0.166,99,1.181,100,2.378,101,0.012,103,0.001,104,0.001,107,1.699,141,3.383,177,1.296,226,1.012,262,2.907,333,4.062,345,2.254,349,1.125,379,0.886,437,1.627,539,1.27,541,1.695,603,1.422,608,2.51,631,3.634,819,3.821,1274,2.24,2250,3.934,2251,5.27,2940,4.783,3538,6.61,3570,3.467,6235,5.398,6236,5.661,6258,3.687,6349,9.146,6351,9.78,6352,6.547,6365,6.84,6391,5.267,10057,5.932,10510,11.281,10511,7.081,10512,7.757,10513,8.398,10514,8.875,10515,10.889,10516,9.78,10517,7.081,10518,9.599,10519,7.081,10520,9.599,10521,7.081,10522,9.599,10523,7.081,10524,6.547,10525,7.081,10526,7.081,10527,12.581,10528,7.081,10529,7.081,10530,9.599,10531,7.081]],["title/classes/FilesStorageClientMapper.html",[0,0.231,10057,5.705]],["body/classes/FilesStorageClientMapper.html",[0,0.203,2,0.67,3,0.014,4,0.014,5,0.007,7,0.091,8,1.024,27,0.489,29,0.929,30,0.001,31,0.703,32,0.172,33,0.573,34,1.455,35,1.434,47,0.703,95,0.138,99,0.998,100,3.344,101,0.01,103,0,104,0,107,1.436,154,2.32,236,1.766,349,1.339,413,4.236,437,1.624,529,2.416,604,4.045,819,3.809,1450,6.085,2158,5.678,2622,4.513,2624,3.815,2821,3.757,3538,6.634,3570,2.931,6008,4.563,6235,8.275,6236,5.699,6239,3.98,6240,10.289,6248,4.689,6255,6.853,6259,4.452,6284,4.208,6286,4.452,6391,9.643,8438,3.98,9295,5.237,9886,10.52,10054,11.356,10056,10.036,10057,7.154,10532,5.986,10533,8.54,10534,8.54,10535,8.54,10536,8.54,10537,8.54,10538,8.54,10539,8.54,10540,5.986,10541,8.54,10542,5.986,10543,8.54,10544,5.986,10545,8.54,10546,5.986,10547,8.54,10548,5.986,10549,8.54,10550,5.986,10551,10.855,10552,5.986,10553,5.986,10554,5.986,10555,5.986,10556,5.986,10557,5.986,10558,5.986,10559,5.986,10560,5.986,10561,5.986,10562,5.986,10563,5.986,10564,8.54,10565,5.986,10566,5.986,10567,5.986]],["title/modules/FilesStorageClientModule.html",[201,1.804,3530,5.065]],["body/modules/FilesStorageClientModule.html",[0,0.28,3,0.019,4,0.019,5,0.01,30,0.001,95,0.167,101,0.014,103,0.001,104,0.001,201,3.112,203,2.97,204,3.192,205,3.285,206,3.271,207,3.257,208,4.303,209,4.417,214,6.095,218,4.226,219,3.217,220,3.142,225,4.191,226,1.181,1274,2.613,2981,5.011,2982,4.625,3530,10.548,3538,5.789,6236,3.832,6358,11.694,6365,9.947,6377,7.636,6405,9.554,6411,7.636,10516,11.004,10524,7.636,10568,8.259,10569,8.259,10570,8.259,10571,8.259,10572,8.259,10573,7.636,10574,7.636,10575,9.296]],["title/injectables/FilesStorageConsumer.html",[539,0.901,10498,5.958]],["body/injectables/FilesStorageConsumer.html",[0,0.191,3,0.013,4,0.022,5,0.007,7,0.085,8,0.979,26,2.235,27,0.432,29,0.821,30,0.001,31,0.591,32,0.144,33,0.506,35,1.155,36,2.486,39,1.513,95,0.164,96,1.545,99,0.938,100,1.89,101,0.009,103,0,104,0,138,1.749,173,1.664,177,1.76,226,0.804,262,2.759,349,0.993,379,1.021,437,1.511,521,2.228,539,1.081,541,1.347,556,2.422,603,2.119,608,2.582,631,2.887,662,3.959,760,3.123,811,5.709,819,3.702,992,2.687,993,2.656,994,2.656,995,2.809,996,3.07,1021,4.127,1117,5.972,1119,7.547,1156,3.933,1157,3.633,1274,1.78,1551,7.161,1609,5.291,1770,3.07,1891,4.092,1892,4.009,2250,3.941,2251,4.763,2369,3.864,2677,3.687,3803,6.993,4675,4.713,6236,5.198,6292,7.014,6310,7.125,6952,6.298,7874,8.041,9913,7.145,10132,5.819,10498,7.145,10512,8.525,10513,8.411,10575,4.922,10576,11.203,10577,5.626,10578,9.614,10579,5.626,10580,9.789,10581,10.1,10582,5.626,10583,5.201,10584,8.889,10585,8.967,10586,10.223,10587,9.614,10588,5.626,10589,5.201,10590,5.626,10591,5.626,10592,5.626,10593,7.551,10594,9.753,10595,11.203,10596,4.184,10597,5.201,10598,4.407,10599,4.288,10600,4.288,10601,4.922,10602,4.922,10603,5.201,10604,5.626,10605,8.167,10606,5.626,10607,8.167,10608,5.626,10609,5.626,10610,8.167,10611,8.167,10612,5.626,10613,5.626,10614,5.626,10615,5.626]],["title/classes/FilesStorageMapper.html",[0,0.231,10602,5.958]],["body/classes/FilesStorageMapper.html",[0,0.288,2,0.664,3,0.014,4,0.014,5,0.007,7,0.09,8,1.017,27,0.487,29,0.926,30,0.001,31,0.667,32,0.171,33,0.571,35,1.429,55,2.744,56,5.228,59,2.636,70,5.398,95,0.151,101,0.01,103,0,104,0,105,0.64,154,1.268,226,0.848,236,1.861,271,2.321,349,1.229,413,4.231,437,1.584,529,1.679,785,2.962,811,5.851,819,2.978,1297,4.315,1600,2.231,1784,7.059,2585,4.71,3193,5.406,3486,4.97,3570,2.905,3798,4.315,4206,2.012,5903,3.731,6236,5.684,6254,7.937,6255,5.9,6259,7.368,6270,4.794,6276,4.794,6284,2.923,6286,7.368,6292,7.605,6304,7.303,6305,4.007,6307,7.726,6681,6.691,6682,9.582,6705,4.97,6774,4.97,10132,6.046,10212,9.159,10213,7.845,10217,5.485,10219,7.845,10221,5.485,10222,5.485,10223,5.19,10225,5.485,10320,8.241,10321,5.19,10602,7.423,10616,12.251,10617,5.933,10618,8.485,10619,7.423,10620,8.485,10621,8.485,10622,8.485,10623,5.933,10624,7.423,10625,5.933,10626,5.933,10627,5.933,10628,8.485,10629,5.933,10630,8.485,10631,5.933,10632,5.933,10633,5.933,10634,5.485,10635,5.933,10636,5.933,10637,5.933,10638,5.933,10639,5.485,10640,5.933,10641,5.485,10642,5.933,10643,5.933,10644,5.933,10645,5.933,10646,4.97,10647,5.933,10648,5.933,10649,5.933,10650,5.933,10651,5.933,10652,5.933,10653,5.933,10654,5.933]],["title/modules/FilesStorageModule.html",[201,1.804,10497,5.503]],["body/modules/FilesStorageModule.html",[0,0.201,3,0.014,4,0.014,5,0.007,30,0.001,32,0.081,47,0.807,55,1.275,87,2.978,95,0.173,96,2.329,99,0.988,101,0.01,103,0,104,0,119,1.206,143,1.319,154,1.266,155,1.977,173,1.752,201,2.622,203,2.131,204,2.289,205,2.356,206,2.346,207,2.336,208,3.957,209,3.722,214,5.518,218,3.371,219,2.308,220,2.254,225,4.261,226,0.847,236,0.964,239,1.359,292,2.998,358,2.606,437,1.28,490,3.006,506,3.131,511,2.647,521,2.346,573,5.725,598,3.411,687,4.29,756,3.88,992,2.83,993,2.796,994,2.796,995,2.958,1072,3.939,1073,3.636,1100,4.963,1113,3.594,1115,4.787,1117,3.68,1119,3.826,1128,4.142,1133,4.963,1164,4.516,1274,1.874,1315,7.077,1454,3.348,1663,2.507,1689,5.896,1909,2.733,2017,2.593,2018,2.901,2019,2.796,2020,3.774,2425,3.206,2619,3.155,3539,2.417,4669,5.477,4675,4.963,4901,4.069,5519,3.939,5570,4.001,6236,2.749,6254,5.086,6258,3.084,6334,3.774,6489,7.184,9881,3.939,10009,4.221,10105,6.305,10239,10.404,10497,11.373,10502,8.464,10575,5.183,10580,11.079,10581,11.079,10603,5.477,10655,5.924,10656,5.924,10657,5.924,10658,5.924,10659,8.474,10660,7.554,10661,6.305,10662,6.305,10663,4.309,10664,6.461,10665,4.221,10666,4.221,10667,6.305,10668,5.924,10669,7.101,10670,4.963,10671,5.477,10672,4.406,10673,6.165,10674,6.165,10675,6.165,10676,4.221,10677,4.069,10678,5.183,10679,4.963,10680,5.924,10681,5.924,10682,5.924,10683,5.183,10684,5.924,10685,5.924,10686,5.924,10687,4.963,10688,6.461,10689,4.406,10690,4.406,10691,4.309,10692,4.787,10693,4.406,10694,4.516,10695,5.183]],["title/injectables/FilesStorageProducer.html",[539,0.901,10516,5.705]],["body/injectables/FilesStorageProducer.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.013,26,2.284,27,0.501,29,0.992,30,0.001,31,0.685,32,0.174,33,0.587,35,1.427,36,2.527,47,0.838,55,1.269,95,0.155,99,0.984,101,0.01,103,0,104,0,107,1.415,141,4.036,177,1.807,180,1.514,226,0.843,262,2.866,349,1.02,379,1.057,382,2.979,437,1.277,448,5.127,479,3.165,519,1.827,539,1.118,541,1.412,584,8.011,598,3.396,603,1.185,608,2.276,819,4.291,1117,3.663,1119,3.809,1142,4.766,1143,8.833,1150,3.361,1156,4.123,1157,3.809,1274,1.866,1551,7.654,1609,6.535,2250,4.047,2251,4.868,3538,5.624,3803,8.637,3920,6.828,3956,4.387,6236,5.295,10510,10.551,10512,6.828,10513,7.392,10514,7.812,10516,7.079,10583,7.812,10585,6.285,10589,7.812,10596,6.285,10598,4.621,10599,4.496,10600,4.496,10601,5.16,10696,5.898,10697,9.948,10698,7.392,10699,7.392,10700,5.898,10701,8.447,10702,5.898,10703,5.898,10704,8.45,10705,8.447,10706,5.898,10707,5.16,10708,5.453,10709,5.16,10710,5.453,10711,5.16,10712,5.453,10713,4.941,10714,5.453,10715,5.898,10716,5.898,10717,5.898,10718,5.898,10719,5.898,10720,5.898,10721,5.898,10722,5.898,10723,5.898,10724,5.898,10725,5.898]],["title/modules/FilesStorageTestModule.html",[201,1.804,10726,5.958]],["body/modules/FilesStorageTestModule.html",[0,0.242,3,0.017,4,0.017,5,0.008,8,0.855,27,0.292,29,0.555,30,0.001,31,0.399,32,0.097,33,0.342,35,0.857,59,2.216,95,0.172,99,1.19,101,0.012,103,0.001,104,0.001,154,1.524,155,2.38,201,3.101,203,2.565,204,2.756,205,2.836,206,2.824,207,2.813,208,4.288,209,2.682,214,5.85,218,3.836,219,2.778,220,2.713,223,4.499,225,4.824,226,1.02,349,0.737,413,2.97,437,1.414,490,3.42,1102,5.187,1103,6.624,1106,7.266,1164,7.352,1274,2.256,1315,8.258,1689,6.879,2469,3.237,3538,5.385,6236,4.475,6254,5.787,6258,3.713,6489,8.382,10500,4.986,10502,9.876,10507,5.587,10660,8.814,10667,7.174,10671,6.593,10726,12.324,10727,7.132,10728,7.132,10729,8.551,10730,6.239,10731,8.708,10732,7.132,10733,5.187,10734,5.763,10735,5.187,10736,5.763,10737,5.974,10738,7.174]],["title/classes/FilterImportUserParams.html",[0,0.231,10739,5.705]],["body/classes/FilterImportUserParams.html",[0,0.313,2,1.384,3,0.016,4,0.016,5,0.008,7,0.101,27,0.519,30,0.001,32,0.176,33,0.657,47,0.936,95,0.17,101,0.017,103,0.001,104,0.001,112,0.732,119,1.878,138,2.304,143,2.054,147,4.952,148,2.12,149,4.911,150,1.522,247,2.925,248,4.989,249,5.223,276,4.492,361,5.97,651,5.047,652,5.047,804,7.173,834,3.572,847,3.192,1410,6.449,1841,6.043,2344,5.261,2355,5.662,3073,5.877,3074,5.213,4321,5.597,4507,5.768,5461,5.73,5536,7.259,10739,7.728,10740,11.936,10741,5.597,10742,7.387,10743,7.256,10744,6.682,10745,6.682,10746,9.768,10747,6.682,10748,6.682,10749,6.682,10750,6.682,10751,6.682,10752,11.053,10753,6.177,10754,6.682,10755,6.682,10756,6.682,10757,11.053,10758,6.682,10759,6.682,10760,9.225,10761,4.761,10762,6.41,10763,6.682,10764,6.682]],["title/classes/FilterNewsParams.html",[0,0.231,10765,5.503]],["body/classes/FilterNewsParams.html",[0,0.354,2,0.899,3,0.019,4,0.019,5,0.01,7,0.122,27,0.475,30,0.001,32,0.158,33,0.625,34,1.777,47,0.866,95,0.156,99,1.339,101,0.013,103,0.001,104,0.001,112,0.828,119,2.123,138,2.108,147,5.601,148,2.548,149,4.668,150,1.829,151,6.937,153,2.891,248,4.354,249,4.964,253,3.931,803,4.257,834,2.517,847,3.835,989,5.791,2677,5.54,2711,6.834,2856,5.557,2857,5.557,6917,7.485,6924,7.549,6925,7.435,6968,7.434,7100,7.023,7102,8.103,7104,7.422,7109,7.422,7111,7.818,7114,7.588,7120,7.422,10765,8.43,10766,12.27,10767,9.366,10768,7.023,10769,8.43,10770,8.74,10771,8.028,10772,8.028,10773,7.422,10774,7.76,10775,8.028]],["title/classes/FilterUserParams.html",[0,0.231,10776,5.705]],["body/classes/FilterUserParams.html",[0,0.396,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,27,0.393,30,0.001,31,0.705,32,0.131,33,0.56,47,0.824,95,0.148,101,0.016,103,0.001,104,0.001,112,0.927,138,1.746,148,3.046,149,4.441,150,2.187,248,4.872,249,4.722,274,7.004,480,3.241,651,5.576,652,5.576,804,7.004,4321,7.083,4507,5.215,10740,10.793,10741,8.041,10746,8.874,10776,9.779,10777,9.598]],["title/classes/ForbiddenLoggableException.html",[0,0.231,1789,5.335]],["body/classes/ForbiddenLoggableException.html",[0,0.285,2,0.94,3,0.02,4,0.02,5,0.01,7,0.127,8,1.287,26,2.644,27,0.44,29,0.654,30,0.001,31,0.47,32,0.162,33,0.403,35,1.009,39,3.185,47,0.836,95,0.164,99,1.401,101,0.014,103,0.001,104,0.001,131,4.435,177,2.167,180,1.924,182,2.731,191,4.544,226,1.2,284,2.593,349,0.867,379,1.343,437,1.086,603,2.378,687,6.315,748,7.346,1021,4.201,1271,5.433,1276,3.357,1277,6.15,1606,6.754,1609,4.621,1610,5.153,1789,8.413,2468,7.028,8368,6.45,8819,5.281,8826,4.883,8827,5.094,10778,11.84,10779,6.785,10780,7.763,10781,8.397,10782,7.034,10783,7.034,10784,8.397,10785,8.397,10786,8.397]],["title/classes/ForbiddenOperationError.html",[0,0.231,288,5.705]],["body/classes/ForbiddenOperationError.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,8,1.213,27,0.538,29,0.597,30,0.001,31,0.429,32,0.186,33,0.544,35,0.92,47,0.908,55,1.649,59,3.144,95,0.128,101,0.013,103,0.001,104,0.001,112,0.803,138,2.279,177,2.491,180,1.813,182,2.492,226,1.095,288,8.476,347,2.806,379,0.958,382,3.883,816,5.529,819,2.688,946,5.257,984,5.197,986,4.351,1021,4.901,1201,8.273,1202,7.485,1203,3.847,1204,7.218,1208,4.948,1209,4.252,1210,4.948,1211,4.948,1212,4.948,1213,4.948,1214,4.948,1215,4.597,1216,4.37,1217,6.002,1222,4.818,1628,7.926,4641,6.191,10787,10.118,10788,7.661,10789,7.661,10790,7.661,10791,8.476,10792,7.713,10793,7.083]],["title/controllers/FwuLearningContentsController.html",[259,2.591,10794,5.705]],["body/controllers/FwuLearningContentsController.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.196,27,0.307,29,0.584,30,0.001,31,0.42,32,0.136,33,0.36,35,0.901,36,2.124,95,0.166,101,0.012,103,0.001,104,0.001,137,4.719,138,1.365,141,5.709,143,1.671,150,1.71,177,1.374,223,3.089,226,1.073,236,1.623,259,2.855,261,3.563,262,2.457,271,4.386,333,4.223,337,3.879,338,3.966,343,3.997,345,2.389,349,0.775,360,4.202,437,1.45,529,2.123,608,1.73,819,4.366,1113,4.553,1158,3.584,1216,4.28,1297,5.458,2017,3.285,2018,3.674,2019,3.542,2193,4.037,2901,4.029,3486,6.286,3878,4.202,6681,8.405,6682,6.286,6683,4.502,6699,6.286,6705,6.286,10337,8.889,10349,6.938,10794,8.36,10795,7.818,10796,10.023,10797,9.98,10798,7.504,10799,8.36,10800,7.504,10801,10.456,10802,9.98,10803,7.504,10804,9.061,10805,6.565,10806,6.565,10807,7.504,10808,7.504,10809,7.504,10810,7.504,10811,7.504,10812,7.504,10813,8.547,10814,7.504,10815,7.504,10816,7.504,10817,7.504,10818,7.504,10819,7.504,10820,6.938,10821,7.504,10822,7.504,10823,7.504,10824,7.504,10825,7.504,10826,7.504,10827,7.504,10828,7.504]],["title/modules/FwuLearningContentsModule.html",[201,1.804,10829,5.958]],["body/modules/FwuLearningContentsModule.html",[0,0.22,3,0.015,4,0.015,5,0.008,30,0.001,32,0.089,47,0.458,87,3.261,94,4.398,95,0.175,96,2.483,99,1.082,101,0.011,103,0.001,104,0.001,143,1.444,155,2.165,173,1.919,201,2.755,203,2.333,204,2.507,205,2.58,206,2.569,207,2.559,208,3.81,209,2.439,214,5.683,218,3.595,219,2.527,220,2.468,223,3.721,225,3.565,226,0.928,236,1.055,239,2.386,276,3.843,292,3.283,358,2.854,437,0.839,490,3.205,511,2.898,521,2.569,573,6.105,598,3.736,644,4.125,687,4.574,756,4.25,959,3.736,992,3.099,993,3.062,994,3.062,995,3.239,1072,4.314,1073,3.982,1274,2.052,1315,8.023,1454,3.666,1663,2.745,1689,6.684,1909,2.993,2469,2.945,2619,3.456,3539,2.647,3936,6.009,4901,4.456,5519,4.314,5570,4.382,6334,4.133,6489,8.144,8438,4.314,8548,4.892,9881,4.314,10009,4.623,10500,4.536,10659,8.728,10661,6.722,10662,6.722,10663,4.719,10664,6.89,10665,4.623,10666,4.623,10672,8.798,10673,6.574,10674,6.574,10675,6.574,10676,4.623,10677,4.456,10679,5.435,10687,5.435,10688,6.89,10689,4.825,10690,4.825,10691,4.719,10692,5.243,10693,4.825,10694,4.945,10695,5.676,10794,8.714,10795,5.082,10796,9.267,10799,5.435,10804,9.898,10805,5.676,10806,5.676,10829,12.155,10830,6.488,10831,6.488,10832,6.488,10833,5.998,10834,6.488,10835,5.837,10836,5.676,10837,5.998,10838,5.998,10839,5.676]],["title/modules/FwuLearningContentsTestModule.html",[201,1.804,10840,5.958]],["body/modules/FwuLearningContentsTestModule.html",[0,0.22,3,0.015,4,0.015,5,0.008,8,0.776,27,0.265,29,0.504,30,0.001,31,0.363,32,0.089,33,0.311,35,0.778,59,2.012,94,4.393,95,0.175,99,1.08,101,0.011,103,0.001,104,0.001,155,2.161,201,2.978,203,2.33,204,2.503,205,2.576,206,2.565,207,2.555,208,4.33,209,2.435,214,5.68,218,3.591,219,2.523,220,2.464,223,4.628,225,4.663,226,0.926,239,2.071,276,3.838,349,0.669,413,2.78,437,1.344,490,3.201,598,3.73,644,4.12,959,3.73,1102,4.711,1103,6.201,1106,6.91,1274,2.049,1315,8.019,1689,6.68,1909,2.989,2469,2.94,3539,2.643,3936,6.003,6334,4.127,6489,8.14,8438,4.307,8548,4.886,9881,4.307,10500,4.528,10507,5.074,10660,8.559,10666,4.615,10672,8.793,10676,4.615,10677,4.449,10679,5.426,10687,5.426,10729,8.265,10730,5.666,10731,8.362,10733,4.711,10734,5.234,10735,4.711,10736,5.234,10738,6.715,10794,8.706,10795,7.073,10796,9.841,10799,5.426,10804,9.893,10805,5.666,10806,5.666,10833,8.347,10835,5.83,10837,5.988,10838,5.988,10839,5.666,10840,12.271,10841,6.477,10842,6.477,10843,6.477,10844,6.098,10845,6.477]],["title/injectables/FwuLearningContentsUc.html",[539,0.901,10804,5.503]],["body/injectables/FwuLearningContentsUc.html",[0,0.289,3,0.02,4,0.02,5,0.01,7,0.129,8,1.298,27,0.443,29,0.843,30,0.001,31,0.606,32,0.148,33,0.519,35,1.022,47,0.934,59,2.642,95,0.159,101,0.014,103,0.001,104,0.001,177,1.557,226,1.216,262,2.61,349,0.878,360,4.762,379,1.354,437,1.1,539,1.433,541,2.035,603,2.175,608,1.96,639,3.991,819,3.799,1070,8.252,1150,3.382,1274,2.69,2250,4.437,2251,5.661,2940,5.743,3539,3.47,9881,5.654,10795,9.33,10796,10.537,10799,7.123,10804,8.748,10813,9.557,10839,7.439,10846,11.91,10847,8.503,10848,9.624,10849,9.326,10850,8.503,10851,8.503,10852,8.503,10853,8.503,10854,8.503,10855,8.503]],["title/interfaces/GetFile.html",[105,0.735,6340,4.953]],["body/interfaces/GetFile.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.178,33,0.655,47,1.011,55,2.583,95,0.11,101,0.021,103,0.001,104,0.001,105,1.361,107,2.075,112,0.869,284,4.02,1147,8.185,1149,5.666,1295,4.843,2032,5.44,6329,6.776,6330,6.776,6331,7.246,6332,6.989,6333,6.989,6334,5.511,6335,6.776,6336,6.047,6337,6.047,6338,6.047,6339,6.047,6340,7.96,6341,9.384,6342,8.99,6343,9.384,6344,9.384]],["title/interfaces/GetFileResponse.html",[105,0.735,10320,5.191]],["body/interfaces/GetFileResponse.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,31,0.705,32,0.184,33,0.654,47,1.008,55,2.573,95,0.152,101,0.018,103,0.001,104,0.001,105,1.175,107,2.058,112,0.864,154,1.833,284,3.885,348,4.281,785,4.281,1147,7.91,1149,5.617,6236,3.979,6254,7.174,6311,7.618,6341,9.355,6342,8.962,6343,9.355,6344,9.355,10320,8.297,10813,6.537,10856,7.928,10857,6.93,10858,7.502,10859,6.378,10860,6.237]],["title/classes/GetFwuLearningContentParams.html",[0,0.231,10801,5.958]],["body/classes/GetFwuLearningContentParams.html",[0,0.399,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,27,0.397,30,0.001,32,0.132,47,0.829,95,0.149,101,0.016,103,0.001,104,0.001,112,0.932,138,1.763,148,3.075,150,2.208,245,3.079,248,4.9,250,7.931,804,7.045,10795,9.199,10796,10.287,10801,10.272,10861,11.742,10862,9.691,10863,12.633,10864,9.691,10865,11.742,10866,11.742,10867,9.691,10868,9.691,10869,9.691]],["title/classes/GetMetaTagDataBody.html",[0,0.231,10870,5.958]],["body/classes/GetMetaTagDataBody.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,3.818,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,245,3.092,1194,4.357,2170,6.604,8243,7.725,10870,10.317,10871,8.99,10872,8.578,10873,11.793,10874,9.761,10875,9.761,10876,9.761]],["title/interfaces/GlobalConstants.html",[105,0.735,10877,6.296]],["body/interfaces/GlobalConstants.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.171,33,0.626,47,0.989,95,0.121,101,0.016,103,0.001,104,0.001,105,1.026,107,2.281,112,0.922,437,1.501,1194,3.269,1759,5.705,10673,9.731,10674,9.731,10675,9.731,10877,11.583,10878,9.508,10879,11.606,10880,9.508,10881,11.606]],["title/classes/GlobalErrorFilter.html",[0,0.231,8450,5.705]],["body/classes/GlobalErrorFilter.html",[0,0.162,2,0.534,3,0.011,4,0.011,5,0.006,7,0.072,8,0.866,27,0.494,29,0.917,30,0.001,31,0.675,32,0.161,33,0.565,35,1.414,95,0.16,100,1.603,101,0.008,103,0,104,0,105,0.515,177,0.873,226,0.682,236,1.859,340,2.293,345,1.519,349,1.216,379,0.597,437,1.701,479,4.122,519,3.015,521,1.89,556,1.202,603,2.717,604,2.937,645,3.471,646,3.4,819,4.539,946,4.516,986,4.373,992,2.279,993,2.253,994,2.253,1021,3.807,1127,8.955,1150,2.875,1158,3.453,1159,3.4,1174,5.225,1198,4.882,1201,5.973,1203,3.107,1215,7.594,1224,4.175,1227,3.471,1271,5.638,1274,1.51,1276,2.259,2030,4.175,2250,2.963,2940,3.223,3306,3.856,3668,7.625,3903,6.323,4483,2.832,4641,3.856,4803,5.235,6683,2.863,8355,3.856,8405,8.153,8423,3.856,8435,3.856,8450,6.055,8473,8.153,9700,4.412,10596,6.489,10597,4.412,10882,12.288,10883,4.412,10884,8.725,10885,7.228,10886,7.228,10887,7.228,10888,7.228,10889,7.228,10890,9.733,10891,7.228,10892,4.772,10893,6.683,10894,11.43,10895,4.772,10896,7.228,10897,4.772,10898,7.228,10899,4.772,10900,7.228,10901,4.772,10902,7.228,10903,4.772,10904,7.228,10905,4.772,10906,4.772,10907,7.228,10908,4.772,10909,4.772,10910,6.055,10911,4.772,10912,4.772,10913,4.772,10914,4.772,10915,4.772,10916,4.772,10917,4.772,10918,4.772,10919,4.772,10920,4.772,10921,4.772,10922,4.772,10923,4.772,10924,4.772,10925,4.772,10926,4.772,10927,4.772,10928,4.772,10929,4.772,10930,4.772,10931,4.772,10932,7.228,10933,4.772,10934,4.772,10935,4.772,10936,7.228,10937,4.772,10938,4.772,10939,4.772,10940,4.772,10941,4.772,10942,4.772,10943,4.772,10944,4.772,10945,4.772]],["title/classes/GlobalValidationPipe.html",[0,0.231,10946,5.958]],["body/classes/GlobalValidationPipe.html",[0,0.388,2,0.874,3,0.018,4,0.018,5,0.009,27,0.32,30,0.001,32,0.156,95,0.13,100,4.234,101,0.013,103,0.001,104,0.001,112,0.62,138,1.864,142,3.055,143,2.881,145,2.168,148,3.252,153,1.775,180,1.836,182,2.54,226,1.117,236,1.27,245,2.048,271,3.055,283,7.019,284,2.412,310,3.385,340,3.753,358,4.508,379,1.43,472,5.416,480,2.845,486,3.083,511,3.489,517,2.994,578,4.738,754,5.953,760,4.335,823,5.116,986,2.64,1078,8.027,1113,6.217,1198,5.275,1221,7.737,1229,5.116,1236,4.588,1665,5.116,1770,4.262,1938,5.844,2033,5.275,2109,5.364,2362,4.686,2677,4.626,3247,4.912,3457,6.712,3464,5.809,4596,8.28,5206,5.044,5230,4.912,6506,7.164,8355,6.311,8968,5.681,9425,6.118,10946,8.964,10947,10.247,10948,7.81,10949,10.573,10950,11.436,10951,7.81,10952,8.027,10953,7.221,10954,7.81,10955,7.81,10956,7.81,10957,7.81,10958,6.832,10959,7.81,10960,6.832,10961,7.81,10962,7.221,10963,7.81,10964,7.81,10965,7.81,10966,7.81,10967,6.311]],["title/classes/GridElement.html",[0,0.231,7535,5.335]],["body/classes/GridElement.html",[0,0.173,2,0.344,3,0.007,4,0.007,5,0.004,7,0.128,8,0.611,26,2.573,27,0.503,29,0.813,30,0.001,31,0.584,32,0.169,33,0.551,34,1.832,35,1.381,39,1.371,47,0.882,55,2.584,83,0.944,95,0.083,101,0.017,103,0,104,0,105,0.332,112,0.405,119,1.847,120,2.241,181,1.364,191,2.758,192,1.958,226,0.439,236,1.636,349,1.347,379,0.384,381,1.711,404,3.435,405,2.804,413,3.473,437,1.686,480,1.812,486,0.925,519,3.619,529,1.846,556,2.421,603,2.381,696,2.995,708,2.711,844,1.691,970,4.648,1076,4.838,1203,3.601,1276,1.593,1488,4.975,1503,3.246,1559,3.34,1676,4.387,1880,4.448,2235,2.408,2439,1.505,2585,2.828,2606,7.348,2618,1.77,2619,1.637,2661,2.286,2722,3.896,2742,4.449,3199,2.286,3396,2.149,3569,3.246,3663,7.052,3735,3.165,4914,1.886,6430,2.575,6537,2.076,6579,9.534,6583,3.706,6663,3.499,6895,5.215,7442,5.41,7465,2.235,7466,2.689,7468,2.689,7471,2.689,7472,2.575,7473,7.603,7475,2.483,7482,4.458,7488,2.689,7492,2.689,7495,2.689,7496,7.603,7498,9.011,7501,5.788,7503,2.689,7504,7.052,7507,2.689,7509,2.689,7511,2.689,7513,2.689,7515,2.689,7517,2.689,7520,2.689,7522,4.458,7523,2.286,7524,7.365,7525,6.643,7526,5.71,7527,7.365,7528,5.71,7529,4.458,7530,7.365,7531,4.458,7532,5.71,7533,2.689,7534,3.79,7535,9.515,7536,5.71,7537,4.458,7538,2.689,7539,4.458,7540,2.689,7541,4.458,7542,2.689,7543,4.458,7544,4.458,7545,4.458,7546,4.458,7547,4.458,7548,2.689,7549,4.458,7550,2.575,7551,4.458,7552,2.689,7553,2.149,7554,4.458,7555,2.689,7556,2.689,7557,2.689,7558,4.458,7559,2.483,7560,2.689,7561,4.458,7562,2.689,7563,2.343,7564,2.689,7565,2.689,7566,2.689,7567,2.689,7568,2.689,7569,2.689,7570,2.689,7571,2.689,7572,2.689,7573,4.458,7574,4.458,7575,2.575,7576,5.71,7577,2.689,7578,4.458,7579,2.689,7580,2.689,7581,2.689,7582,2.689,7583,2.689,7584,2.689,7585,2.689,7586,2.689,7587,2.689,7588,2.689,7589,2.689,7590,2.689,7591,2.689,7592,2.689,7593,2.689,7594,2.689,7595,2.689,7596,2.689,7597,2.689,7598,2.689,7599,2.689,7600,2.689,7601,2.689,7602,4.458,7603,2.689,7604,2.689,7605,2.689,7606,4.458,7607,4.458,7608,2.689,7609,2.689,7610,2.689,7611,2.689,7612,2.689,7613,2.689,7614,2.689,7615,5.71,7616,2.689,7617,2.689,10968,4.711,10969,5.095,10970,5.095,10971,5.095,10972,5.095,10973,4.711,10974,4.711,10975,4.711,10976,3.073,10977,3.073,10978,3.073,10979,3.073,10980,3.073,10981,3.073,10982,2.841,10983,3.073,10984,3.073,10985,3.073,10986,3.073,10987,3.073,10988,3.073,10989,3.073,10990,3.073,10991,3.073,10992,3.073,10993,3.073,10994,3.073]],["title/classes/Group.html",[0,0.231,970,3.293]],["body/classes/Group.html",[0,0.233,2,0.768,3,0.016,4,0.016,5,0.008,7,0.104,8,1.127,26,1.991,27,0.546,29,0.732,30,0.001,31,0.698,32,0.178,33,0.451,34,1.169,35,1.384,47,0.813,83,2.885,95,0.146,99,1.145,101,0.015,103,0.001,104,0.001,105,0.741,112,0.746,119,2.181,133,2.4,180,1.92,239,2.458,349,1.287,381,3.156,382,2.835,448,3.852,479,3.52,519,3.57,528,3.574,556,2.367,662,2.955,686,4.436,696,2.707,970,5.572,1597,5.464,1600,2.581,1601,5.107,1604,6.92,1684,4.263,2476,6.005,2733,4.564,2751,4.564,3060,5.019,3061,6.346,3080,7.594,4205,8.688,4216,5.232,4243,5.75,5267,5.547,7141,6.091,8506,8.168,8537,8.62,10995,6.346,10996,9.397,10997,10.654,10998,8.784,10999,8.688,11000,9.728,11001,6.864,11002,6.864,11003,8.688,11004,6.864,11005,6.864,11006,6.864,11007,6.864,11008,6.864,11009,6.864,11010,6.864,11011,5.377,11012,6.864,11013,5.547,11014,5.75,11015,5.75,11016,6.346,11017,6.346,11018,6.346,11019,6.005,11020,6.346,11021,6.346,11022,5.75,11023,6.346]],["title/modules/GroupApiModule.html",[201,1.804,11024,5.503]],["body/modules/GroupApiModule.html",[0,0.268,3,0.018,4,0.018,5,0.009,30,0.001,95,0.173,101,0.013,103,0.001,104,0.001,201,3.047,203,2.842,204,3.054,205,3.143,206,3.13,207,3.117,208,4.213,209,2.971,218,4.107,219,3.078,220,3.006,222,4.908,223,4.251,225,4.072,226,1.13,259,3.006,654,2.35,1355,9.654,1356,9.075,1374,6.62,1375,5.524,1689,7.083,1901,4.425,2469,3.587,2702,3.73,3531,8.062,3541,3.999,4419,10.873,5380,8.27,11024,11.526,11025,7.902,11026,7.902,11027,7.902,11028,10.489,11029,12,11030,7.902,11031,10.062,11032,7.902,11033,7.902]],["title/controllers/GroupController.html",[259,2.591,11031,5.958]],["body/controllers/GroupController.html",[0,0.343,2,0.973,3,0.014,4,0.014,5,0.007,7,0.093,8,1.041,27,0.356,29,0.676,30,0.001,31,0.487,32,0.187,33,0.417,34,1.045,35,1.044,36,2.335,95,0.165,99,1.023,100,2.06,101,0.01,103,0,104,0,138,1.58,150,1.397,177,1.122,223,2.524,226,0.877,239,1.407,247,2.684,259,2.332,261,2.912,262,2.636,270,6.056,271,3.946,294,6.351,304,5.669,310,4.756,319,3.922,333,3.676,335,6.053,336,7.683,337,3.169,338,3.241,343,3.266,345,1.952,346,5.156,347,4.406,349,0.897,437,1.419,556,2.188,608,2.002,631,3.147,662,3.783,817,4.175,819,3.851,831,7.672,970,4.878,1215,7.217,1216,3.497,1553,4.287,1882,3.625,2702,2.894,2871,4.46,2901,3.292,3717,3.602,4319,9.6,4327,4.955,4369,8.451,4448,9.6,4648,5.966,6540,5.926,6679,5.212,7155,4.674,9230,8.152,9286,5.364,9723,9.327,11029,9.327,11031,7.6,11034,6.132,11035,10.088,11036,6.132,11037,9.327,11038,6.132,11039,10.974,11040,8.687,11041,10.974,11042,6.132,11043,6.132,11044,6.132,11045,9.6,11046,6.132,11047,6.132,11048,6.132,11049,6.132,11050,6.132,11051,7.02,11052,8.451,11053,5.364,11054,6.132,11055,6.132,11056,8.032,11057,6.132,11058,6.132,11059,6.132,11060,7.6,11061,7.6,11062,6.132,11063,6.132,11064,6.132,11065,6.132,11066,6.132,11067,6.132]],["title/classes/GroupDomainMapper.html",[0,0.231,11068,5.958]],["body/classes/GroupDomainMapper.html",[0,0.185,2,0.609,3,0.013,4,0.013,5,0.006,7,0.082,8,0.955,27,0.473,29,0.899,30,0.001,31,0.685,32,0.167,33,0.554,34,1.357,35,1.387,39,1.462,48,2.581,95,0.132,96,1.493,97,2.356,99,0.907,101,0.009,103,0,104,0,154,2.218,236,1.797,239,1.827,276,3.386,349,1.193,381,1.826,405,2.991,413,4.182,437,1.614,556,2.908,644,2.481,655,4.003,970,5.343,984,3.435,1715,2.289,2249,7.305,3060,3.469,3072,2.481,3284,7.802,4282,2.379,4386,3.463,4387,4.258,4486,7.641,4696,4.043,5106,3.672,6581,7.72,8248,3.336,8506,4.144,8537,8.686,8542,9.345,8548,2.942,9023,6.968,10998,4.144,11000,9.671,11013,8.929,11014,4.554,11015,4.554,11019,4.755,11068,6.968,11069,11.929,11070,5.436,11071,7.965,11072,7.965,11073,9.427,11074,7.965,11075,7.965,11076,7.965,11077,5.436,11078,8.387,11079,7.965,11080,5.436,11081,7.965,11082,5.436,11083,5.436,11084,5.436,11085,7.965,11086,9.584,11087,5.436,11088,7.965,11089,5.436,11090,4.554,11091,7.385,11092,5.436,11093,7.364,11094,6.968,11095,5.436,11096,5.436,11097,8.247,11098,7.965,11099,7.965,11100,5.436,11101,4.755,11102,5.436,11103,5.436,11104,5.436,11105,7.965,11106,5.436,11107,5.436,11108,5.436,11109,7.965,11110,5.436,11111,5.436,11112,5.436,11113,5.436,11114,5.436,11115,5.436,11116,5.436,11117,5.436,11118,5.436,11119,4.554,11120,5.436,11121,5.436,11122,5.436,11123,5.436,11124,5.436,11125,5.436]],["title/entities/GroupEntity.html",[154,1.456,6581,5.065]],["body/entities/GroupEntity.html",[0,0.362,3,0.016,4,0.016,5,0.008,7,0.103,26,1.974,27,0.509,30,0.001,31,0.642,32,0.182,33,0.596,34,1.155,47,0.752,95,0.161,96,1.863,101,0.018,103,0.001,104,0.001,105,0.732,112,0.74,138,2.259,143,2.885,144,4.091,154,1.992,155,2.263,172,3.4,173,2.006,174,3.707,178,2.818,180,1.216,181,1.815,182,2.206,404,2.768,405,5.129,578,4.115,644,5.485,834,3.595,970,4.507,1669,4.853,1982,2.698,2439,3.321,2504,3.03,3060,4.994,4266,7.588,4272,6.257,4273,4.115,4282,2.969,4344,4.07,5039,4.277,5106,7.745,6540,3.984,6581,6.933,6590,3.798,6818,4.581,8513,5.314,8514,5.934,8537,7.745,8542,9.416,11078,7.532,11086,9.416,11090,9.605,11091,9.416,11097,10.031,11101,5.934,11126,6.271,11127,6.783,11128,6.783,11129,6.783,11130,6.783,11131,6.783,11132,6.783,11133,6.271,11134,6.271,11135,4.742,11136,6.271,11137,5.682,11138,6.271,11139,6.271,11140,6.271,11141,6.271]],["title/interfaces/GroupEntityProps.html",[105,0.735,11078,5.503]],["body/interfaces/GroupEntityProps.html",[0,0.367,3,0.016,4,0.016,5,0.008,7,0.106,26,2.459,30,0.001,31,0.68,32,0.186,33,0.626,34,1.977,47,0.819,95,0.163,96,1.918,101,0.018,103,0.001,104,0.001,105,0.754,107,1.676,112,0.755,143,2.584,144,3.562,154,2.032,172,3.036,173,2.065,174,3.781,178,2.901,180,1.251,181,1.869,182,2.271,404,2.85,405,5.232,578,4.237,644,5.717,834,3.389,970,4.597,1669,3.636,1982,2.777,2439,3.419,2504,3.12,3060,5.289,4272,6.334,4273,4.237,4282,3.057,4344,4.19,5039,4.363,5106,8.202,6540,4.102,6581,5.194,6590,3.91,8513,5.471,8514,6.109,8537,8.202,8542,9.815,11078,8.736,11086,9.815,11090,10.172,11091,9.815,11097,10.623,11101,6.109,11126,6.456,11133,6.456,11134,6.456,11135,4.882,11136,6.456,11137,5.85,11138,6.456,11139,6.456,11140,6.456,11141,6.456]],["title/classes/GroupIdParams.html",[0,0.231,11045,5.958]],["body/classes/GroupIdParams.html",[0,0.403,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.404,30,0.001,32,0.135,34,2.021,47,0.837,95,0.15,101,0.016,103,0.001,104,0.001,112,0.942,138,1.793,142,4.641,143,2.641,144,3.247,145,3.294,148,3.128,150,2.246,245,3.11,803,4.841,4322,8.258,5872,8.258,7534,9.466,11045,10.378,11142,11.863,11143,9.113]],["title/modules/GroupModule.html",[201,1.804,11028,5.503]],["body/modules/GroupModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.158,101,0.015,103,0.001,104,0.001,201,3.301,203,3.38,204,3.631,205,3.737,206,3.722,207,3.706,208,4.565,209,4.686,218,4.583,219,3.661,220,3.575,226,1.343,560,3.869,2425,5.085,11028,11.301,11144,9.397,11145,9.397,11146,9.397,11147,11.897,11148,11.369,11149,9.397]],["title/interfaces/GroupNameIdTuple.html",[105,0.735,11150,5.705]],["body/interfaces/GroupNameIdTuple.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.552,32,0.162,39,2.652,47,1.005,101,0.02,103,0.001,104,0.001,105,1.28,107,2.365,112,0.942,121,6.457,123,8.258,135,5.471,653,5.095,4206,3.344,5767,6.73,6540,5.79,11150,10.661,11151,9.113,11152,11.554,11153,8.623]],["title/interfaces/GroupProps.html",[105,0.735,11013,5.503]],["body/interfaces/GroupProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,26,2.491,30,0.001,31,0.688,32,0.189,33,0.631,34,2.003,47,0.928,83,3.883,95,0.149,99,1.202,101,0.016,103,0.001,104,0.001,105,0.778,107,1.73,112,0.771,119,1.977,133,2.521,180,1.969,239,1.654,349,1.306,519,3.009,528,3.753,556,2.447,696,2.843,970,5.313,1597,6.39,1600,2.71,1601,4.111,1684,4.477,2476,6.306,3060,5.347,3080,7.85,4243,6.038,5267,5.825,7141,5.135,8506,9.358,8537,9.091,10995,6.664,10997,6.664,10998,9.358,10999,6.664,11000,9.853,11003,6.664,11013,7.85,11014,9.851,11015,9.851,11016,6.664,11017,6.664,11018,6.664,11019,6.306,11020,6.664,11021,6.664,11022,6.038,11023,6.664]],["title/injectables/GroupRepo.html",[539,0.901,11148,5.705]],["body/injectables/GroupRepo.html",[0,0.171,3,0.012,4,0.012,5,0.006,7,0.077,8,0.904,10,3.063,12,3.459,18,3.815,26,2.64,27,0.477,29,0.907,30,0.001,31,0.652,32,0.167,33,0.559,34,1.705,35,1.35,36,2.726,40,3.646,47,0.637,48,4.754,49,1.991,95,0.148,96,1.387,97,2.187,99,0.842,101,0.008,103,0,104,0,143,1.124,145,1.401,154,2.49,155,2.516,177,0.924,226,0.722,236,1.895,239,1.73,262,2.944,345,1.607,349,1.307,379,0.631,381,3.363,437,1.738,539,0.998,541,1.208,593,4.163,608,2.76,655,3.789,662,4.225,970,6.117,1601,4.756,1715,2.126,2249,5.765,2261,6.558,2297,5.747,2302,5.271,2304,8.344,2316,4.228,2332,6.596,2439,2.471,3060,2.198,3072,2.303,3279,3.529,3284,4.574,3303,6.596,3345,4.079,4206,2.557,4429,6.596,4436,6.596,5106,3.409,6581,9.104,7141,5.291,8537,3.409,9052,4.415,9059,6.596,11013,9.082,11068,4.415,11078,6.092,11090,4.228,11093,4.666,11148,6.316,11154,5.047,11155,6.971,11156,6.971,11157,5.047,11158,5.047,11159,6.971,11160,5.047,11161,5.047,11162,6.971,11163,5.047,11164,5.047,11165,5.047,11166,5.047,11167,10.011,11168,10.011,11169,10.011,11170,7.539,11171,5.047,11172,5.047,11173,5.047,11174,7.539,11175,9.025,11176,5.047,11177,5.047,11178,5.047,11179,5.047,11180,5.047,11181,5.047]],["title/classes/GroupResponse.html",[0,0.231,11052,5.705]],["body/classes/GroupResponse.html",[0,0.263,2,0.868,3,0.018,4,0.018,5,0.009,7,0.117,27,0.539,29,0.603,30,0.001,31,0.678,32,0.188,33,0.603,34,1.941,47,0.911,95,0.153,101,0.013,103,0.001,104,0.001,112,0.81,138,2.348,149,4.784,150,1.766,245,3.451,379,0.969,404,3.162,556,1.952,564,2.379,814,3.895,834,2.43,970,5.509,1054,5.907,1982,3.082,2504,3.462,2859,4.756,3060,4.962,8513,6.071,8537,7.695,8552,9.544,10998,8.685,11052,10.535,11137,6.492,11182,7.75,11183,8.919,11184,10.195,11185,7.75,11186,7.75,11187,7.75,11188,11.627,11189,7.75,11190,10.14,11191,7.75,11192,7.75,11193,7.75,11194,7.75,11195,6.78,11196,6.78,11197,7.165,11198,6.78,11199,7.165,11200,7.165]],["title/classes/GroupResponseMapper.html",[0,0.231,11053,5.958]],["body/classes/GroupResponseMapper.html",[0,0.231,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,8,1.12,27,0.437,29,0.831,30,0.001,31,0.674,32,0.164,33,0.512,34,1.817,35,1.282,47,0.48,48,3.232,55,2.675,56,5.552,59,2.903,70,5.733,95,0.146,99,1.135,100,2.286,101,0.011,103,0.001,104,0.001,236,1.958,239,1.561,276,2.893,349,1.102,413,4.052,437,1.556,556,1.714,603,2.143,651,3.251,652,3.251,655,3.421,777,4.04,817,5.518,819,3.278,984,2.935,1553,4.758,1715,2.866,3060,2.964,4327,9.279,4330,5.701,4331,5.701,4332,4.525,4333,5.701,4355,10.081,4357,4.336,4369,10.081,4486,6.745,8506,5.188,8537,4.597,8552,7.826,9245,5.954,10998,5.188,11051,9.279,11052,10.081,11053,8.173,11094,5.954,11188,6.292,11190,7.826,11201,11.483,11202,10.668,11203,9.343,11204,9.343,11205,6.806,11206,6.292,11207,9.343,11208,9.343,11209,6.806,11210,6.806,11211,9.343,11212,6.806,11213,6.806,11214,6.806,11215,9.343,11216,6.806,11217,6.806,11218,6.806,11219,6.806,11220,6.806,11221,6.806,11222,6.806,11223,6.806,11224,6.806,11225,6.806,11226,6.806,11227,6.806,11228,6.806,11229,6.806,11230,6.806,11231,6.806,11232,6.806,11233,6.806,11234,6.806,11235,6.806,11236,6.806,11237,6.806,11238,6.806]],["title/classes/GroupRoleUnknownLoggable.html",[0,0.231,11239,5.958]],["body/classes/GroupRoleUnknownLoggable.html",[0,0.304,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,8,1.341,27,0.458,29,0.697,30,0.001,31,0.502,32,0.122,33,0.43,35,1.076,95,0.142,101,0.015,103,0.001,104,0.001,177,1.64,239,2.055,276,5.186,284,2.767,345,2.851,349,0.925,379,1.12,970,4.331,1021,3.504,1150,3.562,1271,5.598,1272,6.26,1274,2.834,1276,3.497,1277,6.296,1454,5.062,3021,6.383,7094,5.564,8368,6.305,8369,6.549,8522,5.956,11239,9.787,11240,12.199,11241,8.957,11242,8.957,11243,10.325,11244,8.957,11245,10.343,11246,8.957,11247,8.957,11248,6.515,11249,8.957,11250,8.957,11251,8.957]],["title/injectables/GroupRule.html",[539,0.901,1702,5.705]],["body/injectables/GroupRule.html",[0,0.269,3,0.018,4,0.018,5,0.009,7,0.12,8,1.239,27,0.472,29,0.896,30,0.001,31,0.645,32,0.167,33,0.552,35,1.242,95,0.161,99,1.321,101,0.013,103,0.001,104,0.001,119,2.643,131,4.312,143,1.763,177,1.449,226,1.132,239,3.112,345,2.52,349,1.068,379,0.99,437,1.337,539,1.368,541,1.895,604,3.217,662,4.084,970,6.487,1276,2.475,1601,5.598,1606,6.606,1634,8.066,1672,7.405,1702,8.661,1813,6.677,1817,6.422,1824,5.264,3349,6.874,3350,5.348,3353,6.772,3356,5.348,3357,6.983,3358,5.889,6054,5.642,11252,7.917,11253,7.917,11254,7.917,11255,7.917,11256,7.917,11257,10.339]],["title/injectables/GroupService.html",[539,0.901,11147,5.705]],["body/injectables/GroupService.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.011,10,3.426,12,3.869,18,4.267,26,2.822,27,0.512,29,0.973,30,0.001,31,0.7,32,0.174,33,0.6,34,1.834,35,1.468,36,2.856,40,4.077,47,0.696,48,5.113,95,0.15,99,0.981,101,0.01,103,0,104,0,177,1.076,226,0.841,236,0.957,239,1.349,262,3.042,345,1.872,349,1.225,379,0.735,437,1.534,529,1.664,539,1.116,541,1.408,593,3.651,608,2.816,655,2.956,662,4.365,970,6.769,1276,1.838,1687,7.064,1715,2.477,2425,3.183,2469,2.669,4206,1.995,4429,7.377,4436,7.377,4481,3.972,4482,4.111,4483,3.491,6540,4.953,7141,5.691,11147,7.064,11148,9.938,11155,7.796,11156,7.796,11159,7.796,11162,7.796,11258,5.881,11259,8.432,11260,5.881,11261,5.881,11262,8.432,11263,5.881,11264,5.881,11265,5.881,11266,5.881,11267,5.881,11268,8.432,11269,5.881,11270,8.432,11271,5.881,11272,8.432,11273,5.881,11274,5.881,11275,5.881,11276,5.881,11277,8.432,11278,5.881,11279,5.881]],["title/classes/GroupUcMapper.html",[0,0.231,11280,6.296]],["body/classes/GroupUcMapper.html",[0,0.401,2,0.724,3,0.015,4,0.015,5,0.008,7,0.098,8,1.081,27,0.425,29,0.809,30,0.001,31,0.703,32,0.172,33,0.498,34,1.769,35,1.247,59,2.802,95,0.155,99,1.079,100,2.172,101,0.011,103,0.001,104,0.001,236,1.689,349,1.073,413,4.006,437,1.528,662,3.265,696,2.551,970,6.371,1054,6.874,1375,4.521,1715,2.724,2364,4.441,3060,2.817,3072,4.739,3113,4.176,3486,5.417,4278,5.417,4327,10.513,4330,7.555,4331,7.555,4332,7.469,4333,7.555,4334,8.338,4342,5.657,4357,6.616,4486,7.188,4490,5.979,4491,5.979,4602,3.529,7141,6.244,8537,4.368,9802,4.3,9803,4.3,10835,7.255,11051,9.547,11195,7.889,11196,5.657,11198,5.657,11280,8.338,11281,11.234,11282,6.467,11283,9.018,11284,10.384,11285,9.018,11286,9.018,11287,6.467,11288,6.467,11289,11.234,11290,11.039,11291,7.469,11292,6.467,11293,9.018,11294,11.234,11295,6.467,11296,6.467,11297,6.467,11298,6.467,11299,6.467,11300,6.467,11301,9.018,11302,6.467,11303,6.467,11304,6.467,11305,9.018,11306,6.467,11307,6.467,11308,6.467,11309,6.467,11310,6.467,11311,6.467,11312,6.467,11313,6.467,11314,6.467]],["title/classes/GroupUser.html",[0,0.231,11000,5.191]],["body/classes/GroupUser.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,26,2.84,27,0.515,29,0.746,30,0.001,31,0.536,32,0.172,33,0.459,39,3.381,95,0.121,99,1.597,101,0.016,103,0.001,104,0.001,112,0.926,181,3.12,191,5.182,192,6.101,379,1.198,381,3.216,4696,9.347,11000,10.218,11315,13.078,11316,8.853,11317,11.657,11318,9.576,11319,8.377,11320,8.377]],["title/classes/GroupUserEntity.html",[0,0.231,11086,5.335]],["body/classes/GroupUserEntity.html",[0,0.303,2,1.001,3,0.021,4,0.021,5,0.011,7,0.136,27,0.499,29,0.696,30,0.001,31,0.501,32,0.167,33,0.429,95,0.142,96,2.455,101,0.018,103,0.001,104,0.001,105,0.964,112,0.887,138,2.032,173,2.643,181,2.99,239,3.182,276,5.895,379,1.118,381,3.002,1655,5.362,2068,6.501,2500,5.774,5039,5.592,6818,7.546,7644,6.248,11086,8.752,11321,10.695,11322,7.487,11323,11.169,11324,11.171,11325,8.937,11326,6.501,11327,6.813]],["title/interfaces/GroupUserEntityProps.html",[105,0.735,11323,5.958]],["body/interfaces/GroupUserEntityProps.html",[0,0.318,3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.157,95,0.146,96,2.575,101,0.019,103,0.001,104,0.001,105,1.012,107,2.249,112,0.914,173,2.772,181,2.509,239,3.244,276,6.01,1655,5.625,2068,6.819,2500,5.947,5039,5.713,7644,6.554,11086,7.344,11321,7.853,11322,7.853,11323,10.892,11326,6.819,11327,7.146]],["title/classes/GroupUserResponse.html",[0,0.231,11190,5.705]],["body/classes/GroupUserResponse.html",[0,0.29,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,27,0.531,29,0.665,30,0.001,31,0.478,32,0.177,33,0.41,34,2.033,47,0.935,95,0.138,99,1.424,101,0.014,103,0.001,104,0.001,112,0.862,138,2.284,150,1.946,239,1.959,245,3.573,276,5.073,379,1.068,404,3.485,528,4.446,651,5.7,652,5.7,834,2.677,2068,6.211,2859,5.241,3112,5.678,3113,5.515,4602,7.074,9623,5.678,9625,5.678,11190,10.861,11328,13.251,11329,6.9,11330,10.036,11331,10.855,11332,8.539,11333,8.539,11334,8.539,11335,8.539]],["title/interfaces/GroupUsers.html",[105,0.735,11336,5.065]],["body/interfaces/GroupUsers.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.975,55,2.652,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,982,5.916,987,6.188,1021,3.584,3060,5.609,4542,6.188,6540,5.381,11336,8.438,11337,6.983,11338,6.814,11339,6.814,11340,6.983,11341,8.616,11342,6.983,11343,6.983,11344,6.814,11345,6.983,11346,6.664,11347,6.814,11348,6.983,11349,6.814]],["title/classes/GroupValidPeriodEntity.html",[0,0.231,11091,5.335]],["body/classes/GroupValidPeriodEntity.html",[0,0.31,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.504,29,0.712,30,0.001,31,0.512,32,0.168,33,0.439,83,4.139,95,0.116,96,2.511,101,0.019,103,0.001,104,0.001,105,0.986,112,0.9,138,2.061,172,4.224,173,2.703,181,3.032,379,1.143,381,3.07,578,7.808,2500,5.855,8248,7.898,8515,7.997,8516,7.997,8517,7.997,8518,7.997,11091,8.875,11321,10.781,11350,8.451,11351,11.258,11352,11.329,11353,9.14]],["title/interfaces/GroupValidPeriodEntityProps.html",[105,0.735,11351,5.958]],["body/interfaces/GroupValidPeriodEntityProps.html",[0,0.329,3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.16,83,4.285,95,0.123,96,2.662,101,0.019,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,172,4.033,173,2.866,181,2.594,578,5.88,2500,6.069,8248,8.255,8515,8.478,8516,8.478,8517,8.478,8518,8.478,11091,7.592,11321,8.118,11350,8.96,11351,11.052]],["title/interfaces/GroupfoldersCreated.html",[105,0.735,11349,5.065]],["body/interfaces/GroupfoldersCreated.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,2.194,47,0.952,55,2.849,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,982,5.916,987,6.188,1021,3.584,3060,3.99,4542,6.188,6540,5.381,11336,6.814,11337,6.983,11338,6.814,11339,6.814,11340,6.983,11341,8.616,11342,6.983,11343,6.983,11344,6.814,11345,6.983,11346,6.664,11347,6.814,11348,6.983,11349,8.438]],["title/interfaces/GroupfoldersFolder.html",[105,0.735,11347,5.065]],["body/interfaces/GroupfoldersFolder.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.952,55,2.849,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,982,5.916,987,6.188,1021,3.584,3060,3.99,4542,6.188,6540,5.381,11336,6.814,11337,6.983,11338,6.814,11339,6.814,11340,6.983,11341,8.616,11342,6.983,11343,6.983,11344,6.814,11345,6.983,11346,6.664,11347,8.438,11348,9.817,11349,6.814]],["title/classes/GuardAgainst.html",[0,0.231,11354,5.958]],["body/classes/GuardAgainst.html",[0,0.287,2,0.946,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,27,0.346,29,0.84,30,0.001,31,0.473,32,0.147,33,0.405,35,1.295,101,0.014,103,0.001,104,0.001,153,1.921,333,4.562,349,0.873,413,3.657,479,4.95,480,3.812,529,2.391,556,3.329,593,4.894,933,6.209,1150,3.36,2189,10.108,4483,7.425,4700,9.032,8119,7.842,11354,9.433,11355,10.782,11356,8.449,11357,10.782,11358,10.782,11359,12.923,11360,8.449,11361,9.969,11362,8.219,11363,8.447,11364,9.433,11365,10.782]],["title/controllers/H5PEditorController.html",[259,2.591,11366,5.958]],["body/controllers/H5PEditorController.html",[0,0.223,3,0.015,4,0.015,5,0.008,7,0.1,8,1.093,27,0.374,30,0.001,32,0.189,35,1.096,47,0.464,72,2.983,95,0.143,101,0.011,103,0.001,104,0.001,138,1.659,150,1.497,223,2.706,226,0.94,259,2.5,261,3.121,262,2.695,282,7.987,287,7.411,319,2.967,335,6.284,336,8.11,337,3.397,338,3.474,340,3.159,343,3.501,346,5.413,347,4.71,349,1.27,413,2.809,437,0.85,819,3.97,929,3.901,1150,3.627,1158,5.003,1198,7.074,1203,3.344,2032,4.133,2362,7.379,2468,6.217,2618,6.031,2871,6.634,2875,6.952,2876,6.952,3068,9.938,5119,8.644,6258,4.748,6497,7.145,8442,8.624,10387,5.01,11366,7.979,11367,9.163,11368,10.474,11369,6.572,11370,9.163,11371,11.313,11372,11.313,11373,13.057,11374,9.12,11375,9.12,11376,6.572,11377,6.572,11378,6.572,11379,6.572,11380,6.572,11381,6.572,11382,6.076,11383,6.572,11384,7.463,11385,6.572,11386,6.572,11387,6.572,11388,9.12,11389,6.572,11390,6.572,11391,6.076,11392,6.572,11393,6.572,11394,6.572,11395,6.572,11396,6.572,11397,6.572,11398,6.572,11399,6.572,11400,9.12,11401,6.572]],["title/modules/H5PEditorModule.html",[201,1.804,11402,5.705]],["body/modules/H5PEditorModule.html",[0,0.237,3,0.016,4,0.016,5,0.008,30,0.001,32,0.095,47,0.493,87,3.51,94,4.626,95,0.173,96,2.612,99,1.165,101,0.012,103,0.001,104,0.001,143,1.555,155,2.33,173,2.065,201,2.864,203,2.512,204,2.699,205,2.777,206,2.766,207,2.754,208,4.251,209,2.626,218,3.781,219,2.721,220,2.656,223,4.451,225,4.264,226,0.998,236,1.136,239,2.48,276,4.042,292,3.534,358,3.072,437,1.501,490,3.371,511,3.12,521,2.766,573,6.422,598,4.021,644,4.339,687,4.812,756,4.574,992,3.336,993,3.296,994,3.296,995,3.486,1072,4.643,1073,4.286,1274,2.209,1315,8.207,1454,3.946,1663,2.955,1689,6.837,1909,3.222,2250,5.135,2469,3.17,2619,3.719,4901,4.796,5519,4.643,5570,4.717,6489,8.33,8548,5.146,10009,4.976,10500,4.882,10661,7.072,10662,7.072,10663,5.079,10664,7.248,10665,4.976,10666,4.976,10673,6.916,10674,6.916,10675,6.916,10676,4.976,10677,4.796,10679,5.85,10688,7.248,10689,5.194,10690,5.194,10691,5.079,10692,5.643,10693,5.194,10694,5.323,10695,6.109,10835,6.14,10836,6.109,11366,9.458,11367,6.109,11370,6.109,11402,11.401,11403,6.983,11404,6.983,11405,6.983,11406,6.456,11407,6.983,11408,6.983,11409,6.983,11410,6.983]],["title/modules/H5PEditorTestModule.html",[201,1.804,11411,5.958]],["body/modules/H5PEditorTestModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,8,0.833,27,0.285,29,0.541,30,0.001,31,0.389,32,0.095,33,0.333,35,0.835,59,2.158,94,4.61,95,0.171,99,1.159,101,0.011,103,0.001,104,0.001,155,2.318,201,3.068,203,2.499,204,2.685,205,2.763,206,2.751,207,2.74,208,4.242,209,2.612,214,5.804,218,3.768,219,2.706,220,2.643,223,4.439,225,4.781,226,0.993,239,2.174,276,4.028,349,0.718,413,2.918,437,1.395,490,3.36,644,4.324,1102,5.053,1103,6.507,1106,7.169,1274,2.198,1311,9.8,1315,8.194,1689,6.826,2469,3.153,3068,7.656,6489,8.317,8438,4.619,10500,4.857,10507,5.442,10660,8.745,10729,8.474,10730,6.077,10731,8.614,10733,5.053,10734,5.614,10735,5.053,10736,5.614,10737,5.82,10738,7.047,10835,6.119,11367,8.289,11370,6.077,11402,10.479,11406,8.76,11411,12.357,11412,6.947,11413,6.947,11414,6.947,11415,6.947,11416,6.947]],["title/interfaces/HtmlMailContent.html",[105,0.735,1305,5.065]],["body/interfaces/HtmlMailContent.html",[3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,31,0.49,32,0.151,33,0.529,47,1.012,77,5.57,101,0.014,103,0.001,104,0.001,105,1.46,107,2.098,112,0.875,180,2.34,1290,8.195,1291,6.665,1292,8.974,1293,8.399,1294,6.665,1295,4.896,1296,8.195,1297,6.359,1298,6.665,1299,6.359,1300,9.421,1301,6.665,1302,8.195,1303,9.953,1304,9.953,1305,8.974,1306,6.685,1307,6.503,1308,6.503,1309,6.665,1310,6.665]],["title/injectables/HydraOauthUc.html",[539,0.901,11417,5.705]],["body/injectables/HydraOauthUc.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.077,8,0.912,27,0.479,29,0.784,30,0.001,31,0.564,32,0.154,33,0.483,35,1.092,36,2.403,39,1.375,47,0.976,55,1.957,56,2.471,59,2.365,95,0.161,99,0.853,100,2.556,101,0.008,103,0,104,0,105,0.552,112,0.604,119,1.04,133,1.787,143,1.138,177,2.2,226,0.731,236,1.479,262,2.691,278,3.51,310,2.215,347,3.33,349,0.939,379,0.952,437,1.513,448,3.727,480,2.525,486,2.736,521,2.024,529,2.153,539,1.007,541,1.224,603,2.58,608,2.77,696,3.002,710,5.227,785,2.552,819,2.671,946,5.239,986,3.818,992,2.442,993,2.413,994,2.413,1075,3.002,1158,2.442,1274,1.617,1413,6.942,1631,4.727,1718,7.123,1908,7.675,1920,3.573,2017,2.237,2018,2.503,2019,2.413,2250,3.727,2251,4.548,3878,2.862,3947,6.15,6207,4.472,6208,4.472,7198,7.178,8904,4.726,9913,4.472,11417,6.376,11418,12.019,11419,5.111,11420,9.093,11421,9.093,11422,10.074,11423,7.611,11424,9.093,11425,7.611,11426,4.472,11427,8.608,11428,9.798,11429,5.111,11430,7.611,11431,5.111,11432,5.111,11433,5.111,11434,10.074,11435,7.611,11436,5.111,11437,7.036,11438,5.111,11439,5.111,11440,5.111,11441,5.872,11442,6.376,11443,4.726,11444,5.423,11445,4.726,11446,4.472,11447,5.536,11448,4.726,11449,4.472,11450,5.111,11451,4.472,11452,9.314,11453,7.611,11454,7.036,11455,5.111,11456,5.111,11457,5.111,11458,7.611,11459,7.617,11460,5.111,11461,5.111,11462,5.111,11463,5.111,11464,5.111,11465,7.611,11466,4.726,11467,4.472,11468,4.282,11469,5.111,11470,5.111,11471,4.282,11472,5.111,11473,5.111,11474,5.111,11475,7.611,11476,5.111,11477,5.111]],["title/classes/HydraRedirectDto.html",[0,0.231,11442,5.705]],["body/classes/HydraRedirectDto.html",[0,0.298,2,0.983,3,0.021,4,0.021,5,0.01,7,0.133,27,0.547,29,0.684,30,0.001,31,0.492,32,0.182,33,0.421,47,0.78,55,2.378,95,0.14,101,0.014,103,0.001,104,0.001,112,0.877,181,2.957,379,1.098,381,2.95,819,4.242,1010,7.096,1908,8.614,1920,6.139,3947,9.769,6205,10.127,11442,10.952,11459,10.127,11466,11.177,11467,10.576,11468,10.127,11478,8.781,11479,8.781,11480,8.781,11481,8.781,11482,8.781,11483,8.781,11484,8.781,11485,8.119,11486,8.781,11487,8.781,11488,8.781,11489,8.781,11490,8.781,11491,8.781,11492,8.781,11493,8.781,11494,8.781]],["title/injectables/HydraSsoService.html",[539,0.901,11428,5.705]],["body/injectables/HydraSsoService.html",[0,0.153,3,0.011,4,0.011,5,0.005,7,0.068,8,0.83,27,0.459,29,0.838,30,0.001,31,0.603,32,0.153,33,0.516,35,1.225,36,2.576,47,0.947,95,0.165,99,0.752,100,1.515,101,0.007,103,0,104,0,112,0.55,177,2.052,226,0.645,227,1.857,236,1.538,238,2.597,262,2.599,292,2.282,310,1.955,349,1.053,360,2.525,379,0.866,437,1.67,448,3.454,480,1.252,486,1.357,519,1.397,529,1.276,539,0.916,541,1.08,556,1.136,569,3.213,603,2.432,608,1.596,639,2.116,708,1.873,946,2.092,958,7.835,959,2.597,961,2.954,1127,6.601,1158,2.154,1194,1.55,1274,1.427,1326,3.213,1329,3.945,1394,3.945,1421,2.801,1450,3.213,1503,2.873,1718,3.533,1757,2.998,1908,3.213,1920,3.153,2017,1.974,2018,2.208,2019,2.129,2029,3.354,2182,5.277,2183,3.778,2212,4.169,2217,3.945,2250,3.454,2251,4.268,2486,2.295,3878,2.525,3947,9.056,4523,3.354,4615,6.875,4619,2.331,4902,6.601,5504,2.813,5589,2.252,6205,9.935,6207,6.057,6208,6.057,6681,6.385,7192,5.149,7198,3.213,7250,4.84,7275,6.105,7347,2.736,8339,3.354,8886,3.046,8925,3.153,9368,6.875,9397,3.644,11428,5.8,11437,4.169,11441,6.951,11442,8.543,11443,4.169,11452,6.401,11459,9.688,11467,3.945,11468,9.017,11485,4.169,11495,4.51,11496,6.923,11497,6.923,11498,6.923,11499,6.923,11500,4.51,11501,7.372,11502,4.51,11503,6.923,11504,6.923,11505,4.51,11506,6.923,11507,4.51,11508,6.923,11509,4.51,11510,6.923,11511,4.51,11512,4.51,11513,6.923,11514,4.51,11515,4.51,11516,3.438,11517,4.51,11518,5.8,11519,3.778,11520,4.51,11521,4.51,11522,3.354,11523,3.354,11524,3.354,11525,3.438,11526,4.51,11527,4.51,11528,4.51,11529,4.51,11530,6.923,11531,4.51,11532,4.51,11533,4.51,11534,4.51,11535,6.923,11536,4.51,11537,4.51,11538,3.778,11539,4.169,11540,4.51,11541,4.51,11542,7.919,11543,4.51,11544,4.51,11545,4.51,11546,6.923,11547,4.51,11548,4.51,11549,4.51,11550,6.923,11551,4.51,11552,4.51,11553,4.51,11554,4.51,11555,4.51,11556,4.51,11557,4.51,11558,4.51,11559,4.51,11560,4.51,11561,4.51,11562,4.51,11563,4.51,11564,6.923,11565,4.51,11566,4.51,11567,4.51,11568,6.923,11569,3.097,11570,4.51,11571,4.51,11572,2.998,11573,3.778,11574,3.097,11575,4.51,11576,4.51,11577,3.097,11578,4.51,11579,4.51,11580,2.768,11581,4.51,11582,4.51,11583,3.533,11584,3.046,11585,4.51,11586,4.51,11587,4.51]],["title/interfaces/IAccountConfig.html",[105,0.735,11588,5.958]],["body/interfaces/IAccountConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.167,55,2.792,101,0.017,103,0.001,104,0.001,105,1.113,107,2.474,112,0.968,119,2.64,221,9.534,1573,11.727,11588,10.661,11589,6.965,11590,12.393]],["title/interfaces/IBbbSettings.html",[105,0.735,2137,5.503]],["body/interfaces/IBbbSettings.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.174,47,0.996,101,0.02,103,0.001,104,0.001,105,1.072,107,2.383,112,0.946,437,1.284,1127,10.372,1936,5.132,2134,10.699,2135,11.582,2137,9.629,2140,8.687,11591,9.93,11592,8.687,11593,9.93]],["title/interfaces/ICalendarEvent.html",[105,0.735,3918,5.705]],["body/interfaces/ICalendarEvent.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,32,0.177,47,0.856,101,0.017,103,0.001,104,0.001,105,1.104,107,2.455,112,0.963,120,5.337,284,4.13,346,6.074,1076,6.52,3908,7.028,3918,10.163,3925,8.269,3928,7.8,11594,10.233,11595,10.233]],["title/interfaces/IClassEntityProps.html",[105,0.735,4275,5.705]],["body/interfaces/IClassEntityProps.html",[0,0.276,2,0.627,3,0.013,4,0.028,5,0.007,7,0.183,26,2.23,30,0.001,31,0.626,32,0.179,33,0.654,34,1.794,47,0.953,49,5.444,55,2.266,62,6.57,95,0.142,96,2.237,97,2.428,99,0.935,101,0.013,103,0,104,0,105,0.605,107,1.344,112,0.762,133,1.959,143,2.8,144,4.064,154,1.74,172,4.132,173,1.657,174,3.238,178,2.327,180,1.004,181,1.499,182,1.822,236,0.911,404,2.286,405,4.481,480,1.555,529,1.585,556,3.218,603,1.125,708,2.327,1982,2.228,4206,3.794,4207,7.819,4208,8.525,4209,8.487,4210,8.525,4211,7.338,4212,8.525,4213,8.525,4256,4.075,4257,5.18,4265,9.141,4272,4.443,4273,3.399,4274,5.18,4275,8.82,4276,4.693,4277,9.734,4278,6.821,4279,5.18,4280,5.18,4281,4.693,4282,2.452,4283,3.325,4284,4.167,4285,7.528,4286,4.389,4287,5.18,4288,5.18,4289,7.528,4290,5.18,4291,7.528,4292,5.18,4293,5.18,4294,6.379,4295,4.167,4296,7.528,4297,5.18,4298,6.206,4299,4.075,4300,7.528,4301,5.18]],["title/interfaces/ICleanOptions.html",[105,0.735,11596,5.503]],["body/interfaces/ICleanOptions.html",[0,0.16,3,0.011,4,0.011,5,0.006,7,0.071,10,1.914,30,0.001,32,0.064,33,0.343,36,2.421,47,0.505,52,3.419,53,3.426,55,2.449,70,4.322,72,3.249,78,8.714,95,0.123,101,0.008,103,0,104,0,105,0.934,107,1.13,112,0.568,118,3.001,119,0.959,142,4.067,145,3.255,153,2.829,177,1.585,179,4.688,208,1.725,236,1.164,239,1.081,262,2.683,310,2.041,333,3.663,349,0.894,359,2.826,379,0.589,413,1.451,437,1.345,486,3.128,490,4.035,529,1.333,556,1.803,562,3.235,568,5.515,595,2.962,600,2.926,603,1.942,608,2.768,696,2.823,697,6.296,708,2.973,710,5.945,840,3.591,929,2.796,933,4.121,986,1.593,1220,2.638,1274,1.49,1447,5.515,1454,4.044,1581,5.607,1731,3.001,1759,4.294,1770,2.57,2017,2.062,2034,3.69,2250,1.931,2251,3.231,2344,2.687,2774,5.67,3060,5.107,3443,4.759,3451,3.235,3452,8.861,3453,6.539,3454,2.796,5510,3.503,5948,7.502,6498,3.69,7094,2.926,7111,3.001,7395,7.926,7869,6.052,7879,7.926,8333,3.591,8390,3.293,10226,5.004,11363,3.69,11596,6.995,11597,2.687,11598,2.891,11599,3.946,11600,3.946,11601,7.574,11602,5.996,11603,6.438,11604,3.69,11605,3.69,11606,5.996,11607,3.946,11608,3.946,11609,8.402,11610,3.946,11611,3.946,11612,5.784,11613,5.456,11614,3.946,11615,3.591,11616,3.69,11617,3.946,11618,3.946,11619,3.946,11620,8.711,11621,3.426,11622,3.946,11623,3.946,11624,7.251,11625,3.085,11626,5.847,11627,3.356,11628,4.916,11629,3.503,11630,3.946,11631,3.946,11632,3.946,11633,8.099,11634,3.946,11635,3.946,11636,3.946,11637,8.099,11638,3.946,11639,3.946,11640,3.946,11641,8.099,11642,8.099,11643,3.69,11644,3.946,11645,3.946,11646,3.946,11647,3.426,11648,3.806,11649,5.206,11650,3.946,11651,3.946,11652,3.946,11653,3.946,11654,3.946,11655,5.1,11656,3.69,11657,3.69,11658,3.946,11659,3.946,11660,3.946,11661,3.946,11662,3.946,11663,3.946,11664,3.946,11665,3.946,11666,3.946,11667,3.946,11668,3.946,11669,3.806]],["title/interfaces/ICollaborativeStorageStrategy.html",[105,0.735,4558,5.503]],["body/interfaces/ICollaborativeStorageStrategy.html",[3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.503,29,0.956,30,0.001,31,0.688,32,0.168,33,0.589,35,1.475,36,2.864,47,0.819,95,0.132,100,4.125,101,0.013,103,0.001,104,0.001,105,1.252,107,1.93,153,2.375,274,7.368,276,4.932,301,6.946,333,3.404,1660,5.25,1938,5.958,3908,5.525,4542,8.596,4552,8.441,4553,8.441,4555,8.441,4556,8.441,4558,8.441,4561,8.441,4562,9.462,4564,7.627,4565,8.441,4569,8.441,4575,5.983,4577,6.302,4578,6.739,4597,9.923,4598,6.5,11670,8.044,11671,10.446,11672,9.139,11673,8.044,11674,8.044,11675,8.044,11676,9.658,11677,8.044,11678,10.446]],["title/interfaces/ICollectionFilePath.html",[105,0.735,11679,6.296]],["body/interfaces/ICollectionFilePath.html",[0,0.09,3,0.006,4,0.021,5,0.01,7,0.04,10,1.072,27,0.108,30,0.001,31,0.432,32,0.061,33,0.28,35,1.008,36,1.905,47,0.887,55,0.965,83,1.376,95,0.142,96,0.725,97,1.143,99,0.44,101,0.013,103,0,104,0,105,0.285,107,0.633,112,0.356,119,0.912,143,0.998,155,0.88,177,1.261,209,0.992,225,1.04,226,0.377,236,0.951,262,2.152,274,1.583,284,2.765,285,1.728,301,1.754,316,1.416,319,2.024,333,3.267,348,2.238,349,1.289,360,2.51,361,2.533,379,0.33,437,1.706,461,1.452,480,0.732,521,1.045,524,4.403,529,0.746,539,0.593,556,0.665,561,2.439,569,1.88,573,1.782,584,3.828,598,1.519,603,2.507,608,2.929,639,1.238,646,1.88,651,2.141,652,2.141,653,2.317,685,2.473,696,1.768,708,2.863,767,1.812,928,2.467,933,1.519,986,0.892,992,1.26,993,1.245,994,1.245,995,1.317,996,1.44,997,1.812,998,1.782,1150,2.324,1269,2.308,1274,0.835,1410,1.844,1426,1.534,1438,6.853,1654,5.481,1676,1.204,1755,1.812,1758,4.578,1759,5.894,1826,4.578,1938,1.505,2017,1.155,2018,1.292,2019,1.245,2020,1.681,2026,1.704,2128,1.782,2193,1.067,2249,2.581,2250,1.081,2251,2.024,2295,1.919,2300,2.067,2334,1.505,2355,2.751,2381,5.348,2768,4.983,2775,3.194,2820,4.75,2896,1.583,2968,2.21,3072,2.045,3284,1.601,3457,2.936,3466,2.439,3503,3.622,3823,4.896,3825,2.439,3826,2.439,3830,7.614,3832,1.812,3834,4.144,3841,7.832,4206,0.895,4321,3.546,4449,2.132,4548,3.921,4648,1.812,5071,5.348,5530,2.011,6258,4.37,6301,1.782,6381,2.308,6432,2.98,6501,3.134,6968,1.88,7111,2.856,7195,2.132,7275,1.704,7368,2.011,7553,1.844,7861,2.132,7862,2.067,7865,8.761,7866,5.773,7869,5.398,7872,3.334,7890,4.733,7891,5.113,7905,10.357,7929,4.722,7935,6.371,8017,4.347,8065,2.439,8066,2.439,8339,3.334,8340,3.921,8548,4.543,8925,1.844,9368,4.251,9397,2.132,9688,1.681,10357,4.896,10374,4.144,10377,3.302,10387,4.455,10391,2.439,10396,8.711,10400,2.439,10459,3.622,10733,1.919,10761,1.88,11539,2.439,11679,7.761,11680,2.638,11681,2.439,11682,2.439,11683,2.638,11684,2.638,11685,7.72,11686,5.844,11687,3.921,11688,8.394,11689,5.844,11690,6.891,11691,2.638,11692,2.638,11693,2.439,11694,2.638,11695,2.638,11696,2.638,11697,2.308,11698,2.638,11699,4.482,11700,2.638,11701,8.394,11702,4.482,11703,4.482,11704,2.638,11705,2.638,11706,2.638,11707,2.439,11708,2.638,11709,2.638,11710,6.891,11711,2.638,11712,2.638,11713,2.638,11714,2.638,11715,2.638,11716,2.638,11717,2.638,11718,2.638,11719,2.638,11720,2.638,11721,5.844,11722,2.638,11723,6.891,11724,2.638,11725,2.638,11726,1.639,11727,2.638,11728,4.482,11729,4.482,11730,2.638,11731,2.638,11732,2.638,11733,4.482,11734,2.638,11735,2.638,11736,2.638,11737,4.482,11738,3.921,11739,4.482,11740,4.482,11741,2.638,11742,2.638,11743,2.638,11744,2.638,11745,2.638,11746,2.638,11747,2.638,11748,2.638,11749,2.638,11750,2.638,11751,2.638,11752,6.891,11753,2.638,11754,3.755,11755,4.896,11756,2.638,11757,4.482,11758,4.482,11759,2.638,11760,4.482,11761,2.638,11762,4.482,11763,2.638,11764,2.638,11765,2.638,11766,5.844,11767,2.638,11768,2.638,11769,2.067,11770,2.439,11771,2.638,11772,2.638,11773,2.638,11774,3.26,11775,2.21,11776,2.638,11777,2.638,11778,2.638,11779,2.638,11780,2.638,11781,4.482,11782,2.638,11783,2.638,11784,2.638,11785,2.638,11786,1.681,11787,2.638,11788,2.638,11789,2.638,11790,2.638,11791,3.622,11792,2.638,11793,2.638,11794,2.638,11795,2.638,11796,1.962,11797,2.638,11798,2.638,11799,2.638,11800,2.638,11801,2.638,11802,4.482,11803,2.638,11804,2.638,11805,5.844,11806,2.638,11807,2.638,11808,2.638,11809,2.638,11810,2.308,11811,2.638,11812,2.638,11813,3.622,11814,3.622,11815,3.622,11816,2.638,11817,5.403,11818,2.638,11819,2.439,11820,2.308,11821,2.638,11822,2.638,11823,2.638,11824,3.921,11825,2.638,11826,2.638,11827,2.638,11828,2.638,11829,2.638,11830,2.638,11831,2.638,11832,2.638,11833,5.844,11834,2.638,11835,2.638,11836,2.638,11837,2.638,11838,2.638,11839,4.482,11840,3.334,11841,4.482,11842,2.638,11843,4.144,11844,4.482,11845,2.638,11846,4.482,11847,5.844,11848,2.638,11849,2.308,11850,2.439,11851,2.439,11852,2.638,11853,2.638,11854,2.439,11855,1.962,11856,2.439,11857,2.638,11858,2.638,11859,2.638,11860,2.638,11861,2.638,11862,2.638]],["title/interfaces/ICommonCartridgeConfig.html",[105,0.735,11863,5.958]],["body/interfaces/ICommonCartridgeConfig.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,101,0.017,103,0.001,104,0.001,105,1.136,107,2.526,112,0.98,119,2.663,5144,6.799,5145,6.799,11863,10.792,11864,10.528,11865,12.477]],["title/interfaces/ICommonCartridgeElement.html",[105,0.735,5171,4.461]],["body/interfaces/ICommonCartridgeElement.html",[3,0.024,4,0.024,5,0.012,7,0.158,8,1.468,27,0.426,30,0.001,35,1.248,101,0.017,103,0.001,104,0.001,105,1.121,107,2.493,984,5.28,5043,7.604,5144,7.906,5145,7.906,5171,8.019,5206,8.679,11866,10.392,11867,10.392]],["title/interfaces/ICommonCartridgeFile.html",[105,0.735,5213,5.335]],["body/interfaces/ICommonCartridgeFile.html",[3,0.023,4,0.023,5,0.012,7,0.152,8,1.439,27,0.492,30,0.001,35,1.442,47,0.847,101,0.017,103,0.001,104,0.001,105,1.085,107,2.412,119,2.443,2193,5.378,5043,7.972,5144,8.289,5145,8.289,5213,9.405,5214,10.743,11868,10.054,11869,10.054,11870,10.054]],["title/interfaces/ICommonCartridgeFileBuilder.html",[105,0.735,5147,5.503]],["body/interfaces/ICommonCartridgeFileBuilder.html",[0,0.287,3,0.014,4,0.014,5,0.014,7,0.089,8,1.013,27,0.404,29,0.658,30,0.001,31,0.473,32,0.135,33,0.405,35,1.186,36,2.101,47,0.761,95,0.155,101,0.018,103,0,104,0,105,0.912,107,1.415,177,2.29,236,2.102,262,1.292,345,1.877,349,1.227,379,0.738,381,3.316,437,1.536,454,5.419,490,2.091,603,2.456,1203,2.698,1245,5.457,1276,2.641,1669,4.399,1880,4.083,2001,6.669,3160,5.384,5043,7.911,5055,4.621,5056,4.573,5057,5.803,5067,9.322,5079,6.572,5084,6.62,5086,6.62,5094,6.828,5098,6.87,5100,4.766,5106,5.707,5144,6.963,5145,6.963,5146,4.941,5147,9.596,5148,7.735,5149,6.441,5150,7.079,5151,7.812,5152,7.812,5154,7.079,5158,8.272,5160,8.272,5161,9.596,5163,9.882,5164,8.272,5167,4.766,5168,4.766,5169,4.496,5170,4.203,5171,6.468,5172,3.984,5173,6.62,5174,6.828,5175,4.621,5176,6.021,5177,4.621,5178,7.079,5179,4.766,5180,4.941,5181,4.941,5182,4.941,5183,9.033,5184,4.941,5185,7.079,5186,4.941,5187,4.941,5188,7.079,5189,4.941,5190,4.941,5191,4.941,5192,4.941,5193,4.941,5194,4.941,5195,4.941,5196,4.941,5197,4.941,5198,4.941,5199,4.941,5200,4.766,5201,4.941,5202,4.941,5203,4.941,5204,4.941,5205,4.941,5206,3.809,5207,4.941,5208,4.941,5209,4.941,11871,5.898,11872,5.898,11873,5.898]],["title/interfaces/ICommonCartridgeOrganizationBuilder.html",[105,0.735,5163,5.503]],["body/interfaces/ICommonCartridgeOrganizationBuilder.html",[0,0.297,3,0.014,4,0.014,5,0.012,7,0.094,8,1.048,27,0.253,29,0.482,30,0.001,31,0.347,32,0.119,33,0.297,35,0.743,36,1.86,47,0.778,95,0.157,101,0.018,103,0,104,0,105,0.944,107,1.485,177,2.319,236,2.124,262,1.356,345,1.97,349,1.246,379,0.774,381,2.937,437,1.56,454,4.152,490,2.194,603,2.491,1203,2.792,1245,5.647,1276,2.733,1669,4.552,1880,4.193,2001,6.849,3160,5.571,5043,7.703,5055,4.848,5056,4.732,5057,6.005,5067,9.453,5079,6.693,5084,6.85,5086,6.85,5094,7.066,5098,7.02,5100,5.001,5106,5.906,5144,5.647,5145,5.647,5146,5.184,5147,8.904,5148,7.943,5149,6.665,5150,7.325,5154,7.325,5158,8.494,5160,7.325,5161,8.904,5163,10.236,5164,7.325,5167,5.001,5168,5.001,5169,4.717,5170,4.41,5171,6.642,5172,4.18,5173,6.85,5174,7.066,5175,4.848,5176,6.23,5177,4.848,5178,8.494,5179,5.001,5180,5.184,5181,5.184,5182,5.184,5183,9.231,5184,5.184,5185,7.325,5186,5.184,5187,5.184,5188,7.325,5189,5.184,5190,5.184,5191,5.184,5192,5.184,5193,5.184,5194,5.184,5195,5.184,5196,5.184,5197,5.184,5198,5.184,5199,5.184,5200,5.001,5201,5.184,5202,5.184,5203,5.184,5204,5.184,5205,5.184,5206,3.996,5207,5.184,5208,5.184,5209,5.184,5314,8.084,11874,6.188]],["title/interfaces/IComponentEtherpadProperties.html",[105,0.735,11875,4.853]],["body/interfaces/IComponentEtherpadProperties.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.144,26,2.167,30,0.001,31,0.39,32,0.147,47,0.963,55,2.201,95,0.154,96,1.247,101,0.021,103,0,104,0,105,1.251,107,1.089,112,0.553,119,1.416,143,1.884,144,1.496,145,1.932,153,2.453,154,1.487,172,3.266,173,1.343,174,2.768,175,2.008,178,1.886,180,0.814,181,1.215,182,1.477,226,0.649,236,1.543,239,1.042,316,3.736,349,1.293,437,1.619,474,1.939,529,1.969,556,1.753,563,4.131,603,1.398,604,1.845,662,1.428,696,1.791,834,1.423,971,2.498,1150,1.806,1158,2.169,1194,3.862,1203,3.587,1276,1.419,1600,1.707,1654,2.156,1676,3.176,1858,2.169,1864,3.788,1882,1.895,1982,1.806,2193,4.366,2608,3.904,2611,3.797,2615,2.478,2620,4.434,2621,2.667,2622,4.472,2624,3.78,2625,4.323,2634,2.131,2638,4.559,2742,3.678,2820,4.092,3304,4.225,3414,5.322,3433,6.03,3539,1.853,3567,3.174,3568,3.174,4057,4.088,4218,2.855,4282,1.987,4914,2.787,4918,2.855,4919,2.932,5039,2.083,5064,6.515,5075,3.235,5091,2.566,5098,4.434,5103,6.843,5115,3.235,5121,3.235,5126,3.235,5698,7.412,6432,5.626,6435,6.03,6553,2.932,6575,2.82,6585,6.009,6586,3.019,6587,4.559,6589,4.377,6627,4.434,6628,4.627,6653,4.701,6824,2.82,6825,3.019,8497,4.959,10844,4.701,11875,6.03,11876,3.302,11877,5.391,11878,3.302,11879,4.865,11880,6.7,11881,4.959,11882,3.235,11883,4.959,11884,4.959,11885,4.959,11886,3.302,11887,4.959,11888,3.019,11889,4.959,11890,4.959,11891,3.302,11892,3.302,11893,3.302,11894,3.174,11895,3.174,11896,3.302,11897,3.302,11898,3.302,11899,5.062,11900,5.916,11901,3.174,11902,5.062,11903,3.302,11904,3.302,11905,3.302,11906,3.118,11907,3.302,11908,3.302,11909,5.062,11910,3.302,11911,3.302,11912,6.9,11913,6.155,11914,3.235,11915,3.302,11916,3.302,11917,3.302,11918,3.302,11919,3.302,11920,3.302,11921,3.302,11922,3.302,11923,3.302,11924,3.302,11925,3.302,11926,3.118,11927,3.302,11928,3.302]],["title/interfaces/IComponentGeogebraProperties.html",[105,0.735,11885,4.853]],["body/interfaces/IComponentGeogebraProperties.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.145,26,2.182,30,0.001,31,0.395,32,0.131,47,0.95,55,2.217,95,0.154,96,1.267,101,0.021,103,0,104,0,105,1.257,107,1.107,112,0.559,119,1.434,143,1.903,144,1.52,145,1.956,153,1.943,154,1.506,172,3.289,173,1.364,174,2.802,175,2.04,178,1.916,180,0.827,181,1.235,182,1.501,226,0.66,236,1.556,239,1.058,316,3.782,349,1.297,437,1.625,474,1.971,529,1.993,556,1.774,563,4.181,603,1.415,604,1.874,662,1.451,696,1.819,834,1.446,971,2.539,1150,1.835,1158,2.204,1194,3.288,1203,3.054,1276,1.442,1600,1.735,1654,2.19,1676,3.215,1858,2.204,1864,3.815,1882,1.925,1982,1.835,2193,4.393,2608,3.943,2611,3.844,2615,2.517,2620,4.488,2621,2.71,2622,4.517,2624,3.818,2625,4.375,2634,2.165,2638,4.614,2742,3.723,2820,4.132,3304,4.267,3414,5.374,3433,6.089,3539,1.883,3567,3.225,3568,3.225,4057,4.138,4218,2.901,4282,2.019,4914,2.831,4918,2.901,4919,2.979,5039,2.117,5064,6.569,5075,3.287,5091,2.607,5098,4.488,5103,6.874,5115,3.287,5121,3.287,5126,3.287,5698,7.459,6432,5.682,6435,6.089,6553,2.979,6575,2.865,6585,6.052,6586,3.067,6587,4.614,6589,4.43,6627,4.488,6628,4.684,6653,4.758,6824,2.865,6825,3.067,8497,5.02,10844,4.758,11875,5.02,11876,3.355,11877,5.445,11878,3.355,11879,4.925,11880,6.748,11881,5.02,11882,3.287,11883,5.02,11884,5.02,11885,6.089,11886,6.957,11887,5.02,11888,3.067,11889,5.02,11890,5.02,11891,3.355,11892,3.355,11893,3.355,11894,3.225,11895,3.225,11896,3.355,11897,3.355,11898,3.355,11899,5.124,11900,5.975,11901,3.225,11902,5.124,11903,3.355,11904,3.355,11905,3.355,11906,3.168,11907,3.355,11908,3.355,11909,5.124,11910,3.355,11911,3.355,11912,6.957,11913,6.216,11914,3.287,11915,3.355,11916,3.355,11917,3.355,11918,3.355,11919,3.355,11920,3.355,11921,3.355,11922,3.355,11923,3.355,11924,3.355,11925,3.355,11926,3.168,11927,3.355,11928,3.355]],["title/interfaces/IComponentInternalProperties.html",[105,0.735,11890,4.853]],["body/interfaces/IComponentInternalProperties.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.145,26,2.182,30,0.001,31,0.395,32,0.131,47,0.95,55,2.217,95,0.154,96,1.267,101,0.021,103,0,104,0,105,1.257,107,1.107,112,0.559,119,1.434,143,1.903,144,1.52,145,1.956,153,1.943,154,1.506,172,3.289,173,1.364,174,2.802,175,2.04,178,1.916,180,0.827,181,1.235,182,1.501,226,0.66,236,1.556,239,1.058,316,3.782,349,1.297,437,1.625,474,1.971,529,1.993,556,1.774,563,4.181,603,1.415,604,1.874,662,1.451,696,1.819,834,1.446,971,2.539,1150,1.835,1158,2.204,1194,3.884,1203,3.054,1276,1.442,1600,1.735,1654,2.19,1676,3.215,1858,2.204,1864,3.815,1882,1.925,1982,1.835,2193,4.393,2608,3.943,2611,3.844,2615,2.517,2620,4.488,2621,2.71,2622,4.517,2624,3.818,2625,4.375,2634,2.165,2638,4.614,2742,3.723,2820,4.132,3304,4.267,3414,5.374,3433,6.089,3539,1.883,3567,3.225,3568,3.225,4057,4.138,4218,2.901,4282,2.019,4914,2.831,4918,2.901,4919,2.979,5039,2.117,5064,6.569,5075,3.287,5091,2.607,5098,4.488,5103,6.874,5115,3.287,5121,3.287,5126,3.287,5698,7.459,6432,5.682,6435,6.089,6553,2.979,6575,2.865,6585,6.052,6586,3.067,6587,4.614,6589,4.43,6627,4.488,6628,4.684,6653,4.758,6824,2.865,6825,3.067,8497,5.02,10844,4.758,11875,5.02,11876,3.355,11877,5.445,11878,3.355,11879,4.925,11880,6.748,11881,5.02,11882,3.287,11883,5.02,11884,5.02,11885,5.02,11886,3.355,11887,5.02,11888,3.067,11889,5.02,11890,6.089,11891,3.355,11892,3.355,11893,3.355,11894,3.225,11895,3.225,11896,3.355,11897,3.355,11898,3.355,11899,5.124,11900,5.975,11901,3.225,11902,5.124,11903,3.355,11904,3.355,11905,3.355,11906,3.168,11907,3.355,11908,3.355,11909,5.124,11910,3.355,11911,3.355,11912,6.957,11913,6.216,11914,3.287,11915,3.355,11916,3.355,11917,3.355,11918,3.355,11919,3.355,11920,3.355,11921,3.355,11922,3.355,11923,3.355,11924,3.355,11925,3.355,11926,3.168,11927,3.355,11928,3.355]],["title/interfaces/IComponentLernstoreProperties.html",[105,0.735,11887,4.853]],["body/interfaces/IComponentLernstoreProperties.html",[0,0.156,3,0.011,4,0.011,5,0.005,7,0.145,26,2.18,30,0.001,31,0.394,32,0.148,47,0.941,55,2.215,95,0.154,96,1.264,101,0.021,103,0,104,0,105,1.256,107,1.104,112,0.558,119,1.431,120,3.094,143,1.9,144,1.516,145,1.952,153,1.94,154,1.503,172,3.286,173,1.361,174,2.797,175,2.035,178,1.912,180,0.825,181,1.232,182,1.497,226,0.658,236,1.554,239,1.056,316,3.775,349,1.297,437,1.624,474,1.966,529,1.99,556,1.771,563,4.174,603,1.413,604,1.87,662,1.447,696,1.815,834,1.443,971,2.533,1150,1.83,1158,2.199,1194,3.284,1203,3.05,1276,1.439,1600,1.731,1654,2.185,1676,3.209,1858,2.199,1864,3.812,1882,1.921,1982,1.83,2193,4.389,2608,3.937,2611,3.837,2615,2.512,2620,4.48,2621,2.704,2622,4.51,2624,3.812,2625,4.368,2634,2.16,2638,4.606,2742,3.717,2820,4.126,3304,4.26,3414,5.367,3433,6.081,3539,1.878,3567,3.218,3568,3.218,4057,4.131,4218,2.895,4282,2.015,4914,2.825,4918,2.895,4919,2.972,5039,2.112,5064,6.562,5075,3.28,5091,2.601,5098,6.557,5103,6.87,5115,3.28,5121,3.28,5126,3.28,5698,7.452,6432,5.674,6435,6.081,6553,2.972,6575,2.859,6585,6.045,6586,3.06,6587,4.606,6589,4.423,6627,4.48,6628,4.676,6653,4.75,6824,2.859,6825,3.06,8497,5.011,10844,4.75,11875,5.011,11876,3.348,11877,5.437,11878,3.348,11879,4.916,11880,6.741,11881,5.011,11882,3.28,11883,5.011,11884,5.011,11885,5.011,11886,3.348,11887,6.081,11888,3.06,11889,5.011,11890,5.011,11891,3.348,11892,3.348,11893,3.348,11894,3.218,11895,3.218,11896,3.348,11897,3.348,11898,3.348,11899,5.115,11900,5.966,11901,3.218,11902,5.115,11903,3.348,11904,3.348,11905,3.348,11906,3.161,11907,3.348,11908,3.348,11909,5.115,11910,3.348,11911,3.348,11912,6.949,11913,6.207,11914,3.28,11915,3.348,11916,3.348,11917,3.348,11918,3.348,11919,3.348,11920,3.348,11921,3.348,11922,3.348,11923,3.348,11924,3.348,11925,3.348,11926,3.161,11927,3.348,11928,3.348]],["title/interfaces/IComponentNexboardProperties.html",[105,0.735,11889,4.853]],["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.153,47,0.969,55,2.193,95,0.153,96,1.237,101,0.021,103,0,104,0,105,1.248,107,1.081,112,0.549,119,1.408,143,1.875,144,1.484,145,1.921,153,2.446,154,1.478,172,3.254,173,1.332,174,2.751,175,1.992,178,1.871,180,0.807,181,1.206,182,1.465,226,0.644,236,1.537,239,1.034,316,3.714,349,1.29,437,1.616,474,1.924,529,1.957,556,1.742,563,4.106,603,1.389,604,1.83,662,1.416,696,1.777,834,1.412,971,2.479,1150,1.792,1158,2.152,1194,3.851,1203,3.577,1276,1.408,1600,1.694,1654,2.139,1676,3.157,1858,2.152,1864,3.775,1882,3.942,1982,1.792,2193,4.352,2608,3.885,2611,3.775,2615,2.458,2620,4.407,2621,2.646,2622,4.45,2624,3.762,2625,4.297,2634,2.114,2638,4.531,2742,3.656,2820,4.072,3304,4.204,3414,5.296,3433,6,3539,1.838,3567,3.149,3568,3.149,4057,4.063,4218,2.833,4282,1.972,4914,2.765,4918,2.833,4919,2.909,5039,2.067,5064,6.488,5075,3.21,5091,2.545,5098,4.407,5103,6.827,5115,3.21,5121,3.21,5126,3.21,5698,7.389,6432,5.599,6435,6,6553,2.909,6575,2.798,6585,5.987,6586,2.995,6587,4.531,6589,4.35,6627,4.407,6628,4.599,6653,4.672,6824,2.798,6825,2.995,8497,4.929,10844,4.672,11875,4.929,11876,3.276,11877,5.365,11878,3.276,11879,4.836,11880,6.677,11881,4.929,11882,3.21,11883,4.929,11884,4.929,11885,4.929,11886,3.276,11887,4.929,11888,2.995,11889,6,11890,4.929,11891,3.276,11892,3.276,11893,3.276,11894,3.149,11895,3.149,11896,3.276,11897,3.276,11898,3.276,11899,5.031,11900,5.887,11901,3.149,11902,5.031,11903,3.276,11904,3.276,11905,3.276,11906,3.094,11907,3.276,11908,3.276,11909,5.031,11910,3.276,11911,3.276,11912,6.871,11913,6.125,11914,3.21,11915,3.276,11916,3.276,11917,3.276,11918,3.276,11919,3.276,11920,3.276,11921,3.276,11922,3.276,11923,3.276,11924,3.276,11925,3.276,11926,3.094,11927,3.276,11928,3.276]],["title/interfaces/IComponentTextProperties.html",[105,0.735,11884,4.853]],["body/interfaces/IComponentTextProperties.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.145,26,2.182,30,0.001,31,0.395,32,0.131,47,0.95,55,2.217,95,0.154,96,1.267,101,0.021,103,0,104,0,105,1.257,107,1.107,112,0.559,119,1.434,143,1.903,144,1.52,145,1.956,153,1.943,154,1.506,172,3.289,173,1.364,174,2.802,175,2.04,178,1.916,180,0.827,181,1.235,182,1.501,226,0.66,236,1.556,239,1.058,316,3.782,349,1.297,437,1.625,474,1.971,529,1.993,556,1.774,563,4.181,603,1.415,604,1.874,662,1.451,696,1.819,834,1.446,971,2.539,1150,1.835,1158,2.204,1194,3.288,1203,3.054,1276,1.442,1600,1.735,1654,2.19,1676,3.215,1858,2.204,1864,3.815,1882,1.925,1982,1.835,2193,4.393,2608,3.943,2611,3.844,2615,2.517,2620,4.488,2621,2.71,2622,4.517,2624,3.818,2625,4.375,2634,2.165,2638,4.614,2742,3.723,2820,5.251,3304,4.267,3414,5.374,3433,6.089,3539,1.883,3567,3.225,3568,3.225,4057,4.138,4218,2.901,4282,2.019,4914,2.831,4918,2.901,4919,2.979,5039,2.117,5064,6.569,5075,3.287,5091,2.607,5098,4.488,5103,6.874,5115,3.287,5121,3.287,5126,3.287,5698,7.459,6432,5.682,6435,6.089,6553,2.979,6575,2.865,6585,6.052,6586,3.067,6587,4.614,6589,4.43,6627,4.488,6628,4.684,6653,4.758,6824,2.865,6825,3.067,8497,5.02,10844,4.758,11875,5.02,11876,3.355,11877,5.445,11878,3.355,11879,4.925,11880,6.748,11881,5.02,11882,3.287,11883,5.02,11884,6.089,11885,5.02,11886,3.355,11887,5.02,11888,3.067,11889,5.02,11890,5.02,11891,3.355,11892,3.355,11893,3.355,11894,3.225,11895,3.225,11896,3.355,11897,3.355,11898,3.355,11899,5.124,11900,5.975,11901,3.225,11902,5.124,11903,3.355,11904,3.355,11905,3.355,11906,3.168,11907,3.355,11908,3.355,11909,5.124,11910,3.355,11911,3.355,11912,6.957,11913,6.216,11914,3.287,11915,3.355,11916,3.355,11917,3.355,11918,3.355,11919,3.355,11920,3.355,11921,3.355,11922,3.355,11923,3.355,11924,3.355,11925,3.355,11926,3.168,11927,3.355,11928,3.355]],["title/interfaces/IContextExternalToolProperties.html",[105,0.735,5853,5.705]],["body/interfaces/IContextExternalToolProperties.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,29,0.973,30,0.001,32,0.175,33,0.576,47,0.938,55,2.583,95,0.158,96,2.085,101,0.017,103,0.001,104,0.001,105,0.819,107,1.821,112,0.798,131,2.843,143,2.239,144,2.5,154,2.149,172,3.988,173,2.244,174,3.999,178,3.153,180,1.36,181,2.031,182,2.469,564,3.686,654,2.257,1338,5.644,1669,3.951,2486,2.516,4272,5.487,4273,4.604,4803,7.494,5039,4.614,5399,7.337,5763,4.413,5767,6.364,5787,4.835,5788,5.212,5789,5.046,5790,5.52,5791,5.408,5792,5.644,5830,7.855,5838,5.52,5839,6.357,5840,6.132,5841,10.463,5843,10.926,5846,9.784,5848,9.084,5851,6.357,5852,4.901,5853,9.446,5854,7.016,5855,7.016,5856,7.016,5857,6.639,5858,6.357,5859,6.132,5860,6.357]],["title/interfaces/ICopyFileDO.html",[105,0.735,10599,5.191]],["body/interfaces/ICopyFileDO.html",[3,0.018,4,0.023,5,0.009,7,0.115,10,3.083,26,2.878,30,0.001,31,0.7,32,0.154,33,0.482,34,2.128,39,2.042,47,0.95,55,1.633,83,2.33,95,0.127,99,1.266,101,0.022,103,0.001,104,0.001,105,1.295,107,1.821,112,0.798,239,1.741,319,3.426,437,0.982,654,2.257,818,4.25,834,3.535,986,3.399,1060,6.791,1295,4.25,1864,2.811,2017,3.322,2018,3.716,2019,3.582,2418,4.458,2624,3.39,2634,3.562,2677,3.426,2821,3.339,3060,3.305,3109,3.981,3304,5.63,3318,5.212,3570,4.923,3680,4.288,3878,4.25,4206,2.574,4778,4.212,5091,4.288,5103,4.37,6239,7.982,6255,6.153,6257,6.586,6258,5.871,6282,5.644,6283,4.212,6284,4.955,6285,4.971,10112,7.313,10113,7.313,10114,7.313,10115,4.773,10585,5.644,10598,5.945,10599,7.664,10600,5.785,10701,5.945,10705,8.834,11929,6.357,11930,6.357,11931,6.357,11932,6.357,11933,6.357,11934,6.357]],["title/interfaces/ICopyFileDomainObjectProps.html",[105,0.735,6240,5.705]],["body/interfaces/ICopyFileDomainObjectProps.html",[3,0.023,4,0.023,5,0.014,7,0.146,26,2.927,30,0.001,31,0.734,32,0.172,33,0.562,34,2.233,47,0.89,95,0.122,99,1.609,101,0.016,103,0.001,104,0.001,105,1.041,107,2.314,112,0.93,133,3.373,556,3.176,1715,4.062,3538,4.752,6236,4.475,6239,8.717,6240,9.808,11935,8.917,11936,8.917]],["title/interfaces/ICopyFilesOfParentParams.html",[105,0.735,10701,5.335]],["body/interfaces/ICopyFilesOfParentParams.html",[3,0.018,4,0.029,5,0.009,7,0.115,10,3.095,26,2.818,30,0.001,31,0.565,32,0.154,34,1.717,39,3.234,47,0.925,55,1.639,83,2.339,95,0.128,99,1.271,101,0.022,103,0.001,104,0.001,105,1.297,107,1.828,112,0.8,239,1.748,319,3.439,437,0.985,654,2.266,818,4.266,834,3.542,986,3.408,1060,6.808,1295,4.266,1864,2.821,2017,3.334,2018,3.73,2019,3.596,2418,4.475,2624,3.403,2634,3.575,2677,5.428,2821,3.351,3060,3.318,3109,3.996,3304,5.64,3318,5.232,3570,4.935,3680,4.305,3878,4.266,4206,2.584,4778,4.228,5091,4.305,5103,4.386,6239,5.065,6255,6.165,6257,6.603,6258,5.882,6282,5.666,6283,4.228,6284,4.967,6285,4.99,10112,7.332,10113,7.332,10114,7.332,10115,4.791,10585,5.666,10598,5.968,10599,5.807,10600,5.807,10701,7.897,10705,10.267,11929,6.381,11930,6.381,11931,6.381,11932,6.381,11933,6.381,11934,6.381]],["title/interfaces/ICopyFilesRequestInfo.html",[105,0.735,6351,5.705]],["body/interfaces/ICopyFilesRequestInfo.html",[3,0.027,4,0.031,5,0.015,7,0.147,26,2.782,30,0.001,32,0.173,39,3.533,95,0.149,99,1.617,101,0.016,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,141,5.609,2677,5.928,3538,4.775,6236,4.497,6349,10.837,6351,9.836,11935,8.96,11937,8.478]],["title/interfaces/ICoreModuleConfig.html",[105,0.735,11938,5.705]],["body/interfaces/ICoreModuleConfig.html",[3,0.024,4,0.024,5,0.012,30,0.001,95,0.156,101,0.017,103,0.001,104,0.001,105,1.127,107,2.506,180,2.2,201,2.767,340,5.02,2250,4.281,11589,7.056,11938,10.287,11939,10.446,11940,10.926,11941,10.926]],["title/interfaces/ICourseGroupProperties.html",[105,0.735,6823,5.705]],["body/interfaces/ICourseGroupProperties.html",[0,0.238,3,0.016,4,0.016,5,0.008,7,0.19,26,2.464,30,0.001,31,0.681,32,0.175,33,0.458,39,1.888,47,0.859,62,4.123,95,0.168,96,1.928,101,0.016,103,0.001,104,0.001,105,1.03,107,1.684,112,0.861,154,2.039,172,3.047,173,2.076,174,3.795,175,3.104,178,2.916,180,1.258,181,1.879,182,2.283,236,1.142,239,2.669,349,0.725,437,0.908,519,2.174,556,1.768,644,4.947,654,2.838,662,3,760,3.896,910,4.908,970,3.394,986,2.373,1242,4.042,1276,2.194,1600,2.639,1654,3.333,1858,3.353,1864,5.045,1982,2.792,2334,4.004,2365,4.598,2608,5.002,2611,3.83,2615,3.83,2621,4.123,2623,4.908,2625,4.36,2638,4.598,2768,4.167,2821,3.088,3022,5.351,3390,4.821,4206,2.381,4282,3.073,5039,4.378,6218,5.499,6538,5.002,6543,7.651,6578,5.789,6585,4.123,6587,6.25,6588,4.308,6589,6.001,6590,3.931,6606,5.002,6610,4.36,6612,5.672,6627,4.472,6628,7.208,6665,5.672,6814,6.49,6823,9.081,6824,4.36,6825,4.667,6826,6.49,6827,6.49,6828,5.106,6829,6.49,6830,6.49,6831,6.49,6832,6.49,6833,6.49,6834,6.49]],["title/interfaces/ICourseProperties.html",[105,0.735,6591,5.503]],["body/interfaces/ICourseProperties.html",[0,0.196,2,1.02,3,0.008,4,0.008,5,0.004,7,0.155,26,2.171,30,0.001,31,0.546,32,0.172,33,0.631,34,1.233,39,1.947,47,0.901,62,2.097,83,3.617,95,0.149,96,0.981,101,0.012,103,0,104,0,105,0.385,107,0.857,112,0.457,119,1.172,143,2.374,144,3.002,145,0.991,153,2.215,154,1.231,168,3.285,172,3.405,173,1.056,174,2.29,175,1.578,178,1.483,180,0.64,181,0.955,182,1.161,236,1.735,239,2.703,253,1.748,316,1.916,348,2.875,349,1.318,379,0.446,404,1.457,413,1.773,437,1.651,473,1.948,486,2.178,490,1.266,519,1.784,528,1.858,529,1.629,556,2.454,565,3.418,603,1.668,644,4.446,651,2.751,652,2.751,654,2.71,662,3.555,708,1.483,725,2.99,834,2.269,910,2.496,1158,2.751,1203,1.14,1276,1.116,1600,1.342,1654,2.735,1663,2.437,1669,1.858,1757,2.373,1864,3.076,1962,1.964,1982,3.303,2608,4.495,2611,5.316,2615,3.95,2623,2.496,2625,2.217,3060,3.618,3112,2.373,3113,2.305,3284,2.166,3392,2.274,3689,2.544,3735,2.217,3759,3.772,3760,3.772,4057,2.097,4206,1.211,4207,5.061,4222,2.99,4256,6.628,4282,2.521,4357,6.207,4778,1.981,4914,2.191,5039,2.642,6442,2.655,6503,2.544,6535,3.123,6536,7.091,6537,6.581,6538,5.158,6539,6.059,6540,5.723,6541,2.452,6542,6.942,6543,6.127,6544,6.371,6545,7.086,6547,3.123,6549,3.123,6552,3.123,6553,2.305,6555,3.123,6557,7.972,6560,3.123,6562,3.123,6571,3.123,6575,2.217,6576,3.123,6577,3.123,6578,3.494,6579,4.104,6580,3.123,6581,6.777,6582,3.123,6583,4.189,6584,2.884,6585,3.383,6586,2.373,6587,3.772,6588,2.191,6589,3.622,6590,1.999,6591,5.85,6592,4.654,6593,3.123,6594,2.884,6595,2.544,6596,3.123,6597,3.123,6598,2.99,6599,2.655,6600,3.123,6601,3.123,6602,2.796,6603,3.123,6604,3.534,6605,10.172,6606,5.158,6607,2.884,6608,3.89,6609,2.305,6610,2.217,6611,2.142,6612,2.884,6613,3.123,6614,3.123,6615,5.038,6616,5.038,6617,5.038,6618,6.712,6619,4.654,6620,4.39,6621,5.038,6622,4.283,6623,4.39,6624,2.655,6625,3.123,6626,3.123,6627,2.274,6628,3.829,6629,3.123,6630,3.123,6631,3.123,6632,5.038,6633,3.123,6634,3.123,6635,3.123,6636,3.123,6637,3.123,6638,3.123,6639,3.123,6640,5.85,6641,6.333,6642,3.123,6643,3.123,6644,3.123,6645,3.123,6646,3.123,6647,2.596,6648,3.123,6649,3.123,6650,3.123,6651,3.123,6652,3.123,6653,2.411,6654,3.123,6655,2.99,6656,3.123,6657,6.333,6658,5.038,6659,3.123,6660,3.123,6661,2.884,6662,2.884,6663,2.452,6664,3.123,6665,5.85,6666,3.123,6667,3.123,6668,3.123,6669,3.123]],["title/interfaces/ICreateNews.html",[105,0.735,11942,5.503]],["body/interfaces/ICreateNews.html",[3,0.019,4,0.019,5,0.009,7,0.121,26,2.443,30,0.001,32,0.189,33,0.553,34,1.354,47,0.918,83,3.542,95,0.155,101,0.021,103,0.001,104,0.001,105,1.403,107,1.907,112,0.823,119,1.618,120,4.56,153,1.807,154,1.699,484,4.139,644,4.73,654,2.364,834,2.492,1203,3.903,1864,4.272,2193,4.945,2279,4.878,2677,5.724,3602,6.954,4564,4.937,4778,4.412,6914,6.289,6916,5.912,6917,7.449,6920,8.128,6924,6.153,6925,7.552,7102,8.064,10115,4.999,10767,6.423,11942,8.376,11943,7.349,11944,9.583,11945,7.349,11946,7.349,11947,7.349,11948,5.285,11949,6.659,11950,6.423]],["title/interfaces/ICurrentUser.html",[105,0.735,270,3.334]],["body/interfaces/ICurrentUser.html",[3,0.017,4,0.017,5,0.009,7,0.111,26,3.013,30,0.001,32,0.177,33,0.568,34,2.015,39,3.182,47,0.516,48,5.617,72,3.319,85,7.639,94,4.773,95,0.093,99,1.22,101,0.016,103,0.001,104,0.001,105,1.059,107,1.755,112,0.779,119,2.585,121,4.79,128,4.459,143,2.828,180,1.31,239,3.096,270,5.42,276,4.17,303,7.685,359,5.886,517,2.804,564,3.788,565,5.823,998,6.626,2343,6.737,2362,5.886,3060,5.531,3072,4.477,3078,5.906,3246,6.522,4206,4.308,5105,6.426,5461,4.542,5496,4.79,5500,5.595,7092,9.558,7093,8.218,7094,4.542,7142,5.91,7144,5.439,7165,10.348,11951,6.761,11952,9.069,11953,5.91,11954,6.761,11955,6.761,11956,5.439]],["title/interfaces/IDashboardModelProperties.html",[105,0.735,7641,5.503]],["body/interfaces/IDashboardModelProperties.html",[0,0.323,3,0.016,4,0.016,5,0.008,7,0.184,30,0.001,32,0.148,33,0.456,34,2.222,39,2.558,47,0.884,49,2.754,55,2.498,95,0.154,96,2.612,97,3.026,101,0.019,103,0.001,104,0.001,105,1.026,107,1.676,112,0.755,143,2.407,144,2.3,154,2.311,172,3.706,173,2.065,174,4.3,178,3.95,180,1.704,181,1.869,182,3.093,236,1.547,239,3.035,379,0.873,404,3.88,405,3.843,556,1.759,1203,3.706,1654,4.515,1864,3.521,2356,7.864,2606,6.799,2608,4.387,2609,7.248,2611,5.188,2613,5.643,2615,3.81,2617,5.079,2621,4.102,2722,3.583,4273,4.237,5039,3.204,6575,4.337,6590,3.91,6931,4.51,7433,7.637,7618,9.093,7619,5.85,7620,9.379,7621,9.379,7629,7.683,7630,7.072,7631,5.85,7632,7.965,7633,5.85,7634,5.85,7635,5.85,7636,5.85,7637,5.85,7638,5.643,7639,5.85,7640,5.85,7641,8.736,7642,8.832,7643,5.85,7644,4.882,7645,5.85,7646,5.85,7647,5.85,7648,5.85,7649,5.85]],["title/interfaces/IDashboardRepo.html",[105,0.735,7814,5.705]],["body/interfaces/IDashboardRepo.html",[0,0.322,3,0.016,4,0.016,5,0.008,7,0.105,8,1.136,9,3.279,26,2.831,27,0.442,29,0.84,30,0.001,31,0.604,32,0.147,33,0.517,34,1.614,35,1.295,36,2.844,39,3.116,49,2.74,95,0.147,96,1.908,97,3.011,99,1.159,101,0.016,103,0.001,104,0.001,105,0.75,107,1.667,154,1.485,177,1.734,226,0.993,236,1.13,239,1.594,262,2.538,349,1.292,437,1.709,448,2.847,511,3.103,539,1.254,608,2.951,631,3.565,679,4.081,1276,2.171,1663,2.94,2249,5.456,2291,4.692,3284,4.215,6895,4.771,7433,7.867,7465,9.098,7501,7.222,7630,5.167,7710,7.422,7732,8.289,7791,6.077,7795,5.442,7796,6.423,7797,8.76,7798,8.289,7799,8.76,7801,9.969,7803,9.433,7805,6.423,7807,9.969,7809,6.423,7810,6.423,7811,8.76,7812,6.423,7813,6.077,7814,9.033,7815,5.295,7816,8.76,7817,6.423,7818,8.76,7819,6.423,7820,9.969,7821,6.423,7822,8.76,7823,6.423,7824,6.423,11957,6.947,11958,6.947,11959,6.947]],["title/interfaces/IEncryptionService.html",[105,0.735,9368,4.953]],["body/interfaces/IEncryptionService.html",[3,0.022,4,0.022,5,0.011,7,0.146,8,1.399,27,0.478,29,0.909,30,0.001,31,0.654,32,0.16,33,0.56,35,1.402,47,0.996,101,0.021,103,0.001,104,0.001,105,1.036,107,2.303,284,3.606,437,1.51,8339,7.139,8340,8.397,9368,8.491,11960,9.598,11961,10.213,11962,9.779,11963,10.793,11964,9.598,11965,10.793,11966,9.598,11967,9.598,11968,9.598]],["title/interfaces/IEntity.html",[105,0.735,2349,5.335]],["body/interfaces/IEntity.html",[3,0.022,4,0.022,5,0.011,7,0.145,30,0.001,32,0.159,34,2.228,47,0.887,49,5.158,83,3.579,95,0.148,96,2.631,97,4.15,101,0.021,103,0.001,104,0.001,105,1.356,107,2.298,112,0.926,180,2.089,376,4.171,377,4.346,644,5.32,654,2.848,971,7.197,2349,10.245,6578,5.81,11135,6.695,11969,8.377,11970,8.022]],["title/interfaces/IEntityWithSchool.html",[105,0.735,6578,4.132]],["body/interfaces/IEntityWithSchool.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.132,34,1.651,47,0.684,49,4.631,83,3.605,95,0.149,96,2.662,97,4.2,101,0.021,103,0.001,104,0.001,105,1.363,107,2.325,112,0.932,180,2.264,376,4.221,377,4.399,644,5.993,654,3.906,971,5.333,2349,10.287,6578,7.124,11135,6.775,11969,8.478,11970,8.118]],["title/interfaces/IEntityWithTimestamps.html",[105,0.735,11970,5.705]],["body/interfaces/IEntityWithTimestamps.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.159,34,1.623,47,0.673,49,4.584,83,4.181,95,0.147,96,2.618,97,4.13,101,0.021,103,0.001,104,0.001,105,1.353,107,2.287,112,0.923,180,2.247,376,5.687,377,5.926,644,5.304,654,2.835,971,5.244,2349,10.229,6578,5.782,11135,6.663,11969,8.337,11970,9.737]],["title/interfaces/IError.html",[105,0.735,8435,5.503]],["body/interfaces/IError.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.163,33,0.572,47,0.901,55,2.747,101,0.02,103,0.001,104,0.001,105,1.286,107,2.383,112,0.946,180,2.135,347,4.849,479,3.72,986,4.316,1021,5.297,8435,10.317,10596,7.386,11971,8.687,11972,9.181]],["title/interfaces/IErrorType.html",[105,0.735,3855,5.958]],["body/interfaces/IErrorType.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.19,47,0.997,101,0.016,103,0.001,104,0.001,105,1.08,107,2.4,112,0.95,177,2.344,1203,4.238,1222,8.347,3855,10.471,11973,10.004,11974,10.004]],["title/interfaces/IExternalToolPseudonymEntityProps.html",[105,0.735,9008,5.705]],["body/interfaces/IExternalToolPseudonymEntityProps.html",[0,0.282,3,0.019,4,0.019,5,0.01,7,0.126,26,2.631,30,0.001,32,0.17,33,0.511,34,2.116,39,3.537,47,0.877,49,5.397,95,0.157,96,2.927,97,3.594,99,1.383,101,0.018,103,0.001,104,0.001,105,0.895,107,1.99,112,0.935,154,2.277,168,6.713,172,3.966,173,2.452,174,4.237,178,3.445,180,1.486,181,2.219,182,2.698,191,4.488,192,5.283,404,3.384,405,5.863,564,2.546,593,3.071,2486,3.532,4273,5.031,8857,7.175,9000,5.909,9001,7.667,9002,7.667,9003,7.398,9008,9.861,9009,5.514,9010,6.701,9011,6.947,9012,6.032,9013,6.497]],["title/interfaces/IFederalStateProperties.html",[105,0.735,6522,5.705]],["body/interfaces/IFederalStateProperties.html",[0,0.344,3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,31,0.721,32,0.176,33,0.486,47,0.985,55,1.652,83,3.953,95,0.128,96,2.109,101,0.019,103,0.001,104,0.001,105,0.828,107,1.842,112,0.804,143,2.256,144,3.736,145,2.813,154,2.165,172,3.85,173,2.27,174,4.029,175,3.394,178,3.189,180,1.376,181,2.054,182,2.497,376,5.252,377,5.473,406,4.957,407,5.851,408,4.957,409,5.851,1669,3.996,1982,4.029,2500,5.236,4272,5.528,4282,3.36,5806,7.084,5822,5.028,6512,10.999,6513,6.715,6514,6.715,6515,6.715,6516,6.715,6517,6.715,6522,9.499,6523,10.967,6524,10.967,6525,6.715,6526,6.715,6527,6.715,6528,6.715,6529,6.715,6530,6.715,6531,5.272,6532,6.715,6533,6.715,6534,6.013]],["title/interfaces/IFileDO.html",[105,0.735,10600,5.191]],["body/interfaces/IFileDO.html",[3,0.016,4,0.022,5,0.008,7,0.107,10,2.857,26,2.659,30,0.001,31,0.682,32,0.181,33,0.458,34,2.073,39,1.892,47,0.986,55,2.335,83,3.331,95,0.121,99,1.173,101,0.022,103,0.001,104,0.001,105,1.256,107,1.687,112,0.759,239,1.613,319,3.175,437,0.909,654,2.091,818,6.518,834,3.402,986,3.23,1060,6.453,1295,6.518,1864,2.604,2017,3.078,2018,3.443,2019,3.319,2418,4.131,2624,3.141,2634,3.3,2677,3.175,2821,3.093,3060,3.063,3109,3.688,3304,5.417,3318,4.83,3570,5.96,3680,3.974,3878,3.938,4206,2.385,4778,3.903,5091,3.974,5103,4.049,6239,4.675,6255,6.642,6257,7.625,6258,5.649,6282,8.658,6283,6.461,6284,5.998,6285,7.625,10112,6.949,10113,6.949,10114,6.949,10115,4.422,10585,5.23,10598,5.509,10599,5.36,10600,7.282,10701,5.509,10705,8.5,11929,5.891,11930,5.891,11931,5.891,11932,5.891,11933,5.891,11934,5.891]],["title/interfaces/IFileDomainObjectProps.html",[105,0.735,9886,5.705]],["body/interfaces/IFileDomainObjectProps.html",[3,0.022,4,0.022,5,0.011,7,0.144,26,2.92,30,0.001,31,0.731,32,0.178,34,2.224,47,0.885,95,0.147,99,1.59,101,0.016,103,0.001,104,0.001,105,1.028,107,2.287,112,0.923,133,3.333,1715,4.014,3538,4.696,3570,6.393,6236,4.422,6255,7.125,6284,6.434,8438,6.337,9886,9.737,11936,8.811,11975,8.811]],["title/interfaces/IFileRecordParams.html",[105,0.735,10705,5.335]],["body/interfaces/IFileRecordParams.html",[3,0.018,4,0.024,5,0.009,7,0.115,10,3.095,26,2.88,30,0.001,31,0.565,32,0.154,34,1.717,39,2.049,47,0.925,55,1.639,83,2.339,95,0.128,99,1.271,101,0.022,103,0.001,104,0.001,105,1.297,107,1.828,112,0.8,239,1.748,319,3.439,437,0.985,654,2.266,818,4.266,834,3.542,986,3.408,1060,6.808,1295,4.266,1864,2.821,2017,3.334,2018,3.73,2019,3.596,2418,4.475,2624,3.403,2634,3.575,2677,3.439,2821,3.351,3060,3.318,3109,3.996,3304,5.64,3318,5.232,3570,6.123,3680,4.305,3878,4.266,4206,4.078,4778,4.228,5091,4.305,5103,4.386,6239,5.065,6255,6.824,6257,6.603,6258,5.882,6282,5.666,6283,4.228,6284,6.162,6285,4.99,10112,7.332,10113,7.332,10114,7.332,10115,4.791,10585,5.666,10598,5.968,10599,5.807,10600,5.807,10701,5.968,10705,9.419,11929,6.381,11930,6.381,11931,6.381,11932,6.381,11933,6.381,11934,6.381]],["title/interfaces/IFileRecordProperties.html",[105,0.735,10130,5.191]],["body/interfaces/IFileRecordProperties.html",[0,0.244,3,0.008,4,0.008,5,0.007,7,0.155,26,2.736,30,0.001,31,0.615,32,0.154,33,0.396,34,0.973,39,0.951,47,0.884,49,3.576,55,1.777,83,3.263,95,0.135,96,1.57,97,1.532,99,0.59,101,0.017,103,0,104,0,105,0.776,107,0.848,112,0.571,119,2.078,133,1.998,143,1.839,144,2.369,145,0.981,154,1.938,172,3.813,173,1.045,174,2.272,178,1.469,180,0.633,181,1.529,182,1.15,226,0.505,236,1.875,239,0.811,347,2.634,349,1.35,358,1.555,360,3.2,376,1.54,377,1.605,437,1.545,490,2.55,519,2.559,529,1,556,2.571,565,2.098,570,4.414,654,1.699,662,3.974,696,1.394,708,1.469,741,2.571,749,2.316,818,5.716,834,3.2,984,1.525,986,2.431,990,2.519,1060,3.859,1155,4.072,1295,5.716,1559,2.514,1663,2.418,1756,2.428,1864,1.309,1924,2.077,1925,3.995,1982,3.285,2158,2.016,2334,2.016,2500,2.953,2585,1.962,2608,3.811,2618,2.036,2624,1.579,2634,1.659,2821,1.555,3060,1.54,3109,1.854,3304,1.765,3318,2.428,3570,5.519,3680,1.998,3833,2.629,4206,3.824,4216,2.695,4218,2.223,4272,3.118,4282,1.547,4283,2.098,4778,1.962,5091,1.998,5103,2.036,6236,1.64,6254,4.315,6255,5.293,6256,4.072,6257,5.41,6265,2.471,6273,2.519,6275,2.35,6277,5.231,6283,5.384,6284,5.554,6285,5.939,6578,2.145,6806,2.769,6807,4.25,6921,1.913,9891,2.629,9956,2.695,9959,4.072,9963,2.571,9997,2.471,10007,2.695,10011,2.695,10037,4.356,10040,2.571,10041,2.571,10046,2.695,10047,2.695,10087,2.857,10088,2.769,10089,4.476,10090,2.857,10091,4.476,10093,8.249,10105,6.143,10108,2.857,10109,2.695,10110,4.476,10111,2.629,10112,4.156,10113,4.156,10114,4.156,10115,2.223,10116,4.617,10117,4.617,10118,4.617,10119,4.617,10120,4.617,10121,4.617,10122,4.476,10123,5.579,10124,4.617,10125,2.695,10126,4.25,10127,2.629,10128,4.356,10129,2.695,10130,5.482,10131,5.634,10132,2.519,10133,2.769,10134,2.571,10135,2.571,10136,2.857,10137,2.857,10138,2.695,10139,2.629,10140,2.695,10141,2.857,10142,2.857,10143,2.857,10144,2.857,10145,2.857,10146,2.857,10147,2.857,10148,2.857,10149,2.857,10150,2.857,10151,7.838,10152,2.857,10153,2.857,10154,4.617,10155,2.857,10156,2.857,10157,4.617,10158,4.617,10159,4.617,10160,2.857,10161,2.857,10162,2.857,10163,2.857,10164,2.857,10165,2.857,10166,2.857,10167,4.617,10168,5.811,10169,2.769,10170,2.857,10171,4.617,10172,2.769,10173,2.857,10174,4.617,10175,2.857,10176,5.811,10177,5.811,10178,2.769,10179,5.811,10180,2.857,10181,2.857,10182,2.857,10183,2.857,10184,2.857,10185,2.857,10186,2.857,10187,2.769,10188,2.857,10189,2.857,10190,2.857,10191,2.857,10192,2.857,10193,2.857,10194,2.857,10195,2.857,10196,2.857]],["title/interfaces/IFileRecordSecurityCheckProperties.html",[105,0.735,10122,5.335]],["body/interfaces/IFileRecordSecurityCheckProperties.html",[0,0.25,3,0.009,4,0.009,5,0.007,7,0.157,26,2.553,30,0.001,31,0.552,32,0.115,33,0.473,34,1.002,39,0.986,47,0.891,49,3.642,55,1.265,83,3.027,95,0.137,96,1.616,97,1.588,99,0.611,101,0.017,103,0,104,0,105,0.795,107,0.879,112,0.585,119,2.108,133,2.056,143,1.877,144,2.427,145,1.017,154,1.974,172,3.848,173,1.084,174,2.339,178,1.522,180,0.657,181,1.574,182,1.192,226,0.524,236,1.895,239,0.841,347,3.611,349,1.358,358,1.612,360,3.293,376,1.596,377,1.663,437,1.559,490,2.612,519,2.612,529,1.037,556,2.609,565,2.175,570,4.521,654,1.749,662,4.002,696,1.445,708,1.522,741,2.665,749,2.4,818,4.722,834,3.247,984,1.58,986,2.491,990,2.611,1060,3.972,1155,6.58,1295,4.722,1559,2.587,1663,2.488,1756,2.516,1864,1.357,1924,2.152,1925,4.112,1982,3.354,2158,2.09,2334,2.09,2500,3.04,2585,2.034,2608,3.891,2618,2.11,2624,1.637,2634,1.719,2821,1.612,3060,1.596,3109,1.922,3304,1.829,3318,2.516,3570,5.072,3680,2.07,3833,2.725,4206,3.514,4216,2.793,4218,2.304,4272,3.209,4282,1.604,4283,2.175,4778,2.034,5091,2.07,5103,2.11,6236,1.7,6254,4.42,6255,4.601,6256,4.191,6257,6.457,6265,2.561,6273,2.611,6275,2.436,6277,5.358,6283,4.089,6284,5.104,6285,3.852,6578,2.223,6806,2.87,6807,4.374,6921,1.983,9891,2.725,9956,2.793,9959,4.191,9963,2.665,9997,2.561,10007,2.793,10011,2.793,10037,4.483,10040,2.665,10041,2.665,10046,2.793,10047,2.793,10087,2.961,10088,2.87,10089,4.607,10090,2.961,10091,4.607,10093,6.814,10105,6.272,10108,2.961,10109,2.793,10110,4.607,10111,2.725,10112,4.277,10113,4.277,10114,4.277,10115,2.304,10116,4.752,10117,4.752,10118,4.752,10119,4.752,10120,4.752,10121,4.752,10122,5.771,10123,6.996,10124,4.752,10125,2.793,10126,4.374,10127,2.725,10128,4.483,10129,2.793,10130,4.483,10131,5.771,10132,2.611,10133,2.87,10134,2.665,10135,2.665,10136,2.961,10137,2.961,10138,2.793,10139,2.725,10140,2.793,10141,2.961,10142,2.961,10143,2.961,10144,2.961,10145,2.961,10146,2.961,10147,2.961,10148,2.961,10149,2.961,10150,2.961,10151,7.966,10152,2.961,10153,2.961,10154,4.752,10155,2.961,10156,2.961,10157,4.752,10158,4.752,10159,4.752,10160,2.961,10161,2.961,10162,2.961,10163,2.961,10164,2.961,10165,2.961,10166,2.961,10167,4.752,10168,5.953,10169,2.87,10170,2.961,10171,4.752,10172,2.87,10173,2.961,10174,4.752,10175,2.961,10176,5.953,10177,5.953,10178,2.87,10179,5.953,10180,2.961,10181,2.961,10182,2.961,10183,2.961,10184,2.961,10185,2.961,10186,2.961,10187,2.87,10188,2.961,10189,2.961,10190,2.961,10191,2.961,10192,2.961,10193,2.961,10194,2.961,10195,2.961,10196,2.961]],["title/interfaces/IFileRequestInfo.html",[105,0.735,6349,5.335]],["body/interfaces/IFileRequestInfo.html",[3,0.023,4,0.023,5,0.012,7,0.148,26,2.935,30,0.001,32,0.173,95,0.15,99,1.628,101,0.016,103,0.001,104,0.001,105,1.053,107,2.342,112,0.936,141,4.663,3538,4.81,3570,6.445,4206,4.465,6236,4.529,6255,7.183,6284,6.487,6349,9.239,8438,6.49,11937,8.54,11975,9.025]],["title/interfaces/IFileStorageConfig.html",[105,0.735,11976,6.296]],["body/interfaces/IFileStorageConfig.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,32,0.159,47,0.922,55,2.956,95,0.147,101,0.021,103,0.001,104,0.001,105,0.872,107,1.938,112,0.832,119,2.503,180,1.877,437,1.648,1164,6.156,1909,3.726,2017,3.535,2018,3.954,2019,3.812,2020,5.146,2032,5.079,2363,5.146,3539,3.296,6236,3.747,6334,7.405,6335,6.327,6336,5.646,6337,5.646,6338,5.646,6339,5.646,9881,5.37,10500,5.646,11626,5.455,11938,9.737,11976,10.746,11977,8.076,11978,12.743,11979,12.743,11980,12.743,11981,10.746,11982,9.683,11983,6.526,11984,7.467,11985,6.526,11986,8.076,11987,10.473,11988,6.766,11989,7.467,11990,10.473,11991,8.076,11992,7.066,11993,7.467,11994,8.076,11995,8.076,11996,8.076,11997,8.076,11998,8.076,11999,8.076,12000,8.076]],["title/interfaces/IFilesStorageClientConfig.html",[105,0.735,10713,5.705]],["body/interfaces/IFilesStorageClientConfig.html",[3,0.024,4,0.024,5,0.012,7,0.158,30,0.001,32,0.143,55,2.807,101,0.017,103,0.001,104,0.001,105,1.127,107,2.506,112,0.975,3538,6.051,3539,4.263,6236,4.847,10713,10.287,11589,7.056,11988,11.277,12001,10.446]],["title/interfaces/IFindOptions.html",[105,0.735,6969,4.132]],["body/interfaces/IFindOptions.html",[3,0.022,4,0.022,5,0.011,7,0.146,30,0.001,32,0.172,33,0.628,55,2.512,56,4.641,70,4.792,101,0.022,103,0.001,104,0.001,105,1.26,107,2.303,112,0.927,484,4.997,834,3.009,2031,7.396,3614,9.779,4451,6.115,6679,7.853,6969,7.083,9044,9.977,9231,10.254,10459,9.433,12002,8.874,12003,8.874]],["title/interfaces/IGridElement.html",[105,0.735,7498,5.705]],["body/interfaces/IGridElement.html",[0,0.191,3,0.008,4,0.008,5,0.004,7,0.136,8,0.675,26,2.428,27,0.415,29,0.636,30,0.001,31,0.458,32,0.157,33,0.392,34,1.638,35,1.217,39,1.515,47,0.862,55,2.658,83,1.066,95,0.09,101,0.017,103,0,104,0,105,0.375,107,0.833,112,0.447,119,1.958,181,0.929,191,3.047,192,2.211,226,0.496,236,1.717,349,1.371,381,1.166,404,3.665,405,3.098,413,2.516,437,1.717,474,3.49,480,1.563,519,3.736,529,2.009,556,2.058,603,2.348,696,3.223,708,2.951,844,1.91,970,4.343,1076,5.206,1203,3.235,1276,1.085,1488,5.414,1503,3.587,1559,3.595,1676,3.729,1880,4.634,2235,2.719,2439,1.699,2585,3.125,2606,7.048,2618,1.999,2619,1.849,2661,2.582,2722,4.193,2742,4.747,3199,2.582,3396,2.427,3569,3.587,3663,7.524,3735,3.497,4914,2.13,6430,2.908,6537,2.344,6579,9.378,6583,4.095,6663,3.867,6895,5.612,7442,5.823,7465,2.525,7466,3.037,7468,3.037,7471,3.037,7472,2.908,7473,8.058,7475,2.805,7482,4.925,7488,3.037,7492,3.037,7495,3.037,7496,8.058,7498,9.388,7501,6.229,7503,3.037,7504,7.524,7507,3.037,7509,3.037,7511,3.037,7513,3.037,7515,3.037,7517,3.037,7520,3.037,7522,4.925,7523,2.582,7524,7.858,7525,7.149,7526,4.925,7527,7.858,7528,6.214,7529,4.925,7530,7.858,7531,4.925,7532,6.214,7533,3.037,7534,4.187,7535,9.157,7536,3.037,7537,4.925,7538,3.037,7539,4.925,7540,3.037,7541,4.925,7542,3.037,7543,3.037,7544,3.037,7545,3.037,7546,3.037,7547,4.925,7548,3.037,7549,4.925,7550,2.908,7551,4.925,7552,3.037,7553,2.427,7554,4.925,7555,3.037,7556,3.037,7557,3.037,7558,4.925,7559,2.805,7560,3.037,7561,4.925,7562,3.037,7563,2.646,7564,3.037,7565,3.037,7566,3.037,7567,3.037,7568,3.037,7569,3.037,7570,3.037,7571,3.037,7572,3.037,7573,4.925,7574,4.925,7575,2.908,7576,6.214,7577,3.037,7578,4.925,7579,3.037,7580,3.037,7581,3.037,7582,3.037,7583,3.037,7584,3.037,7585,3.037,7586,3.037,7587,3.037,7588,3.037,7589,3.037,7590,3.037,7591,3.037,7592,3.037,7593,3.037,7594,3.037,7595,3.037,7596,3.037,7597,3.037,7598,3.037,7599,3.037,7600,3.037,7601,3.037,7602,4.925,7603,3.037,7604,3.037,7605,3.037,7606,4.925,7607,4.925,7608,3.037,7609,3.037,7610,3.037,7611,3.037,7612,3.037,7613,3.037,7614,3.037,7615,6.214,7616,3.037,7617,3.037,10968,5.205,10973,5.205,10974,5.205,10975,5.205,10982,3.209,12004,3.471,12005,3.471,12006,3.471,12007,3.471,12008,3.471,12009,3.471,12010,3.471]],["title/interfaces/IIdentityManagementConfig.html",[105,0.735,12011,5.705]],["body/interfaces/IIdentityManagementConfig.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.175,101,0.017,103,0.001,104,0.001,105,1.085,107,2.412,112,0.953,119,2.877,11597,5.734,12011,10.057,12012,7.876,12013,10.054,12014,12.291,12015,12.291,12016,12.291]],["title/interfaces/IImportUserProperties.html",[105,0.735,12017,5.705]],["body/interfaces/IImportUserProperties.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,30,0.001,31,0.404,32,0.18,33,0.589,47,0.972,49,1.875,95,0.139,96,1.306,101,0.016,103,0,104,0,105,0.778,107,1.141,112,0.873,119,1.977,128,2.904,143,2.618,144,2.375,145,1.32,154,1.541,168,5.955,172,3.755,173,1.406,174,2.867,175,2.102,178,1.975,180,0.852,181,1.273,182,1.547,220,1.809,236,0.773,239,2.966,250,3.212,349,0.745,359,2.853,361,4.92,437,1.126,490,1.686,517,1.823,529,1.345,556,1.816,564,1.46,593,2.67,603,0.955,644,4.765,651,4.988,652,4.988,653,5.901,654,3.581,655,5.523,696,3.434,708,1.975,834,3.046,970,2.299,1276,1.486,1615,5.282,1663,2.012,1841,4.722,2145,2.885,2173,4.16,2356,6.332,2357,3.983,2606,4.533,2608,4.818,2609,5.495,2617,3.458,2685,4.16,2896,2.853,3072,4.765,3078,2.374,4206,1.613,4211,6.911,4294,3.725,4295,3.537,4310,5.137,4602,2.595,5039,3.995,6054,3.388,6578,4.373,6588,2.918,6590,2.663,6610,2.953,6931,3.071,6938,2.822,6939,2.918,7553,3.324,7644,5.04,8548,5.651,8549,3.537,8550,3.725,9623,3.161,9624,3.458,9625,3.161,9626,3.458,9627,3.624,9628,3.842,9802,3.161,9803,3.161,10382,3.624,10742,7.3,10743,5.979,10761,3.388,10762,2.885,10770,3.983,11322,3.983,11326,3.458,12017,7.293,12018,4.396,12019,7.959,12020,8.964,12021,7.052,12022,8.88,12023,8.18,12024,3.624,12025,4.16,12026,4.16,12027,4.396,12028,3.983,12029,3.388,12030,4.396,12031,4.396,12032,4.396,12033,4.396,12034,4.396,12035,4.396,12036,4.396,12037,4.396,12038,6.039,12039,4.396,12040,6.039,12041,3.983,12042,5.825,12043,4.396,12044,4.396,12045,4.396,12046,3.842,12047,3.624,12048,4.396,12049,4.396,12050,4.396,12051,4.396,12052,3.983,12053,3.983,12054,5.495,12055,5.362,12056,6.306,12057,4.396,12058,4.396,12059,4.396,12060,3.842,12061,6.039,12062,4.396]],["title/interfaces/IImportUserScope.html",[105,0.735,12063,5.503]],["body/interfaces/IImportUserScope.html",[2,1.393,3,0.019,4,0.019,5,0.01,7,0.126,30,0.001,31,0.466,32,0.185,33,0.677,47,0.991,95,0.106,101,0.019,103,0.001,104,0.001,105,1.153,107,1.998,112,0.848,119,2.4,250,8.403,276,5.289,361,4.705,651,6.145,652,6.145,834,2.611,1410,7.468,1841,6.997,4321,5.052,6590,4.663,10742,8.698,10743,8.545,10761,5.934,10762,5.052,12023,9.747,12063,8.632,12064,7.699,12065,10.422,12066,7.699,12067,6.729]],["title/interfaces/IInterceptorConfig.html",[105,0.735,11940,5.705]],["body/interfaces/IInterceptorConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.167,55,2.984,101,0.017,103,0.001,104,0.001,105,1.113,107,2.474,112,0.968,11589,6.965,11940,10.209,11985,10.832,11988,11.23,12068,10.312]],["title/interfaces/IJsonAccount.html",[105,0.735,12069,5.958]],["body/interfaces/IJsonAccount.html",[3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.191,33,0.551,39,3.487,47,0.997,48,6.155,51,6.307,87,6.515,101,0.015,103,0.001,104,0.001,105,1.007,107,2.239,112,0.911,120,5.702,971,7.133,11597,5.322,11598,5.727,12069,10.038,12070,8.627,12071,9.331,12072,10.608]],["title/interfaces/IJsonUser.html",[105,0.735,12073,5.958]],["body/interfaces/IJsonUser.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.187,47,0.998,101,0.016,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,120,5.166,651,6.273,652,6.273,653,6.787,971,7.226,11597,5.527,11598,5.948,12070,8.96,12072,8.96,12073,10.272,12074,9.691]],["title/interfaces/IKeycloakConfigurationInputFiles.html",[105,0.735,12075,5.705]],["body/interfaces/IKeycloakConfigurationInputFiles.html",[3,0.024,4,0.024,5,0.012,7,0.153,30,0.001,32,0.164,47,0.974,101,0.02,103,0.001,104,0.001,105,1.088,107,2.419,112,0.955,437,1.304,2017,4.412,2158,5.749,11597,5.749,11598,6.186,12075,10.072,12076,10.079,12077,10.079,12078,12.301,12079,12.301,12080,8.818,12081,10.079]],["title/interfaces/IKeycloakSettings.html",[105,0.735,12082,5.705]],["body/interfaces/IKeycloakSettings.html",[3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.186,47,1.003,51,4.593,87,5.808,101,0.019,103,0.001,104,0.001,105,1.019,107,2.265,112,0.918,120,5.084,437,1.221,2133,7.354,5589,6.666,8064,9.68,11572,6.277,11592,8.259,11597,5.385,11598,5.794,12082,9.681,12083,9.441,12084,10.903,12085,7.909,12086,9.441]],["title/interfaces/ILearnroom.html",[105,0.735,6579,4.853]],["body/interfaces/ILearnroom.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.137,95,0.127,101,0.02,103,0.001,104,0.001,105,1.295,107,2.412,112,0.953,474,5.128,519,3.719,2439,4.923,2620,6.406,4918,6.323,4919,6.493,6579,8.554,6583,8.732,6661,10.743,12087,9.296]],["title/interfaces/ILearnroomElement.html",[105,0.735,2620,4.339]],["body/interfaces/ILearnroomElement.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,95,0.125,101,0.02,103,0.001,104,0.001,105,1.282,107,2.371,112,0.943,474,5.646,519,3.68,2439,4.838,2620,7.569,4918,8.313,4919,8.536,6579,7.041,6583,8.641,6661,7.985,12087,9.136]],["title/interfaces/ILegacyLogger.html",[105,0.735,12088,5.958]],["body/interfaces/ILegacyLogger.html",[3,0.017,4,0.017,5,0.009,7,0.113,8,1.188,27,0.508,29,0.965,30,0.001,31,0.694,32,0.174,33,0.595,35,1.489,39,1.996,47,1.003,59,3.963,72,4.496,101,0.016,102,4.979,103,0.001,104,0.001,105,0.801,107,1.781,131,5.228,141,3.545,236,1.611,271,2.903,310,3.216,519,4.192,556,1.869,591,4.193,986,3.77,1021,4.849,1150,5.178,1194,2.551,1227,7.205,2250,4.06,5519,6.587,8390,6.926,12088,8.666,12089,12.754,12090,7.421,12091,8.666,12092,8.666,12093,9.159,12094,7.421,12095,9.159,12096,10.31,12097,7.421,12098,9.159,12099,10.409,12100,7.421,12101,9.159,12102,7.421,12103,9.159,12104,7.421]],["title/interfaces/ILessonParent.html",[105,0.735,6587,4.461]],["body/interfaces/ILessonParent.html",[0,0.156,3,0.011,4,0.011,5,0.005,7,0.145,8,0.844,26,2.299,27,0.189,30,0.001,31,0.394,32,0.117,35,0.554,47,0.941,55,2.216,95,0.154,96,1.266,101,0.021,103,0,104,0,105,1.257,107,1.106,119,1.433,143,1.901,144,1.518,145,1.954,153,1.941,154,1.504,172,3.288,173,1.363,174,2.799,175,2.037,178,1.914,180,0.826,181,1.233,182,1.499,226,0.659,236,1.555,239,1.057,316,3.779,349,1.297,437,1.624,474,1.968,529,1.991,556,1.773,563,4.178,603,1.414,604,1.872,662,1.449,696,1.817,834,1.445,971,2.536,1150,1.833,1158,2.201,1194,3.286,1203,3.052,1276,1.44,1600,1.733,1654,2.188,1676,3.212,1858,2.201,1864,3.814,1882,1.923,1982,1.833,2193,4.391,2608,3.94,2611,3.841,2615,2.514,2620,4.484,2621,2.707,2622,4.513,2624,3.815,2625,4.372,2634,2.163,2638,4.61,2742,3.72,2820,4.129,3304,4.263,3414,5.371,3433,6.085,3539,1.88,3567,3.221,3568,3.221,4057,4.134,4218,2.898,4282,2.017,4914,2.828,4918,2.898,4919,2.976,5039,2.114,5064,6.565,5075,3.283,5091,2.604,5098,4.484,5103,6.872,5115,3.283,5121,3.283,5126,3.283,5698,7.456,6432,5.678,6435,6.085,6553,2.976,6575,2.862,6585,6.049,6586,3.064,6587,5.594,6589,4.426,6627,6.56,6628,4.68,6653,4.754,6824,2.862,6825,3.064,8497,5.015,10844,4.754,11875,5.015,11876,3.352,11877,5.441,11878,3.352,11879,4.921,11880,6.745,11881,5.015,11882,3.283,11883,5.015,11884,5.015,11885,5.015,11886,3.352,11887,5.015,11888,3.064,11889,5.015,11890,5.015,11891,3.352,11892,3.352,11893,3.352,11894,3.221,11895,3.221,11896,3.352,11897,3.352,11898,3.352,11899,5.119,11900,5.97,11901,3.221,11902,5.119,11903,3.352,11904,3.352,11905,3.352,11906,3.165,11907,3.352,11908,3.352,11909,5.119,11910,3.352,11911,3.352,11912,6.953,11913,6.211,11914,3.283,11915,3.352,11916,3.352,11917,3.352,11918,3.352,11919,3.352,11920,3.352,11921,3.352,11922,3.352,11923,3.352,11924,3.352,11925,3.352,11926,3.165,11927,3.352,11928,3.352,12105,4.608]],["title/interfaces/ILessonProperties.html",[105,0.735,11879,4.761]],["body/interfaces/ILessonProperties.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.141,26,2.128,30,0.001,31,0.563,32,0.164,33,0.51,47,0.943,55,2.383,95,0.152,96,1.199,101,0.02,103,0,104,0,105,1.235,107,1.047,112,0.536,119,1.891,143,1.838,144,1.437,145,1.874,153,1.876,154,1.443,172,3.207,173,1.29,174,2.684,175,1.929,178,1.812,180,0.782,181,1.168,182,1.419,226,0.624,236,1.511,239,1.001,316,3.623,349,1.281,437,1.604,474,1.864,529,1.909,556,1.7,563,4.006,603,1.356,604,1.773,662,1.372,696,1.721,834,1.368,971,2.401,1150,1.735,1158,2.084,1194,3.193,1203,2.966,1276,1.364,1600,1.641,1654,2.072,1676,3.08,1858,2.084,1864,4.444,1882,1.821,1982,1.735,2193,4.297,2608,3.808,2611,3.683,2615,2.381,2620,4.3,2621,2.563,2622,4.362,2624,3.687,2625,4.192,2634,2.048,2638,4.421,2742,5.309,2820,3.991,3304,4.121,3414,6.68,3433,5.881,3539,1.78,3567,3.05,3568,3.05,4057,3.964,4218,2.744,4282,1.91,4914,2.678,4918,2.744,4919,2.818,5039,2.002,5064,7.295,5075,3.109,5091,2.465,5098,4.3,5103,6.763,5115,3.109,5121,3.109,5126,3.109,5698,7.295,6432,5.488,6435,5.881,6553,2.818,6575,2.71,6585,7.048,6586,2.901,6587,4.421,6589,4.244,6627,4.3,6628,4.487,6653,4.559,6824,2.71,6825,2.901,8497,4.809,10844,6.785,11875,4.809,11876,3.173,11877,6.4,11878,3.173,11879,5.77,11880,7.495,11881,4.809,11882,3.109,11883,4.809,11884,4.809,11885,4.809,11886,3.173,11887,4.809,11888,2.901,11889,4.809,11890,4.809,11891,3.173,11892,3.173,11893,3.173,11894,3.05,11895,3.05,11896,3.173,11897,3.173,11898,3.173,11899,4.909,11900,5.77,11901,3.05,11902,4.909,11903,3.173,11904,3.173,11905,3.173,11906,2.997,11907,3.173,11908,3.173,11909,4.909,11910,3.173,11911,3.173,11912,6.756,11913,6.003,11914,3.109,11915,3.173,11916,3.173,11917,3.173,11918,3.173,11919,3.173,11920,3.173,11921,3.173,11922,3.173,11923,3.173,11924,3.173,11925,3.173,11926,2.997,11927,3.173,11928,3.173]],["title/interfaces/ILoggerConfig.html",[105,0.735,11941,5.705]],["body/interfaces/ILoggerConfig.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,47,0.925,101,0.017,103,0.001,104,0.001,105,1.139,107,2.533,112,0.981,11589,7.13,11941,10.35,11983,10.914,12106,10.555]],["title/interfaces/IMaterialProperties.html",[105,0.735,12107,5.335]],["body/interfaces/IMaterialProperties.html",[0,0.233,3,0.016,4,0.016,5,0.008,7,0.104,30,0.001,32,0.182,33,0.553,47,1.019,95,0.119,96,1.889,101,0.019,103,0.001,104,0.001,105,1.157,107,1.65,112,0.747,153,2.745,154,2.011,172,4.3,173,2.033,174,3.742,175,3.04,180,1.232,181,1.84,182,2.237,238,3.959,1194,4.152,1203,3.856,1654,3.265,2722,3.528,3539,4.928,3569,4.381,6263,3.691,6608,4.644,6609,4.44,7204,4.324,11877,4.381,11880,4.504,11888,8.03,12107,8.402,12108,5.76,12109,8.983,12110,9.759,12111,9.759,12112,9.461,12113,9.759,12114,9.759,12115,9.759,12116,5.76,12117,5.001,12118,5.76,12119,5.76,12120,5.556,12121,5.76,12122,5.76,12123,5.76,12124,5.76,12125,5.76,12126,5.76,12127,5.76,12128,5.76,12129,5.76,12130,5.76,12131,5.76,12132,5.76,12133,5.76]],["title/interfaces/IMigrationOptions.html",[105,0.735,11612,5.503]],["body/interfaces/IMigrationOptions.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.07,10,1.874,30,0.001,32,0.117,33,0.521,36,2.404,47,0.675,52,3.365,53,3.355,55,2.431,70,5.422,72,3.197,78,8.679,95,0.121,101,0.008,103,0,104,0,105,0.922,107,1.107,112,0.559,118,2.939,119,1.739,142,4.03,145,3.234,153,2.815,177,1.564,179,4.614,208,1.69,236,1.146,239,1.058,262,2.669,310,4.145,333,3.616,349,0.883,359,2.768,379,0.577,413,1.421,437,1.332,486,3.099,490,4.006,529,1.305,556,1.774,562,3.168,568,5.445,595,2.901,600,2.865,603,1.921,608,2.752,696,2.778,697,6.216,708,2.926,710,5.869,840,3.516,929,2.738,933,4.056,986,1.56,1220,2.583,1274,1.459,1447,5.445,1454,3.981,1581,5.519,1731,2.939,1759,4.227,1770,2.517,2017,2.019,2034,3.614,2250,1.891,2251,3.18,2344,2.631,2774,5.598,3060,5.074,3443,4.684,3451,3.168,3452,8.825,3453,6.479,3454,2.738,5510,3.431,5948,7.472,6498,3.614,7094,2.865,7111,2.939,7395,7.853,7869,5.975,7879,7.853,8333,3.516,8390,3.225,10226,4.925,11363,3.614,11596,5.692,11597,2.631,11598,2.831,11599,3.865,11600,3.865,11601,3.614,11602,5.901,11603,6.356,11604,3.614,11605,3.614,11606,5.901,11607,3.865,11608,3.865,11609,8.325,11610,3.865,11611,3.865,11612,6.906,11613,7.853,11614,3.865,11615,3.516,11616,3.614,11617,3.865,11618,3.865,11619,3.865,11620,8.63,11621,3.355,11622,3.865,11623,3.865,11624,7.159,11625,3.022,11626,5.772,11627,3.287,11628,4.838,11629,3.431,11630,3.865,11631,3.865,11632,3.865,11633,8.013,11634,3.865,11635,3.865,11636,3.865,11637,8.013,11638,3.865,11639,3.865,11640,3.865,11641,8.013,11642,8.013,11643,3.614,11644,3.865,11645,3.865,11646,3.865,11647,3.355,11648,3.728,11649,5.124,11650,3.865,11651,3.865,11652,3.865,11653,3.865,11654,3.865,11655,5.02,11656,3.614,11657,3.614,11658,3.865,11659,3.865,11660,3.865,11661,3.865,11662,3.865,11663,3.865,11664,3.865,11665,3.865,11666,3.865,11667,3.865,11668,3.865,11669,3.728]],["title/interfaces/INameMatch.html",[105,0.735,12067,5.503]],["body/interfaces/INameMatch.html",[2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,31,0.725,32,0.156,33,0.549,47,0.968,95,0.118,101,0.02,103,0.001,104,0.001,105,1.235,107,2.229,112,0.909,119,1.89,250,6.274,276,3.949,361,6.465,651,5.923,652,5.923,834,2.912,1410,7.999,1841,7.495,4321,6.942,6590,5.201,10742,6.494,10743,6.379,10761,6.618,10762,5.635,12023,8.963,12063,7.506,12064,8.587,12065,9.585,12066,8.587,12067,9.246]],["title/interfaces/INewsProperties.html",[105,0.735,6919,5.335]],["body/interfaces/INewsProperties.html",[0,0.327,3,0.011,4,0.025,5,0.006,7,0.165,9,3.355,26,2.588,30,0.001,31,0.398,32,0.174,33,0.561,34,0.795,47,0.931,83,2.954,95,0.148,96,2.364,101,0.017,103,0,104,0,105,0.504,107,1.12,112,0.822,143,2.429,144,3.594,154,2.213,172,3.622,173,1.38,174,2.826,175,2.063,180,1.724,181,2.575,182,1.518,236,1.4,239,2.748,349,0.482,355,5.413,358,3.786,381,1.567,403,4.777,413,1.437,459,4.417,521,3.409,563,5.711,643,2.074,644,5.335,654,3.477,655,5.205,834,2.228,992,4.111,993,4.542,994,4.063,995,4.297,996,4.696,1203,3.483,1221,4.362,1600,1.755,1654,3.374,1660,2.346,1676,3.243,1752,3.057,1770,2.546,1864,2.632,2193,4.413,2503,4.863,2608,3.971,2621,2.741,2677,5.754,2722,2.395,3390,3.205,3392,2.973,3393,3.263,3395,3.325,3396,3.263,3397,3.471,3411,2.864,3544,3.152,3569,2.973,4206,1.583,4298,3.557,4299,3.394,4440,3.394,5039,3.949,5119,3.394,5687,7.935,6283,2.59,6501,3.263,6588,2.864,6590,2.613,6611,2.8,6824,2.899,6911,3.471,6912,3.771,6914,4.312,6915,3.771,6916,7.702,6917,5.558,6918,3.771,6919,8.886,6920,6.885,6921,5.904,6922,7.157,6923,7.702,6924,6.475,6925,7.412,6926,3.771,6927,5.064,6928,3.771,6929,3.557,6930,3.557,6931,4.589,6932,3.771,6933,3.557,6934,3.557,6935,3.771,6936,3.471,6937,3.771,6938,2.77,6939,2.864,6940,3.557,6941,3.771,6942,3.771,6943,6.742,6944,3.771,6945,6.955,6946,3.771,6947,3.771,6948,5.417,6949,3.557,6950,6.017,6951,3.656,6952,4.655,6953,3.557,6954,3.394,6955,3.557,6956,3.771]],["title/interfaces/INewsScope.html",[105,0.735,11950,5.503]],["body/interfaces/INewsScope.html",[3,0.019,4,0.019,5,0.01,7,0.123,26,2.469,30,0.001,32,0.186,33,0.628,34,1.384,47,0.742,83,2.495,95,0.156,101,0.021,103,0.001,104,0.001,105,1.411,107,1.95,112,0.835,119,2.373,120,4.626,153,1.847,154,1.737,484,4.23,644,4.798,654,2.417,834,2.547,1203,2.594,1864,4.317,2193,3.287,2279,4.987,2677,5.764,3602,9.199,4564,5.047,4778,4.51,6914,6.379,6916,6.043,6917,7.528,6920,5.402,6924,6.241,6925,7.459,7102,8.618,10115,5.11,10767,9.961,11942,6.566,11943,7.512,11944,7.512,11945,7.512,11946,7.512,11947,7.512,11948,5.402,11949,6.807,11950,8.497]],["title/interfaces/IPagination.html",[105,0.735,9044,5.191]],["body/interfaces/IPagination.html",[3,0.022,4,0.022,5,0.011,7,0.146,30,0.001,32,0.172,33,0.628,55,2.935,56,6.329,70,6.535,101,0.022,103,0.001,104,0.001,105,1.26,107,2.303,112,0.927,484,4.997,834,3.009,2031,5.424,3614,9.779,4451,6.115,6679,5.759,6969,5.823,9044,9.59,9231,9.145,10459,9.433,12002,8.874,12003,8.874]],["title/interfaces/IParentInfo.html",[105,0.735,10131,5.335]],["body/interfaces/IParentInfo.html",[0,0.251,3,0.009,4,0.009,5,0.007,7,0.157,26,2.676,30,0.001,31,0.554,32,0.116,34,1.006,39,0.991,47,0.852,49,3.652,55,1.271,83,3.034,95,0.137,96,1.623,97,1.597,99,0.615,101,0.017,103,0,104,0,105,0.798,107,0.884,112,0.587,119,2.113,133,2.066,143,1.883,144,2.436,145,1.023,154,1.979,172,3.853,173,1.089,174,2.349,178,1.53,180,0.66,181,1.581,182,1.198,226,0.527,236,1.898,239,0.845,347,2.708,349,1.359,358,1.621,360,3.308,376,1.605,377,1.672,437,1.561,490,2.622,519,2.62,529,1.042,556,2.615,565,2.187,570,4.538,654,1.757,662,4.006,696,1.453,708,1.53,741,2.679,749,2.413,818,4.737,834,3.255,984,1.589,986,2.5,990,2.625,1060,3.99,1155,4.209,1295,4.737,1559,2.599,1663,2.499,1756,2.53,1864,1.364,1924,2.164,1925,4.13,1982,3.364,2158,2.101,2334,2.101,2500,3.053,2585,2.045,2608,3.903,2618,2.121,2624,1.646,2634,1.729,2821,1.621,3060,1.605,3109,1.932,3304,1.839,3318,2.53,3570,5.591,3680,2.082,3833,2.74,4206,3.874,4216,2.808,4218,2.317,4272,3.223,4282,1.613,4283,2.187,4778,2.045,5091,2.082,5103,2.121,6236,1.709,6254,4.436,6255,5.392,6256,4.209,6257,5.541,6265,2.576,6273,2.625,6275,2.449,6277,5.378,6283,4.104,6284,5.627,6285,3.869,6578,2.235,6806,2.886,6807,4.393,6921,1.994,9891,2.74,9956,2.808,9959,4.209,9963,2.679,9997,2.576,10007,2.808,10011,2.808,10037,4.503,10040,2.679,10041,2.679,10046,2.808,10047,2.808,10087,2.977,10088,2.886,10089,4.627,10090,2.977,10091,4.627,10093,6.835,10105,6.292,10108,2.977,10109,2.808,10110,4.627,10111,2.74,10112,4.296,10113,4.296,10114,4.296,10115,2.317,10116,4.773,10117,4.773,10118,4.773,10119,4.773,10120,4.773,10121,4.773,10122,4.627,10123,5.714,10124,4.773,10125,2.808,10126,4.393,10127,2.74,10128,4.503,10129,2.808,10130,4.503,10131,6.627,10132,2.625,10133,2.886,10134,2.679,10135,2.679,10136,2.977,10137,2.977,10138,2.808,10139,2.74,10140,2.808,10141,2.977,10142,2.977,10143,2.977,10144,2.977,10145,2.977,10146,2.977,10147,2.977,10148,2.977,10149,2.977,10150,2.977,10151,7.986,10152,2.977,10153,2.977,10154,4.773,10155,2.977,10156,2.977,10157,4.773,10158,4.773,10159,4.773,10160,2.977,10161,2.977,10162,2.977,10163,2.977,10164,2.977,10165,2.977,10166,2.977,10167,4.773,10168,5.975,10169,2.886,10170,2.977,10171,4.773,10172,2.886,10173,2.977,10174,4.773,10175,2.977,10176,5.975,10177,5.975,10178,2.886,10179,5.975,10180,2.977,10181,2.977,10182,2.977,10183,2.977,10184,2.977,10185,2.977,10186,2.977,10187,2.886,10188,2.977,10189,2.977,10190,2.977,10191,2.977,10192,2.977,10193,2.977,10194,2.977,10195,2.977,10196,2.977]],["title/interfaces/IRelatedResourceProperties.html",[105,0.735,12114,5.503]],["body/interfaces/IRelatedResourceProperties.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,30,0.001,32,0.138,33,0.576,47,1.012,95,0.128,96,2.089,101,0.02,103,0.001,104,0.001,105,1.218,107,1.824,112,0.799,153,2.288,154,2.152,172,4.374,173,2.249,174,4.004,175,3.362,180,1.363,181,2.035,182,2.473,238,4.378,1194,3.461,1203,3.214,1654,3.61,2722,3.902,3539,4.108,3569,4.844,6263,4.082,6608,5.136,6609,4.91,7204,4.782,11877,4.844,11880,4.98,11888,6.694,12107,7.887,12108,6.369,12109,7.488,12110,8.135,12111,8.135,12112,7.887,12113,8.135,12114,9.708,12115,9.12,12116,6.369,12117,5.53,12118,10.064,12119,10.064,12120,6.144,12121,6.369,12122,6.369,12123,6.369,12124,6.369,12125,6.369,12126,6.369,12127,6.369,12128,6.369,12129,6.369,12130,6.369,12131,6.369,12132,6.369,12133,6.369]],["title/interfaces/IRepoLoader.html",[105,0.735,12134,5.958]],["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.152,33,0.427,36,1.352,49,2.506,95,0.158,99,1.06,101,0.01,103,0.001,104,0.001,105,0.686,107,1.525,112,0.707,119,2.094,133,4.105,143,1.983,177,2.43,217,6.689,226,0.908,227,2.616,236,1.449,262,1.392,349,0.92,379,0.795,437,1.152,529,1.798,539,1.179,564,1.951,603,2.711,608,2.053,1362,7.191,1597,5.18,1683,5.18,1684,3.947,1740,8.734,1741,6.764,1742,7.303,1743,5.135,1744,8.292,1745,8.498,1746,7.794,1747,7.657,1768,4.622,1784,7.33,2425,7.501,2456,7.065,2585,4.945,3193,4.048,3540,4.104,4689,7.805,5390,5.323,5793,9.009,6140,3.9,12134,9.753,12135,5.875,12136,10.307,12137,5.135,12138,5.875,12139,5.875,12140,5.875,12141,5.875,12142,5.875,12143,5.875,12144,5.875,12145,5.875,12146,5.875,12147,5.875,12148,5.875,12149,5.875,12150,5.875,12151,5.875,12152,5.875,12153,5.875,12154,5.875,12155,5.875,12156,5.875,12157,5.875,12158,5.875,12159,5.875,12160,5.875,12161,5.875,12162,5.875,12163,5.875,12164,5.875,12165,5.875,12166,5.875,12167,5.875,12168,5.875,12169,8.236]],["title/interfaces/IRetryOptions.html",[105,0.735,11609,5.503]],["body/interfaces/IRetryOptions.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.071,10,1.894,30,0.001,32,0.097,33,0.461,36,2.413,47,0.501,52,3.392,53,3.39,55,2.577,70,4.294,72,3.223,78,8.696,95,0.122,101,0.008,103,0,104,0,105,0.928,107,1.118,112,0.564,118,2.97,119,0.949,142,4.049,145,3.245,153,2.822,177,1.574,179,4.651,208,1.707,236,1.155,239,1.069,262,2.676,310,2.02,333,3.639,349,0.888,359,2.797,379,0.583,413,1.435,437,1.339,486,3.114,490,4.02,529,1.319,556,1.789,562,3.201,568,5.48,595,2.931,600,2.895,603,1.932,608,2.76,696,2.8,697,6.256,708,2.95,710,5.907,840,3.553,929,2.767,933,4.089,986,1.576,1220,2.61,1274,1.475,1447,5.48,1454,4.012,1581,5.562,1731,2.97,1759,4.26,1770,2.544,2017,2.04,2034,3.652,2250,1.911,2251,3.206,2344,2.659,2774,5.634,3060,5.09,3443,4.721,3451,3.201,3452,8.843,3453,6.509,3454,2.767,5510,3.467,5948,7.487,6498,3.652,7094,2.895,7111,2.97,7395,7.889,7869,6.013,7879,7.889,8333,3.553,8390,3.259,10226,4.964,11363,3.652,11596,5.738,11597,2.659,11598,2.861,11599,3.905,11600,3.905,11601,3.652,11602,5.948,11603,6.397,11604,3.652,11605,3.652,11606,5.948,11607,3.905,11608,3.905,11609,8.812,11610,8.056,11611,8.056,11612,5.738,11613,5.412,11614,3.905,11615,3.553,11616,3.652,11617,3.905,11618,3.905,11619,3.905,11620,8.67,11621,3.39,11622,3.905,11623,3.905,11624,7.205,11625,3.053,11626,5.809,11627,3.321,11628,4.877,11629,3.467,11630,3.905,11631,3.905,11632,3.905,11633,8.056,11634,3.905,11635,3.905,11636,3.905,11637,8.056,11638,3.905,11639,3.905,11640,3.905,11641,8.056,11642,8.056,11643,3.652,11644,3.905,11645,3.905,11646,3.905,11647,3.39,11648,3.767,11649,5.164,11650,3.905,11651,3.905,11652,3.905,11653,3.905,11654,3.905,11655,5.059,11656,3.652,11657,3.652,11658,3.905,11659,3.905,11660,3.905,11661,3.905,11662,3.905,11663,3.905,11664,3.905,11665,3.905,11666,3.905,11667,3.905,11668,3.905,11669,3.767]],["title/interfaces/IRoleProperties.html",[105,0.735,12170,5.958]],["body/interfaces/IRoleProperties.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,30,0.001,31,0.711,32,0.158,33,0.587,47,0.733,95,0.146,96,2.188,101,0.017,103,0.001,104,0.001,105,1.12,107,1.911,112,0.824,154,2.468,168,5.92,172,3.686,173,2.355,174,4.128,175,3.522,178,3.309,180,1.427,181,2.132,182,2.591,236,1.878,276,5.394,349,0.823,437,1.493,529,2.253,643,5.638,662,2.504,822,4.586,1654,3.782,1660,6.752,1982,3.168,2611,4.346,2615,5.664,3078,6.494,4057,4.678,4282,3.486,4602,6.923,7218,6.436,10018,7.72,10048,8.131,12170,10.101,12171,7.363,12172,6.672,12173,6.436,12174,6.672,12175,6.436,12176,7.363,12177,6.672,12178,7.363,12179,9.596,12180,7.363,12181,8.695,12182,6.436]],["title/interfaces/ISchoolExternalToolProperties.html",[105,0.735,12183,5.705]],["body/interfaces/ISchoolExternalToolProperties.html",[0,0.275,3,0.019,4,0.019,5,0.01,7,0.123,30,0.001,32,0.168,33,0.503,55,2.649,95,0.162,96,2.223,101,0.017,103,0.001,104,0.001,105,0.873,107,1.942,112,0.833,143,2.335,154,2.241,172,3.348,173,2.393,174,4.171,178,3.362,180,1.45,181,2.166,182,2.632,564,3.572,644,5.962,654,3.792,1669,4.213,2486,4.228,4272,5.723,4273,4.91,5039,5.339,5399,7.49,5791,5.767,5792,6.019,5840,6.539,5846,9.958,5848,5.886,5851,6.779,5852,5.226,6610,5.027,6611,4.855,7321,5.027,8761,9.086,11135,5.658,12042,6.539,12183,9.747,12184,7.482,12185,11.155,12186,7.482,12187,7.482,12188,7.482,12189,7.482,12190,7.482]],["title/interfaces/ISchoolProperties.html",[105,0.735,12191,5.335]],["body/interfaces/ISchoolProperties.html",[0,0.306,3,0.012,4,0.012,5,0.006,7,0.137,30,0.001,31,0.6,32,0.175,33,0.651,47,0.953,83,3.074,95,0.142,96,1.387,101,0.018,102,2.537,103,0,104,0,105,0.545,107,1.211,112,0.717,119,2.288,128,2.033,133,1.765,143,2.934,144,4.306,145,2.093,154,1.611,172,4.09,173,1.493,175,2.232,178,2.097,180,0.904,181,1.351,182,1.642,236,0.821,261,2.397,556,1.271,593,1.869,644,2.303,655,5.649,834,1.582,971,5.509,988,3.529,1654,2.397,1660,2.537,1982,2.007,2289,5.092,2500,4.665,2608,5.374,2611,2.754,2615,4.114,2616,5.906,3073,4.803,3074,4.26,4272,4.114,4282,2.209,4332,7.123,4349,3.847,4350,5.906,4522,6.981,5039,4.141,6531,7.719,6539,7.123,6553,3.259,6604,4.627,6623,5.747,6624,3.754,6938,2.996,6939,4.627,8531,6.738,8535,3.754,8536,6.092,8548,5.798,8549,3.754,9871,7.362,10115,3.174,10377,6.582,10835,7.258,11583,5.906,12191,7.07,12192,4.228,12193,8.167,12194,7.793,12195,7.358,12196,7.634,12197,8.663,12198,4.079,12199,4.079,12200,4.228,12201,4.079,12202,4.228,12203,4.228,12204,6.316,12205,4.228,12206,4.228,12207,4.228,12208,4.228,12209,4.228,12210,4.228,12211,4.228,12212,4.228,12213,7.293,12214,4.228,12215,4.228,12216,7.293,12217,4.228,12218,4.228,12219,4.228,12220,3.529,12221,5.906,12222,3.754,12223,4.079,12224,4.228,12225,6.316,12226,3.847,12227,4.228,12228,4.228,12229,6.092,12230,4.079,12231,3.596,12232,4.228]],["title/interfaces/ISchoolYearProperties.html",[105,0.735,12233,5.958]],["body/interfaces/ISchoolYearProperties.html",[0,0.306,3,0.021,4,0.021,5,0.011,7,0.137,30,0.001,31,0.738,32,0.167,47,0.904,83,4.229,95,0.142,96,2.477,101,0.019,103,0.001,104,0.001,105,0.973,107,2.164,112,0.892,154,2.401,172,4.089,173,2.667,175,3.987,178,3.746,180,1.616,181,2.413,182,2.933,1276,2.819,1982,3.586,2289,7.588,4282,3.947,6542,9.389,6619,7.287,6620,6.874,10835,5.824,12233,11.205,12234,8.337,12235,11.038,12236,7.554,12237,8.337,12238,8.337]],["title/interfaces/IScopeInfo.html",[105,0.735,12239,5.503]],["body/interfaces/IScopeInfo.html",[3,0.023,4,0.023,5,0.012,7,0.147,26,2.784,30,0.001,32,0.18,47,0.992,95,0.123,99,1.62,101,0.016,103,0.001,104,0.001,105,1.048,107,2.331,112,0.934,1203,4.196,1936,5.021,1959,8.487,9656,10.62,12239,9.502,12240,8.981,12241,9.714,12242,13.142]],["title/interfaces/IServerConfig.html",[105,0.735,601,5.335]],["body/interfaces/IServerConfig.html",[3,0.018,4,0.018,5,0.009,7,0.118,30,0.001,32,0.183,47,0.943,52,4.876,55,2.454,95,0.167,101,0.019,103,0.001,104,0.001,105,0.838,107,1.863,112,0.811,119,2.561,180,1.829,437,1.32,599,5.648,600,4.823,601,8.934,834,2.434,929,6.059,1163,4.883,1372,5.919,1573,6.793,1909,4.71,2017,3.399,2018,3.802,2019,3.665,2020,4.947,2028,7.179,3538,3.826,3539,3.169,3541,3.929,5043,4.823,10500,5.428,10713,9.553,11588,9.977,11590,9.437,11626,6.895,11647,7.425,11863,9.977,11865,7.179,11938,9.553,11983,6.274,11984,7.179,11985,6.274,11988,6.505,11989,7.179,12011,9.553,12014,7.179,12015,7.179,12016,7.179,12243,7.765,12244,9.215,12245,12.583,12246,12.583,12247,7.765,12248,10.208,12249,7.765,12250,7.179,12251,7.765,12252,7.765,12253,7.765,12254,7.765,12255,7.179,12256,7.765,12257,6.505,12258,7.765,12259,7.765,12260,5.333]],["title/interfaces/IShareTokenProperties.html",[105,0.735,12261,5.705]],["body/interfaces/IShareTokenProperties.html",[0,0.239,3,0.016,4,0.016,5,0.008,7,0.165,26,2.806,30,0.001,32,0.172,33,0.602,34,1.198,49,5.225,83,3.574,95,0.154,96,2.624,97,3.048,101,0.016,103,0.001,104,0.001,105,0.759,107,1.687,112,0.759,124,6.118,131,2.634,143,2.416,144,3.574,154,2.042,159,8.222,172,3.886,173,2.08,174,3.799,178,2.921,180,1.26,181,1.882,182,2.287,187,5.36,188,5.891,197,5.509,198,5.891,236,1.554,349,0.987,490,2.493,556,2.406,696,2.773,834,3.402,2608,4.408,3304,3.511,3330,5.682,3570,5.96,4273,4.266,4803,7.303,4809,5.891,5830,7.655,5858,5.891,5859,5.682,5860,5.891,6275,4.675,6284,5.998,6541,4.83,9891,5.23,9959,5.011,9964,5.891,10040,5.115,10041,5.115,10138,5.36,10140,5.36,12261,9.089,12262,6.501,12263,6.501,12264,9.836,12265,8.36,12266,9.536,12267,6.501,12268,4.675,12269,4.606,12270,6.501,12271,6.501]],["title/interfaces/IStorageProviderProperties.html",[105,0.735,12272,5.958]],["body/interfaces/IStorageProviderProperties.html",[0,0.288,3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,32,0.177,33,0.519,47,1.004,95,0.151,96,2.331,101,0.018,103,0.001,104,0.001,105,0.916,107,2.036,112,0.858,143,1.889,144,2.795,154,2.311,172,4.131,173,2.509,174,4.3,175,3.752,178,3.525,180,1.521,181,2.271,182,2.76,2608,3.915,6336,9.046,6338,9.046,6339,9.249,8017,6.311,11687,7.423,12272,10.409,12273,7.845,12274,11.963,12275,9.057,12276,7.845,12277,7.845,12278,7.845,12279,7.845,12280,7.845,12281,7.845,12282,7.845,12283,7.845,12284,7.845]],["title/interfaces/ISubmissionProperties.html",[105,0.735,12285,5.705]],["body/interfaces/ISubmissionProperties.html",[0,0.166,3,0.011,4,0.011,5,0.006,7,0.16,26,2.236,30,0.001,32,0.176,33,0.61,34,0.831,47,0.856,55,2.117,62,2.864,72,2.213,95,0.15,96,1.339,101,0.012,103,0,104,0,105,0.526,107,1.17,112,0.781,119,2.618,143,2.191,144,3.242,145,2.04,154,1.57,168,4.19,172,3.542,173,1.442,174,2.922,175,2.156,178,2.026,180,0.874,181,1.305,182,1.586,226,0.697,236,1.438,239,2.879,349,1.224,437,1.694,528,2.539,529,1.379,556,2.227,603,1.476,644,5.063,654,3.14,662,3.489,760,2.706,910,3.409,933,2.808,946,2.262,1158,3.509,1600,1.833,1654,2.315,1753,3.349,1755,3.349,1761,3.474,1770,2.661,2608,4.871,2611,2.661,2615,2.661,2624,5.681,2625,3.029,2821,3.232,3074,6.506,3392,3.106,3393,3.409,3680,2.755,3757,7.13,3762,7.13,3770,6.154,3772,6.154,4206,1.654,5039,3.371,6283,4.078,6585,7.258,6586,3.242,6588,2.993,6590,2.73,6606,3.474,6610,3.029,6611,2.925,6931,3.149,7111,3.106,8975,8.047,11894,3.409,11895,3.409,11900,5.136,11901,3.409,12117,7.678,12285,7.405,12286,4.508,12287,9.76,12288,9.646,12289,4.266,12290,4.508,12291,4.508,12292,4.508,12293,4.508,12294,4.508,12295,4.508,12296,3.94,12297,4.508,12298,4.508,12299,4.508,12300,4.085,12301,4.508,12302,4.508,12303,4.508,12304,4.508,12305,4.508,12306,4.508,12307,9.76,12308,4.508,12309,4.508,12310,4.508,12311,4.508,12312,4.508,12313,4.508,12314,9.097,12315,4.508,12316,6.575,12317,3.94,12318,10.258,12319,6.792,12320,4.085,12321,6.792,12322,4.266,12323,3.546,12324,3.82,12325,4.508,12326,4.508,12327,4.508,12328,4.508,12329,6.792,12330,6.792,12331,4.508,12332,4.508,12333,4.508,12334,4.508,12335,6.575,12336,3.94,12337,4.085,12338,6.792]],["title/interfaces/ISystemProperties.html",[105,0.735,12339,5.191]],["body/interfaces/ISystemProperties.html",[0,0.317,3,0.01,4,0.01,5,0.005,7,0.067,26,1.438,30,0.001,32,0.174,33,0.622,47,1.014,83,2.546,95,0.118,96,1.208,101,0.017,103,0,104,0,105,0.474,107,1.055,112,0.539,119,0.895,133,1.537,143,2.991,144,4.426,145,1.221,153,0.999,154,1.773,172,4.5,173,1.3,174,2.7,175,1.944,177,0.805,178,1.826,180,0.788,181,1.177,182,1.43,276,1.869,511,1.964,570,2.698,578,2.667,834,2.6,945,2.698,1194,3.663,1306,2.667,1389,3.133,1421,2.731,1600,1.653,1959,2.839,1984,3.27,2500,3.509,2504,1.964,4272,3.705,4310,4.838,4344,2.638,4619,3.509,5504,1.786,5589,3.389,5767,5.137,5787,2.801,5788,3.02,6263,3.645,7204,2.765,7291,2.97,7347,4.119,8548,2.379,8886,2.97,9871,2.88,10377,2.484,11441,7.903,11522,3.27,11523,3.27,11524,3.27,11525,3.351,11569,3.02,11572,2.923,11574,3.02,11577,3.02,11580,2.698,11584,2.97,11625,2.88,12047,3.351,12231,3.133,12339,6.322,12340,3.553,12341,6.702,12342,8.901,12343,8.556,12344,6.339,12345,7.047,12346,6.603,12347,2.923,12348,2.923,12349,3.553,12350,4.663,12351,5.049,12352,3.444,12353,5.049,12354,3.351,12355,3.351,12356,3.351,12357,3.351,12358,3.444,12359,3.351,12360,3.351,12361,3.351,12362,3.444,12363,5.049,12364,3.444,12365,3.351,12366,3.444,12367,3.351,12368,3.351,12369,3.351,12370,3.444,12371,4.663,12372,3.553,12373,3.553,12374,3.553,12375,3.553,12376,3.553,12377,3.553,12378,3.553,12379,3.553,12380,3.553,12381,3.553,12382,3.553,12383,3.553,12384,3.444,12385,3.553,12386,3.553,12387,3.553,12388,3.553,12389,3.553,12390,3.553,12391,3.553,12392,3.553,12393,3.553,12394,3.553,12395,3.553,12396,3.553,12397,3.553,12398,3.553,12399,3.553,12400,3.553,12401,3.553,12402,3.27,12403,3.553,12404,3.553,12405,3.553,12406,3.553,12407,3.553,12408,3.553,12409,3.553,12410,3.553,12411,3.553,12412,3.553,12413,3.553,12414,3.553,12415,3.553,12416,3.553,12417,3.351,12418,3.553,12419,3.27,12420,3.444,12421,3.351,12422,3.444,12423,3.351,12424,3.351,12425,3.444,12426,3.351,12427,3.444,12428,3.351,12429,3.198,12430,3.198,12431,3.198,12432,3.27,12433,3.351,12434,3.553,12435,3.351,12436,3.553,12437,3.553,12438,3.553,12439,3.553,12440,3.553,12441,3.351,12442,3.444,12443,3.351,12444,3.444]],["title/interfaces/ITargetGroupProperties.html",[105,0.735,12115,5.503]],["body/interfaces/ITargetGroupProperties.html",[0,0.254,3,0.017,4,0.017,5,0.009,7,0.113,30,0.001,32,0.153,33,0.613,47,1.014,95,0.126,96,2.054,101,0.02,103,0.001,104,0.001,105,1.208,107,1.794,112,0.79,153,2.263,154,2.128,172,4.362,173,2.211,174,3.959,175,3.306,180,1.34,181,2.001,182,2.432,238,6.872,1194,3.422,1203,3.178,1654,3.55,2722,3.837,3539,4.062,3569,4.763,6263,4.014,6608,5.05,6609,4.828,7204,4.702,11877,4.763,11880,4.897,11888,6.619,12107,7.799,12108,6.263,12109,7.404,12110,8.045,12111,8.045,12112,7.799,12113,8.045,12114,9.044,12115,9.643,12116,9.997,12117,8.68,12118,6.263,12119,6.263,12120,6.041,12121,6.263,12122,6.263,12123,6.263,12124,6.263,12125,6.263,12126,6.263,12127,6.263,12128,6.263,12129,6.263,12130,6.263,12131,6.263,12132,6.263,12133,6.263]],["title/interfaces/ITask.html",[105,0.735,12445,5.335]],["body/interfaces/ITask.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,31,0.689,32,0.178,33,0.646,47,0.969,55,2.501,83,4.009,95,0.102,99,1.347,101,0.02,103,0.001,104,0.001,105,1.375,107,1.938,112,0.832,119,2.658,153,2.796,180,2.083,239,2.667,603,1.622,644,4.78,654,2.402,1858,5.003,1864,4.305,2622,5.536,2634,3.79,2821,4.607,3224,6.357,3227,6.311,3680,4.564,3734,7.942,3753,5.37,3757,5.455,3758,5.646,3759,5.29,3760,5.29,3761,5.755,3762,5.455,5066,6.354,6921,4.371,8004,5.146,12445,9.983,12446,6.526,12447,8.945,12448,6.007,12449,6.007,12450,5.755,12451,6.007,12452,5.874]],["title/interfaces/ITaskCreate.html",[105,0.735,12449,5.065]],["body/interfaces/ITaskCreate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.162,33,0.601,47,0.977,55,2.558,83,3.315,95,0.107,99,1.412,101,0.021,103,0.001,104,0.001,105,1.395,107,2.032,112,0.857,119,2.691,153,1.925,180,2.243,239,2.727,603,1.701,644,4.927,654,2.518,1858,6.177,1864,4.402,2622,5.706,2634,3.974,2821,4.75,3224,5.58,3227,4.345,3680,4.785,3734,5.468,3753,5.63,3757,5.719,3758,5.92,3759,5.546,3760,5.546,3761,6.034,3762,5.719,5066,7.845,6921,4.582,8004,5.395,12445,10.13,12446,6.842,12447,6.159,12448,6.298,12449,8.03,12450,6.034,12451,6.298,12452,6.159]],["title/interfaces/ITaskParent.html",[105,0.735,6589,4.283]],["body/interfaces/ITaskParent.html",[0,0.183,3,0.008,4,0.008,5,0.004,7,0.175,8,0.646,26,1.988,27,0.135,30,0.001,31,0.184,32,0.141,34,0.919,35,0.395,47,0.699,55,1.16,83,2.682,95,0.149,96,0.904,101,0.014,103,0,104,0,105,0.582,107,0.79,112,0.629,119,2.296,143,2.452,144,3.091,145,3.197,153,0.748,154,1.153,172,3.417,173,0.974,174,2.145,175,1.456,178,1.368,180,0.59,181,0.881,182,1.071,226,0.471,236,1.682,239,2.73,347,3.628,349,1.341,437,1.767,474,1.406,517,1.262,519,2.453,528,1.714,529,1.526,556,1.994,578,1.997,593,1.219,603,2.423,604,2.191,644,3.125,654,0.979,662,3.62,696,2.127,708,3.289,760,1.827,822,1.896,910,2.302,1150,1.309,1158,1.573,1276,1.029,1391,2.156,1559,1.448,1654,1.563,1663,1.393,1676,2.461,1759,3.235,1858,3.782,1864,3.236,1886,4.704,1924,1.934,1982,1.309,2381,2.097,2608,4.031,2611,2.942,2615,1.796,2620,3.435,2621,1.934,2622,2.85,2623,2.302,2624,4.781,2634,1.545,2638,5.723,2821,3.843,3074,1.86,3224,2.787,3227,2.767,3304,4.684,3392,2.097,3680,5.598,3682,2.758,3734,2.126,3753,5.809,3757,3.642,3758,6.108,3759,5.187,3760,6.146,3761,6.686,3762,3.642,3773,6.398,4057,1.934,4206,1.117,4218,2.07,4282,1.441,4918,2.07,4919,2.126,5039,2.474,5066,1.997,6536,4.554,6575,2.045,6578,3.272,6589,4.307,6590,1.843,6602,2.579,6606,2.346,6608,2.224,6609,2.126,6610,2.045,6611,1.975,6627,5.045,6824,2.045,6825,2.189,6898,2.579,6921,1.782,6931,2.126,6936,2.449,8004,5.045,8160,2.394,9688,2.097,11135,2.302,11906,2.261,11926,2.261,12060,2.66,12296,2.66,12316,5.889,12317,2.66,12335,5.889,12336,2.66,12447,2.394,12450,3.842,12451,2.449,12452,2.394,12453,2.88,12454,3.292,12455,2.88,12456,2.758,12457,2.88,12458,2.88,12459,2.88,12460,2.88,12461,2.88,12462,5.991,12463,5.534,12464,5.365,12465,2.88,12466,2.88,12467,2.758,12468,2.88,12469,2.88,12470,2.88,12471,2.758,12472,8.209,12473,2.88,12474,2.509,12475,2.66,12476,4.717,12477,6.927,12478,4.357,12479,6.927,12480,2.88,12481,2.88,12482,2.88,12483,4.717,12484,2.88,12485,2.88,12486,2.88,12487,2.88,12488,2.88,12489,2.88,12490,2.88,12491,2.88,12492,2.88,12493,2.88,12494,2.88,12495,2.88,12496,4.717,12497,2.88,12498,2.88,12499,2.509,12500,2.88,12501,2.88,12502,2.88,12503,2.88,12504,2.88,12505,2.88,12506,4.717,12507,2.88,12508,2.88,12509,4.717,12510,2.88,12511,4.717,12512,2.579,12513,2.758,12514,2.88,12515,6.927,12516,5.991,12517,4.517,12518,2.66,12519,5.991,12520,2.88,12521,5.991,12522,2.758,12523,4.717,12524,2.88,12525,2.88,12526,2.88,12527,5.991,12528,2.88,12529,4.717,12530,2.758,12531,2.88,12532,2.88,12533,6.927,12534,2.88,12535,2.88,12536,2.88,12537,2.88,12538,2.88,12539,2.88,12540,2.88,12541,4.717,12542,2.88,12543,2.88,12544,4.717,12545,2.88,12546,2.88,12547,2.88,12548,2.88,12549,2.758,12550,2.88,12551,6.927,12552,2.88,12553,2.88,12554,2.88,12555,2.88,12556,2.88,12557,2.88,12558,2.88,12559,2.88,12560,2.88,12561,2.88]],["title/interfaces/ITaskProperties.html",[105,0.735,12450,4.853]],["body/interfaces/ITaskProperties.html",[3,0.018,4,0.018,5,0.009,7,0.114,30,0.001,31,0.422,32,0.185,33,0.668,47,0.904,55,2.417,83,3.072,95,0.095,99,1.256,101,0.02,103,0.001,104,0.001,105,1.344,107,1.807,112,0.794,119,2.803,153,1.712,180,2.145,239,2.999,603,2.404,644,5.462,654,3.56,1858,4.779,1864,4.916,2622,6.326,2634,5.617,2821,5.266,3224,5.171,3227,3.865,3680,6.764,3734,4.864,3753,5.008,3757,5.088,3758,5.266,3759,4.934,3760,4.934,3761,5.367,3762,5.088,5066,6.07,6921,6.478,8004,7.626,12445,9.76,12446,6.087,12447,5.478,12448,5.602,12449,5.602,12450,7.129,12451,8.903,12452,8.706]],["title/interfaces/ITaskStatus.html",[105,0.735,3753,4.528]],["body/interfaces/ITaskStatus.html",[3,0.019,4,0.019,5,0.01,7,0.123,30,0.001,31,0.453,32,0.182,47,0.922,55,2.931,83,3.22,95,0.103,99,1.35,101,0.02,103,0.001,104,0.001,105,1.376,107,1.942,112,0.833,119,2.833,153,1.84,180,2.085,239,2.669,603,1.626,644,4.786,654,2.407,1858,5.009,1864,4.309,2622,5.543,2634,3.798,2821,4.614,3224,5.42,3227,4.153,3680,4.573,3734,5.226,3753,6.973,3757,8.313,3758,8.605,3759,8.062,3760,8.062,3761,8.77,3762,8.313,5066,6.363,6921,4.38,8004,5.156,12445,9.642,12446,6.539,12447,5.886,12448,6.019,12449,6.019,12450,5.767,12451,6.019,12452,5.886]],["title/interfaces/ITaskUpdate.html",[105,0.735,12448,5.065]],["body/interfaces/ITaskUpdate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.162,33,0.601,47,0.977,55,2.558,83,3.315,95,0.107,99,1.412,101,0.021,103,0.001,104,0.001,105,1.395,107,2.032,112,0.857,119,2.691,153,1.925,180,2.243,239,2.727,603,1.701,644,4.927,654,2.518,1858,6.177,1864,4.402,2622,5.706,2634,3.974,2821,4.75,3224,5.58,3227,4.345,3680,4.785,3734,5.468,3753,5.63,3757,5.719,3758,5.92,3759,5.546,3760,5.546,3761,6.034,3762,5.719,5066,7.845,6921,4.582,8004,5.395,12445,10.13,12446,6.842,12447,6.159,12448,8.03,12449,6.298,12450,6.034,12451,6.298,12452,6.159]],["title/interfaces/ITeamProperties.html",[105,0.735,12562,5.335]],["body/interfaces/ITeamProperties.html",[0,0.328,3,0.017,4,0.017,5,0.009,7,0.109,30,0.001,31,0.686,32,0.132,33,0.464,39,1.925,47,0.828,62,4.204,72,3.248,95,0.155,96,2.656,101,0.019,103,0.001,104,0.001,105,1.043,107,1.717,112,0.768,143,1.593,154,2.066,172,3.087,173,2.117,174,3.845,175,3.165,178,2.973,180,1.283,181,2.587,182,2.328,191,5.925,236,1.164,239,3.01,276,5.365,349,1.131,480,3.04,517,4.198,603,1.438,644,5.759,654,2.876,1669,3.726,1982,2.846,2068,5.206,2500,5.659,2608,3.302,3544,4.834,4206,2.428,4272,5.276,4282,3.133,4283,6.499,4286,8.577,5039,5.619,6588,4.393,6590,4.008,6611,4.294,6914,4.342,6952,4.688,10134,5.206,10135,5.206,11326,5.206,11327,5.455,11948,4.759,12562,8.577,12563,5.996,12564,8.907,12565,9.35,12566,5.607,12567,7.813,12568,5.996,12569,5.996,12570,5.996,12571,5.996,12572,5.996,12573,5.607,12574,5.996,12575,5.996]],["title/interfaces/ITeamUserProperties.html",[105,0.735,12567,5.503]],["body/interfaces/ITeamUserProperties.html",[0,0.326,3,0.017,4,0.017,5,0.008,7,0.108,30,0.001,31,0.538,32,0.149,39,1.908,47,0.678,62,4.167,72,3.22,95,0.155,96,2.64,101,0.019,103,0.001,104,0.001,105,1.037,107,1.702,112,0.763,143,1.579,154,2.054,172,3.068,173,2.098,174,3.822,175,3.137,178,2.947,180,1.271,181,2.572,182,2.308,191,5.899,236,1.154,239,3.151,276,5.757,349,1.126,480,3.026,517,4.179,603,1.425,644,5.976,654,3.631,1669,3.693,1982,2.821,2068,5.16,2500,5.633,2608,3.273,3544,4.792,4206,2.406,4272,5.244,4282,3.105,4283,6.469,4286,8.539,5039,5.602,6588,4.354,6590,3.972,6611,4.256,6914,4.304,6952,4.647,10134,5.16,10135,5.16,11326,5.16,11327,5.407,11948,4.717,12562,7.529,12563,5.943,12564,6.99,12565,8.969,12566,5.557,12567,8.807,12568,5.943,12569,5.943,12570,5.943,12571,5.943,12572,5.943,12573,5.557,12574,5.943,12575,5.943]],["title/interfaces/IToolFeatures.html",[105,0.735,8596,5.191]],["body/interfaces/IToolFeatures.html",[0,0.299,3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,32,0.179,47,0.897,55,2.734,95,0.112,101,0.02,103,0.001,104,0.001,105,0.952,107,2.116,112,0.88,119,2.867,413,2.716,437,1.141,486,2.653,1586,4.939,2017,3.861,2018,4.318,2019,4.163,3878,4.939,8596,9.234,8598,8.445,8872,11.453,8905,11.453,11589,5.957,12576,12.103,12577,12.103,12578,12.103,12579,8.154,12580,7.389,12581,8.154,12582,8.154,12583,8.154,12584,8.154,12585,7.389]],["title/interfaces/IToolLaunchParams.html",[105,0.735,2544,5.503]],["body/interfaces/IToolLaunchParams.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.171,95,0.159,101,0.016,103,0.001,104,0.001,105,1.028,107,2.287,112,0.923,131,3.57,564,3.851,654,2.835,1586,5.337,1836,7.412,1837,7.141,1839,6.18,2525,7.984,2544,9.392,2565,6.857,2589,6.337,12586,8.811,12587,9.53]],["title/interfaces/IToolLaunchStrategy.html",[105,0.735,12588,5.958]],["body/interfaces/IToolLaunchStrategy.html",[3,0.021,4,0.021,5,0.011,7,0.137,8,1.349,26,2.715,27,0.461,29,0.876,30,0.001,31,0.63,32,0.154,33,0.54,35,1.351,36,2.394,39,2.431,95,0.155,99,1.508,101,0.015,103,0.001,104,0.001,105,0.975,107,2.169,271,4.791,1586,6.859,1600,3.398,2486,2.997,2525,10.261,2539,9.842,2540,9.842,2544,10.358,2567,9.771,2572,7.907,2573,9.842,2577,8.909,2589,8.522,2590,7.907,12586,11.324,12588,9.842,12589,9.038,12590,9.038,12591,11.249,12592,9.038]],["title/interfaces/IUserConfig.html",[105,0.735,12244,5.503]],["body/interfaces/IUserConfig.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,47,0.925,101,0.017,103,0.001,104,0.001,105,1.139,107,2.533,112,0.981,11589,7.13,12244,9.984,12250,12.487,12593,10.555]],["title/interfaces/IUserProperties.html",[105,0.735,12594,5.503]],["body/interfaces/IUserProperties.html",[0,0.169,3,0.012,4,0.012,5,0.006,7,0.196,30,0.001,32,0.178,33,0.644,34,0.85,47,0.986,83,3.924,95,0.135,96,1.371,101,0.015,103,0,104,0,105,0.807,107,1.198,112,0.921,119,2.026,143,2.877,144,4.257,154,1.916,168,2.847,172,4.258,173,1.476,174,2.973,175,2.207,178,2.073,180,0.894,181,1.336,182,1.623,236,1.458,239,1.145,276,4.533,349,0.516,437,1.159,529,1.412,644,5.108,651,5.346,652,5.346,653,5.785,654,3.549,655,5.626,662,1.569,822,2.874,834,1.565,984,4.294,1276,1.56,1654,2.37,1660,4.506,1661,4.366,2608,4.136,2611,2.723,2615,4.08,3060,2.174,3078,5.958,4057,2.932,4199,7.455,4200,8.128,4206,1.693,4211,7.039,4294,3.91,4295,3.712,5039,3.431,6578,4.536,6588,3.063,6610,3.1,6611,2.994,6938,2.962,6939,3.063,7368,5.699,9623,3.318,9624,3.63,9625,3.318,9626,3.63,9627,3.804,9628,4.033,9960,8.128,10022,4.033,10026,4.181,11813,4.033,11814,4.033,11815,4.033,12052,4.181,12172,4.181,12173,4.033,12174,4.181,12175,4.033,12177,4.181,12181,6.263,12182,4.033,12195,7.323,12221,3.91,12222,3.712,12566,3.91,12594,7.244,12595,4.614,12596,8.353,12597,8.128,12598,7.931,12599,8.353,12600,6.912,12601,6.912,12602,6.912,12603,4.181,12604,4.181,12605,4.614,12606,4.181,12607,4.614,12608,4.181,12609,4.614,12610,4.181,12611,4.614,12612,4.181,12613,4.614,12614,4.614,12615,6.912]],["title/interfaces/IVideoConferenceSettings.html",[105,0.735,12616,5.958]],["body/interfaces/IVideoConferenceSettings.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.173,47,0.895,95,0.124,101,0.019,103,0.001,104,0.001,105,1.056,107,2.348,112,0.938,119,2.582,437,1.266,1113,7.993,1936,5.058,1952,8.091,2137,10.646,8081,5.48,11592,8.561,12616,10.333,12617,9.785,12618,11.526,12619,9.047,12620,9.785]],["title/classes/IdParams.html",[0,0.231,12621,5.958]],["body/classes/IdParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,34,2.293,47,0.83,95,0.149,101,0.016,103,0.001,104,0.001,112,0.934,135,6.527,138,1.767,142,4.6,143,2.618,144,3.874,145,3.265,148,3.083,150,2.213,153,2.208,245,3.083,248,4.907,257,7.225,3539,4.799,5500,6.707,12621,10.287,12622,9.714,12623,9.714]],["title/interfaces/IdToken.html",[105,0.735,121,4.461]],["body/interfaces/IdToken.html",[3,0.021,4,0.021,5,0.011,7,0.137,30,0.001,31,0.717,32,0.184,33,0.671,39,3.445,47,1.012,101,0.019,103,0.001,104,0.001,105,1.212,107,2.164,112,0.892,121,7.359,123,7.554,135,5.005,653,6.62,4206,4.344,5767,4.595,6540,7.523,11150,10.729,11151,8.337,11152,7.889,11153,11.205]],["title/classes/IdTokenCreationLoggableException.html",[0,0.231,12624,5.958]],["body/classes/IdTokenCreationLoggableException.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.668,30,0.001,31,0.48,32,0.149,33,0.411,34,1.461,35,1.03,39,3.384,47,0.936,59,2.664,95,0.138,101,0.014,103,0.001,104,0.001,124,6.322,135,6.637,177,1.992,180,1.95,182,2.79,191,4.641,226,1.226,284,2.649,292,4.34,345,2.73,349,0.886,379,1.072,437,1.109,603,1.723,1021,4.677,1158,5.712,1271,5.487,1274,2.713,1276,3.402,1277,6.198,2486,2.843,3464,9.355,5586,7.928,5589,5.97,7843,6.537,8368,6.18,8826,4.987,8827,5.203,12350,5.89,12624,9.522,12625,11.957,12626,8.576,12627,8.576,12628,8.576,12629,8.576,12630,7.184,12631,7.928]],["title/injectables/IdTokenService.html",[539,0.901,12632,5.705]],["body/injectables/IdTokenService.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.002,27,0.439,29,0.834,30,0.001,31,0.682,32,0.146,33,0.514,34,0.99,35,1.177,36,2.279,39,2.25,47,0.952,95,0.161,99,0.97,101,0.01,103,0,104,0,105,0.627,121,3.808,124,4.203,135,6.299,177,1.961,226,0.831,227,2.393,236,0.946,239,1.919,262,2.589,349,1.106,379,1.046,437,1.575,528,4.354,529,1.645,539,1.107,541,1.391,556,2.859,603,2.587,608,2.724,653,3.004,1663,2.46,1747,8.363,1772,4.142,1839,2.864,2486,2.772,2555,7.465,2565,4.121,3464,4.323,3541,2.942,4206,1.972,4599,5.085,4601,5.085,4623,4.554,4767,7.153,4786,4.697,5500,3.315,5589,6.079,5767,2.962,6540,5.753,6914,7.17,7141,5.998,7250,5.846,7340,3.61,7815,4.431,8619,4.869,9003,5.639,9732,8.363,9820,4.554,11150,9.507,11152,5.085,11153,8.568,11948,6.512,12624,5.085,12632,7.005,12633,10.492,12634,5.374,12635,8.362,12636,8.362,12637,8.362,12638,5.813,12639,9.549,12640,5.813,12641,8.362,12642,5.813,12643,8.362,12644,5.813,12645,8.362,12646,5.813,12647,5.813,12648,5.813,12649,5.813,12650,4.697,12651,5.085,12652,8.362,12653,5.374,12654,5.374,12655,5.813,12656,5.813,12657,5.813,12658,5.813,12659,4.554,12660,8.362,12661,5.813,12662,5.813,12663,5.813,12664,5.813,12665,5.813,12666,7.731]],["title/modules/IdentityManagementModule.html",[201,1.804,616,5.335]],["body/modules/IdentityManagementModule.html",[0,0.272,3,0.019,4,0.019,5,0.01,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,201,3.067,203,2.882,204,3.096,205,3.186,206,3.173,207,3.16,208,3.816,209,4.354,218,4.144,219,3.121,220,3.048,225,4.109,226,1.145,568,5.105,583,10.869,600,6.472,616,10.889,636,6.059,959,4.614,2774,8.032,3936,6.928,7931,7.407,7932,8.728,8335,9.477,8453,7.942,11597,4.57,12012,6.277,12667,8.012,12668,8.012,12669,8.012,12670,10.207,12671,10.528,12672,10.537,12673,7.407,12674,8.728,12675,6.474,12676,7.009,12677,8.012,12678,8.728,12679,10.419,12680,8.728]],["title/classes/IdentityManagementOauthService.html",[0,0.231,12672,5.335]],["body/classes/IdentityManagementOauthService.html",[0,0.251,2,0.828,3,0.017,4,0.017,5,0.009,7,0.112,8,1.185,9,6.383,27,0.456,29,0.576,30,0.001,31,0.414,32,0.101,33,0.355,35,1.625,36,2.711,47,0.933,51,5.781,78,9.211,87,6.403,94,5.781,95,0.094,101,0.012,103,0.001,104,0.001,143,2.2,145,2.744,153,1.681,274,5.929,333,4.181,556,2.489,600,7.38,933,6.841,982,6.382,986,2.5,1396,6.909,1413,7.052,1909,6.176,2189,5.975,2355,7.599,5500,7.634,8064,7.35,11364,8.645,11597,6.776,11627,8.466,12012,9.308,12672,7.741,12681,6.836,12682,10.984,12683,10.984,12684,9.136,12685,7.394,12686,7.394,12687,9.136,12688,7.394,12689,5.636,12690,7.394]],["title/classes/IdentityManagementService.html",[0,0.231,583,5.503]],["body/classes/IdentityManagementService.html",[0,0.126,2,0.415,3,0.009,4,0.009,5,0.004,7,0.056,8,0.712,9,6.458,27,0.479,29,0.927,30,0.001,31,0.686,32,0.165,33,0.571,34,2.173,35,1.565,36,2.787,39,2.666,47,0.976,51,4.131,55,1.278,56,1.793,59,1.845,70,1.851,85,6.985,87,6.159,94,6.818,95,0.047,98,2.201,99,0.618,101,0.01,103,0,104,0,119,0.755,153,2.601,179,7.084,236,1.381,239,2.625,263,5.194,264,5.194,273,4.526,280,5.831,284,1.834,292,3.005,305,6.228,330,7.428,333,5.352,480,3.304,481,3.267,490,3.514,517,3.8,543,2.996,556,1.871,583,4.798,593,2.199,600,5.273,685,2.512,808,4.231,989,6.606,1202,4.842,1396,4.151,1668,6.472,1669,3.091,1758,8.473,2306,3.783,2768,5.04,2774,5.561,2775,7.707,2896,5.094,4057,6.353,4548,5.194,4699,4.651,7933,3.244,11597,6.788,11738,5.194,11754,7.112,12012,9.324,12691,5.489,12692,5.489,12693,5.489,12694,5.489,12695,7.85,12696,6.866,12697,6.866,12698,5.489,12699,5.489,12700,5.489,12701,9.623,12702,3.708,12703,10.815,12704,5.937,12705,3.708,12706,5.489,12707,3.708,12708,8.49,12709,5.489,12710,5.489,12711,3.708,12712,5.489,12713,5.937,12714,3.708,12715,5.489,12716,7.85,12717,3.708,12718,3.708,12719,3.428,12720,9.999,12721,3.708,12722,8.588,12723,11.586,12724,3.428,12725,7.85,12726,3.708,12727,5.937,12728,3.708,12729,5.937,12730,3.708,12731,2.905]],["title/entities/ImportUser.html",[154,1.456,12029,4.853]],["body/entities/ImportUser.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,27,0.507,30,0.001,31,0.375,32,0.175,33,0.443,47,0.936,49,1.702,95,0.134,96,1.186,101,0.015,103,0,104,0,105,0.722,112,0.84,119,1.668,128,2.696,138,2.25,143,2.79,144,3.043,145,1.858,154,1.431,155,1.44,168,5.701,172,4.001,173,1.276,174,2.662,175,1.908,178,1.793,180,0.773,181,1.155,182,1.404,220,1.642,236,0.702,239,2.908,250,2.915,349,0.691,359,2.59,361,5.219,437,1.06,480,2.276,486,2.466,490,1.53,517,2.566,529,1.221,556,2.065,564,1.325,593,2.479,603,0.867,644,3.741,651,4.412,652,4.412,653,5.466,654,3.391,655,5.024,696,3.233,708,1.793,834,2.895,970,2.087,1276,1.349,1615,6.064,1663,1.826,1841,4.384,2145,2.619,2173,3.776,2356,7.27,2357,3.616,2606,5.155,2608,5.09,2609,7.04,2617,3.139,2685,3.776,2896,4.016,3072,4.215,3078,3.341,4206,2.27,4211,6.286,4294,3.381,4295,3.21,4310,4.769,4602,2.355,4801,3.29,5039,3.761,6054,3.076,6566,3.776,6578,4.061,6588,2.649,6590,2.417,6610,2.681,6818,4.521,6931,4.322,6938,2.562,6939,2.649,7553,3.018,7644,4.679,8548,4.436,8549,3.21,8550,3.381,9623,2.87,9624,3.139,9625,2.87,9626,3.139,9627,3.29,9628,3.488,9802,2.87,9803,2.87,10382,3.29,10742,6.457,10743,5.63,10761,3.076,10762,2.619,10770,5.607,11322,3.616,11326,3.139,12017,5.607,12018,11.586,12019,7.04,12020,8.691,12021,6.238,12022,8.077,12023,7.235,12024,3.29,12025,3.776,12026,3.776,12027,3.991,12028,3.616,12029,4.769,12030,3.991,12031,3.991,12032,3.991,12033,3.991,12034,3.991,12035,3.991,12036,3.991,12037,3.991,12038,5.607,12039,3.991,12040,5.607,12041,3.616,12042,7.463,12043,3.991,12044,3.991,12045,3.991,12046,3.488,12047,3.29,12048,3.991,12049,3.991,12050,3.991,12051,3.991,12052,5.607,12053,3.616,12054,7.04,12055,6.869,12056,7.172,12057,3.991,12058,6.188,12059,3.991,12060,3.488,12061,5.607,12062,3.991,12732,4.316,12733,4.316,12734,4.316,12735,4.316,12736,4.316,12737,4.316,12738,4.316,12739,4.316,12740,6.693,12741,4.316,12742,4.316,12743,4.316,12744,4.316,12745,4.316]],["title/controllers/ImportUserController.html",[259,2.591,12746,5.958]],["body/controllers/ImportUserController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.808,10,1.771,27,0.468,29,0.891,30,0.001,31,0.641,32,0.156,33,0.549,35,1.374,36,2.753,56,4.489,59,1.354,70,4.635,95,0.149,99,0.727,100,1.464,101,0.007,103,0,104,0,119,1.679,138,2.08,150,0.993,177,1.234,223,1.794,226,0.623,236,1.097,239,1,247,1.908,259,1.658,261,2.069,262,2.965,270,6.649,271,4.153,294,6.849,310,5.198,324,4.174,333,3.928,334,2.815,337,2.253,338,2.303,343,2.321,345,1.387,349,1.037,437,1.698,490,3.292,603,0.875,608,2.636,811,3.649,819,4.209,831,7.74,1150,1.733,1559,3.628,2879,6.954,2900,2.463,2901,2.34,4507,5.245,5504,4.313,5948,3.921,6679,7.197,6969,5.004,9230,6.665,10739,7.777,10776,7.777,12029,3.106,12746,5.899,12747,11.741,12748,4.358,12749,4.358,12750,6.743,12751,8.248,12752,8.248,12753,8.248,12754,6.743,12755,8.248,12756,8.248,12757,8.248,12758,4.358,12759,6.743,12760,4.358,12761,4.358,12762,7.777,12763,4.358,12764,4.358,12765,6.743,12766,4.358,12767,4.358,12768,10.493,12769,6.743,12770,4.358,12771,4.358,12772,6.235,12773,4.358,12774,4.358,12775,8.122,12776,6.743,12777,4.358,12778,4.358,12779,8.583,12780,6.743,12781,4.358,12782,4.358,12783,8.122,12784,6.743,12785,4.358,12786,3.813,12787,4.358,12788,4.358,12789,3.651,12790,4.029,12791,3.813,12792,8.583,12793,3.813,12794,4.029,12795,3.651,12796,3.522,12797,5.649,12798,4.358,12799,4.358,12800,3.522,12801,3.813,12802,4.358,12803,4.358,12804,4.358,12805,4.358,12806,5.649,12807,4.358,12808,4.358,12809,4.358,12810,4.358,12811,8.248,12812,4.358,12813,8.248,12814,4.358,12815,4.358,12816,4.358,12817,4.358,12818,4.358,12819,4.358,12820,4.358,12821,4.029,12822,4.358,12823,4.358,12824,4.358,12825,4.358,12826,4.358,12827,4.358,12828,4.358]],["title/classes/ImportUserFactory.html",[0,0.231,12829,6.296]],["body/classes/ImportUserFactory.html",[0,0.159,2,0.524,3,0.011,4,0.011,5,0.006,7,0.071,8,0.854,27,0.528,29,1.013,30,0.001,31,0.696,32,0.18,33,0.596,34,1.469,35,1.44,47,0.609,55,2.444,59,3.222,95,0.138,99,0.781,101,0.008,103,0,104,0,112,0.566,120,3.135,133,2.492,140,2.622,145,1.3,153,1.961,154,2.217,155,2.378,177,1.304,180,1.277,239,2.751,271,4.862,319,3.217,349,0.736,379,0.586,382,3.848,413,2.194,437,0.922,447,7.213,448,4.478,449,5.447,452,4.026,453,5.447,454,5.693,455,4.026,456,4.026,457,4.026,458,3.955,459,4.426,460,4.874,461,6.249,462,5.757,463,7.038,464,2.671,469,2.646,470,4.026,471,2.671,472,5.095,473,5.26,474,4.118,475,4.947,476,3.99,477,2.646,478,3.795,479,4.092,480,3.25,481,2.577,482,2.534,483,2.646,484,5.019,485,2.671,486,3.521,487,4.787,488,2.646,489,7.122,490,4.15,491,6.614,492,2.671,493,4.278,494,2.646,495,2.671,496,2.646,497,2.671,498,2.646,499,2.984,500,2.78,501,2.646,502,6.063,503,2.671,504,2.646,505,4.026,506,3.766,507,4.026,508,2.671,509,2.555,510,2.534,511,2.092,512,2.646,513,2.646,514,2.646,515,2.671,516,2.671,517,1.795,518,2.646,519,1.451,520,2.671,521,3.416,522,2.646,523,2.671,525,2.723,526,2.78,527,2.81,570,2.874,651,2.237,652,2.237,653,2.42,654,1.393,655,2.354,992,2.237,993,2.211,994,2.211,995,2.338,996,2.555,997,3.216,1150,1.862,3072,2.137,3865,6.234,4211,2.945,4602,2.555,6803,3.669,6804,3.784,6813,3.669,9803,3.114,9997,3.274,10742,3.274,12017,3.923,12019,3.57,12020,5.432,12021,3.163,12022,7.789,12023,5.582,12029,3.337,12829,7.974,12830,7.125,12831,4.683,12832,7.125,12833,4.683,12834,6.588,12835,4.097,12836,4.683,12837,4.683,12838,4.683,12839,4.683,12840,4.683,12841,4.683,12842,4.097,12843,4.683]],["title/classes/ImportUserListResponse.html",[0,0.231,12795,5.705]],["body/classes/ImportUserListResponse.html",[0,0.337,2,0.952,3,0.014,4,0.014,5,0.007,7,0.09,27,0.469,29,0.463,30,0.001,31,0.476,32,0.179,33,0.549,34,1.014,47,0.808,55,2.913,56,5.759,59,2.642,70,5.946,94,2.895,95,0.151,101,0.014,103,0,104,0,112,0.675,119,1.211,128,2.397,138,1.969,143,2.209,145,1.652,148,1.888,149,3.235,150,1.356,153,2.85,180,1.524,181,1.592,239,2.877,245,3.346,247,2.605,248,4.518,253,2.913,276,2.53,284,3.537,319,2.686,361,3.362,379,0.744,382,3.266,506,3.145,521,2.357,556,1.499,564,3.516,593,2.204,651,4.062,652,4.062,654,1.77,803,3.47,810,7.525,811,6.446,812,4.85,814,2.991,816,4.553,817,2.86,818,3.332,819,2.088,820,4.16,821,5.492,822,4.896,823,3.898,824,3.169,825,4.16,826,4.16,828,3.742,829,3.303,834,1.865,992,2.842,993,2.809,994,2.809,995,2.971,996,3.247,1447,3.791,1600,2.237,1676,2.715,1761,4.24,1932,4.16,2856,3.169,2857,3.169,3072,4.94,3073,3.791,3074,3.362,3078,2.971,4321,3.61,4507,3.799,5071,3.791,5536,3.791,9623,3.956,9624,4.328,9625,3.956,9626,4.328,10377,4.805,10742,4.16,10743,4.087,10761,4.24,10762,3.61,10774,4.426,11329,4.808,11726,3.696,12019,4.536,12021,4.019,12040,4.985,12041,4.985,12795,7.124,12796,10.132,12844,7.439,12845,5.95,12846,5.95,12847,7.773,12848,5.501,12849,7.564,12850,5.501,12851,5.501,12852,4.985,12853,4.985,12854,4.985,12855,4.985,12856,5.501,12857,5.501,12858,7.862,12859,5.501,12860,4.808,12861,5.501,12862,5.501,12863,4.662,12864,5.501]],["title/classes/ImportUserMapper.html",[0,0.231,12786,5.958]],["body/classes/ImportUserMapper.html",[0,0.221,2,0.727,3,0.015,4,0.015,5,0.008,7,0.099,8,1.085,27,0.426,29,0.811,30,0.001,31,0.583,32,0.142,33,0.5,35,1.251,95,0.159,99,1.084,100,3.781,101,0.011,103,0.001,104,0.001,143,2.015,226,0.929,236,1.472,239,2.076,276,2.763,310,2.816,340,3.123,349,1.163,413,4.011,437,1.531,486,1.955,529,1.838,556,2.622,593,3.856,651,3.104,652,3.104,778,5.022,785,3.244,1242,5.21,1559,3.981,1869,4.087,2618,5.21,2987,7.936,4507,5.029,5256,4.321,7131,5.685,9198,8.366,9227,8.366,9230,7.312,9231,8.819,9286,5.685,10739,9.431,10742,4.543,10743,4.463,12019,4.953,12021,4.389,12029,8.733,12063,9.097,12762,9.431,12786,7.916,12789,5.444,12791,7.916,12796,9.097,12821,6.008,12860,5.251,12865,11.258,12866,9.048,12867,9.048,12868,6.498,12869,6.498,12870,9.048,12871,6.498,12872,5.091,12873,6.008,12874,5.444,12875,5.685,12876,6.498,12877,6.498,12878,6.498,12879,6.498,12880,6.498,12881,6.498,12882,6.498,12883,6.498,12884,6.498,12885,6.498,12886,6.498,12887,6.498,12888,6.008,12889,9.048,12890,6.498,12891,6.498,12892,6.008,12893,6.498,12894,6.498,12895,6.008,12896,6.498,12897,6.498,12898,6.498,12899,6.498,12900,6.498,12901,6.498,12902,6.498,12903,6.498,12904,6.498,12905,6.498,12906,6.498,12907,6.498,12908,6.498,12909,6.498,12910,6.498,12911,6.498]],["title/classes/ImportUserMatchMapper.html",[0,0.231,12874,5.705]],["body/classes/ImportUserMatchMapper.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,27,0.447,29,0.85,30,0.001,31,0.611,32,0.149,33,0.524,35,1.311,95,0.138,99,1.437,101,0.014,103,0.001,104,0.001,310,3.733,349,1.343,361,7.345,413,4.089,486,2.591,529,2.437,785,4.3,1242,6.284,1869,5.416,4321,5.225,4507,5.352,10752,11.646,12022,10.731,12065,10.037,12874,9.143,12912,8.612,12913,10.914,12914,10.914,12915,10.914,12916,8.612,12917,10.914,12918,8.612,12919,10.482,12920,8.612,12921,7.962,12922,8.612,12923,7.962,12924,8.612,12925,7.962,12926,6.747,12927,8.612,12928,8.612,12929,8.612,12930,8.612]],["title/modules/ImportUserModule.html",[201,1.804,12931,5.503]],["body/modules/ImportUserModule.html",[0,0.256,3,0.018,4,0.018,5,0.009,30,0.001,52,3.605,94,3.672,95,0.168,101,0.012,103,0.001,104,0.001,201,3.173,203,2.714,204,2.916,205,3.001,206,2.989,207,2.976,208,4.118,209,3.767,213,9.131,214,5.946,217,7.689,218,3.984,219,2.94,220,2.871,223,4.124,225,3.951,226,1.079,227,3.107,239,1.731,564,2.317,622,9.321,636,4.388,654,2.244,1274,2.387,1362,8.959,1631,4.687,1689,6.993,1731,4.808,1901,4.226,2170,4.226,2606,4.746,2768,4.479,3060,3.287,4507,3.371,5380,8.164,7871,5.912,10952,5.912,12746,9.837,12792,11.848,12793,6.602,12794,6.977,12931,11.526,12932,7.546,12933,7.546,12934,7.546,12935,11.211,12936,7.546,12937,7.546,12938,7.546,12939,7.546,12940,5.183]],["title/injectables/ImportUserRepo.html",[539,0.901,12935,5.958]],["body/injectables/ImportUserRepo.html",[0,0.171,3,0.012,4,0.012,5,0.006,7,0.076,8,0.903,10,3.06,12,3.456,18,3.812,26,2.119,27,0.501,29,0.932,30,0.001,31,0.67,32,0.164,33,0.574,34,1.536,35,1.438,36,2.725,40,3.642,49,1.988,56,2.437,58,3.255,59,2.34,94,3.665,95,0.142,96,2.069,97,2.185,98,2.992,99,0.841,101,0.008,103,0,104,0,143,1.122,154,1.077,155,2.514,173,1.491,180,1.35,226,0.721,236,1.467,239,2.807,262,2.959,276,2.143,310,3.909,349,1.106,382,3.019,437,1.583,479,4.737,480,1.4,486,1.517,490,4.244,529,1.426,539,0.997,541,1.207,593,4.433,603,1.811,605,4.66,608,2.684,644,5.313,654,2.976,679,6.839,685,3.187,686,3.556,687,4.564,711,3.094,712,3.131,713,3.094,714,3.131,716,3.094,717,3.131,718,2.798,722,3.842,767,3.462,1447,4.799,1758,3.949,2031,4.256,2288,5.939,3060,2.196,3078,3.761,3390,3.462,3865,6.59,5071,3.212,5504,3.06,5948,4.38,5950,3.524,6679,3.024,6968,6.426,6969,7.064,6979,5.602,6997,6.59,6998,3.666,6999,3.666,12028,6.31,12029,8.005,12063,8.085,12888,4.66,12926,3.949,12935,6.59,12941,5.041,12942,7.532,12943,9.018,12944,9.018,12945,7.532,12946,7.532,12947,5.041,12948,5.041,12949,5.041,12950,5.041,12951,5.041,12952,5.041,12953,7.532,12954,5.041,12955,6.59,12956,5.041,12957,7.889,12958,5.041,12959,5.041,12960,5.041,12961,5.041,12962,5.041,12963,5.041,12964,5.041,12965,5.041,12966,5.041,12967,5.041,12968,5.041,12969,5.041,12970,5.041,12971,5.041,12972,5.041,12973,5.041,12974,5.041,12975,5.041,12976,5.041,12977,5.041,12978,7.532,12979,5.041,12980,7.532,12981,5.041,12982,5.041,12983,5.041,12984,5.041,12985,5.041,12986,5.041]],["title/classes/ImportUserResponse.html",[0,0.231,12796,5.503]],["body/classes/ImportUserResponse.html",[0,0.32,2,1.055,3,0.013,4,0.013,5,0.006,7,0.082,27,0.511,29,0.423,30,0.001,31,0.528,32,0.18,33,0.452,34,1.357,47,0.895,55,2.028,56,3.851,70,3.976,94,3.875,95,0.151,101,0.013,103,0,104,0,112,0.632,119,1.621,128,3.208,138,2.225,143,2.311,145,2.211,148,1.725,149,3.03,150,1.238,153,2.837,180,0.974,181,2.132,239,3.039,245,3.272,247,2.379,248,4.331,253,2.661,257,7.011,276,2.311,284,2.46,319,3.596,361,5.327,379,0.68,381,1.826,480,1.509,486,1.635,506,2.873,521,2.153,564,3.895,593,2.013,651,5.278,652,5.278,654,1.617,803,3.25,810,4.888,811,2.942,812,3.1,816,4.325,828,3.419,829,3.017,834,2.497,992,2.597,993,2.566,994,2.566,995,2.714,996,2.966,1209,3.017,1447,5.074,1600,2.044,1676,3.635,1761,3.873,1932,3.8,2856,4.242,2857,4.242,3072,5.444,3073,5.074,3074,4.501,3078,3.976,4321,4.832,4507,5.668,5071,5.074,5536,5.074,7110,5.026,9623,3.614,9624,3.954,9625,3.614,9626,3.954,10377,5.865,10742,6.59,10743,6.474,10761,5.675,10762,4.832,10774,5.924,11329,4.393,11726,4.947,12019,7.186,12021,6.367,12040,4.554,12041,4.554,12795,4.554,12796,9.886,12844,11.099,12847,8.656,12848,5.026,12849,8.422,12850,5.026,12851,5.026,12852,4.554,12853,4.554,12854,4.554,12855,4.554,12856,5.026,12857,5.026,12858,7.364,12859,5.026,12860,7.618,12861,7.364,12862,7.364,12863,4.258,12864,5.026,12987,5.436,12988,5.436,12989,5.436,12990,5.436,12991,5.436,12992,5.436,12993,5.436,12994,5.436,12995,5.436]],["title/classes/ImportUserScope.html",[0,0.231,12957,5.958]],["body/classes/ImportUserScope.html",[0,0.148,2,0.753,3,0.01,4,0.01,5,0.005,7,0.066,8,0.806,27,0.52,29,0.95,30,0.001,31,0.711,32,0.172,33,0.585,34,1.146,35,1.466,39,1.169,47,0.874,49,1.713,95,0.134,96,1.848,97,1.883,99,0.725,101,0.007,103,0,104,0,112,0.534,119,1.675,128,2.709,143,2.544,173,1.285,180,1.205,236,1.339,239,2.537,250,4.543,276,1.847,310,1.883,340,2.088,349,1.296,361,5.665,382,3.025,437,1.43,480,1.868,486,2.476,490,3.286,519,1.346,529,2.329,574,6.893,593,3.048,603,2.13,644,4.229,651,3.213,652,3.213,654,2.448,696,1.713,978,6.741,1242,5.773,1663,4.486,1665,6.071,1750,4.703,1841,2.846,1869,2.732,2278,5.56,2288,5.95,4206,1.474,4211,2.732,4310,4.793,4321,4.081,4602,5.786,4691,3.528,5256,5.473,5461,4.178,5487,6.071,5504,4.869,6058,4.543,6059,4.543,6060,4.543,6065,4.543,6066,4.543,6067,2.984,6068,2.934,6069,2.984,6070,2.984,6079,2.934,6080,4.543,6081,2.984,6082,2.934,6083,2.984,6084,2.934,6085,8.241,6968,4.793,9802,4.472,9803,4.472,10742,5.755,10743,2.984,10762,2.636,12019,3.311,12020,6.274,12021,5.56,12024,5.127,12029,3.096,12065,7.764,12872,3.403,12921,4.016,12923,4.016,12925,4.016,12926,5.27,12957,11.313,12996,4.344,12997,6.726,12998,6.726,12999,6.726,13000,6.726,13001,6.726,13002,6.726,13003,6.726,13004,6.726,13005,6.726,13006,6.726,13007,4.344,13008,6.726,13009,4.344,13010,6.726,13011,4.344,13012,6.726,13013,4.344,13014,6.219,13015,6.726,13016,4.344,13017,6.726,13018,4.344,13019,6.726,13020,4.344,13021,6.726,13022,4.344,13023,6.726,13024,4.344,13025,3.639,13026,4.016,13027,4.344,13028,4.016,13029,4.344,13030,4.344,13031,6.726,13032,4.344,13033,8.108,13034,8.568,13035,4.344,13036,6.726,13037,6.726,13038,6.726,13039,6.726,13040,4.344,13041,4.344,13042,4.344,13043,4.344,13044,4.344,13045,4.344,13046,4.344,13047,6.726,13048,4.344,13049,4.344,13050,5.436,13051,4.344,13052,4.344,13053,4.016]],["title/classes/ImportUserUrlParams.html",[0,0.231,12768,5.958]],["body/classes/ImportUserUrlParams.html",[0,0.392,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.387,30,0.001,32,0.129,34,1.969,47,0.816,95,0.147,101,0.016,103,0.001,104,0.001,112,0.918,133,4.041,138,1.717,142,4.521,143,2.573,144,3.807,145,3.209,148,2.996,150,2.151,153,2.146,239,2.986,245,3.03,250,7.806,563,6.86,564,3.548,803,4.716,3814,5.546,4507,5.163,12029,8.235,12768,10.11,12844,10.11,12860,10.092,13054,9.441,13055,9.441]],["title/interfaces/InlineAttachment.html",[105,0.735,1296,5.065]],["body/interfaces/InlineAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,31,0.496,32,0.121,47,1.008,77,5.644,101,0.015,103,0.001,104,0.001,105,1.465,107,2.126,112,0.882,180,2.349,1290,8.263,1291,6.753,1292,9.466,1293,9.992,1294,6.753,1295,4.961,1296,9.028,1297,6.443,1298,9.701,1299,6.443,1300,9.028,1301,6.753,1302,8.263,1303,8.469,1304,8.469,1305,8.263,1306,6.74,1307,6.589,1308,6.589,1309,6.753,1310,6.753]],["title/modules/InterceptorModule.html",[201,1.804,6494,5.705]],["body/modules/InterceptorModule.html",[0,0.294,3,0.02,4,0.02,5,0.01,30,0.001,95,0.16,101,0.014,103,0.001,104,0.001,153,1.966,201,2.899,203,3.111,208,3.168,226,1.237,236,1.407,284,3.38,340,4.157,349,0.893,437,1.119,493,6.258,517,4.196,584,8.264,598,4.98,636,6.364,637,6.163,639,4.059,1663,3.66,1770,4.72,2158,6.242,2365,7.168,3457,7.168,3956,8.929,6164,7.168,6494,9.168,6506,7.651,6507,10.502,6511,8.843,8449,6.593,8453,6.593,11384,6.163,11726,6.797,11940,7.246,13056,8.649,13057,8.843,13058,12.617,13059,9.168,13060,10.502,13061,7.997,13062,8.649]],["title/interfaces/IntrospectResponse.html",[105,0.735,13063,5.958]],["body/interfaces/IntrospectResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.191,33,0.69,47,1.016,51,5.867,55,2.902,101,0.013,103,0.001,104,0.001,105,0.828,107,1.842,108,5.366,112,0.804,119,2.308,133,3.965,1326,8.593,5504,4.9,6227,8.593,7059,9.447,7061,9.447,7083,9.447,7084,9.447,11625,7.899,13063,8.863,13064,7.676,13065,11.149,13066,12.059,13067,12.059,13068,12.059,13069,12.059]],["title/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.231,13070,5.958]],["body/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.282,2,0.93,3,0.019,4,0.019,5,0.01,7,0.126,8,1.279,27,0.437,29,0.647,30,0.001,31,0.465,32,0.146,33,0.399,35,0.998,47,0.929,72,3.772,95,0.135,101,0.014,103,0.001,104,0.001,141,3.969,177,1.953,180,1.912,182,2.703,226,1.188,236,1.352,284,2.567,345,2.645,349,0.858,379,1.039,556,2.968,603,1.669,1021,3.251,1271,5.406,1272,6.046,1274,2.629,1276,3.334,1277,6.126,1715,3.5,1936,6.09,1959,7.609,1961,10.812,2618,6.784,3110,6.51,3246,5.525,7843,6.334,8368,6.09,8369,6.325,8819,5.226,8826,4.832,8827,5.042,8835,6.715,8836,6.715,11956,8.763,13070,9.333,13071,11.782,13072,11.782,13073,8.31,13074,8.31,13075,6.51,13076,7.27,13077,8.31,13078,8.31]],["title/classes/IservMapper.html",[0,0.231,13079,5.958]],["body/classes/IservMapper.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.848,30,0.001,31,0.67,32,0.149,33,0.522,35,1.308,95,0.138,99,1.43,100,2.88,101,0.014,103,0.001,104,0.001,236,1.771,349,1.124,413,4.085,651,4.096,652,4.096,653,4.432,655,5.471,1902,7.043,3078,4.281,4602,6.863,7141,6.861,8529,9.355,8531,5.393,9619,9.148,12021,8.495,13079,9.522,13080,11.957,13081,8.576,13082,10.063,13083,10.063,13084,10.884,13085,8.576,13086,6.93,13087,10.884,13088,8.576,13089,8.576,13090,7.928,13091,7.928,13092,8.576,13093,8.576,13094,8.576,13095,7.928]],["title/injectables/IservProvisioningStrategy.html",[539,0.901,13096,5.705]],["body/injectables/IservProvisioningStrategy.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,27,0.465,29,0.833,30,0.001,31,0.6,32,0.146,33,0.514,34,0.989,35,1.286,36,2.513,47,0.834,95,0.163,99,0.968,100,1.95,101,0.01,103,0,104,0,121,5.472,143,1.292,177,1.529,180,1.497,182,1.888,226,0.83,236,1.592,239,2.602,262,2.588,284,1.793,345,1.848,349,1.172,379,0.726,382,2.953,437,1.666,529,2.363,539,1.106,541,1.389,556,2.696,570,3.562,593,3.094,595,3.65,603,1.166,608,2.467,653,4.318,654,1.726,696,2.289,1378,4.317,1413,3.445,1438,4.222,1547,6.076,1896,4.69,1897,6.732,1899,5.472,1901,3.25,1902,4.678,2026,5.395,2158,3.311,3072,2.649,3541,2.937,4206,1.969,4602,5.34,4691,3.045,4767,7.15,6054,4.136,7141,4.415,7147,5.642,8522,3.859,8529,6.213,9619,6.076,11011,8.385,11444,5.952,11726,5.189,12021,5.642,12046,4.69,12344,7.428,12346,6.41,12347,3.859,12348,3.859,13079,5.078,13096,6.998,13097,5.804,13098,8.353,13099,6.368,13100,5.804,13101,6.75,13102,8.258,13103,5.804,13104,8.353,13105,5.804,13106,6.75,13107,7.961,13108,5.804,13109,5.804,13110,5.078,13111,6.368,13112,5.078,13113,5.366,13114,5.804,13115,5.804,13116,5.366,13117,9.786,13118,5.078,13119,5.366,13120,8.353,13121,5.804,13122,5.366,13123,5.804,13124,5.804,13125,5.804,13126,5.804,13127,5.804,13128,5.804,13129,5.804,13130,5.804,13131,6.75,13132,5.804,13133,6.998,13134,5.804,13135,6.75,13136,5.078,13137,5.366,13138,5.804,13139,5.804,13140,5.804,13141,5.804,13142,5.804,13143,5.804,13144,5.078]],["title/injectables/JwtAuthGuard.html",[539,0.901,13145,5.958]],["body/injectables/JwtAuthGuard.html",[0,0.357,3,0.025,4,0.025,5,0.013,30,0.001,95,0.156,101,0.017,103,0.001,104,0.001,180,2.207,226,1.501,539,1.63,541,2.514,1370,7.81,13145,10.775,13146,10.5,13147,10.5,13148,12.317,13149,9.708]],["title/interfaces/JwtConstants.html",[105,0.735,1379,5.705]],["body/interfaces/JwtConstants.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.174,39,2.399,47,0.978,85,7.205,95,0.113,101,0.018,103,0.001,104,0.001,105,0.962,107,2.14,112,0.886,120,4.908,143,1.985,437,1.443,567,9.76,1376,6.986,1379,10.687,1417,6.798,1419,8.245,1421,5.539,1423,7.471,1426,7.637,1558,6.633,1663,3.773,1716,5.41,2343,6.125,2768,5.293,6227,6.354,7059,6.986,7061,6.986,7083,6.986,7084,6.986,13150,8.918,13151,13.134,13152,11.156,13153,8.918,13154,8.918,13155,7.206,13156,7.471,13157,7.471,13158,8.918,13159,8.918,13160,8.918,13161,7.802,13162,8.918,13163,8.918]],["title/classes/JwtExtractor.html",[0,0.231,13164,5.958]],["body/classes/JwtExtractor.html",[0,0.295,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.315,27,0.356,29,0.676,30,0.001,31,0.615,32,0.119,33,0.417,35,1.044,47,0.892,95,0.152,101,0.014,103,0.001,104,0.001,124,6.046,141,5.746,316,5.891,349,1.133,413,3.704,437,1.124,521,4.346,593,4.064,992,5.242,993,5.18,994,5.18,995,6.005,996,6.564,997,8.262,998,7.412,1009,6.805,1413,5.156,6683,5.212,11468,9.193,11542,9.193,13164,9.6,13165,10.145,13166,8.687,13167,10.973,13168,10.973,13169,8.687,13170,12.029,13171,6.805,13172,8.687,13173,10.973]],["title/interfaces/JwtPayload.html",[105,0.735,1547,4.953]],["body/interfaces/JwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.125,30,0.001,32,0.179,39,2.855,47,1.004,48,3.914,55,2.825,85,5.323,101,0.017,103,0.001,104,0.001,105,1.145,107,1.978,112,0.843,119,2.16,128,3.32,180,1.902,239,1.891,359,4.945,511,3.682,759,5.399,1417,8.089,1421,6.591,1527,9.194,1547,7.718,1558,9.218,1663,5.244,1757,5.48,2343,7.288,3078,4.115,4206,2.796,5105,5.399,6227,8.831,7059,9.709,7061,9.709,7083,9.709,7084,9.709,7090,7.62,7091,7.62,7092,6.66,7093,6.904,7094,5.119,7095,7.62,7096,7.21,7097,9.283]],["title/injectables/JwtStrategy.html",[539,0.901,1358,5.958]],["body/injectables/JwtStrategy.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.205,27,0.412,29,0.783,30,0.001,31,0.563,32,0.137,33,0.482,35,0.912,36,2.139,85,4.901,95,0.171,101,0.013,103,0.001,104,0.001,105,0.819,145,2.107,177,1.389,180,1.802,182,2.469,226,1.085,236,1.234,239,1.741,262,2.471,270,3.716,276,3.226,294,5.054,345,2.416,349,0.784,379,0.949,437,1.3,472,4.011,529,2.147,539,1.331,541,1.817,579,4.042,608,1.749,631,3.894,933,6.493,986,2.566,1174,4.074,1175,6.685,1358,8.796,1359,10.372,1370,5.644,1379,6.357,1380,6.639,1384,6.639,1413,7.126,1427,7.016,1547,8.732,1550,6.357,1551,6.314,1558,7.478,1663,3.211,1815,5.046,2775,5.408,3856,5.945,4550,5.126,5485,6.132,6164,6.586,7129,5.644,9688,4.835,10958,6.639,11625,4.971,13164,6.639,13171,5.945,13174,7.589,13175,8.423,13176,7.589,13177,7.589,13178,10.055,13179,7.589,13180,6.357,13181,7.589,13182,6.132,13183,7.589,13184,7.589,13185,7.589,13186,7.589,13187,7.589,13188,7.589,13189,7.589,13190,7.589,13191,7.589,13192,7.589,13193,7.589,13194,7.589]],["title/classes/JwtTestFactory.html",[0,0.231,7074,5.958]],["body/classes/JwtTestFactory.html",[0,0.261,2,0.861,3,0.018,4,0.018,5,0.009,7,0.117,8,1.216,27,0.415,29,0.599,30,0.001,31,0.431,32,0.155,33,0.369,35,1.219,47,0.975,59,2.389,85,7.33,95,0.129,101,0.013,103,0.001,104,0.001,105,0.83,271,3.008,348,5.064,349,1.048,413,3.967,437,1.561,662,3.19,1376,6.025,1378,5.72,1401,6.442,1413,4.565,1417,5.862,1421,4.777,1546,7.378,1558,7.544,4539,7.732,6227,7.228,7057,10.558,7058,7.11,7059,7.946,7060,8.497,7061,7.946,7062,10.494,7063,10.508,7064,9.378,7065,7.11,7066,7.11,7067,7.11,7068,7.11,7069,8.874,7070,7.11,7071,9.378,7072,9.378,7073,7.11,7074,8.874,7075,10.558,7076,9.378,7077,9.378,7078,7.11,7079,7.11,7080,7.11,7081,7.11,7082,7.11,7083,6.025,7084,6.025,7085,6.728,7086,7.11,7087,7.11,7088,7.11,7089,7.11,13195,10.143,13196,7.69,13197,7.69]],["title/injectables/JwtValidationAdapter.html",[539,0.901,1359,5.503]],["body/injectables/JwtValidationAdapter.html",[0,0.214,3,0.015,4,0.015,5,0.008,7,0.096,8,1.063,27,0.455,29,0.866,30,0.001,31,0.623,32,0.152,33,0.533,34,1.894,35,1.232,36,2.584,47,0.981,85,7.563,94,4.315,95,0.154,101,0.01,103,0.001,104,0.001,142,3.469,145,1.753,153,1.435,177,1.623,226,0.903,262,2.836,333,3.753,379,1.109,437,1.147,478,5.922,521,3.513,539,1.174,541,1.512,603,1.781,608,2.363,639,2.964,933,5.107,992,4.237,993,4.187,994,4.187,995,4.428,996,4.84,997,6.091,1338,4.697,1359,7.167,1371,5.524,1413,7.557,1558,10.03,1579,5.157,1665,5.81,1716,3.831,1818,7.167,2365,7.283,3060,3.863,3831,6.948,3873,10.449,3877,5.524,3880,4.813,3882,5.524,3890,5.524,3891,9.175,3892,6.948,7097,7.759,10958,7.759,11786,5.651,12025,7.759,13165,10.828,13198,6.314,13199,8.869,13200,8.869,13201,8.869,13202,6.314,13203,6.314,13204,8.869,13205,8.869,13206,6.314,13207,8.869,13208,6.314,13209,8.869,13210,8.2,13211,8.869,13212,8.869,13213,6.314,13214,6.314,13215,6.314,13216,6.314,13217,6.314,13218,8.869,13219,6.314,13220,6.314,13221,6.314,13222,8.869,13223,8.869,13224,6.314,13225,6.314,13226,6.314]],["title/classes/KeycloakAdministration.html",[0,0.231,13227,6.296]],["body/classes/KeycloakAdministration.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.353,30,0.001,47,0.991,51,5.31,87,6.331,95,0.138,101,0.014,103,0.001,104,0.001,112,0.867,119,2.221,413,3.69,480,2.391,486,3.283,2017,3.77,2018,4.217,2019,4.065,2133,6.167,2184,7.215,3878,4.823,5589,6.289,8064,8.117,11572,7.256,11589,5.817,11597,6.225,11598,6.698,12082,10.889,12084,9.143,12085,10.037,12257,9.143,12675,8.819,13227,10.09,13228,10.914,13229,10.914,13230,10.914,13231,10.914,13232,10.914,13233,10.914,13234,8.612,13235,6.747]],["title/modules/KeycloakAdministrationModule.html",[201,1.804,12670,5.335]],["body/modules/KeycloakAdministrationModule.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,95,0.167,101,0.015,103,0.001,104,0.001,201,3.228,203,3.214,204,3.454,205,3.554,206,3.54,207,3.525,208,4.463,209,4.582,218,4.443,219,3.482,220,3.4,223,3.68,226,1.278,568,5.694,636,5.197,1112,6.369,1909,4.124,2184,7.487,3539,4.559,10762,6.778,11597,5.098,11598,5.485,12085,9.358,12670,10.654,12675,7.222,13235,7.002,13236,8.937,13237,8.937,13238,8.937,13239,10.263,13240,8.937,13241,10.328,13242,6.648,13243,8.263,13244,8.263,13245,7.487,13246,7.487,13247,6.813,13248,8.937]],["title/injectables/KeycloakAdministrationService.html",[539,0.901,13239,4.953]],["body/injectables/KeycloakAdministrationService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.12,8,0.949,27,0.532,29,0.42,30,0.001,31,0.302,32,0.108,33,0.259,34,0.919,35,1.496,36,2.45,47,0.813,55,1.16,95,0.119,101,0.009,103,0,104,0,112,0.629,143,1.201,145,1.497,177,1.449,226,0.771,236,1.288,262,2.92,349,1.261,379,0.99,413,2.889,437,1.424,480,2.198,486,2.382,519,2.453,539,1.048,541,1.291,579,2.872,603,2.579,608,2.813,639,2.531,662,4.386,696,3.701,1174,2.895,1175,3.585,1570,7.32,1572,5.759,2017,2.36,2133,3.047,2184,4.517,3539,3.231,5589,2.692,7347,3.271,10762,4.804,11597,7.481,11598,8.05,12082,8.661,12084,4.517,12085,4.517,13235,4.224,13239,5.759,13241,9.559,13242,4.011,13243,4.985,13244,4.985,13249,9.998,13250,5.392,13251,9.383,13252,9.383,13253,10.339,13254,10.339,13255,10.339,13256,10.339,13257,10.339,13258,10.339,13259,10.339,13260,10.339,13261,10.339,13262,4.985,13263,9.383,13264,7.918,13265,7.32,13266,5.392,13267,5.392,13268,5.392,13269,5.392,13270,5.392,13271,5.392,13272,5.392,13273,5.392,13274,5.392,13275,7.918,13276,5.392,13277,5.392,13278,5.392,13279,5.392,13280,5.392,13281,5.392,13282,5.392,13283,7.918,13284,5.392,13285,5.392,13286,5.392,13287,7.918,13288,6.398,13289,7.918,13290,9.383,13291,4.985,13292,4.985,13293,5.392,13294,5.392,13295,4.985,13296,4.717,13297,5.392,13298,5.392,13299,5.392,13300,9.383,13301,7.918,13302,5.392]],["title/classes/KeycloakConfiguration.html",[0,0.231,13245,5.705]],["body/classes/KeycloakConfiguration.html",[0,0.33,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,95,0.123,101,0.016,103,0.001,104,0.001,112,0.934,413,3.894,480,2.697,486,3.538,2017,4.252,2158,5.541,11589,6.561,11597,6.707,11598,7.217,12075,10.594,12078,10.872,12079,10.872,13235,7.61,13245,9.851,13303,10.287,13304,12.646,13305,11.759,13306,11.759,13307,9.714,13308,8.498]],["title/modules/KeycloakConfigurationModule.html",[201,1.804,13309,5.705]],["body/modules/KeycloakConfigurationModule.html",[0,0.228,3,0.016,4,0.016,5,0.008,30,0.001,95,0.175,101,0.011,103,0.001,104,0.001,201,2.806,203,2.415,204,2.595,205,2.671,206,2.659,207,2.648,208,3.88,209,3.983,213,8.822,214,5.745,218,3.681,219,2.616,220,2.554,223,3.811,225,3.651,226,0.96,568,5.898,636,3.905,1112,4.785,1274,2.124,1356,8.656,1372,5.119,1375,4.695,1909,3.098,2017,2.939,2158,3.83,3451,4.612,3528,9.437,8335,9.005,8925,4.695,11597,3.83,11598,4.121,11603,9.209,11604,5.261,11605,5.261,11616,10.126,12080,8.098,12670,9.699,12675,5.426,12676,5.875,13235,5.261,13245,5.625,13246,8.874,13303,5.875,13308,5.875,13309,11.897,13310,6.715,13311,6.715,13312,6.715,13313,6.715,13314,11.327,13315,10.828,13316,10.372,13317,6.715,13318,9.267,13319,6.715,13320,6.715,13321,7.754,13322,6.208,13323,6.208,13324,6.208,13325,6.208,13326,6.715,13327,6.715,13328,5.625,13329,6.715]],["title/injectables/KeycloakConfigurationService.html",[539,0.901,13314,5.705]],["body/injectables/KeycloakConfigurationService.html",[0,0.09,3,0.006,4,0.006,5,0.003,7,0.04,8,0.539,10,1.828,27,0.459,29,0.766,30,0.001,31,0.588,32,0.135,33,0.472,34,1.832,35,1.345,36,2.383,47,0.854,59,0.823,74,2.142,95,0.139,101,0.004,103,0,104,0,128,1.068,143,1.874,145,2.149,153,0.602,168,1.512,177,1.265,179,1.736,226,0.379,239,1.345,262,2.828,280,3.09,305,2.591,333,1.904,349,0.8,359,1.59,360,4.335,379,0.563,437,1.707,521,3.739,539,0.596,541,0.634,564,0.814,568,3.736,584,5.877,591,4.374,598,1.526,601,2.076,602,2.142,603,2.604,608,3.093,631,3.547,662,3.095,685,2.481,696,1.045,708,2.436,834,0.831,992,4.51,993,4.457,994,4.457,1113,1.608,1123,2.319,1559,1.98,1609,4.631,1757,2.992,1841,1.736,1909,3.883,2143,1.888,2170,1.484,2279,1.627,2344,2.566,2896,2.7,2900,2.543,3072,2.053,4019,1.667,4595,2.142,4619,1.37,5589,2.247,5948,4.502,6227,3.206,7060,4.912,7101,2.076,7349,3.273,7352,1.971,7997,2.45,8590,2.45,8971,2.02,10762,5.105,11471,6.485,11580,2.762,11597,6.495,11598,6.989,11786,2.867,11953,4.738,12084,8.534,12341,6.544,12343,4.832,12419,1.971,12723,5.421,13239,5.027,13242,6.259,13247,2.02,13249,2.02,13288,8.232,13291,2.45,13292,2.45,13295,2.45,13296,2.319,13314,3.77,13321,7.516,13322,2.45,13323,2.45,13330,9.962,13331,4.5,13332,6.911,13333,6.911,13334,6.911,13335,6.911,13336,4.5,13337,4.5,13338,4.5,13339,6.911,13340,4.5,13341,4.5,13342,4.5,13343,4.5,13344,2.22,13345,7.516,13346,2.65,13347,3.77,13348,4.5,13349,2.65,13350,9.442,13351,2.65,13352,2.65,13353,2.65,13354,2.65,13355,4.5,13356,8.425,13357,2.65,13358,4.5,13359,2.65,13360,8.972,13361,4.5,13362,2.65,13363,2.65,13364,5.864,13365,4.5,13366,2.65,13367,5.864,13368,4.5,13369,8.415,13370,6.39,13371,2.65,13372,4.5,13373,5.864,13374,4.5,13375,2.65,13376,4.5,13377,2.65,13378,2.65,13379,2.65,13380,2.65,13381,2.65,13382,4.5,13383,2.65,13384,2.65,13385,2.45,13386,2.65,13387,2.142,13388,2.65,13389,2.45,13390,4.5,13391,9.697,13392,2.319,13393,3.937,13394,6.046,13395,5.864,13396,4.738,13397,5.864,13398,8.912,13399,4.5,13400,4.5,13401,7.741,13402,4.5,13403,7.741,13404,2.65,13405,8.415,13406,2.65,13407,2.65,13408,2.65,13409,4.5,13410,4.5,13411,4.5,13412,4.5,13413,2.65,13414,4.5,13415,2.45,13416,2.319,13417,2.65,13418,2.65,13419,5.13,13420,5.13,13421,4.5,13422,4.5,13423,2.319,13424,2.65,13425,2.319,13426,2.45,13427,4.16,13428,2.45,13429,2.65,13430,2.65,13431,4.5,13432,4.5,13433,4.5,13434,3.43,13435,2.65,13436,2.65,13437,2.65,13438,2.65,13439,2.65,13440,2.65,13441,4.5,13442,2.65,13443,5.864,13444,5.864,13445,2.65,13446,5.864,13447,2.65,13448,5.864,13449,2.65,13450,2.65,13451,4.5,13452,2.65,13453,4.5,13454,4.5,13455,4.5,13456,6.911,13457,2.65,13458,2.65,13459,4.5,13460,2.65,13461,4.16,13462,2.65,13463,2.65,13464,5.864,13465,4.5,13466,5.864,13467,4.5,13468,2.65,13469,2.65,13470,4.5,13471,2.65,13472,4.5,13473,2.65,13474,2.65,13475,2.65,13476,2.65,13477,2.65,13478,2.65,13479,4.5,13480,4.5,13481,2.65,13482,2.65,13483,4.5,13484,2.65,13485,2.45,13486,2.65,13487,2.45,13488,4.5,13489,2.65,13490,2.65,13491,2.65,13492,2.65,13493,2.65,13494,2.65,13495,2.65,13496,2.65]],["title/injectables/KeycloakConfigurationUc.html",[539,0.901,11603,5.065]],["body/injectables/KeycloakConfigurationUc.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.102,8,1.11,27,0.507,29,0.825,30,0.001,31,0.593,32,0.145,33,0.508,35,1.439,36,2.825,55,2.664,59,3.291,70,3.353,95,0.152,101,0.011,103,0.001,104,0.001,119,2.156,177,2.09,226,0.96,262,3.018,349,1.237,379,1.158,539,1.225,541,1.607,568,4.278,603,2.293,608,2.632,662,4.252,933,6.574,7869,7.982,8640,6.208,8657,6.208,10226,6.472,11597,7.236,11598,7.786,11601,5.261,11603,6.885,11613,8.703,11649,8.304,11655,6.596,13239,8.304,13246,8.874,13247,5.119,13249,5.119,13314,9.565,13315,10.628,13316,10.628,13324,6.208,13325,6.208,13328,5.625,13344,5.625,13347,7.754,13497,12.687,13498,10.593,13499,6.715,13500,6.715,13501,8.558,13502,6.715,13503,6.715,13504,9.257,13505,6.715,13506,6.715,13507,6.715,13508,6.715,13509,6.715,13510,6.715,13511,6.715,13512,6.715,13513,6.715,13514,6.715]],["title/classes/KeycloakConsole.html",[0,0.231,11616,5.335]],["body/classes/KeycloakConsole.html",[0,0.117,2,0.387,3,0.008,4,0.008,5,0.004,7,0.052,8,0.673,10,1.404,27,0.446,29,0.82,30,0.001,31,0.566,32,0.138,33,0.485,35,1.215,36,2.526,47,0.575,52,3.383,53,4.081,55,2.512,70,3.536,72,3.699,78,8.745,95,0.103,101,0.006,103,0,104,0,105,0.764,112,0.445,118,2.202,119,0.703,138,1.63,142,3.956,145,3.107,153,2.86,177,1.296,179,4.639,208,2.055,236,0.913,239,1.287,262,2.837,310,1.498,333,2.997,349,0.731,359,2.074,379,0.702,413,2.181,437,1.159,474,1.476,479,1.295,480,1.558,486,3.276,490,4.327,519,1.071,529,0.978,556,2.418,562,3.853,568,5.71,595,2.174,600,2.147,603,2.116,608,2.51,696,2.213,697,5.151,708,3.386,710,6.593,840,2.634,929,3.33,933,5.527,986,1.168,1220,1.935,1274,1.093,1447,6.116,1454,4.606,1581,4.395,1731,2.202,1759,4.89,1770,3.061,2017,2.456,2034,4.395,2250,2.903,2251,3.68,2344,3.2,2774,5.339,3060,5.085,3443,5.419,3448,7.242,3451,2.374,3452,8.563,3453,6.037,3454,2.051,5510,4.173,5948,7.25,6498,4.395,7094,2.147,7111,2.202,7395,7.709,7869,7.07,7879,7.709,8333,2.634,8390,2.416,10226,6.266,11363,2.708,11596,4.534,11597,6.383,11598,6.868,11599,9.375,11600,2.895,11601,2.708,11602,5.932,11603,7.522,11604,2.708,11605,2.708,11606,4.7,11607,2.895,11608,2.895,11609,8.8,11610,2.895,11611,2.895,11612,4.534,11613,4.277,11614,2.895,11615,2.634,11616,4.395,11617,2.895,11618,5.932,11619,4.7,11620,9.375,11621,4.081,11622,4.7,11623,4.7,11624,9.123,11625,3.675,11626,6.484,11627,3.998,11628,5.598,11629,4.173,11630,2.895,11631,2.895,11632,4.7,11633,6.828,11634,2.895,11635,2.895,11636,4.7,11637,6.828,11638,2.895,11639,2.895,11640,2.895,11641,6.828,11642,6.828,11643,4.395,11644,4.7,11645,2.895,11646,2.895,11647,4.081,11648,4.534,11649,6.519,11650,4.7,11651,2.895,11652,2.895,11653,2.895,11654,4.7,11655,6.386,11656,2.708,11657,2.708,11658,4.7,11659,2.895,11660,2.895,11661,2.895,11662,2.895,11663,2.895,11664,2.895,11665,4.7,11666,2.895,11667,2.895,11668,2.895,11669,4.534,13515,5.61,13516,3.456,13517,3.456,13518,3.456,13519,3.456,13520,3.456,13521,3.456,13522,3.456,13523,3.456,13524,3.456,13525,3.456,13526,3.456,13527,3.456]],["title/injectables/KeycloakIdentityManagementOauthService.html",[539,0.901,12678,5.705]],["body/injectables/KeycloakIdentityManagementOauthService.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.085,8,0.977,27,0.478,29,0.635,30,0.001,31,0.457,32,0.144,33,0.391,35,1.266,36,2.484,47,0.914,51,3.965,87,5.624,95,0.159,101,0.009,103,0,104,0,112,0.647,143,1.249,177,1.929,180,1.461,182,1.825,226,0.802,236,0.913,262,2.757,284,2.517,349,1.206,379,1.019,382,2.896,437,1.558,519,2.525,539,1.079,541,1.343,556,2.654,568,3.574,579,2.988,584,7.891,591,3.17,598,3.23,600,6.951,603,2.42,608,2.213,639,2.633,653,2.9,819,2.86,946,2.603,958,8.422,959,3.23,960,6.213,961,3.675,1075,3.295,1123,4.908,1174,3.012,1175,3.73,1194,1.929,1326,3.998,1327,4.533,1328,4.908,1421,3.485,2193,2.27,2774,7.33,2900,3.17,4619,2.9,5500,3.2,5504,2.279,5589,4.792,7347,4.945,7349,4.081,8339,4.173,8886,3.789,8925,3.922,9368,7.663,9397,4.533,11501,8.398,11519,6.828,11569,3.853,11572,3.73,11573,4.7,11574,3.853,11577,3.853,11580,5.002,11584,6.484,11597,6.009,12672,9.146,12674,4.7,12678,6.828,12681,5.187,12682,9.74,12683,9.74,12684,7.535,12687,7.535,12689,8.031,13239,7.663,13247,4.276,13249,4.276,13387,4.533,13427,7.535,13428,5.187,13528,9.217,13529,9.599,13530,10.535,13531,5.61,13532,8.15,13533,8.15,13534,5.61,13535,5.61,13536,5.61,13537,5.61,13538,11.674,13539,5.61,13540,5.61,13541,5.61,13542,5.61,13543,5.61,13544,5.61,13545,5.61,13546,5.61,13547,5.61,13548,5.61,13549,5.61,13550,5.61,13551,5.61,13552,5.61,13553,5.61,13554,5.61,13555,5.61,13556,5.61,13557,5.187,13558,5.187,13559,4.908,13560,5.187,13561,5.61,13562,5.61]],["title/injectables/KeycloakIdentityManagementService.html",[539,0.901,12680,5.705]],["body/injectables/KeycloakIdentityManagementService.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.66,27,0.491,29,0.945,30,0.001,31,0.661,32,0.168,33,0.566,34,2.183,35,1.418,36,2.744,39,2.906,47,0.974,51,4.621,59,1.711,87,5.715,94,3.912,95,0.12,98,2.005,99,0.563,101,0.006,103,0,104,0,143,1.226,145,1.529,177,0.618,179,5.267,180,0.987,182,1.099,226,0.483,236,1.699,239,2.179,262,2.958,263,4.817,264,4.817,291,2.457,292,4.481,302,4.45,340,1.623,345,1.075,349,1.237,359,2.027,379,0.422,382,3.431,429,3.924,437,1.588,480,2.637,490,2.472,528,1.759,529,2.955,539,0.729,541,0.809,543,8.094,549,2.955,551,3.123,552,2.955,553,2.955,556,0.851,568,2.152,579,1.799,583,9.679,593,2.039,603,1.908,608,3.035,651,3.33,652,3.33,653,3.603,662,1.732,696,2.172,708,2.288,811,2.98,1113,3.341,1150,1.343,1174,1.813,1175,3.661,2145,3.341,2774,5.801,3112,2.246,3113,2.181,3488,2.729,3925,2.729,7932,2.83,7933,2.955,10762,2.049,11597,4.586,12659,2.646,12680,4.613,12691,5.091,12692,5.091,12693,5.091,12694,5.091,12695,7.434,12696,6.445,12697,6.445,12698,5.091,12699,5.091,12700,5.091,12701,7.434,12706,5.091,12709,5.091,12710,5.091,12712,5.091,12715,5.091,12716,7.434,12719,3.123,12720,9.26,12722,8.781,12724,3.123,12725,8.187,12731,2.646,13239,5.848,13242,2.512,13247,2.575,13249,2.575,13262,3.123,13265,5.091,13288,6.497,13528,7.034,13563,5.507,13564,5.507,13565,3.378,13566,3.378,13567,5.507,13568,3.378,13569,5.507,13570,7.747,13571,3.378,13572,5.507,13573,3.378,13574,3.378,13575,3.378,13576,5.507,13577,3.378,13578,3.378,13579,3.378,13580,3.378,13581,3.378,13582,5.507,13583,3.378,13584,5.507,13585,3.378,13586,2.955,13587,10.443,13588,3.378,13589,5.507,13590,5.507,13591,5.507,13592,2.955,13593,2.955,13594,2.955,13595,3.378,13596,5.507,13597,5.507,13598,3.378,13599,3.378,13600,3.378,13601,5.507,13602,3.378,13603,6.971,13604,3.378,13605,6.971,13606,5.507,13607,5.507,13608,3.378,13609,8.041,13610,5.507,13611,5.507,13612,3.378,13613,3.378,13614,2.955,13615,3.378,13616,3.378,13617,3.378,13618,3.378,13619,3.378,13620,3.378,13621,3.378,13622,3.378,13623,3.378,13624,5.507,13625,5.507,13626,6.971,13627,6.971,13628,3.378,13629,2.955,13630,5.091,13631,3.123,13632,3.378,13633,3.378,13634,3.378,13635,3.378,13636,3.378,13637,3.378,13638,3.378,13639,3.378,13640,3.378,13641,3.378]],["title/controllers/KeycloakManagementController.html",[259,2.591,13318,5.958]],["body/controllers/KeycloakManagementController.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.329,30,0.001,35,1.255,36,2.223,55,2.248,72,4.741,78,7.836,95,0.147,101,0.013,103,0.001,104,0.001,138,1.463,177,1.912,208,3.826,223,3.312,226,1.15,236,1.309,259,3.06,261,3.82,262,2.542,345,2.56,349,1.079,529,2.276,579,4.285,603,1.616,608,2.674,708,3.342,929,6.201,1174,4.318,1175,5.348,1274,2.545,1841,6.843,2189,6.5,2250,3.297,2251,4.716,2774,6.843,2900,4.545,3060,5.348,6220,6.946,11597,5.958,11598,6.411,11603,7.77,11604,6.302,11605,6.302,11643,9.62,13318,9.139,13642,10.446,13643,7.437,13644,8.044,13645,12.28,13646,10.446,13647,8.044,13648,10.446,13649,10.446,13650,8.441,13651,8.441,13652,10.446,13653,9.658,13654,10.446,13655,11.601,13656,8.044,13657,8.044,13658,8.044,13659,8.044,13660,8.044,13661,8.044,13662,8.044,13663,8.044]],["title/injectables/KeycloakMigrationService.html",[539,0.901,13316,5.705]],["body/injectables/KeycloakMigrationService.html",[0,0.195,3,0.013,4,0.013,5,0.007,7,0.087,8,0.994,27,0.399,29,0.758,30,0.001,31,0.545,32,0.146,33,0.467,34,1.413,35,0.996,36,2.267,51,4.734,55,1.785,66,7.296,70,4.858,87,2.888,94,5.184,95,0.149,101,0.009,103,0,104,0,143,1.846,145,2.303,177,1.781,179,6.979,226,0.822,236,0.935,262,2.579,349,1.005,379,1.037,425,7.078,429,6.934,434,4.814,437,1.607,438,9.85,480,2.303,486,1.729,521,3.284,529,1.626,539,1.098,541,1.376,568,3.661,579,3.061,595,3.614,603,2.364,608,2.863,617,9.25,696,4.456,697,4.18,708,4.042,710,3.947,786,4.814,821,5.356,824,4.417,871,4.814,886,4.644,992,3.961,993,3.915,994,3.915,1113,3.486,1174,3.085,1175,5.514,1274,1.818,1376,4.502,1540,4.274,2134,4.644,2250,3.988,2251,4.81,2896,3.448,3925,4.644,8064,4.274,8392,4.274,10762,3.486,10792,4.38,11471,6.947,11597,6.077,11598,6.539,11613,8.612,11655,5.909,12731,4.502,13239,7.749,13242,4.274,13247,4.38,13249,4.38,13288,4.644,13316,6.947,13330,9.321,13344,4.814,13347,6.947,13398,5.027,13570,7.255,13586,5.027,13592,5.027,13593,5.027,13594,5.027,13614,5.027,13629,5.027,13664,4.814,13665,7.667,13666,5.746,13667,7.667,13668,5.746,13669,8.293,13670,5.746,13671,4.814,13672,5.746,13673,9.731,13674,5.746,13675,5.746,13676,8.293,13677,5.313,13678,5.746,13679,5.746,13680,5.746,13681,7.667,13682,5.313,13683,7.667,13684,5.313,13685,5.313,13686,5.313,13687,7.667,13688,7.667,13689,9.731,13690,5.746,13691,5.313,13692,5.746,13693,5.746,13694,5.746]],["title/modules/KeycloakModule.html",[201,1.804,12671,5.503]],["body/modules/KeycloakModule.html",[0,0.278,3,0.019,4,0.019,5,0.01,30,0.001,95,0.169,101,0.013,103,0.001,104,0.001,201,3.097,203,2.94,204,3.159,205,3.251,206,3.238,207,3.224,208,4.282,209,4.396,214,6.078,218,4.198,219,3.185,220,3.11,225,4.163,226,1.169,568,5.208,600,5.078,959,4.707,1274,2.586,2774,6.915,3936,7.019,7932,6.848,8335,9.528,8925,5.715,11597,4.663,12670,10.262,12671,11.448,12674,6.848,12675,6.606,12676,7.152,12678,11.677,12680,11.677,13246,8.843,13695,8.175,13696,8.175,13697,8.175,13698,8.175,13699,8.175]],["title/classes/KeycloakSeedService.html",[0,0.231,13315,5.705]],["body/classes/KeycloakSeedService.html",[0,0.161,2,0.529,3,0.011,4,0.011,5,0.006,7,0.072,8,0.86,10,1.921,27,0.449,29,0.675,30,0.001,31,0.486,32,0.132,33,0.416,34,1.222,35,1.251,36,2.608,51,4.221,55,1.544,87,2.376,94,4.221,95,0.149,101,0.008,103,0,104,0,143,2.157,145,1.312,168,2.696,177,1.588,179,4.701,226,0.676,239,2.515,262,2.854,284,2.216,292,2.392,349,1.177,379,0.897,429,5.114,434,3.96,437,1.634,480,1.992,486,1.422,521,4.124,528,2.461,568,3.012,603,2.537,608,3.048,639,2.218,651,2.258,652,2.258,653,2.443,662,2.728,676,5.114,696,4.107,697,5.22,708,3.604,710,3.247,871,3.96,886,3.82,927,9.628,934,4.37,992,4.975,993,4.916,994,4.916,1113,2.868,1274,1.495,1376,3.703,2017,2.069,2033,3.193,2134,3.82,2145,2.868,2158,2.696,2250,3.556,2251,4.373,3060,4.962,3112,3.143,3113,3.053,3488,3.82,3925,3.82,6640,3.82,7869,6.772,8064,3.516,10226,5.017,10361,6.278,10394,6.635,10395,6.635,10410,4.37,10762,2.868,11471,8.114,11597,6.498,11598,6.993,11601,5.622,12069,9.111,12073,9.111,12075,8.114,12080,4.135,12659,3.703,12731,3.703,13235,3.703,13239,7.045,13242,3.516,13247,3.603,13249,3.603,13288,7.01,13308,4.135,13315,6.012,13330,9.967,13344,3.96,13347,6.012,13398,7.589,13419,4.135,13420,4.135,13501,6.635,13570,6.278,13586,4.135,13592,4.135,13593,4.135,13594,4.135,13614,6.278,13629,4.135,13631,4.37,13665,6.635,13667,6.635,13677,4.37,13681,6.635,13682,4.37,13683,6.635,13684,4.37,13685,4.37,13686,4.37,13687,6.635,13688,6.635,13691,4.37,13700,4.727,13701,9.686,13702,9.686,13703,8.675,13704,4.727,13705,4.727,13706,4.727,13707,4.727,13708,4.727,13709,4.727,13710,4.727,13711,7.176,13712,4.727,13713,4.727,13714,4.727,13715,8.675,13716,4.727,13717,4.727,13718,4.727,13719,4.727,13720,4.727,13721,9.686,13722,4.727,13723,4.727,13724,4.37,13725,4.727,13726,4.727,13727,4.727,13728,4.727,13729,4.727,13730,4.727,13731,4.727,13732,7.176,13733,4.727]],["title/classes/LdapAlreadyPersistedException.html",[0,0.231,13734,5.503]],["body/classes/LdapAlreadyPersistedException.html",[0,0.407,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.411,29,0.59,30,0.001,31,0.424,32,0.104,33,0.363,35,0.91,47,0.881,52,5.381,55,1.63,59,2.353,95,0.127,101,0.02,103,0.001,104,0.001,157,4.962,180,2.237,226,1.083,239,2.585,349,1.164,379,0.947,590,6.163,654,3.351,931,4.826,1021,4.407,1271,5.727,1272,6.405,1274,2.396,1276,3.75,1277,6.321,2618,5.782,4483,5.961,4507,5.033,8368,6.451,8369,6.701,8468,10.366,12940,5.202,13734,8.115,13735,9.437,13736,5.634,13737,10.086,13738,10.049,13739,7.575,13740,10.049,13741,7.575,13742,6.345,13743,6.345,13744,6.121,13745,8.413,13746,5.509,13747,6.121]],["title/classes/LdapAuthorizationBodyParams.html",[0,0.231,13748,5.705]],["body/classes/LdapAuthorizationBodyParams.html",[0,0.381,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.524,30,0.001,32,0.175,47,0.972,48,5.804,51,5.947,87,6.144,95,0.142,101,0.015,103,0.001,104,0.001,112,0.891,138,2.328,148,2.855,150,2.05,245,3.453,248,5.101,803,4.988,804,7.334,4206,4.146,5875,8.159,7398,9.065,13748,9.398,13749,13.168,13750,7.871,13751,8.319,13752,8.997,13753,8.997,13754,8.997]],["title/classes/LdapConfig.html",[0,0.231,12342,4.953]],["body/classes/LdapConfig.html",[0,0.301,2,0.449,3,0.009,4,0.009,5,0.005,7,0.061,26,1.658,27,0.505,29,0.313,30,0.001,31,0.225,32,0.174,33,0.639,47,1.007,83,3.15,95,0.113,96,1.103,101,0.016,103,0,104,0,105,0.433,112,0.502,119,1.287,120,1.766,133,1.404,138,2.21,143,3.064,144,4.369,145,1.115,153,0.913,154,1.673,160,6.816,172,4.473,173,1.187,174,2.515,175,1.775,177,1.432,178,1.668,180,0.719,181,1.074,182,1.306,276,1.707,379,0.502,511,1.794,570,2.464,578,2.436,834,2.453,945,2.464,1194,3.321,1306,2.436,1389,2.861,1421,2.494,1600,1.51,1959,2.593,1984,2.986,2500,3.269,2504,1.794,4272,3.451,4310,4.507,4344,2.409,4619,4.589,5504,1.631,5589,3.158,5767,3.223,5787,2.558,5788,2.757,6263,3.395,7204,2.525,7291,2.712,7347,3.837,8548,2.173,8886,2.712,9871,5.126,10377,2.269,11441,6.626,11522,2.986,11523,2.986,11524,2.986,11525,3.06,11569,2.757,11572,2.669,11574,2.757,11577,2.757,11580,2.464,11584,2.712,11625,5.126,12047,3.06,12231,2.861,12339,4.821,12340,3.244,12341,4.205,12342,8.092,12343,7.173,12344,3.978,12345,4.422,12346,5.126,12347,2.669,12348,2.669,12349,3.244,12350,4.344,12351,4.704,12352,3.145,12353,4.704,12354,3.06,12355,3.06,12356,3.06,12357,3.06,12358,3.145,12359,3.06,12360,3.06,12361,3.06,12362,3.145,12363,4.704,12364,3.145,12365,3.06,12366,3.145,12367,3.06,12368,3.06,12369,3.06,12370,3.145,12371,4.344,12372,5.111,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,3.244,12383,3.244,12384,3.145,12385,3.244,12386,3.244,12387,3.244,12388,3.244,12389,3.244,12390,3.244,12391,3.244,12392,3.244,12393,3.244,12394,6.324,12395,6.324,12396,6.324,12397,6.324,12398,6.324,12399,6.324,12400,6.324,12401,6.324,12402,2.986,12403,3.244,12404,3.244,12405,3.244,12406,3.244,12407,3.244,12408,3.244,12409,3.244,12410,3.244,12411,3.244,12412,3.244,12413,3.244,12414,3.244,12415,3.244,12416,3.244,12417,3.06,12418,3.244,12419,2.986,12420,3.145,12421,3.06,12422,3.145,12423,3.06,12424,3.06,12425,3.145,12426,3.06,12427,3.145,12428,3.06,12429,2.92,12430,2.92,12431,2.92,12432,2.986,12433,3.06,12434,3.244,12435,3.06,12436,3.244,12437,3.244,12438,3.244,12439,3.244,12440,3.244,12441,3.06,12442,3.145,12443,3.06,12444,3.145,13755,4.015,13756,4.015,13757,4.015,13758,4.015,13759,4.015,13760,4.015,13761,4.015,13762,4.015,13763,4.015,13764,4.015,13765,4.015,13766,4.015,13767,4.015]],["title/classes/LdapConnectionError.html",[0,0.231,13768,5.958]],["body/classes/LdapConnectionError.html",[0,0.265,2,0.874,3,0.018,4,0.018,5,0.009,7,0.118,8,1.228,27,0.54,29,0.608,30,0.001,31,0.437,32,0.187,33,0.549,35,0.938,47,0.807,55,1.681,59,2.427,95,0.13,101,0.013,103,0.001,104,0.001,112,0.814,138,2.293,177,2.5,180,1.836,182,2.54,226,1.117,340,3.753,347,2.86,379,0.977,382,3.904,595,6.444,816,5.571,819,2.74,946,5.306,984,5.236,986,4.105,1021,4.474,1201,8.304,1202,7.19,1203,3.876,1204,7.286,1208,5.044,1209,4.335,1210,5.044,1211,5.044,1212,5.044,1213,5.044,1214,5.044,1215,4.686,1216,4.454,1222,4.912,11628,7.038,12940,7.038,13768,8.964,13769,10.247,13770,7.81,13771,8.584,13772,7.81,13773,7.81,13774,7.81]],["title/injectables/LdapService.html",[539,0.901,1360,5.705]],["body/injectables/LdapService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.119,27,0.437,29,0.83,30,0.001,31,0.597,32,0.146,33,0.511,35,1.121,36,2.442,47,0.956,51,6.192,87,6.515,95,0.158,99,1.133,101,0.011,103,0.001,104,0.001,177,1.244,226,0.971,236,1.734,239,1.559,262,2.336,292,3.438,338,4.932,345,2.163,349,0.964,379,0.85,437,1.379,529,2.64,539,1.235,541,1.626,603,2.141,608,1.566,697,4.942,986,2.297,1159,4.841,1160,5.323,1175,7.629,1176,5.944,1194,2.336,1274,2.149,1360,7.817,1815,6.205,1909,3.135,2250,3.825,2251,5.18,2940,4.589,3072,5.236,3503,5.49,3539,4.35,3900,5.944,3902,5.944,8008,8.164,8548,6.888,11628,4.666,12342,6.787,12384,5.323,12940,4.666,13434,7.113,13768,8.164,13775,6.794,13776,9.332,13777,6.794,13778,9.332,13779,6.794,13780,9.332,13781,6.794,13782,6.282,13783,6.794,13784,6.794,13785,6.794,13786,6.794,13787,6.794,13788,6.794,13789,6.794,13790,6.794,13791,4.841,13792,6.794,13793,6.794,13794,6.794,13795,6.794,13796,6.794,13797,6.794,13798,8.628,13799,6.794,13800,6.794,13801,6.794,13802,6.794,13803,6.282,13804,5.692,13805,6.794,13806,6.794]],["title/injectables/LdapStrategy.html",[539,0.901,1361,5.958]],["body/injectables/LdapStrategy.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.066,8,0.804,27,0.433,29,0.86,30,0.001,31,0.656,32,0.167,33,0.508,34,0.737,35,1.202,36,2.252,39,1.164,47,0.895,48,5.684,51,5.15,66,6.835,72,1.963,87,5.888,94,5.699,95,0.159,99,0.722,101,0.007,103,0,104,0,105,0.467,120,4.068,128,2.7,141,3.202,142,2.622,177,1.937,179,4.391,180,1.201,182,1.407,217,6.624,226,0.618,227,1.781,236,1.504,239,2.295,253,2.118,262,2.567,270,3.282,292,2.189,294,3.37,324,3.393,349,0.955,358,1.903,379,0.838,437,1.548,479,3.965,480,2.567,521,1.713,529,2.616,539,0.887,541,1.035,556,2.329,579,3.571,593,3.424,603,2.634,604,1.757,608,2.7,622,7.698,631,2.22,654,3.148,933,2.491,986,3.126,1150,1.72,1174,3.599,1175,4.457,1237,2.467,1245,5.301,1274,1.368,1357,8.212,1360,9.249,1361,5.865,1362,6.464,1370,3.217,1381,3.624,1382,3.999,1389,3.082,1517,6.198,1529,6.198,1540,3.217,1663,1.83,1815,5.458,1829,3.389,1902,5.603,2031,2.444,2250,4.525,2398,3.297,3072,5.207,3562,3.389,3609,3.024,4147,3.999,4206,3.136,4211,6.656,4550,2.922,4691,3.517,6164,4.391,6653,2.922,7129,3.217,8119,4.876,8355,5.417,8383,3.297,8548,5.415,10424,3.389,12055,3.217,12137,6.633,12195,2.971,12940,6.35,13171,3.389,13175,5.616,13180,3.624,13748,6.877,13791,3.082,13807,4.325,13808,7.589,13809,6.704,13810,6.704,13811,3.784,13812,4.325,13813,4.325,13814,4.325,13815,6.704,13816,4.325,13817,6.704,13818,4.325,13819,4.325,13820,6.198,13821,4.325,13822,4.325,13823,3.999,13824,4.325,13825,4.325,13826,3.999,13827,3.624,13828,3.999,13829,4.325,13830,3.784,13831,4.325,13832,4.325,13833,3.999,13834,4.325,13835,4.325,13836,3.999,13837,6.198,13838,3.999,13839,3.999,13840,4.325,13841,3.999,13842,7.589,13843,4.325,13844,3.784,13845,4.325,13846,4.325,13847,3.999,13848,6.704,13849,3.784,13850,4.325,13851,3.217,13852,4.325,13853,6.704,13854,4.325,13855,4.325,13856,4.325]],["title/classes/LdapUserMigrationException.html",[0,0.231,13737,5.503]],["body/classes/LdapUserMigrationException.html",[0,0.42,2,0.917,3,0.019,4,0.019,5,0.01,30,0.001,47,0.826,52,5.59,55,1.763,95,0.134,101,0.02,103,0.001,104,0.001,157,5.366,180,2.294,226,1.171,239,1.879,349,1.209,590,6.487,654,3.481,931,5.219,1021,4.578,1271,5.674,1272,6.345,1274,2.591,1276,3.658,1277,5.766,2618,6.738,4483,6.274,4507,3.659,8368,6.391,8369,6.638,8468,9.992,12940,5.626,13734,6.619,13735,6.862,13736,6.093,13737,10.343,13738,9.803,13740,9.803,13742,6.862,13743,6.862,13744,6.619,13745,8.855,13746,5.958,13747,6.619]],["title/modules/LearnroomApiModule.html",[201,1.804,13857,5.503]],["body/modules/LearnroomApiModule.html",[0,0.213,3,0.015,4,0.015,5,0.007,30,0.001,95,0.169,101,0.01,103,0,104,0,201,2.704,203,2.253,204,2.421,205,2.492,206,2.481,207,2.471,208,3.739,209,2.356,217,7.268,218,3.508,219,2.441,220,2.383,222,3.892,223,3.631,225,4.026,226,0.896,227,2.579,358,2.756,636,3.643,1689,6.61,1734,9.01,1741,7.349,1742,7.935,1770,3.419,1882,2.615,2469,2.844,2702,2.958,2941,9.01,2981,3.801,2982,3.508,3669,4.166,4440,4.557,6405,8.811,6670,8.93,6684,10.148,6686,10.148,6762,10.148,7431,8.93,7448,10.148,7710,9.49,7795,6.91,7815,4.776,8126,9.49,8217,9.789,8453,4.776,9706,4.232,10508,5.063,10509,5.063,13857,11.654,13858,6.265,13859,6.265,13860,6.265,13861,8.632,13862,9.01,13863,10.148,13864,10.148,13865,10.148,13866,6.265,13867,8.93,13868,5.481,13869,6.265,13870,6.265,13871,6.265,13872,6.265,13873,5.793,13874,6.265,13875,5.793]],["title/modules/LearnroomModule.html",[201,1.804,13861,4.853]],["body/modules/LearnroomModule.html",[0,0.224,3,0.015,4,0.015,5,0.008,30,0.001,95,0.163,101,0.011,103,0.001,104,0.001,201,2.777,203,2.368,204,2.544,205,2.618,206,2.607,207,2.596,208,3.839,209,3.942,214,5.709,217,7.383,218,3.631,219,2.565,220,2.504,225,3.601,226,0.941,227,2.71,560,2.71,636,3.828,1274,2.083,1741,7.466,1742,8.06,1767,9.152,1768,4.788,1849,9.103,2929,10.308,2941,9.152,2981,3.994,2982,3.686,4922,10.308,5041,11.289,6405,8.95,6707,10.89,6714,10.89,7710,9.64,7795,7.153,8453,5.018,13861,10.288,13862,9.152,13868,5.759,13875,6.086,13876,6.583,13877,6.583,13878,6.583,13879,6.583,13880,9.152,13881,6.583,13882,6.086]],["title/injectables/LegacyLogger.html",[539,0.901,2251,3.074]],["body/injectables/LegacyLogger.html",[0,0.308,3,0.012,4,0.012,5,0.006,7,0.077,8,1.205,27,0.511,29,0.955,30,0.001,31,0.71,32,0.168,33,0.589,35,1.442,47,0.97,59,3.628,72,2.308,95,0.143,101,0.008,102,2.556,103,0,104,0,107,1.22,112,0.602,131,5.242,177,0.931,226,0.727,236,0.827,284,3.104,349,0.783,358,3.336,379,0.636,437,0.981,462,2.823,472,2.688,480,1.412,486,2.281,519,3.926,539,1.004,541,1.217,556,2.284,560,3.122,572,5.94,603,2.508,639,2.387,986,2.563,1021,4.884,1150,4.644,1227,5.515,1237,2.9,1276,2.834,1559,2.237,1962,2.798,2250,5.027,2251,3.423,2306,3.24,2940,3.435,3246,3.381,3854,3.24,4545,5.515,5230,3.198,5504,3.081,5519,5.041,7873,3.284,8390,8.39,8411,8.791,8421,4.449,8422,5.94,8425,4.449,9707,7.326,10424,3.984,10910,6.352,11786,4.831,12088,9.403,12091,4.449,12092,6.633,12093,7.01,12095,7.01,12096,9.29,12098,7.01,12099,8.791,12101,7.01,12103,7.01,13883,12.672,13884,5.085,13885,7.582,13886,9.29,13887,9.29,13888,7.582,13889,7.582,13890,5.085,13891,5.085,13892,5.085,13893,5.085,13894,5.085,13895,7.01,13896,5.085,13897,7.582,13898,5.085,13899,5.085,13900,7.582,13901,7.582,13902,6.633,13903,5.94,13904,7.582,13905,5.085,13906,5.085,13907,4.702,13908,4.109,13909,5.085,13910,4.109,13911,4.702,13912,4.109,13913,5.085,13914,5.085,13915,5.085,13916,5.085,13917,5.085,13918,6.633,13919,5.085,13920,4.702,13921,4.702]],["title/modules/LegacySchoolApiModule.html",[201,1.804,13922,5.503]],["body/modules/LegacySchoolApiModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,52,3.85,95,0.171,101,0.013,102,6.177,103,0.001,104,0.001,128,3.247,201,3.076,203,2.899,204,3.115,205,3.206,206,3.192,207,3.179,208,4.253,209,3.031,214,6.055,218,4.16,219,3.14,220,3.066,222,5.006,223,4.306,225,4.125,226,1.152,654,2.397,945,4.947,1274,2.55,1689,7.121,1902,5.857,2469,3.658,2702,3.805,3541,4.079,5380,8.314,9861,5.28,13922,11.43,13923,8.06,13924,8.06,13925,8.06,13926,9.948,13927,10.932,13928,10.932,13929,6.752,13930,7.453,13931,10.159,13932,8.06,13933,8.06,13934,8.06,13935,7.452]],["title/controllers/LegacySchoolController.html",[259,2.591,13931,5.958]],["body/controllers/LegacySchoolController.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,8,1.103,27,0.377,29,0.717,30,0.001,31,0.516,32,0.169,33,0.442,35,1.106,36,2.421,95,0.16,100,2.237,101,0.011,102,5.718,103,0.001,104,0.001,138,1.674,150,1.517,153,2.397,177,1.685,223,2.742,226,0.952,236,1.497,259,2.533,261,3.162,262,2.706,270,6.198,274,5.522,292,5.757,294,6.582,324,4.658,333,4.463,337,3.442,338,3.52,343,5.618,345,2.12,349,0.951,437,1.471,517,3.529,603,1.338,608,2.122,654,3.137,1559,5.005,1902,5.154,2702,3.144,2901,3.575,3717,5.406,4019,4.188,9861,6.909,13927,7.71,13928,8.835,13930,6.558,13931,8.052,13935,6.157,13936,10.547,13937,6.157,13938,9.751,13939,9.227,13940,6.659,13941,11.713,13942,6.659,13943,11.377,13944,6.659,13945,9.204,13946,6.659,13947,6.659,13948,11.074,13949,6.659,13950,6.659,13951,6.659,13952,7.437,13953,8.052,13954,6.694,13955,7.671,13956,8.523,13957,5.579,13958,5.826,13959,9.649,13960,6.659,13961,6.659,13962,6.659,13963,6.659,13964,6.558,13965,6.659,13966,6.659,13967,6.659,13968,6.659,13969,6.659,13970,9.204,13971,6.659,13972,6.659]],["title/classes/LegacySchoolDo.html",[0,0.231,1902,3.813]],["body/classes/LegacySchoolDo.html",[0,0.221,2,0.73,3,0.015,4,0.015,5,0.008,7,0.099,26,2.51,27,0.555,29,0.508,30,0.001,31,0.631,32,0.185,33,0.673,34,1.545,47,0.92,83,2.785,95,0.132,101,0.011,102,5.666,103,0.001,104,0.001,112,0.72,119,1.846,180,2.02,182,2.121,271,2.55,379,0.815,382,1.967,404,2.66,655,5.241,685,3.837,1655,3.911,1663,3.837,1683,7.134,1715,3.82,1772,6.462,1902,6.636,1982,2.593,2439,3.192,3832,6.229,4332,7.879,4349,4.969,5777,4.742,6531,7.162,6539,6.934,6624,4.849,6938,3.87,7248,4.969,8531,6.558,8535,4.849,9288,5.703,9869,7.597,9870,6.913,9871,7.762,10377,5.893,10835,6.735,12193,7.949,12194,7.585,12195,7.162,12196,7.431,12220,7.291,12222,4.849,12223,5.268,12226,4.969,12231,4.645,13973,13.555,13974,6.519,13975,7.934,13976,9.069,13977,6.519,13978,6.519,13979,6.519,13980,6.519,13981,6.519,13982,6.519,13983,6.519,13984,6.519,13985,6.519,13986,6.519,13987,6.027,13988,6.519,13989,6.519,13990,6.519,13991,6.519,13992,6.519,13993,6.519,13994,6.519,13995,6.519,13996,6.519,13997,5.107,13998,6.519,13999,6.519]],["title/classes/LegacySchoolFactory.html",[0,0.231,14000,6.296]],["body/classes/LegacySchoolFactory.html",[0,0.17,2,0.56,3,0.012,4,0.012,5,0.006,7,0.076,8,0.898,27,0.529,29,1.016,30,0.001,31,0.707,32,0.181,33,0.597,34,1.276,35,1.467,47,0.529,55,2.499,59,3.316,95,0.126,99,0.835,101,0.008,103,0,104,0,112,0.595,120,3.295,133,2.619,140,2.802,143,1.114,153,2.041,154,1.919,155,2.5,177,1.371,180,1.342,236,1.621,271,4.865,319,3.382,349,0.517,379,0.626,382,3.901,413,2.307,437,0.647,447,7.114,448,4.592,449,5.633,452,4.233,453,5.633,454,5.671,455,4.233,456,4.233,457,4.233,458,4.158,459,4.607,460,5.073,461,6.572,462,5.925,463,7.063,464,2.854,469,2.827,470,4.233,471,2.854,472,5.268,473,5.439,474,4.258,475,5.115,476,4.194,477,2.827,478,2.665,479,4.196,480,3.316,481,2.753,482,2.708,483,2.827,484,5.19,485,2.854,486,3.593,487,4.983,488,2.827,489,7.027,490,4.235,491,6.749,492,2.854,493,3.715,494,2.827,495,2.854,496,2.827,497,2.854,498,2.827,501,2.827,502,6.218,503,2.854,504,2.827,505,4.233,506,3.959,507,4.233,508,2.854,509,2.73,510,2.708,511,2.235,512,2.827,513,2.827,514,2.827,515,2.854,516,2.854,517,1.918,518,2.827,519,1.55,520,2.854,521,2.967,522,2.827,523,2.854,526,2.97,655,2.515,708,4.141,1902,2.802,4314,6.397,4316,3.639,4332,3.327,6539,3.327,8531,3.147,9871,3.277,10377,2.827,12193,3.814,12194,3.639,12195,3.436,12201,4.043,12402,3.721,14000,6.925,14001,5.003,14002,5.003,14003,5.003,14004,5.003,14005,5.003,14006,5.003,14007,5.003,14008,5.003,14009,5.003,14010,9.968,14011,3.814,14012,3.814,14013,3.814,14014,5.003,14015,5.003,14016,5.003,14017,5.003]],["title/modules/LegacySchoolModule.html",[201,1.804,5380,4.339]],["body/modules/LegacySchoolModule.html",[0,0.261,3,0.018,4,0.018,5,0.009,30,0.001,95,0.159,101,0.013,102,6.061,103,0.001,104,0.001,201,3.004,203,2.761,204,2.966,205,3.053,206,3.04,207,3.027,208,4.153,209,4.264,214,5.974,218,4.029,219,2.99,220,2.92,225,3.996,226,1.097,227,3.16,560,3.16,1274,2.428,1362,9.002,1897,8.686,1902,5.673,2425,4.154,5380,9.116,9854,10.786,9860,11.57,9861,5.028,13929,6.43,13930,7.219,14018,7.676,14019,7.676,14020,7.676,14021,7.676,14022,11.57,14023,10.786,14024,10.786,14025,7.676]],["title/injectables/LegacySchoolRepo.html",[539,0.901,1362,4.761]],["body/injectables/LegacySchoolRepo.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.8,10,2.71,12,3.061,18,3.376,26,2.531,27,0.533,29,1.005,30,0.001,31,0.734,32,0.176,33,0.619,34,1.57,35,1.537,36,2.589,40,2.078,47,0.825,48,4.737,95,0.134,96,1.833,97,1.863,99,0.717,101,0.007,102,4.631,103,0,104,0,112,0.341,133,2.333,154,1.969,173,1.271,177,1.221,180,1.195,226,0.614,236,1.33,262,2.87,292,2.175,349,1.09,379,0.537,381,1.444,382,3.777,437,1.192,448,3.351,519,1.331,529,1.216,539,0.883,541,1.029,556,1.083,593,3.694,603,2.287,608,1.538,644,5.196,654,1.984,655,4.631,680,4.664,686,3.149,687,5.048,708,1.785,718,2.386,1158,2.053,1274,1.36,1362,4.664,1601,3.459,1902,6.813,1938,2.451,2237,8.864,2239,4.753,2240,4.753,2241,4.753,2242,4.753,2243,4.664,2244,4.664,2245,4.753,2246,4.664,2247,4.753,2248,3.126,2249,5.306,2250,3.777,2251,4.16,2253,4.852,2254,3.062,2256,5.306,2257,3.062,2259,3.062,2261,2.815,2262,4.664,2263,3.062,2265,3.062,2267,4.753,2271,4.753,2273,4.506,2274,4.664,2276,3.062,2278,2.579,2279,2.638,2280,3.062,2282,3.062,2284,3.005,2285,3.062,2291,2.903,4332,4.435,4386,2.738,4387,3.367,4522,2.669,5930,3.126,5931,3.126,5932,3.126,5933,3.126,5934,3.126,5935,3.126,5936,3.126,5937,3.126,5938,3.126,5946,3.276,5948,3.879,6539,4.435,8531,6.639,8548,3.61,9090,3.276,9173,3.76,9871,4.37,10115,4.195,10377,4.62,11119,3.6,12191,8.27,12193,5.085,12194,4.852,12195,4.582,12197,3.197,12220,3.005,13086,7.446,13791,3.062,13930,4.753,14026,9.975,14027,4.298,14028,5.836,14029,6.671,14030,4.298,14031,4.298,14032,5.836,14033,4.298,14034,6.671,14035,4.298,14036,4.298,14037,4.298,14038,4.298,14039,3.973,14040,4.298,14041,4.298,14042,4.298,14043,4.298,14044,4.298,14045,4.298,14046,4.298,14047,3.973,14048,4.298,14049,4.298,14050,3.973,14051,4.298,14052,4.298,14053,4.298,14054,4.298,14055,4.298,14056,4.298,14057,3.973,14058,4.298,14059,4.298,14060,4.298,14061,3.973,14062,4.298,14063,4.298,14064,4.298,14065,4.298,14066,3.973,14067,6.671,14068,4.298,14069,4.298]],["title/injectables/LegacySchoolRule.html",[539,0.901,1703,5.705]],["body/injectables/LegacySchoolRule.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.205,27,0.462,29,0.878,30,0.001,31,0.632,32,0.164,33,0.541,35,1.208,95,0.163,99,1.266,101,0.013,102,6.034,103,0.001,104,0.001,119,2.443,131,4.224,133,4.367,154,2.41,177,1.389,226,1.085,239,3.087,345,2.416,349,1.039,379,0.949,437,1.3,539,1.331,541,1.817,604,3.083,662,4.036,1276,2.372,1597,6.981,1606,6.497,1634,7.972,1655,4.553,1672,7.284,1683,6.981,1684,4.714,1703,8.423,1813,6.493,1817,6.245,1824,5.046,1902,7.332,3349,6.685,3350,5.126,3353,6.586,3356,5.126,3357,6.791,3358,5.644,4386,4.835,6054,5.408,13930,7.165,14070,12.005,14071,7.589,14072,7.589,14073,7.589,14074,7.589]],["title/injectables/LegacySchoolService.html",[539,0.901,1897,4.283]],["body/injectables/LegacySchoolService.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,18,4.227,26,2.578,27,0.498,29,0.948,30,0.001,31,0.682,32,0.166,33,0.584,34,0.989,35,1.419,36,2.803,47,0.93,48,5.082,95,0.136,99,0.968,101,0.01,102,5.38,103,0,104,0,145,2.717,154,1.241,177,1.529,226,0.83,227,2.39,262,3.002,349,1.172,379,1.045,437,1.528,480,1.612,486,1.746,502,3.222,539,1.106,541,1.389,593,3.094,603,1.678,608,2.871,654,2.484,655,2.917,1221,3.562,1362,7.483,1897,5.253,1902,7.378,4206,2.834,6164,7.011,6779,7.86,9861,8.159,12137,6.75,12196,8.876,13086,9.545,13630,7.723,13826,7.723,13930,5.952,14023,10.196,14047,5.366,14075,12.456,14076,5.804,14077,8.353,14078,8.353,14079,8.353,14080,8.353,14081,8.353,14082,5.366,14083,5.804,14084,8.353,14085,5.804,14086,8.353,14087,5.804,14088,8.353,14089,5.804,14090,5.804,14091,8.353,14092,5.804,14093,8.353,14094,5.804,14095,8.353,14096,5.804,14097,5.804,14098,8.353,14099,5.804,14100,5.804,14101,8.353,14102,5.804,14103,5.804,14104,5.804,14105,5.804]],["title/injectables/LegacySchoolUc.html",[539,0.901,13927,5.705]],["body/injectables/LegacySchoolUc.html",[0,0.182,3,0.012,4,0.012,5,0.006,7,0.081,8,0.944,27,0.422,29,0.802,30,0.001,31,0.577,32,0.141,33,0.494,35,1.122,36,2.192,39,3.088,47,0.915,52,2.555,95,0.146,99,0.892,101,0.009,102,5.177,103,0,104,0,119,2.53,128,2.155,131,2.948,177,2.009,226,0.765,236,1.28,239,2.634,262,2.515,349,0.813,379,0.984,437,1.608,519,2.438,539,1.042,541,1.28,556,2.765,560,2.202,593,2.915,603,2.446,608,2.865,643,2.377,654,3.622,928,4.332,1612,3.245,1663,2.263,1695,5.444,1896,4.323,1897,6.477,1899,5.156,1902,6.819,1904,6.361,2469,2.428,3541,2.707,4206,3.723,4513,8.457,4514,8.828,4515,9.591,4520,6.651,4522,6.818,4526,4.191,4529,4.191,4532,5.855,4533,4.68,4535,6.886,4536,4.945,4537,4.945,4538,4.945,4684,8.17,7815,4.077,9861,7.19,13927,6.594,13930,5.609,13938,7.277,13939,8.17,13956,8.87,13958,4.68,13964,7.339,14011,8.751,14012,8.751,14013,8.751,14106,10.977,14107,5.349,14108,7.871,14109,5.349,14110,7.871,14111,5.349,14112,7.316,14113,7.871,14114,5.349,14115,4.945,14116,5.349,14117,4.945,14118,4.68,14119,5.349,14120,4.945,14121,3.979,14122,7.871,14123,6.361,14124,7.871,14125,7.277,14126,5.349,14127,5.349,14128,5.349,14129,7.871,14130,10.299,14131,4.945,14132,5.349,14133,5.349,14134,6.594,14135,5.349,14136,6.594,14137,4.481,14138,4.945,14139,5.349,14140,5.349]],["title/modules/LessonApiModule.html",[201,1.804,14141,5.503]],["body/modules/LessonApiModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.167,101,0.015,103,0.001,104,0.001,201,3.251,203,3.265,204,3.509,205,3.611,206,3.596,207,3.581,208,4.495,209,3.414,218,4.487,219,3.537,220,3.454,222,5.639,223,4.644,225,4.449,226,1.298,259,3.454,1689,7.343,2469,4.121,2702,4.286,13862,10.009,14141,11.311,14142,9.079,14143,9.079,14144,9.079,14145,11.274,14146,9.079,14147,10.737,14148,9.079]],["title/entities/LessonBoardElement.html",[154,1.456,2633,5.503]],["body/entities/LessonBoardElement.html",[0,0.323,3,0.022,4,0.022,5,0.011,7,0.144,27,0.389,30,0.001,32,0.13,95,0.159,96,2.612,101,0.016,103,0.001,104,0.001,112,0.922,138,1.729,154,2.481,155,3.173,173,2.812,180,1.704,181,2.545,403,5.277,2503,5.373,2604,9.093,2622,6.895,2623,6.647,2626,8.27,2628,7.965,2633,9.379,2677,5.89,2972,7.247,3013,9.723,5039,4.363,5040,8.318,12467,9.723,14149,11.606,14150,8.79,14151,9.508]],["title/controllers/LessonController.html",[259,2.591,14147,5.958]],["body/controllers/LessonController.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.134,8,1.332,10,4.931,27,0.363,29,0.69,30,0.001,31,0.496,32,0.121,33,0.425,35,1.064,36,2.364,95,0.166,100,2.975,101,0.015,103,0.001,104,0.001,138,1.611,150,2.018,177,1.622,223,3.647,226,1.267,259,3.37,261,4.206,262,2.66,270,6.231,294,6.588,333,3.749,337,4.579,338,4.682,343,4.718,345,2.82,349,0.915,437,1.146,608,2.042,1559,4.887,2702,4.182,2879,7.277,2901,4.756,5091,5.006,14145,10.168,14147,9.719,14152,8.859,14153,7.421,14154,9.97,14155,11.11,14156,8.859,14157,8.859,14158,8.859,14159,7.421,14160,8.859,14161,8.19]],["title/classes/LessonCopyApiParams.html",[0,0.231,6458,5.705]],["body/classes/LessonCopyApiParams.html",[0,0.388,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.38,30,0.001,32,0.127,33,0.548,34,1.946,47,0.806,95,0.145,100,3.837,101,0.015,103,0.001,104,0.001,112,0.907,138,1.686,148,2.941,149,4.346,150,2.111,153,2.816,249,4.622,253,4.537,803,4.662,1390,8.951,1858,5.917,1864,4.231,2418,6.711,2624,5.104,2634,5.362,2856,6.085,2857,6.085,3304,5.704,6223,9.995,6458,9.571,7101,8.951,10768,8.107,14162,11.425,14163,8.568,14164,8.568]],["title/injectables/LessonCopyUC.html",[539,0.901,13863,5.705]],["body/injectables/LessonCopyUC.html",[0,0.195,3,0.013,4,0.013,5,0.007,7,0.087,8,0.992,26,2.568,27,0.462,29,0.828,30,0.001,31,0.596,32,0.145,33,0.511,35,1.278,36,1.761,39,1.541,95,0.16,99,0.956,101,0.009,103,0,104,0,119,1.166,177,2.066,226,0.819,227,2.359,236,1.346,239,3.015,262,2.129,349,0.592,379,1.035,437,1.636,519,3.496,529,2.341,539,1.095,541,1.372,591,4.677,603,2.72,608,2.453,643,2.547,928,3.153,986,1.937,1021,2.241,1113,5.894,1158,2.737,1612,3.476,1667,4.63,1695,5.624,1741,7.356,1742,7.942,1864,3.941,1869,3.604,2017,2.508,2018,2.806,2019,2.705,2020,3.651,2418,3.366,2468,3.401,2469,2.601,2622,5.964,2634,2.689,2935,6.933,2943,10.157,2945,8.818,2951,9.498,2958,10.872,2963,6.274,2981,3.476,2982,3.209,2985,4.63,3027,5.013,3028,5.013,3029,5.298,3546,6.484,4644,4.368,4691,3.006,5066,5.894,6422,6.933,6460,9.837,6726,6.688,6764,5.013,6765,8.913,6771,5.013,6777,5.013,6778,5.013,6779,3.7,13863,6.933,13868,5.013,14165,11.76,14166,8.276,14167,8.276,14168,5.73,14169,5.73,14170,8.276,14171,5.73,14172,5.73,14173,8.276,14174,5.73,14175,7.652,14176,8.982,14177,5.298,14178,5.73,14179,5.298,14180,5.013,14181,5.73,14182,6.484,14183,5.298,14184,5.73,14185,5.73,14186,5.73,14187,5.73,14188,5.73,14189,5.73,14190,5.73,14191,5.73,14192,8.276,14193,5.73,14194,5.73,14195,5.73,14196,5.73,14197,5.73,14198,8.276,14199,4.8,14200,5.73]],["title/entities/LessonEntity.html",[154,1.456,2622,3.599]],["body/entities/LessonEntity.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.137,26,2.083,27,0.462,30,0.001,31,0.508,32,0.154,33,0.313,47,0.931,55,2.243,95,0.15,96,1.145,101,0.02,103,0,104,0,105,1.216,112,0.517,119,1.326,138,2.05,143,2.189,144,2.146,145,2.226,153,1.823,154,1.392,155,1.391,172,3.598,173,1.233,174,2.591,175,1.843,178,1.732,180,0.747,181,1.116,182,1.356,226,0.596,236,1.696,239,0.956,316,3.497,349,1.267,437,1.586,474,1.781,480,2.226,486,2.412,529,1.843,556,2.02,563,3.867,603,1.308,604,1.694,662,1.311,696,1.644,834,1.307,971,2.294,1150,1.658,1158,1.991,1194,3.116,1203,2.894,1276,1.303,1600,1.567,1654,1.979,1676,2.973,1858,3.112,1864,4.174,1882,1.74,1982,1.658,2193,4.217,2608,4.81,2611,4.946,2615,2.275,2620,4.15,2621,2.449,2622,4.791,2624,3.582,2625,4.046,2634,3.057,2638,4.267,2742,4.791,2820,3.877,3304,4.003,3414,6.185,3433,5.713,3539,1.701,3567,2.914,3568,2.914,4057,3.826,4218,2.622,4282,1.825,4914,2.558,4918,2.622,4919,2.692,5039,1.913,5064,6.754,5075,2.97,5091,2.356,5098,4.15,5103,6.951,5115,2.97,5121,2.97,5126,2.97,5698,7.159,6432,5.331,6435,5.713,6553,4.207,6575,2.589,6585,6.62,6586,2.772,6587,4.267,6589,4.097,6627,4.15,6628,4.331,6653,4.4,6815,3.647,6824,2.589,6825,2.772,8497,4.642,10844,6.122,11875,4.642,11876,3.032,11877,5.108,11878,3.032,11879,4.554,11880,7.134,11881,4.642,11882,2.97,11883,4.642,11884,4.642,11885,4.642,11886,3.032,11887,4.642,11888,2.772,11889,4.642,11890,4.642,11891,3.032,11892,3.032,11893,3.032,11894,4.554,11895,4.554,11896,4.738,11897,4.738,11898,4.738,11899,4.738,11900,5.605,11901,2.914,11902,4.738,11903,3.032,11904,3.032,11905,3.032,11906,2.863,11907,3.032,11908,3.032,11909,4.738,11910,3.032,11911,3.032,11912,6.593,11913,5.832,11914,2.97,11915,3.032,11916,3.032,11917,3.032,11918,3.032,11919,3.032,11920,3.032,11921,3.032,11922,3.032,11923,3.032,11924,3.032,11925,3.032,11926,2.863,11927,3.032,11928,3.032,14201,4.169,14202,4.169,14203,4.169,14204,4.169,14205,4.169,14206,4.169,14207,4.169,14208,4.169,14209,4.169]],["title/classes/LessonFactory.html",[0,0.231,14210,6.296]],["body/classes/LessonFactory.html",[0,0.167,2,0.552,3,0.012,4,0.012,5,0.006,7,0.075,8,0.888,27,0.528,29,1.013,30,0.001,31,0.705,32,0.181,33,0.594,34,1.516,35,1.461,47,0.523,55,2.487,59,3.295,95,0.113,99,0.822,101,0.008,103,0,104,0,112,0.588,120,3.259,133,2.59,140,2.761,145,1.369,153,2.023,154,2.267,155,2.472,177,1.356,180,1.327,271,4.922,319,3.344,349,0.509,379,0.617,382,3.889,413,2.281,437,1.151,447,7.277,448,4.566,449,5.591,452,4.186,453,5.591,454,5.775,455,4.186,456,4.186,457,4.186,458,4.112,459,4.566,460,5.028,461,6.543,462,5.887,463,7.103,464,2.812,469,2.786,470,4.186,471,2.812,472,5.229,473,5.399,474,4.226,475,5.077,476,4.148,477,2.786,478,2.626,479,4.173,480,3.301,481,2.713,482,2.668,483,2.786,484,5.151,485,2.812,486,3.577,487,4.939,488,2.786,489,7.001,490,4.216,491,6.719,492,2.812,493,4.413,494,2.786,495,2.812,496,2.786,497,2.812,498,2.786,499,3.141,500,2.926,501,2.786,502,6.184,503,2.812,504,2.786,505,4.186,506,3.915,507,4.186,508,2.812,509,2.69,510,2.668,511,2.202,512,2.786,513,2.786,514,2.786,515,2.812,516,2.812,517,1.89,518,2.786,519,1.527,520,2.812,521,2.934,522,2.786,523,2.812,526,2.926,1864,4.28,2622,3.915,2634,2.314,3414,4.659,5064,5.088,6790,4.13,6838,4.558,6840,4.558,10844,5.003,11879,3.446,11880,3.229,14210,8.227,14211,4.93,14212,4.93,14213,7.408,14214,4.93,14215,4.93,14216,4.93,14217,4.93]],["title/modules/LessonModule.html",[201,1.804,13862,5.065]],["body/modules/LessonModule.html",[0,0.256,3,0.018,4,0.018,5,0.009,30,0.001,95,0.168,101,0.012,103,0.001,104,0.001,201,2.976,203,2.709,204,2.911,205,2.996,206,2.983,207,2.971,208,4.115,209,4.224,214,5.943,218,3.979,219,2.934,220,2.865,225,3.946,226,1.077,227,3.101,560,3.101,1163,4.737,1274,2.383,1713,6.589,1742,8.39,2943,11.537,2981,4.57,2982,4.218,3530,9.526,3538,3.712,3539,3.074,5051,10.789,6405,9.316,8479,11.205,8483,9.316,13862,10.677,13880,9.526,13882,6.964,14218,7.532,14219,7.532,14220,7.532,14221,7.532,14222,11.205,14223,7.532]],["title/injectables/LessonRepo.html",[539,0.901,1742,4.461]],["body/injectables/LessonRepo.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.089,8,1.01,10,3.422,12,3.865,13,6.127,18,4.263,26,2.735,27,0.512,29,0.951,30,0.001,31,0.684,32,0.174,33,0.586,34,1,35,1.467,36,2.747,39,2.266,40,4.073,42,6.127,59,1.824,95,0.144,96,1.613,98,3.486,99,0.98,101,0.01,103,0,104,0,119,1.195,120,3.706,154,1.255,155,2.811,173,1.737,180,1.509,226,0.84,236,0.955,239,1.347,262,2.978,349,1.177,361,3.318,382,3.247,437,1.58,479,4.895,539,1.115,541,1.406,556,1.479,608,2.626,662,3.097,679,7.174,685,3.564,686,3.976,687,4.984,711,3.604,712,3.647,713,3.604,714,3.647,716,3.604,717,3.647,718,3.259,767,4.033,1742,5.518,1864,3.12,2031,4.76,2622,6.022,2634,5.05,2742,3.104,3414,3.693,3635,4.033,4451,3.741,4455,4.033,5091,6.081,5103,4.85,5504,3.422,5948,4.898,5950,4.105,6845,4.476,6849,4.476,6968,7.019,10458,7.788,10463,7.369,10464,5.429,10844,3.966,11880,5.518,14224,5.872,14225,8.423,14226,8.423,14227,8.423,14228,5.872,14229,8.423,14230,5.872,14231,5.872,14232,5.872,14233,5.872,14234,7.369,14235,5.872,14236,5.872,14237,5.872,14238,5.872,14239,5.872,14240,5.872,14241,5.872,14242,5.872,14243,5.872,14244,5.872,14245,5.872,14246,5.872,14247,5.872]],["title/injectables/LessonRule.html",[539,0.901,1704,5.503]],["body/injectables/LessonRule.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.074,8,0.878,27,0.485,29,0.922,30,0.001,31,0.663,32,0.166,33,0.568,35,1.382,95,0.14,101,0.008,103,0,104,0,119,2.664,131,3.679,145,2.449,154,2.972,177,1.615,226,0.695,236,0.79,239,3.19,349,1.188,379,0.916,437,1.531,529,1.374,539,0.97,541,1.163,603,2.684,604,1.974,662,3.484,1276,1.519,1450,3.462,1559,5.516,1606,5.316,1609,7.593,1610,6.028,1615,2.948,1616,3.23,1624,6.058,1625,4.799,1634,6.882,1655,2.915,1672,4.445,1699,9.293,1700,8.554,1704,5.92,1813,4.732,1817,4.551,1824,3.23,1864,4.103,2622,7.019,3073,4.668,3074,2.745,3193,3.095,3349,4.871,3350,3.281,3353,4.799,3356,3.281,3357,4.949,6227,3.462,6585,5.769,6857,4.25,6859,4.07,6860,6.41,14248,4.858,14249,7.327,14250,7.327,14251,7.327,14252,7.327,14253,7.327,14254,4.858,14255,7.327,14256,4.858,14257,7.327,14258,4.858,14259,4.858,14260,4.858,14261,7.327,14262,4.858,14263,7.327,14264,4.858,14265,6.774,14266,4.858,14267,4.858,14268,9.081,14269,4.858,14270,4.858,14271,4.492,14272,7.327,14273,7.327,14274,4.858,14275,9.822,14276,8.155,14277,7.327,14278,7.327,14279,4.858,14280,4.858,14281,4.492,14282,4.858]],["title/classes/LessonScope.html",[0,0.231,14234,5.958]],["body/classes/LessonScope.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,8,1.213,26,2.553,27,0.538,29,0.938,30,0.001,31,0.675,32,0.179,33,0.578,35,1.448,95,0.128,99,1.278,101,0.013,103,0.001,104,0.001,112,0.803,119,2.619,180,1.813,310,3.32,349,1.045,382,3.78,480,2.127,486,2.305,519,2.373,603,2.585,1864,2.837,2288,6.724,2622,4.049,3414,4.818,5504,5.529,6058,6.834,6059,6.834,6060,6.834,6065,6.834,6066,6.834,6067,5.262,6068,5.175,6069,5.262,6070,5.262,6079,5.175,6080,6.834,6081,5.262,6082,5.175,6083,5.262,6084,5.175,6085,6.834,6845,7.713,7203,6.071,9338,9.354,9342,9.354,10292,6.191,14234,11.258,14283,11.329,14284,9.354,14285,9.354,14286,7.083,14287,7.083,14288,6.702]],["title/injectables/LessonService.html",[539,0.901,5051,5.335]],["body/injectables/LessonService.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.103,8,1.117,12,4.277,26,2.889,27,0.509,29,0.967,30,0.001,31,0.696,32,0.17,33,0.596,35,1.444,36,2.831,39,2.865,95,0.145,98,4.026,99,1.131,101,0.011,103,0.001,104,0.001,177,1.706,226,0.97,227,2.793,262,3.023,349,1.283,379,1.166,437,1.377,510,3.671,539,1.234,541,1.624,603,1.872,608,2.771,1163,4.266,1742,8.135,2622,6.353,2634,4.374,3538,3.342,3539,2.768,5051,7.302,5064,6.402,5066,4.115,5091,6.018,6365,9.065,6842,8.618,6843,8.618,6845,5.17,14180,5.934,14289,6.783,14290,9.321,14291,9.321,14292,9.321,14293,6.783,14294,6.783,14295,9.321,14296,6.783,14297,9.321,14298,6.783,14299,9.321,14300,6.783,14301,6.783,14302,9.321,14303,6.783,14304,6.783,14305,6.783,14306,6.783,14307,9.321,14308,6.783,14309,6.783,14310,6.783,14311,9.321,14312,6.783,14313,6.783]],["title/injectables/LessonUC.html",[539,0.901,14145,5.705]],["body/injectables/LessonUC.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,10,4.381,26,2.845,27,0.442,29,0.84,30,0.001,31,0.604,32,0.147,33,0.517,35,1.015,39,2.273,95,0.159,99,1.409,101,0.014,103,0.001,104,0.001,142,3.305,143,1.881,177,1.974,226,1.208,239,1.939,262,2.602,349,0.873,379,1.348,437,1.093,539,1.427,541,2.023,560,3.479,603,2.166,608,2.485,643,3.755,928,4.65,933,4.865,1150,3.36,1612,5.126,1695,6.984,1793,5.126,2455,6.146,2469,3.835,2473,5.907,2634,5.06,3074,4.775,5051,10.522,5066,7.205,5091,4.775,6585,4.963,14145,9.032,14314,8.449,14315,8.449,14316,9.433,14317,8.449,14318,8.449,14319,8.449,14320,6.828,14321,8.449,14322,8.449,14323,8.449]],["title/classes/LessonUrlParams.html",[0,0.231,14154,5.335]],["body/classes/LessonUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,2634,5.551,3814,5.762,5066,7.705,14154,9.266,14324,9.809,14325,9.809]],["title/classes/LessonUrlParams-1.html",[0,0.192,708,2.352,14154,4.435]],["body/classes/LessonUrlParams-1.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,2634,5.551,3814,5.762,5066,7.705,14154,9.266,14326,9.809,14327,9.809]],["title/classes/LinkContentBody.html",[0,0.231,5713,4.528]],["body/classes/LinkContentBody.html",[0,0.45,2,0.609,3,0.013,4,0.013,5,0.006,7,0.083,9,2.569,27,0.425,30,0.001,31,0.619,32,0.187,33,0.554,47,0.918,83,1.671,95,0.14,99,0.908,101,0.022,103,0,104,0,112,0.633,138,1.889,143,1.212,148,1.727,149,3.589,150,1.24,153,2.513,172,1.738,180,1.981,245,3.607,248,4.98,249,4.673,284,1.681,305,3.134,480,3.069,802,5.079,803,3.253,834,1.706,847,2.6,1194,3.243,1203,3.012,1579,3.165,1880,4.777,2193,4.472,2439,2.665,2820,2.632,2821,2.395,2860,2.682,3216,3.231,3218,3.231,3221,5.542,3224,4.876,3227,2.793,3232,3.048,3705,3.381,3726,3.381,3727,6.707,4101,5.489,5621,6.011,5623,6.093,5625,6.011,5627,6.093,5629,6.093,5674,3.565,5711,6.273,5712,6.273,5713,6.905,5714,6.273,5715,6.273,5903,3.423,5904,6.683,7046,3.619,7106,3.468,8238,8.061,8239,7.593,8240,3.738,8243,5.222,8244,6.273,8245,6.273,8246,3.738,8247,6.273,8248,3.341,8249,3.677,8250,6.273,8251,6.273,8252,3.619,8253,3.619,8254,3.619,8255,3.619,8256,3.738,8257,3.738,8258,3.738,8259,3.738,8260,3.738,14328,9.434,14329,5.443,14330,5.443,14331,5.443,14332,5.443,14333,5.443]],["title/classes/LinkElement.html",[0,0.231,2805,4.461]],["body/classes/LinkElement.html",[0,0.189,2,0.625,3,0.013,4,0.013,5,0.007,7,0.085,8,0.973,27,0.552,29,0.978,30,0.001,31,0.704,32,0.177,33,0.603,35,1.554,36,1.727,47,0.97,55,1.747,59,1.733,95,0.103,101,0.016,103,0,104,0,105,0.602,112,0.645,119,1.948,137,5.105,145,1.549,153,2.389,180,1.715,262,2.097,349,1.204,381,2.726,382,3.718,448,3.327,474,2.383,479,3.041,480,3.421,517,4.029,519,3.817,604,2.267,608,1.286,662,2.553,686,3.832,1140,4.674,1150,2.219,1194,3.612,1203,3.355,1600,2.098,1601,3.435,1604,6.179,1676,3.704,1882,2.328,2450,5.533,2724,7.622,2727,5.784,2728,5.784,2729,5.784,2730,6.987,2731,5.784,2733,3.709,2734,4.982,2735,6.173,2737,5.675,2738,4.982,2739,6.051,2741,3.9,2742,4.29,2744,6.018,2745,3.9,2749,3.9,2751,3.709,2778,4.925,2805,6.883,3221,6.173,3964,4.058,3965,4.058,3966,4.058,3967,4.674,3975,3.509,3976,5.575,5233,7.101,5235,6.8,8715,3.975,8720,4.881,8722,4.881,9920,5.158,9922,5.158,14334,11.615,14335,5.579,14336,5.579,14337,5.579,14338,5.579,14339,5.579,14340,5.579,14341,5.579,14342,5.579,14343,5.579,14344,5.579,14345,5.579,14346,5.579,14347,5.579,14348,5.158,14349,5.158,14350,5.158,14351,7.505,14352,5.158,14353,5.158,14354,5.158,14355,4.881,14356,5.158]],["title/classes/LinkElementContent.html",[0,0.231,14357,5.705]],["body/classes/LinkElementContent.html",[0,0.342,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,27,0.512,29,0.593,30,0.001,31,0.427,32,0.182,33,0.6,34,1.924,47,0.95,95,0.143,99,1.271,101,0.017,103,0.001,104,0.001,112,0.8,138,2.187,149,4.757,150,1.736,153,2.843,245,3.53,253,3.73,379,1.413,404,3.109,769,3.855,834,2.388,1194,4.299,1203,3.993,2193,4.57,2504,3.403,2722,3.909,2856,4.057,2857,4.057,2860,3.754,3221,7.346,3399,5.326,3406,7.043,3411,4.675,3654,6.706,3658,5.861,3662,5.065,3664,5.065,3993,7.684,4101,5.971,5623,4.92,6263,4.09,6609,4.92,8731,6.156,8747,7.043,8749,7.043,14357,10.764,14358,11.879,14359,7.618,14360,6.156]],["title/classes/LinkElementContentBody.html",[0,0.231,8245,4.528]],["body/classes/LinkElementContentBody.html",[0,0.453,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,802,5.219,803,3.343,814,2.84,834,1.771,847,2.699,1194,1.942,1203,1.804,1579,3.285,1880,3.986,2193,4.884,2439,2.766,2820,2.732,2821,2.485,2860,2.784,3216,3.353,3218,3.353,3221,3.319,3224,4.981,3227,2.899,3232,3.164,3705,3.509,3726,3.509,3727,6.808,4101,5.587,5621,6.14,5623,6.826,5625,6.14,5627,6.224,5629,6.224,5674,3.701,5711,6.408,5712,6.408,5713,7.028,5714,6.408,5715,6.408,5903,3.553,5904,6.76,7046,3.756,7106,3.599,8238,8.512,8239,5.626,8240,3.88,8243,5.366,8244,6.408,8245,7.028,8246,3.88,8247,6.408,8248,3.467,8249,3.816,8250,6.408,8251,6.408,8252,3.756,8253,3.756,8254,3.756,8255,3.756,8256,3.88,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8736,4.426,14361,5.65,14362,5.65]],["title/entities/LinkElementNode.html",[154,1.456,3148,5.335]],["body/entities/LinkElementNode.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,27,0.479,30,0.001,32,0.16,33,0.507,47,0.964,95,0.157,96,2.25,101,0.017,103,0.001,104,0.001,105,0.884,112,0.839,138,2.128,154,2.259,155,2.733,172,4.258,173,2.423,180,1.894,181,2.192,349,0.846,403,4.547,437,1.059,1194,4.251,1203,3.948,1600,3.08,1601,4.952,1880,5.113,2450,5.019,2503,4.629,2504,3.659,2722,4.204,3109,5.544,3120,6.342,3148,8.28,3187,5.027,3209,9.247,3221,7.263,3558,6.487,3569,5.219,3579,5.088,4064,5.219,4066,5.219,6263,4.398,7204,5.152,9940,7.573,9941,7.166,14360,6.619,14363,11.432,14364,8.191,14365,9.247,14366,7.573,14367,7.573]],["title/interfaces/LinkElementNodeProps.html",[105,0.735,14365,5.958]],["body/interfaces/LinkElementNodeProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.162,33,0.516,47,0.988,95,0.158,96,2.311,101,0.018,103,0.001,104,0.001,105,0.908,107,2.019,112,0.854,154,2.298,172,3.988,173,2.488,180,2.124,181,2.252,349,0.869,403,4.67,437,1.088,1194,4.437,1203,4.121,1600,3.164,1601,5.015,1880,3.48,2450,5.106,2503,4.755,2504,3.759,2722,4.318,3109,5.641,3120,6.452,3148,6.592,3187,5.164,3209,9.408,3221,7.581,3558,7.274,3569,5.361,3579,5.226,4064,5.361,4066,5.361,6263,4.517,7204,5.292,14360,6.799,14363,7.779,14365,10.368,14366,7.779,14367,7.779]],["title/interfaces/LinkElementProps.html",[105,0.735,14355,5.958]],["body/interfaces/LinkElementProps.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,30,0.001,32,0.17,33,0.574,36,1.6,47,1.002,95,0.127,101,0.018,103,0.001,104,0.001,105,0.811,107,1.804,112,0.793,119,1.53,145,2.087,153,2.83,180,2.011,262,1.647,349,1.322,474,3.211,480,3.321,517,4.586,519,2.329,604,3.055,608,1.733,1150,2.99,1194,4.28,1203,3.975,1600,2.827,1676,4.56,1882,3.137,2724,6.062,2730,4.999,2734,4.614,2735,5.87,2738,4.614,2739,5.754,2778,6.809,2805,7.352,3221,7.314,3975,4.728,3976,6.863,5233,8.742,5235,8.371,8715,5.357,14334,6.951,14348,6.951,14349,6.951,14350,6.951,14351,9.238,14352,6.951,14353,6.951,14354,6.951,14355,8.742,14356,6.951]],["title/classes/LinkElementResponse.html",[0,0.231,3993,5.191]],["body/classes/LinkElementResponse.html",[0,0.342,2,0.851,3,0.018,4,0.018,5,0.009,7,0.115,27,0.512,29,0.592,30,0.001,31,0.426,32,0.186,33,0.365,34,2.129,47,0.906,95,0.143,99,1.268,101,0.017,103,0.001,104,0.001,112,0.799,138,2.185,149,4.293,150,1.732,153,2.566,245,3.529,253,3.723,379,1.411,404,3.103,769,3.848,834,2.384,1194,3.88,1203,3.604,2193,5.056,2504,3.397,2722,3.902,2855,4.98,2856,5.362,2857,5.362,2859,4.666,2860,4.961,3221,6.63,3399,5.316,3411,4.666,3654,7.418,3658,6.563,3662,5.055,3664,5.055,3993,9.526,4101,6.605,5623,6.501,6263,4.082,6609,4.91,8751,7.03,14357,10.064,14358,11.873,14360,6.144,14368,7.603,14369,7.603,14370,7.603,14371,7.603]],["title/classes/LinkElementResponseMapper.html",[0,0.231,5649,5.958]],["body/classes/LinkElementResponseMapper.html",[0,0.261,2,0.859,3,0.018,4,0.018,5,0.009,7,0.116,8,1.214,27,0.494,29,0.789,30,0.001,31,0.567,32,0.165,33,0.486,34,1.308,35,1.362,95,0.144,99,1.28,100,2.578,101,0.013,103,0.001,104,0.001,112,0.804,119,2.062,153,1.745,236,1.962,349,1.171,376,3.343,413,3.965,437,0.993,603,2.278,604,3.119,662,2.414,777,4.556,778,5.623,781,6.013,783,5.709,1194,2.639,1203,2.451,1276,3.166,1559,4.457,1880,5.512,1938,4.378,2193,3.105,2441,8.434,2444,7.936,2445,7.936,2447,7.722,2805,8.73,3221,4.509,3654,4.556,3658,5.891,3675,5.469,3993,9.192,4101,4.057,5230,7.131,5623,4.957,5646,6.013,5649,11.487,8753,9.192,8755,6.013,8757,6.203,8758,6.203,8759,6.203,14357,8.487,14372,12.536,14373,6.715,14374,11.339,14375,7.676,14376,7.676,14377,7.676,14378,7.676]],["title/classes/ListOauthClientsParams.html",[0,0.231,14379,5.958]],["body/classes/ListOauthClientsParams.html",[0,0.33,2,0.807,3,0.017,4,0.017,5,0.009,7,0.109,27,0.482,30,0.001,31,0.544,32,0.161,33,0.631,47,0.83,55,2.53,56,5.313,58,7.928,95,0.123,101,0.012,103,0.001,104,0.001,112,0.771,135,6.814,138,2.139,142,5.141,144,4.33,145,3.877,148,2.287,150,1.642,153,2.673,245,3.219,248,4.586,249,4.966,482,5.258,696,4.638,821,6.274,824,5.174,839,9.851,840,8.964,3431,7.83,3432,5.136,3437,7.066,3488,5.825,4321,7.135,5500,7.002,5513,7.611,5585,8.608,8059,11.01,8442,8.964,9972,9.131,14379,8.499,14380,12.276,14381,7.208,14382,7.208,14383,7.208,14384,9.715,14385,9.715,14386,7.208,14387,7.208,14388,9.715,14389,7.208,14390,7.208,14391,7.208]],["title/classes/LocalAuthorizationBodyParams.html",[0,0.231,14392,5.958]],["body/classes/LocalAuthorizationBodyParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.48,30,0.001,32,0.16,47,0.926,51,6.14,87,6.343,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,2.133,148,3.068,150,2.203,245,3.309,248,5.266,804,7.572,7398,9.475,13750,8.458,14392,10.257,14393,12.62,14394,8.938,14395,8.938]],["title/injectables/LocalStrategy.html",[539,0.901,1363,5.958]],["body/injectables/LocalStrategy.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.089,8,1.007,27,0.44,29,0.836,30,0.001,31,0.602,32,0.155,33,0.515,35,1.18,36,2.285,39,1.573,47,0.976,51,5.935,59,3.337,66,6.936,87,6.69,94,5.761,95,0.167,101,0.01,103,0,104,0,105,0.631,120,2.572,143,1.302,177,1.966,180,1.505,182,1.902,217,7.318,226,0.836,227,2.407,236,1.926,239,1.927,262,2.594,270,2.863,294,4.22,349,0.867,379,1.05,425,4.252,437,1.531,529,1.654,539,1.111,541,1.4,584,7.99,598,3.367,599,4.252,600,3.631,603,2.591,608,2.729,631,3,786,4.898,871,4.898,872,5.115,1357,8.807,1363,7.346,1370,4.349,1381,4.898,1413,3.47,1447,3.725,1540,4.349,1815,7.873,4550,3.949,6164,5.5,7129,4.349,11354,5.115,11362,4.457,12011,4.898,12672,8.413,13171,4.58,13175,7.034,13180,4.898,13808,9.084,13833,5.405,13836,5.405,13838,5.405,13839,5.405,13841,5.405,14396,5.847,14397,8.397,14398,5.847,14399,9.084,14400,5.847,14401,5.847,14402,10.739,14403,5.847,14404,8.397,14405,8.397,14406,5.847,14407,8.397,14408,5.847,14409,5.847,14410,5.847,14411,5.847,14412,5.847,14413,5.847,14414,5.847,14415,8.397,14416,5.847,14417,5.847,14418,5.847,14419,5.847,14420,5.847,14421,5.115,14422,5.847,14423,5.847,14424,5.847,14425,5.847]],["title/interfaces/Loggable.html",[105,0.735,1271,3.125]],["body/interfaces/Loggable.html",[3,0.024,4,0.024,5,0.012,7,0.154,8,1.448,27,0.416,30,0.001,35,1.22,95,0.129,101,0.017,103,0.001,104,0.001,105,1.096,107,2.437,1271,5.541,1272,6.614,1277,6.573,1600,3.819,8368,6.662,8369,6.92,14426,10.156,14427,10.156]],["title/injectables/Logger.html",[539,0.901,2250,2.791]],["body/injectables/Logger.html",[0,0.233,3,0.025,4,0.016,5,0.008,7,0.104,8,1.125,27,0.522,29,0.97,30,0.001,31,0.728,32,0.174,33,0.598,35,1.449,47,0.813,95,0.153,101,0.011,103,0.001,104,0.001,107,1.644,112,0.745,131,4.01,177,1.254,226,0.98,379,0.857,437,1.489,480,1.902,486,2.061,519,4.082,539,1.242,541,1.64,603,2.313,639,3.216,662,4.344,1021,4.505,1271,6.393,2250,4.944,2940,4.628,5504,3.814,5519,6.241,7873,4.425,8411,10.074,8421,5.995,8422,7.353,8423,5.537,8424,6.335,8425,5.995,8426,10.647,13886,8.678,13895,8.678,13907,6.335,13918,10.553,14428,6.852,14429,8.211,14430,9.386,14431,9.386,14432,9.386,14433,6.852,14434,9.386,14435,6.852,14436,9.386,14437,6.852,14438,6.852,14439,9.386,14440,6.852,14441,6.852,14442,6.852,14443,6.852,14444,6.335]],["title/modules/LoggerModule.html",[201,1.804,214,3.16]],["body/modules/LoggerModule.html",[0,0.261,3,0.018,4,0.018,5,0.009,30,0.001,95,0.169,101,0.013,103,0.001,104,0.001,107,1.845,143,2.258,145,2.135,201,3.007,203,2.766,204,2.972,205,3.059,206,3.046,207,3.033,208,4.157,209,4.268,214,6.446,218,4.034,219,2.996,220,2.925,225,3.033,226,1.099,236,1.251,348,5.064,349,0.794,584,7.905,598,4.428,637,5.48,639,3.609,945,4.72,986,2.6,2250,5.722,2251,6.237,3548,5.72,7873,4.967,8405,11.574,8422,8.892,11941,6.442,14445,7.69,14446,7.69,14447,7.69,14448,7.69,14449,7.11,14450,7.69,14451,7.69,14452,7.69,14453,6.442,14454,7.69,14455,7.69,14456,7.69,14457,7.69,14458,7.69,14459,7.69,14460,7.69,14461,7.69,14462,7.69,14463,7.69,14464,7.69,14465,7.69,14466,7.69,14467,7.69,14468,7.69]],["title/classes/LoggingUtils.html",[0,0.231,8423,5.503]],["body/classes/LoggingUtils.html",[0,0.275,2,0.908,3,0.019,4,0.019,5,0.01,7,0.123,8,1.259,27,0.477,29,0.907,30,0.001,31,0.652,32,0.144,33,0.559,35,1.399,47,0.901,59,2.519,95,0.148,101,0.013,103,0.001,104,0.001,107,1.946,131,4.614,133,4.072,349,1.203,413,4.196,437,1.593,556,2.933,603,2.339,1021,4.556,1150,3.225,1271,6.105,1277,3.996,1600,3.049,8423,8.485,10910,8.797,13887,11.388,13920,7.497,13921,7.497,14469,8.109,14470,10.501,14471,10.501,14472,10.501,14473,10.501,14474,8.109,14475,11.646,14476,10.501,14477,8.109,14478,10.501,14479,8.109,14480,8.109,14481,8.109,14482,10.501]],["title/controllers/LoginController.html",[259,2.591,1318,5.958]],["body/controllers/LoginController.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.875,27,0.36,29,0.685,30,0.001,31,0.493,32,0.186,33,0.422,35,1.057,36,2.353,95,0.156,100,1.624,101,0.008,103,0,104,0,105,0.522,128,5.113,138,1.6,141,5.283,150,1.102,153,3.035,177,0.885,223,1.991,226,0.691,239,2.912,259,1.839,261,2.296,262,2.651,270,5.622,278,7.596,282,6.869,283,7.047,284,3.416,285,8.315,286,8.131,287,7.244,288,9.618,294,3.669,303,7.676,324,4.958,335,5.879,336,7.658,337,2.499,340,2.324,345,1.539,346,5.22,347,4.431,348,4.391,349,0.908,437,1.43,521,3.483,608,2.027,645,8.799,992,4.201,993,4.152,994,4.152,995,4.391,996,4.799,1216,2.758,1316,7.368,1318,6.386,1321,4.47,1370,3.596,1552,8.995,1553,3.38,1731,3.08,1891,6.397,1892,6.267,2899,3.445,2900,2.732,3060,4.817,3669,3.215,4486,6.496,5500,4.164,6220,6.515,6900,6.869,7144,7.287,7553,3.38,8064,8.226,8393,4.05,10693,5.43,12940,3.321,13149,4.47,13748,8.208,13804,7.368,14392,8.572,14483,4.835,14484,7.3,14485,7.3,14486,8.795,14487,4.835,14488,4.835,14489,10.225,14490,4.835,14491,8.62,14492,8.795,14493,4.835,14494,4.835,14495,4.835,14496,4.835,14497,4.835,14498,4.835,14499,8.208,14500,4.835,14501,4.835,14502,4.835,14503,4.835,14504,6.115,14505,4.23,14506,4.835,14507,4.835,14508,4.835,14509,4.835,14510,8.131,14511,4.835,14512,4.835,14513,8.795,14514,7.3,14515,4.835,14516,4.835,14517,4.835,14518,4.835,14519,4.835,14520,4.835,14521,4.835,14522,4.835]],["title/classes/LoginDto.html",[0,0.231,1552,5.335]],["body/classes/LoginDto.html",[0,0.342,2,1.128,3,0.024,4,0.024,5,0.012,7,0.153,27,0.492,29,0.785,30,0.001,31,0.565,32,0.164,33,0.484,47,0.849,101,0.017,103,0.001,104,0.001,112,0.955,181,3.218,379,1.261,381,3.385,1433,8.543,1552,10.651,14523,10.079,14524,12.023,14525,8.444,14526,8.444]],["title/classes/LoginRequestBody.html",[0,0.231,14527,5.503]],["body/classes/LoginRequestBody.html",[0,0.299,2,0.698,3,0.015,4,0.015,5,0.007,7,0.095,27,0.509,30,0.001,32,0.17,33,0.65,47,0.78,55,2.191,95,0.129,101,0.01,103,0,104,0,110,8.224,111,5.039,112,0.698,116,9.737,117,7.977,119,1.789,135,5.652,138,2.261,142,5.048,143,1.957,144,4.251,145,3.839,147,4.72,148,1.979,150,1.421,153,2.315,180,1.575,239,2.017,245,2.67,249,4.119,282,3.873,287,4.085,347,2.284,348,4.389,382,3.517,517,4.239,662,1.961,696,3.467,838,6.146,946,2.894,986,4.202,1147,3.922,1227,4.536,1239,3.827,1631,7.513,1720,6.887,1962,3.432,2145,7.338,2362,5.275,3539,3.588,4619,4.544,4699,6.887,5461,3.873,5490,10.256,5491,7.365,5492,7.365,5493,6.887,5496,4.085,5498,5.224,5499,7.691,5500,5.807,5501,7.691,5502,8.128,5503,7.691,5504,3.572,5506,5.766,5507,8.128,5508,6.394,5509,10.222,5510,6.539,5511,8.128,5513,8.662,5514,4.754,5515,5.456,5516,5.456,5517,5.456,5518,5.766,5519,4.146,5520,6.701,5521,6.146,5522,4.754,5523,5.039,5524,4.754,5525,5.224,5526,5.039,5527,5.766,5528,5.224,5529,5.766,5530,4.754,5531,5.766,5532,5.456,5533,5.224,5534,5.224,5535,5.766,5537,7.104,5538,5.766,14527,7.104,14528,10.182,14529,6.236,14530,6.236]],["title/classes/LoginResponse.html",[0,0.231,14491,4.853]],["body/classes/LoginResponse.html",[0,0.335,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.486,29,0.768,30,0.001,31,0.552,32,0.162,33,0.473,47,0.837,95,0.125,101,0.016,103,0.001,104,0.001,112,0.942,138,1.793,150,2.246,181,3.175,245,3.337,379,1.233,381,3.311,1433,8.462,14491,9.629,14525,8.258,14526,8.258,14531,9.857,14532,11.863]],["title/classes/LoginResponse-1.html",[0,0.192,708,2.352,14491,4.034]],["body/classes/LoginResponse-1.html",[0,0.28,2,0.64,3,0.013,4,0.013,5,0.007,7,0.087,27,0.532,29,0.445,30,0.001,31,0.32,32,0.178,33,0.636,34,2.001,47,0.943,70,5.628,72,3.749,77,6.18,95,0.135,101,0.009,103,0,104,0,110,6.143,112,0.656,118,5.262,119,1.681,122,5.579,128,4.732,135,7.291,138,2.334,141,5.925,142,3.231,143,2.16,144,2.721,145,2.95,148,1.813,150,1.302,153,2.754,239,2.695,245,3.444,248,3.447,249,4.9,303,6.47,363,4.625,379,0.715,556,3.124,816,4.451,1194,2.839,1326,6.911,1631,5.13,2128,5.579,2145,6.447,2344,3.259,2555,8.1,3268,5.885,3396,3.995,3539,5.157,4056,4.617,4195,6.911,5536,5.262,5543,8.125,5544,8.125,5545,8.125,5546,7.838,5549,8.485,5551,4.999,5557,8.125,5558,7.636,5566,8.125,5570,5.579,5574,7.636,5575,7.636,5578,4.999,5579,5.283,5580,5.283,5581,5.283,5590,7.636,11956,6.143,13396,6.674,14491,8.632,14533,5.714,14534,8.967,14535,8.259,14536,5.714,14537,5.714,14538,5.714,14539,7.225,14540,5.714,14541,5.714,14542,8.259,14543,5.714,14544,5.714,14545,5.714,14546,8.259,14547,8.259,14548,8.259,14549,5.714,14550,5.714,14551,5.714]],["title/classes/LoginResponseMapper.html",[0,0.231,14505,5.958]],["body/classes/LoginResponseMapper.html",[0,0.295,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.315,27,0.449,29,0.854,30,0.001,31,0.615,32,0.15,33,0.527,35,1.318,47,0.849,59,2.699,95,0.139,100,2.918,101,0.014,103,0.001,104,0.001,236,1.785,349,1.133,413,4.098,437,1.419,777,5.156,819,4.434,1433,7.296,1552,10.81,1553,6.073,7142,10.211,14491,9.286,14504,10.917,14505,9.6,14552,12.029,14553,10.973,14554,10.973,14555,10.973,14556,7.599,14557,10.973,14558,8.687,14559,10.973]],["title/injectables/LoginUc.html",[539,0.901,1316,5.705]],["body/injectables/LoginUc.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.131,8,1.31,27,0.448,29,0.851,30,0.001,31,0.612,32,0.149,33,0.524,35,1.037,36,2.325,95,0.168,100,2.899,101,0.014,103,0.001,104,0.001,105,0.931,177,1.58,226,1.234,236,1.404,262,2.628,270,6.173,345,2.747,349,0.891,379,1.079,437,1.551,539,1.446,541,2.066,608,1.989,631,4.429,1316,9.155,1357,9.377,1381,7.23,1433,5.738,1527,9.395,1550,7.23,1551,4.833,1552,10.409,4684,9.561,7129,6.419,14560,8.631,14561,10.929,14562,8.631,14563,8.631,14564,10.929,14565,8.631,14566,7.979,14567,8.631,14568,8.631,14569,8.631,14570,8.631]],["title/injectables/Lti11EncryptionService.html",[539,0.901,14571,5.958]],["body/injectables/Lti11EncryptionService.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,27,0.346,29,0.658,30,0.001,31,0.473,32,0.115,33,0.405,35,1.015,47,0.983,95,0.151,101,0.014,103,0.001,104,0.001,226,1.208,236,1.374,284,2.61,349,0.873,437,1.536,539,1.427,541,2.023,591,4.775,662,3.734,984,5.122,1194,4.3,1426,7.274,1546,6.146,1551,7.005,1586,6.038,1631,8.208,1922,5.835,2155,7.812,2900,4.775,5500,7.134,6595,6.021,14571,9.433,14572,10.782,14573,8.449,14574,9.969,14575,10.782,14576,8.449,14577,7.078,14578,10.782,14579,7.812,14580,8.449,14581,7.842,14582,8.449,14583,8.449,14584,8.449,14585,8.449,14586,8.449,14587,8.449,14588,8.449,14589,8.449]],["title/classes/Lti11ToolConfig.html",[0,0.231,7338,4.953]],["body/classes/Lti11ToolConfig.html",[0,0.259,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,27,0.552,29,0.594,30,0.001,31,0.428,32,0.189,33,0.543,47,0.951,95,0.128,101,0.013,103,0.001,104,0.001,112,0.801,180,1.809,181,2.701,182,2.483,379,0.954,381,2.563,382,3.045,564,2.343,1426,6.575,1867,3.713,1922,6.12,2133,6.39,2484,6.042,2486,4.466,2487,6.394,2488,9.307,2490,6.677,2491,5.602,2492,6.677,2493,6.677,2495,5.438,7179,7.407,7185,7.303,7187,7.303,7189,7.303,7205,5.551,7206,6.167,7207,5.979,7208,6.394,7211,5.818,7212,6.167,7215,5.818,7216,6.167,7219,5.818,7220,6.167,7335,8.225,7338,9.101,7362,5.242,7367,8.057,14590,13.311,14591,9.331,14592,7.056,14593,7.056,14594,7.056,14595,7.056,14596,7.056,14597,6.677,14598,6.677]],["title/classes/Lti11ToolConfigCreateParams.html",[0,0.231,8698,5.705]],["body/classes/Lti11ToolConfigCreateParams.html",[0,0.333,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.54,30,0.001,32,0.186,33,0.47,47,0.952,95,0.15,101,0.012,103,0.001,104,0.001,112,0.778,138,2.397,148,2.316,149,3.727,150,1.663,180,1.756,245,3.456,248,5.145,249,3.963,382,2.956,564,2.241,847,3.487,1426,6.431,1867,3.552,1909,5.983,1922,5.985,2133,6.249,2484,5.886,2486,4.37,2491,6.138,2509,8.967,2510,7.88,2511,5.899,2512,5.899,2513,5.899,2514,5.899,2515,5.899,5893,5.309,7179,7.244,7185,7.142,7187,7.142,7189,7.142,7335,8.044,7367,7.88,8697,5.899,8698,8.208,8705,6.386,14599,11.988,14600,6.749,14601,7.3,14602,6.749,14603,6.749,14604,6.749,14605,7.3,14606,7.3,14607,6.749,14608,9.058,14609,6.749,14610,6.749]],["title/classes/Lti11ToolConfigEntity.html",[0,0.231,8765,5.503]],["body/classes/Lti11ToolConfigEntity.html",[0,0.249,2,0.82,3,0.017,4,0.017,5,0.009,7,0.111,27,0.532,29,0.57,30,0.001,31,0.41,32,0.177,33,0.532,47,0.931,95,0.15,96,2.013,101,0.012,103,0.001,104,0.001,112,0.78,138,2.311,143,2.187,144,2.414,160,4.179,172,4.212,173,2.167,180,1.313,181,2.629,379,0.916,381,2.461,403,4.067,564,2.249,834,3.87,1426,6.443,1867,3.565,1922,5.996,2484,5.987,2486,4.43,2491,4.067,2498,6.137,2500,5.076,2501,7.937,2502,6.409,2503,4.14,2504,3.273,7179,7.257,7185,7.155,7187,7.155,7189,7.155,7205,5.329,7206,5.92,7207,5.739,7208,6.137,7211,5.585,7212,5.92,7215,5.585,7216,5.92,7219,5.585,7220,5.92,7247,6.409,7335,8.059,7362,6.746,7367,7.895,8765,9.975,14597,6.409,14598,6.409,14611,13.191,14612,9.821,14613,7.326,14614,7.326,14615,7.326,14616,7.326,14617,7.326]],["title/classes/Lti11ToolConfigResponse.html",[0,0.231,9294,5.705]],["body/classes/Lti11ToolConfigResponse.html",[0,0.248,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.54,29,0.568,30,0.001,31,0.409,32,0.186,33,0.531,47,0.93,95,0.14,101,0.012,103,0.001,104,0.001,112,0.778,138,2.359,149,4.207,150,1.663,180,1.756,181,2.622,182,2.375,245,3.616,379,0.913,381,2.452,382,2.956,564,2.241,1867,3.552,1922,5.985,2133,6.249,2484,5.886,2486,4.37,2491,6.138,2495,5.202,2504,3.261,2505,5.202,2518,5.899,2519,9.963,2521,6.386,2522,6.386,2523,5.899,7179,7.244,7185,7.142,7187,7.142,7189,7.142,7205,5.309,7206,5.899,7211,5.564,7212,5.899,7215,5.564,7216,5.899,7219,5.564,7220,5.899,7335,8.044,7362,5.014,7367,7.88,9294,10.328,14597,6.386,14598,6.386,14618,12.967,14619,9.058,14620,6.749,14621,6.749,14622,6.749,14623,6.386]],["title/classes/Lti11ToolConfigUpdateParams.html",[0,0.231,9217,5.705]],["body/classes/Lti11ToolConfigUpdateParams.html",[0,0.331,2,0.813,3,0.017,4,0.017,5,0.009,7,0.11,27,0.539,30,0.001,32,0.186,33,0.566,47,0.951,95,0.15,101,0.012,103,0.001,104,0.001,112,0.775,138,2.394,148,2.304,149,4.195,150,1.654,180,1.749,245,3.395,248,5.136,249,4.462,382,2.945,564,2.229,847,3.468,1426,6.413,1867,3.532,1909,5.975,1922,5.969,2133,6.232,2484,5.877,2486,4.365,2491,6.122,2509,8.951,2510,6.956,2511,5.867,2512,5.867,2513,5.867,2514,5.867,2515,5.867,5893,7.1,7179,7.224,7185,7.122,7187,7.122,7189,7.122,7335,8.022,7367,7.859,9217,8.178,9503,6.082,9505,6.352,9507,6.352,14599,11.972,14600,6.712,14602,6.712,14604,6.712,14608,9.025,14609,6.712,14610,6.712,14624,7.26,14625,7.26,14626,7.26,14627,6.712]],["title/classes/LtiRoleMapper.html",[0,0.231,14628,6.296]],["body/classes/LtiRoleMapper.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,8,1.332,27,0.363,29,0.69,30,0.001,31,0.496,32,0.121,33,0.425,35,1.064,95,0.141,99,1.478,101,0.015,103,0.001,104,0.001,349,0.915,413,3.738,437,1.57,484,4.612,556,3.057,662,2.786,1586,6.221,1867,4.31,4602,7.153,9802,5.89,9803,5.89,12021,5.984,12024,6.753,14628,10.271,14629,11.11,14630,8.859,14631,11.11,14632,11.11,14633,8.859,14634,13.944,14635,8.19,14636,8.859,14637,11.11,14638,8.859,14639,11.11,14640,8.859,14641,8.859,14642,8.859,14643,8.859,14644,11.11,14645,8.859]],["title/entities/LtiTool.html",[154,1.456,7183,5.065]],["body/entities/LtiTool.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,26,1.368,27,0.54,30,0.001,31,0.548,32,0.181,33,0.639,47,0.948,49,3.139,95,0.114,96,1.774,97,1.786,101,0.016,103,0,104,0,105,0.445,112,0.513,119,2.403,138,2.396,143,3.023,144,4.364,145,3.758,154,1.38,155,1.375,160,7.418,168,3.683,172,4.229,173,1.219,174,2.568,175,1.822,177,0.754,178,1.712,180,0.739,181,1.103,182,1.341,236,0.67,321,4.696,349,0.426,480,1.144,486,3.552,490,1.461,556,2.269,653,2.13,662,2.03,822,4.583,834,3.066,1194,2.736,1306,2.501,1410,6.298,1426,4.629,1669,2.146,1922,4.875,1982,1.639,2256,2.373,2439,2.018,2608,2.979,3078,3.974,4282,1.804,6263,2.213,6566,3.606,6594,3.331,6607,3.331,7168,6.963,7169,3.811,7170,5.409,7171,7.279,7172,5.969,7173,5.969,7174,3.811,7175,3.811,7176,5.969,7177,3.811,7178,3.811,7179,6.407,7180,5.969,7181,5.969,7182,3.811,7183,4.802,7184,6.236,7185,5.14,7186,6.236,7187,5.14,7188,5.409,7189,5.14,7190,6.236,7191,6.236,7192,5.92,7193,5.969,7194,7.359,7195,3.331,7196,3.229,7197,3.811,7198,5.672,7199,6.236,7200,5.071,7201,4.725,7202,5.92,7203,4.776,7204,2.592,7205,2.998,7206,3.331,7207,3.229,7208,3.453,7209,3.453,7210,3.811,7211,3.142,7212,3.331,7213,3.453,7214,3.811,7215,3.142,7216,3.331,7217,3.229,7218,3.331,7219,3.142,7220,3.331,7221,3.453,7222,3.811,7223,3.453,7224,3.811,7225,3.453,7226,3.811,7227,3.811,7228,3.811,7229,3.811,7230,3.453,7231,3.811,7232,3.453,7233,3.811,7234,3.142,7235,3.331,7236,2.882,7237,3.066,7238,3.453,7239,3.811,7240,3.066,7241,3.331,14646,4.122,14647,4.122,14648,4.122,14649,4.122,14650,4.122,14651,4.122,14652,4.122,14653,4.122,14654,4.122,14655,4.122,14656,4.122,14657,4.122,14658,4.122,14659,4.122,14660,4.122,14661,4.122,14662,4.122,14663,4.122,14664,4.122,14665,4.122,14666,4.122,14667,4.122,14668,4.122]],["title/classes/LtiToolDO.html",[0,0.231,7250,4.761]],["body/classes/LtiToolDO.html",[0,0.282,2,0.643,3,0.013,4,0.013,5,0.007,7,0.087,26,2.061,27,0.569,29,0.447,30,0.001,31,0.597,32,0.19,33,0.668,34,1.413,47,0.993,95,0.123,101,0.014,103,0,104,0,112,0.659,119,2.615,180,1.486,379,0.719,382,1.734,480,2.702,1194,3.345,1426,5.658,1601,2.432,1683,6.195,1922,6.114,1982,2.285,2439,2.814,3078,4.858,4402,5.027,5777,4.18,6263,3.085,7171,7.863,7179,6.374,7184,7.623,7185,6.284,7186,7.623,7187,6.284,7189,6.284,7190,7.623,7191,7.623,7192,7.237,7196,7.623,7198,6.934,7199,7.623,7200,6.2,7201,5.776,7202,7.237,7203,5.838,7205,6.032,7207,4.502,7209,4.814,7211,4.38,7213,4.814,7215,4.38,7217,4.502,7219,4.38,7221,4.814,7223,4.814,7225,4.814,7230,4.814,7232,4.814,7234,4.38,7236,4.017,7238,4.814,7240,4.274,7242,8.152,7243,5.313,7244,5.313,7247,5.027,7248,4.38,7249,4.502,7250,7.898,7251,6.497,7252,4.502,7253,5.313,7254,5.313,7255,5.313,7256,5.313,7257,5.313,7258,5.313,7259,5.313,7260,5.027,7261,5.313,7262,5.313,7263,5.313,7264,5.313,7265,5.313,7266,5.313,7267,5.313,7268,5.313,7269,5.313,7270,5.313,7271,5.313,7272,5.313,14669,8.293,14670,5.746,14671,5.746,14672,5.746,14673,5.746,14674,5.746,14675,5.746,14676,5.746,14677,5.746,14678,5.746,14679,5.746,14680,5.746,14681,5.746,14682,5.746,14683,5.746,14684,5.746,14685,5.746,14686,5.746,14687,5.746,14688,5.746]],["title/classes/LtiToolFactory.html",[0,0.231,14689,6.296]],["body/classes/LtiToolFactory.html",[0,0.156,2,0.515,3,0.011,4,0.011,5,0.005,7,0.07,8,0.843,27,0.531,29,1.018,30,0.001,31,0.726,32,0.181,33,0.602,34,1.454,35,1.433,47,0.822,55,2.429,59,3.198,95,0.121,99,0.768,101,0.008,103,0,104,0,112,0.558,120,3.094,133,2.459,140,2.577,143,1.566,145,2.369,153,1.94,154,2.2,155,2.347,177,1.287,180,1.26,236,0.749,271,4.911,319,3.175,349,0.881,379,0.576,382,3.834,413,2.166,437,1.104,447,7.191,448,4.447,449,5.398,452,3.974,453,5.398,454,5.665,455,3.974,456,3.974,457,3.974,458,3.903,459,4.379,460,4.822,461,6.406,462,5.712,463,7.015,464,2.625,469,2.601,470,3.974,471,2.625,472,5.049,473,5.213,474,4.081,475,4.903,476,3.938,477,2.601,478,2.451,479,4.064,480,3.312,481,2.533,482,2.491,483,2.601,484,4.974,485,2.625,486,3.502,487,4.737,488,2.601,489,7.181,490,4.128,491,6.578,492,2.625,493,4.232,494,2.601,495,2.625,496,2.601,497,2.625,498,2.601,499,2.932,500,2.732,501,2.601,502,6.023,503,2.625,504,2.601,505,3.974,506,3.717,507,3.974,508,2.625,509,2.512,510,2.491,511,2.056,512,2.601,513,2.601,514,2.601,515,2.625,516,2.625,517,1.765,518,2.601,519,1.426,520,2.625,521,2.785,522,2.601,523,2.625,525,2.676,527,4.219,1194,2.417,1426,4.089,1922,3.806,3078,2.298,4307,3.856,5589,2.298,7170,3.856,7171,3.719,7179,3.015,7183,5.23,7184,5.509,7185,4.541,7186,5.509,7187,4.541,7189,2.972,7190,3.606,7191,3.606,7192,3.423,7196,5.509,7198,6.081,7199,5.509,7200,2.932,7201,2.732,7202,5.23,7203,2.762,7242,3.856,8785,6.501,8790,6.501,11516,3.508,14689,7.89,14690,4.603,14691,7.032,14692,4.603,14693,7.032,14694,4.603,14695,4.603,14696,4.603,14697,4.603,14698,4.603,14699,4.603]],["title/modules/LtiToolModule.html",[201,1.804,14700,5.705]],["body/modules/LtiToolModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.163,101,0.015,103,0.001,104,0.001,201,3.251,203,3.265,204,3.509,205,3.611,206,3.596,207,3.581,208,4.495,209,4.615,218,4.487,219,3.537,220,3.454,226,1.298,227,3.738,560,3.738,1274,2.872,2251,6.076,4615,9.788,5385,7.336,14700,11.791,14701,9.079,14702,9.079,14703,9.079,14704,11.845,14705,8.394,14706,9.079]],["title/injectables/LtiToolRepo.html",[539,0.901,4615,4.953]],["body/injectables/LtiToolRepo.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.8,10,2.713,12,3.063,18,3.379,26,2.413,27,0.533,29,1.005,30,0.001,31,0.747,32,0.176,33,0.619,34,1.571,35,1.551,36,2.665,40,2.08,47,0.825,95,0.127,96,1.182,99,0.718,101,0.007,103,0,104,0,112,0.342,119,1.665,133,2.335,154,2.355,155,1.436,173,1.272,180,1.196,226,0.615,236,1.331,262,2.921,292,2.177,349,1.176,381,1.445,382,3.778,437,1.291,448,4.668,519,1.333,529,1.217,539,0.884,541,1.03,593,2.473,603,2.288,608,1.886,680,4.668,686,3.152,687,5.05,696,1.697,718,2.388,1194,2.295,1426,3.882,1601,4.223,1922,3.613,1938,2.454,2237,8.865,2239,4.757,2240,4.757,2241,4.757,2242,4.757,2243,4.668,2244,4.668,2245,4.757,2246,4.668,2247,4.757,2254,3.066,2256,5.309,2257,3.066,2259,3.066,2261,2.818,2262,4.668,2263,3.066,2265,3.066,2267,4.757,2271,4.757,2273,4.509,2274,4.668,2276,3.066,2278,2.581,2279,2.641,2280,3.066,2282,3.066,2284,3.008,2285,3.066,2302,3.008,2303,6.085,2325,5.593,3078,3.333,4386,2.741,4387,3.37,4615,4.856,5930,3.129,5931,3.129,5932,3.129,5933,3.129,5934,3.129,5935,3.129,5936,3.129,5937,3.129,5938,3.129,7170,8.847,7179,2.818,7183,8.699,7184,5.23,7185,4.312,7186,5.23,7187,4.312,7188,3.604,7189,4.312,7190,5.23,7191,5.23,7192,7.855,7196,5.23,7198,7.525,7199,5.23,7200,4.254,7201,3.963,7202,4.966,7203,4.006,7250,8.176,9077,5.593,9085,5.593,9090,3.28,9150,3.764,9154,3.978,9155,3.978,9173,3.764,9174,3.978,9178,3.978,9179,3.978,10487,3.978,11516,3.28,14707,4.302,14708,6.172,14709,6.676,14710,3.978,14711,6.676,14712,4.302,14713,4.302,14714,6.676,14715,4.302,14716,4.302,14717,4.302,14718,4.302,14719,4.302,14720,3.604,14721,4.302,14722,4.302,14723,4.302,14724,4.302,14725,4.302,14726,4.302,14727,4.302,14728,4.302,14729,4.302,14730,4.302,14731,4.302,14732,3.978,14733,4.302,14734,4.302,14735,4.302,14736,4.302,14737,4.302,14738,4.302,14739,4.302,14740,4.302,14741,4.302,14742,4.302,14743,4.302,14744,4.302,14745,4.302,14746,4.302,14747,4.302,14748,4.302,14749,4.302,14750,4.302,14751,4.302,14752,4.302,14753,4.302,14754,4.302,14755,4.302,14756,4.302,14757,4.302]],["title/injectables/LtiToolService.html",[539,0.901,14704,5.705]],["body/injectables/LtiToolService.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,8,1.337,27,0.457,29,0.869,30,0.001,31,0.625,32,0.152,33,0.535,35,1.071,36,2.59,47,0.859,95,0.154,101,0.015,103,0.001,104,0.001,119,2.478,177,1.632,226,1.275,227,3.671,262,2.668,345,2.838,349,0.921,379,1.115,437,1.153,539,1.477,541,2.135,662,3.828,4615,9.745,5392,7.206,5589,4.452,7183,8.298,7192,9.488,7250,6.235,11516,6.798,14704,9.346,14705,11.256,14708,10.314,14758,12.174,14759,8.918,14760,8.918,14761,11.156,14762,8.918,14763,8.918]],["title/interfaces/Mail.html",[105,0.735,1306,4.132]],["body/interfaces/Mail.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,31,0.457,32,0.179,33,0.648,47,1.016,77,5.198,101,0.013,103,0.001,104,0.001,105,1.438,107,1.958,112,0.837,180,2.212,1290,7.841,1291,6.219,1292,8.687,1293,8.036,1294,6.219,1295,4.568,1296,7.841,1297,5.934,1298,6.219,1299,5.934,1300,8.687,1301,6.219,1302,9.183,1303,8.036,1304,8.036,1305,9.183,1306,7.943,1307,9.183,1308,9.183,1309,9.411,1310,9.411]],["title/interfaces/MailAttachment.html",[105,0.735,1292,5.065]],["body/interfaces/MailAttachment.html",[3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,31,0.708,32,0.164,47,1.015,77,5.534,101,0.014,103,0.001,104,0.001,105,1.458,107,2.084,112,0.871,180,2.264,1290,8.162,1291,6.622,1292,9.399,1293,8.365,1294,9.632,1295,7.076,1296,8.162,1297,6.318,1298,6.622,1299,6.318,1300,8.947,1301,6.622,1302,8.162,1303,8.365,1304,8.365,1305,8.162,1306,6.658,1307,6.461,1308,6.461,1309,6.622,1310,6.622]],["title/interfaces/MailContent.html",[105,0.735,1300,5.065]],["body/interfaces/MailContent.html",[3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,31,0.488,32,0.15,33,0.527,47,1.007,77,8.057,101,0.014,103,0.001,104,0.001,105,1.459,107,2.089,112,0.873,180,2.266,1290,9.406,1291,6.636,1292,8.956,1293,8.376,1294,6.636,1295,4.875,1296,9.406,1297,6.332,1298,6.636,1299,6.332,1300,9.406,1301,9.64,1302,8.173,1303,8.376,1304,8.376,1305,8.173,1306,6.667,1307,6.475,1308,6.475,1309,6.636,1310,6.636]],["title/modules/MailModule.html",[201,1.804,14764,5.335]],["body/modules/MailModule.html",[0,0.315,3,0.022,4,0.022,5,0.011,8,1.113,27,0.38,29,0.723,30,0.001,31,0.52,32,0.127,33,0.446,35,1.116,47,0.808,95,0.145,101,0.015,103,0.001,104,0.001,105,1.002,201,3.284,203,3.341,208,3.402,209,3.492,226,1.328,349,0.959,413,3.523,490,3.293,636,5.401,1102,6.756,1103,7.858,1106,8.244,1112,6.618,1117,7.107,1118,8.126,1119,7.389,1120,8.126,14764,9.714,14765,8.587,14766,11.322,14767,9.288,14768,10.02,14769,8.587,14770,8.587]],["title/interfaces/MailModuleOptions.html",[105,0.735,14766,5.958]],["body/interfaces/MailModuleOptions.html",[0,0.315,3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.156,47,0.955,95,0.145,101,0.015,103,0.001,104,0.001,105,1.002,107,2.229,112,0.909,201,3.284,208,3.402,209,3.492,226,1.328,349,0.959,413,2.86,636,5.401,1103,6.379,1106,7.607,1112,6.618,1117,8.255,1118,8.126,1119,8.583,1120,8.126,14764,8.963,14765,8.587,14766,10.848,14768,10.02,14769,8.587,14770,8.587]],["title/injectables/MailService.html",[539,0.901,14768,5.503]],["body/injectables/MailService.html",[0,0.297,3,0.02,4,0.02,5,0.01,7,0.133,8,1.321,27,0.451,29,0.858,30,0.001,31,0.617,32,0.151,33,0.529,35,1.05,36,2.344,47,0.778,95,0.153,101,0.014,103,0.001,104,0.001,105,0.943,143,1.947,177,2.017,226,1.25,262,2.644,284,3.403,379,1.378,490,4.278,539,1.458,541,2.093,603,2.213,608,2.015,639,4.103,662,3.794,1117,5.431,1119,5.646,1141,9.639,1142,7.065,1143,9.915,1156,6.113,1157,5.646,1185,7.649,1188,7.649,1306,7.685,1475,9.23,14768,8.904,14771,8.084,14772,11.081,14773,8.743,14774,8.743,14775,8.084,14776,8.084,14777,8.084]],["title/interfaces/MailServiceOptions.html",[105,0.735,14772,5.958]],["body/interfaces/MailServiceOptions.html",[0,0.312,3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.155,36,1.954,47,0.952,95,0.156,101,0.015,103,0.001,104,0.001,105,0.991,107,2.203,112,0.902,143,2.044,177,2.08,226,1.313,262,2.012,284,2.836,379,1.148,490,3.256,539,1.504,603,2.282,608,2.117,639,4.309,662,2.887,1117,8.006,1119,8.324,1143,9.175,1156,6.42,1157,5.93,1185,8.033,1188,8.033,1306,6.893,1475,7.692,14768,7.42,14771,8.489,14772,10.792,14775,8.489,14776,8.489,14777,8.489]],["title/modules/ManagementModule.html",[201,1.804,14778,5.335]],["body/modules/ManagementModule.html",[0,0.224,3,0.015,4,0.015,5,0.008,30,0.001,95,0.176,101,0.011,103,0.001,104,0.001,119,1.344,201,2.782,203,2.375,204,2.552,205,2.627,206,2.616,207,2.605,208,4.361,209,2.483,214,5.715,218,3.64,219,2.573,220,2.512,223,4.323,225,4.471,226,0.944,437,1.466,598,3.803,599,4.804,1274,2.089,1315,7.426,1544,5.778,1689,6.186,2017,2.891,2018,3.234,2019,3.118,3072,3.014,3438,8.006,3443,8.19,3444,10.319,3451,4.536,3453,4.154,3455,6.106,3456,7.169,3823,10.319,3878,3.699,6489,7.538,7857,7.666,7862,9.65,7877,5.533,7895,9.187,7925,7.666,7929,9.954,8335,6.656,8925,4.618,9706,4.461,10428,7.666,10502,8.881,10660,7.926,10666,4.706,10676,4.706,10677,4.536,10733,4.804,11598,4.054,11681,6.106,11682,6.106,12257,5.533,12260,4.536,13303,5.778,13309,7.666,14778,11.131,14779,6.605,14780,6.605,14781,6.605,14782,6.605,14783,6.605,14784,6.605,14785,9.151,14786,6.605,14787,6.605,14788,6.605,14789,10.501,14790,5.533,14791,6.605]],["title/modules/ManagementServerModule.html",[201,1.804,14792,5.705]],["body/modules/ManagementServerModule.html",[0,0.345,3,0.018,4,0.018,5,0.009,30,0.001,32,0.105,47,0.544,87,3.873,95,0.169,96,2.79,99,1.285,101,0.019,103,0.001,104,0.001,155,2.571,173,2.279,201,3.414,203,2.771,204,2.978,205,3.064,206,3.052,207,3.039,208,2.822,209,2.897,218,4.039,219,3.002,220,2.931,225,4.763,226,1.102,236,1.253,239,1.768,292,3.899,349,0.796,413,2.373,437,0.997,490,2.732,521,3.052,573,5.204,687,5.14,756,5.047,992,3.681,993,3.637,994,3.637,995,3.847,1072,5.123,1073,4.729,1103,5.292,1106,6.753,1663,3.26,1962,4.24,2619,4.104,4901,5.292,5570,5.204,10661,7.554,10662,7.554,10663,5.604,10664,7.742,10665,5.49,10667,7.554,10673,7.387,10674,7.387,10675,7.387,10677,5.292,10688,9.206,10689,5.731,10690,5.731,10691,5.604,10729,5.387,10731,7.554,10733,5.604,10734,6.226,10735,5.604,10736,6.226,10738,7.554,11796,5.731,14778,10.449,14792,10.798,14793,7.705,14794,7.705,14795,7.124,14796,7.124,14797,6.741,14798,6.741,14799,6.455]],["title/modules/ManagementServerTestModule.html",[201,1.804,14799,5.705]],["body/modules/ManagementServerTestModule.html",[0,0.334,3,0.017,4,0.017,5,0.009,8,0.88,27,0.301,29,0.572,30,0.001,31,0.411,32,0.134,33,0.352,35,0.882,47,0.518,59,2.28,87,3.689,95,0.167,96,2.701,99,1.224,101,0.018,103,0.001,104,0.001,155,2.449,173,2.171,201,3.368,203,2.64,204,2.837,205,2.919,206,2.907,207,2.895,208,2.688,209,2.76,218,3.911,219,2.859,220,2.792,225,4.672,226,1.049,236,1.194,239,1.684,292,3.714,349,0.758,413,3.028,437,0.949,490,3.487,521,2.907,573,4.958,687,4.976,756,4.808,992,3.506,993,3.465,994,3.465,995,3.664,1072,4.88,1073,4.505,1102,5.339,1103,6.754,1106,7.373,1663,3.106,1962,4.039,2619,3.909,4901,5.041,5570,4.958,10661,7.314,10662,7.314,10663,5.339,10664,7.496,10665,5.23,10667,7.314,10673,7.152,10674,7.152,10675,7.152,10677,5.041,10688,9.03,10689,5.459,10690,5.459,10691,5.339,10729,8.635,10731,8.811,10733,5.339,10734,5.931,10735,5.339,10736,5.931,10738,7.314,11796,5.459,14778,10.338,14792,6.149,14795,9.092,14796,6.786,14797,6.421,14798,6.421,14799,11.055,14800,7.34,14801,7.34,14802,7.34]],["title/entities/Material.html",[154,1.456,11877,4.339]],["body/entities/Material.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.099,27,0.54,30,0.001,32,0.18,33,0.54,47,1.006,95,0.115,96,1.785,101,0.019,103,0.001,104,0.001,105,1.123,112,0.718,138,2.399,153,2.559,154,1.934,155,2.168,172,4.48,173,1.922,174,3.599,175,2.873,180,1.164,181,1.739,182,2.114,238,3.742,1194,3.87,1203,3.594,1654,3.086,2722,3.335,3539,4.594,3569,4.14,6263,3.489,6608,4.389,6609,4.196,7204,4.087,11877,5.765,11880,4.257,11888,7.485,12107,7.089,12108,5.444,12109,8.373,12110,9.097,12111,9.097,12112,8.819,12113,9.097,12114,9.097,12115,9.097,12116,5.444,12117,4.726,12118,5.444,12119,5.444,12120,5.251,12121,5.444,12122,5.444,12123,5.444,12124,5.444,12125,5.444,12126,5.444,12127,5.444,12128,5.444,12129,5.444,12130,5.444,12131,5.444,12132,5.444,12133,5.444,14803,6.498,14804,6.498,14805,6.498,14806,6.498,14807,6.498,14808,6.498,14809,6.498,14810,6.498,14811,6.498,14812,6.498]],["title/classes/MaterialFactory.html",[0,0.231,14813,6.296]],["body/classes/MaterialFactory.html",[0,0.172,2,0.569,3,0.012,4,0.012,5,0.006,7,0.077,8,0.908,27,0.531,29,1.019,30,0.001,31,0.699,32,0.182,33,0.599,34,1.543,35,1.473,47,0.535,55,2.512,59,3.338,95,0.096,101,0.008,103,0,104,0,112,0.601,120,3.332,133,2.649,140,2.844,153,2.442,154,2.296,155,2.528,177,1.387,180,1.357,271,4.883,319,3.42,349,0.525,379,0.635,382,3.912,413,2.333,437,0.657,447,7.313,448,4.618,449,5.675,452,4.28,453,5.675,454,5.822,455,4.28,456,4.28,457,4.28,458,4.205,459,4.649,460,5.119,461,6.601,462,5.963,463,7.141,464,2.897,469,2.87,470,4.28,471,2.897,472,5.308,473,5.48,474,4.29,475,5.153,476,4.242,477,2.87,478,2.705,479,4.22,480,3.331,481,2.795,482,2.749,483,2.87,484,5.229,485,2.897,486,3.609,487,5.028,488,2.87,489,7.053,490,4.254,491,6.779,492,2.897,493,4.493,494,2.87,495,2.897,496,2.87,497,2.897,498,2.87,499,3.236,500,3.015,501,2.87,502,6.253,503,2.897,504,2.87,505,4.28,506,4.004,507,4.28,508,2.897,509,2.771,510,2.749,511,2.269,512,2.87,513,2.87,514,2.87,515,2.897,516,2.897,517,1.947,518,2.87,519,1.573,520,2.897,521,3,522,2.87,523,2.897,526,3.015,929,5.377,1194,2.604,1203,1.622,3539,3.091,11877,6.844,11888,3.377,12107,3.979,12109,3.778,12110,4.104,12111,4.104,12112,3.979,12113,4.104,14813,8.375,14814,5.079,14815,4.696,14816,5.079]],["title/injectables/MaterialsRepo.html",[539,0.901,14817,6.296]],["body/injectables/MaterialsRepo.html",[0,0.277,3,0.019,4,0.019,5,0.01,7,0.124,8,1.264,10,4.283,12,4.837,18,5.335,26,2.233,27,0.524,29,0.961,30,0.001,31,0.692,32,0.169,33,0.592,34,1.39,35,1.483,36,2.485,40,3.945,49,4.158,95,0.148,101,0.013,103,0.001,104,0.001,154,1.744,155,3.518,180,1.889,226,1.166,262,2.869,349,0.843,382,3.725,479,5.189,539,1.395,541,1.953,679,7.826,685,4.461,686,4.976,687,5.91,711,5.007,712,5.067,713,5.007,714,5.067,715,5.813,716,5.007,717,5.067,718,4.528,3635,5.603,11877,6.716,14815,7.543,14817,9.747,14818,8.158,14819,8.158]],["title/interfaces/Meta.html",[105,0.735,11341,4.761]],["body/interfaces/Meta.html",[3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.178,34,1.467,47,0.999,55,2.797,101,0.022,103,0.001,104,0.001,105,1.456,107,2.067,112,0.867,119,1.753,284,2.66,347,4.614,479,3.226,982,5.562,987,8.509,1021,4.928,3060,3.751,4542,5.817,6540,5.059,11336,6.406,11337,6.565,11338,6.406,11339,6.406,11340,6.565,11341,8.807,11342,9.602,11343,9.602,11344,6.406,11345,6.565,11346,6.264,11347,6.406,11348,6.565,11349,6.406]],["title/modules/MetaTagExtractorApiModule.html",[201,1.804,14820,5.503]],["body/modules/MetaTagExtractorApiModule.html",[0,0.298,3,0.021,4,0.021,5,0.01,30,0.001,95,0.169,101,0.014,103,0.001,104,0.001,201,3.202,203,3.158,204,3.394,205,3.492,206,3.478,207,3.463,208,4.428,209,3.302,214,6.192,218,4.394,219,3.421,220,3.34,222,5.454,223,4.549,225,4.358,226,1.255,259,3.34,1274,2.778,1689,6.029,1764,7.346,2702,4.145,10871,6.694,10872,8.793,11341,6.139,13182,7.096,14820,11.252,14821,8.781,14822,8.781,14823,8.781,14824,10.455,14825,11.18,14826,8.119,14827,10.576,14828,8.119,14829,8.781]],["title/controllers/MetaTagExtractorController.html",[259,2.591,14827,5.958]],["body/controllers/MetaTagExtractorController.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,27,0.308,29,0.585,30,0.001,31,0.421,32,0.179,33,0.361,35,0.903,36,2.126,95,0.166,100,2.525,101,0.012,103,0.001,104,0.001,138,1.367,150,1.713,177,1.376,223,3.095,226,1.075,236,1.223,259,2.86,261,3.57,262,2.459,270,5.856,294,6.011,324,5.057,335,5.995,336,7.429,337,3.886,338,3.973,339,6.951,341,6.951,343,4.004,345,2.393,346,4.462,347,4.111,349,1.159,437,1.452,608,1.733,819,3.506,1158,4.773,1559,4.396,1815,6.644,2170,4.21,2702,3.549,2871,5.468,2873,7.617,2894,8.793,2900,6.342,3221,5.87,5534,8.371,8442,7.617,10870,10.463,10871,7.617,10872,9.501,11341,7.847,12046,8.075,12112,5.89,13099,8.555,13182,9.07,14825,9.402,14827,8.742,14830,9.992,14831,7.518,14832,7.518,14833,7.518,14834,7.518,14835,7.518,14836,6.951,14837,7.518,14838,9.819,14839,7.518,14840,7.518,14841,7.518,14842,7.518,14843,7.518,14844,7.518]],["title/modules/MetaTagExtractorModule.html",[201,1.804,14824,5.335]],["body/modules/MetaTagExtractorModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,95,0.174,101,0.013,103,0.001,104,0.001,201,3.079,203,2.905,204,3.121,205,3.212,206,3.199,207,3.185,208,4.257,209,4.371,214,6.058,218,4.165,219,3.146,220,3.072,225,4.131,226,1.155,239,1.853,560,3.325,598,4.651,959,4.651,1274,2.555,1315,8.553,3451,5.547,3528,9.953,3531,8.11,3936,6.964,10666,5.755,10676,5.755,10677,5.547,10836,7.066,10871,6.156,10872,8.454,11341,5.646,14824,11.046,14826,7.467,14845,8.076,14846,8.076,14847,8.076,14848,8.076,14849,11.657,14850,8.076,14851,8.076,14852,8.076,14853,8.076]],["title/classes/MetaTagExtractorResponse.html",[0,0.231,14838,5.958]],["body/classes/MetaTagExtractorResponse.html",[0,0.352,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.519,29,0.619,30,0.001,31,0.445,32,0.173,33,0.635,47,0.948,95,0.146,101,0.013,103,0.001,104,0.001,112,0.823,138,2.223,148,2.522,150,1.811,153,2.882,245,3.324,247,3.479,248,4.326,379,1.296,769,4.022,1194,4.359,1203,4.048,2717,7.386,2720,7.254,2722,4.079,3221,7.448,6263,4.267,6290,6.954,6609,5.133,8243,6.79,10871,9.91,10872,10.098,14360,6.423,14838,11.092,14854,13.001,14855,7.949,14856,7.949,14857,7.949,14858,7.949,14859,7.949,14860,7.949,14861,7.949]],["title/injectables/MetaTagExtractorService.html",[539,0.901,14849,5.705]],["body/injectables/MetaTagExtractorService.html",[0,0.196,3,0.013,4,0.013,5,0.007,7,0.088,8,0.998,27,0.438,29,0.832,30,0.001,31,0.598,32,0.155,33,0.513,35,1.283,36,2.273,47,0.929,55,1.792,95,0.135,101,0.014,103,0,104,0,153,2.574,226,0.826,236,1.355,239,1.326,262,2.584,274,3.468,282,5.172,284,1.785,349,1.218,360,3.236,437,1.664,480,1.605,486,1.739,529,1.635,539,1.102,541,1.383,556,3.192,578,3.506,579,4.435,603,2.546,608,1.92,696,3.284,986,2.815,1075,3.395,1174,4.471,1194,4.478,1203,3.766,2109,7.777,2661,4.299,5737,5.343,8968,4.204,10871,8.631,10872,9.357,14849,6.976,14862,11.323,14863,5.779,14864,7.699,14865,8.327,14866,8.327,14867,8.327,14868,8.327,14869,5.779,14870,8.327,14871,12.155,14872,10.682,14873,5.779,14874,8.327,14875,8.327,14876,5.779,14877,8.327,14878,5.779,14879,8.327,14880,8.178,14881,8.178,14882,7.699,14883,5.779,14884,5.779,14885,9.762,14886,5.779,14887,5.779,14888,5.779,14889,5.779,14890,5.779,14891,5.779,14892,5.779,14893,5.779,14894,5.779,14895,5.779,14896,5.779,14897,5.779,14898,5.779,14899,5.779,14900,5.779,14901,5.779,14902,5.779,14903,5.779,14904,8.327,14905,5.779,14906,8.327,14907,8.327,14908,8.327,14909,5.779]],["title/injectables/MetaTagExtractorUc.html",[539,0.901,14825,5.705]],["body/injectables/MetaTagExtractorUc.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.127,8,1.282,26,2.637,27,0.438,29,0.833,30,0.001,31,0.599,32,0.146,33,0.513,35,1.002,36,2.276,39,2.245,47,0.833,95,0.158,99,1.392,101,0.014,103,0.001,104,0.001,177,1.958,226,1.193,236,1.357,262,2.587,349,0.862,379,1.338,437,1.079,529,2.361,539,1.416,541,1.997,560,3.435,579,4.444,603,2.148,608,2.466,986,2.821,1174,4.48,1194,4.058,1559,4.705,1695,6.961,1793,5.063,1815,7.112,2109,5.731,2455,6.069,10871,8.999,10872,9.58,14825,8.96,14828,7.715,14849,11.219,14864,9.889,14910,11.805,14911,8.344,14912,8.344,14913,10.696,14914,8.344,14915,8.344]],["title/classes/MetadataTypeMapper.html",[0,0.231,14916,6.296]],["body/classes/MetadataTypeMapper.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.38,29,0.723,30,0.001,31,0.52,32,0.156,33,0.446,35,1.116,95,0.157,99,1.549,101,0.015,103,0.001,104,0.001,226,1.328,236,1.861,349,0.959,413,3.818,437,1.48,529,2.628,1600,3.492,2585,6.351,3193,7.289,6584,10.02,6662,7.506,6681,8.375,10646,7.781,12265,8.888,12268,6.176,12269,6.084,14916,10.578,14917,11.441,14918,8.126,14919,11.441,14920,11.441,14921,8.126,14922,8.587]],["title/classes/MigrationAlreadyActivatedException.html",[0,0.231,13747,5.503]],["body/classes/MigrationAlreadyActivatedException.html",[0,0.407,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.411,29,0.59,30,0.001,31,0.424,32,0.104,33,0.363,35,0.91,47,0.881,52,5.381,55,1.63,59,2.353,95,0.127,101,0.02,103,0.001,104,0.001,157,4.962,180,2.237,226,1.083,239,2.585,349,1.164,379,0.947,590,6.163,654,3.351,931,4.826,1021,4.407,1271,5.727,1272,6.405,1274,2.396,1276,3.75,1277,6.321,2618,5.782,4483,5.961,4507,5.033,8368,6.451,8369,6.701,8468,10.366,12940,5.202,13734,6.121,13735,9.437,13736,5.634,13737,10.086,13738,10.049,13740,10.049,13742,6.345,13743,6.345,13744,6.121,13745,8.413,13746,5.509,13747,8.115,14923,7.575,14924,7.575]],["title/classes/MigrationBody.html",[0,0.231,13948,5.958]],["body/classes/MigrationBody.html",[0,0.358,2,0.915,3,0.019,4,0.019,5,0.01,7,0.124,27,0.479,30,0.001,32,0.16,33,0.629,52,6.257,95,0.134,101,0.013,103,0.001,104,0.001,112,0.838,119,2.666,138,2.126,142,5.124,143,2.917,144,4.315,145,3.637,147,6.633,148,2.594,150,1.863,153,2.658,245,3.239,249,4.998,517,5.022,654,3.896,2431,6.915,5498,9.794,8004,6.725,9861,8.093,11855,7.851,13948,9.235,14011,8.912,14012,8.912,14013,8.912,14925,8.175,14926,8.175,14927,8.175,14928,8.175]],["title/injectables/MigrationCheckService.html",[539,0.901,14929,5.705]],["body/injectables/MigrationCheckService.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,26,2.534,27,0.409,29,0.778,30,0.001,31,0.56,32,0.137,33,0.479,35,0.903,36,2.126,47,0.904,48,5.679,95,0.158,99,1.254,101,0.012,103,0.001,104,0.001,119,1.53,128,4.521,145,2.087,177,2.054,226,1.075,227,3.095,239,1.725,262,2.459,349,1.159,379,1.25,437,1.547,539,1.322,541,1.8,593,4.157,603,2.254,608,2.587,654,3.338,1897,7.522,1899,7.352,1901,4.21,1902,5.595,3541,3.804,4507,5.014,4520,6.453,4522,6.971,4532,7.432,4767,7.519,7141,5.281,8522,4.999,8531,7.059,9731,6.075,14137,6.298,14929,8.371,14930,11.223,14931,7.518,14932,9.238,14933,10.234,14934,7.518,14935,9.992,14936,7.518,14937,6.577,14938,8.075,14939,6.951,14940,6.577,14941,7.518,14942,9.992,14943,6.951]],["title/classes/MigrationDto.html",[0,0.231,13964,4.853]],["body/classes/MigrationDto.html",[0,0.337,2,1.112,3,0.023,4,0.023,5,0.012,7,0.151,27,0.488,29,0.773,30,0.001,31,0.556,32,0.163,33,0.476,47,0.841,101,0.016,103,0.001,104,0.001,112,0.946,128,5.142,379,1.242,2057,8.245,2073,8.319,4507,5.703,13964,9.648,14944,9.93,14945,11.916,14946,11.916,14947,9.181,14948,9.93]],["title/injectables/MigrationMapper.html",[539,0.901,13928,5.705]],["body/injectables/MigrationMapper.html",[0,0.315,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.38,29,0.723,30,0.001,31,0.52,32,0.127,33,0.446,35,1.116,95,0.157,100,3.12,101,0.015,103,0.001,104,0.001,226,1.328,236,1.511,349,0.959,437,1.201,539,1.514,541,2.223,662,3.899,785,4.637,819,4.015,9861,7.495,13928,9.585,13956,10.458,13957,7.781,13958,8.126,13959,10.739,14011,7.08,14012,7.08,14013,7.08,14134,7.781,14136,7.781,14949,9.288,14950,10.009,14951,10.009,14952,9.288,14953,9.288,14954,9.288,14955,9.288,14956,9.288,14957,9.288]],["title/classes/MigrationMayBeCompleted.html",[0,0.231,14958,6.296]],["body/classes/MigrationMayBeCompleted.html",[0,0.309,2,1.019,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,27,0.463,29,0.709,30,0.001,31,0.51,32,0.124,33,0.437,35,1.093,52,4.346,59,2.827,95,0.115,101,0.015,103,0.001,104,0.001,119,2.501,177,1.666,284,2.81,345,2.896,349,0.94,379,1.138,590,5.585,654,2.706,1021,3.559,1271,5.637,1272,6.305,1274,2.879,1276,3.531,1277,6.331,3229,5.521,4507,5.489,8368,6.35,8369,6.596,12194,8.936,12226,6.936,14958,10.444,14959,11.359,14960,8.413,14961,8.413,14962,8.413,14963,8.413,14964,8.413,14965,7.353]],["title/classes/MigrationMayNotBeCompleted.html",[0,0.231,14966,6.296]],["body/classes/MigrationMayNotBeCompleted.html",[0,0.31,2,1.021,3,0.021,4,0.021,5,0.011,7,0.138,8,1.356,27,0.463,29,0.71,30,0.001,31,0.511,32,0.125,33,0.438,35,1.096,52,4.356,59,2.834,95,0.116,101,0.015,103,0.001,104,0.001,119,2.503,177,1.669,284,2.817,345,2.903,349,0.942,379,1.141,654,2.712,1021,3.567,1271,5.643,1272,6.311,1274,2.885,1276,3.536,1277,6.336,4507,5.494,8368,6.357,8369,6.602,12194,8.945,12226,6.952,14959,11.37,14960,8.432,14961,8.432,14962,8.432,14963,8.432,14964,8.432,14965,7.37,14966,10.459,14967,7.37]],["title/classes/MigrationResponse.html",[0,0.231,13959,5.503]],["body/classes/MigrationResponse.html",[0,0.249,2,0.822,3,0.017,4,0.017,5,0.009,7,0.111,27,0.521,29,0.572,30,0.001,31,0.411,32,0.19,33,0.641,52,6.451,83,4.385,95,0.093,101,0.012,103,0.001,104,0.001,112,0.781,119,2.001,138,2.247,149,4.699,150,1.672,153,2.808,245,2.578,271,2.871,379,0.918,816,3.368,1209,6.575,2431,6.441,6318,6.538,8004,7.547,9861,8.506,10952,7.704,11855,7.314,13959,9.981,13975,8.603,14011,8.453,14012,8.453,14013,8.453,14134,9.29,14136,9.29,14968,7.34,14969,9.833,14970,9.092,14971,8.603,14972,7.34,14973,7.34,14974,7.34,14975,7.34,14976,6.786,14977,6.786,14978,6.786,14979,6.786,14980,6.786,14981,6.786,14982,6.786,14983,6.786,14984,6.786,14985,6.786]],["title/classes/MissingSchoolNumberException.html",[0,0.231,13744,5.503]],["body/classes/MissingSchoolNumberException.html",[0,0.407,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.411,29,0.59,30,0.001,31,0.424,32,0.104,33,0.363,35,0.91,47,0.881,52,5.381,55,1.63,59,2.353,95,0.127,101,0.02,103,0.001,104,0.001,157,4.962,180,2.237,226,1.083,239,2.585,349,1.164,379,0.947,590,6.163,654,3.351,931,4.826,1021,4.407,1271,5.727,1272,6.405,1274,2.396,1276,3.75,1277,6.321,2618,5.782,4483,5.961,4507,5.033,8368,6.451,8369,6.701,8468,10.366,12940,5.202,13734,6.121,13735,9.437,13736,5.634,13737,10.086,13738,10.049,13740,10.049,13742,6.345,13743,6.345,13744,8.115,13745,8.413,13746,5.509,13747,6.121,14986,7.575,14987,7.575]],["title/classes/MissingToolParameterValueLoggableException.html",[0,0.231,14988,6.296]],["body/classes/MissingToolParameterValueLoggableException.html",[0,0.219,2,0.723,3,0.015,4,0.015,5,0.008,7,0.098,8,1.08,27,0.524,29,0.874,30,0.001,31,0.362,32,0.182,33,0.498,35,1.082,47,0.886,55,1.389,95,0.15,101,0.011,103,0.001,104,0.001,112,0.715,131,2.418,138,2.148,177,2.459,180,1.614,182,2.1,226,0.923,284,1.994,340,3.103,347,2.365,349,0.667,363,6.612,379,1.127,382,3.69,437,0.835,480,1.793,564,2.766,603,1.809,816,5.151,819,2.266,931,4.113,946,4.814,984,2.785,986,3.796,1021,4.391,1201,7.982,1202,5.917,1203,3.584,1204,6.61,1208,4.17,1209,3.584,1210,4.17,1211,4.17,1212,4.17,1213,4.17,1214,4.17,1215,3.874,1216,3.682,1222,4.06,1271,4.76,1272,5.324,1274,2.043,1276,2.816,1277,5.532,1586,5.81,1837,6.276,1839,3.181,2486,3.915,2504,2.884,2554,7.25,2589,4.293,3232,3.615,3674,5.648,3868,4.921,5476,7.279,5780,4.293,8368,5.362,8369,5.57,8819,4.06,8826,3.754,8827,3.917,8981,5.648,10780,5.969,14988,8.328,14989,10.375,14990,10.375,14991,6.456,14992,6.456,14993,6.456,14994,6.456,14995,5.409,14996,6.456,14997,9.008,14998,10.375,14999,6.456,15000,6.456,15001,6.456]],["title/modules/MongoMemoryDatabaseModule.html",[201,1.804,10729,4.761]],["body/modules/MongoMemoryDatabaseModule.html",[0,0.254,3,0.017,4,0.017,5,0.009,8,0.898,27,0.408,29,0.583,30,0.001,31,0.42,32,0.136,33,0.359,35,1.197,36,2.121,59,2.327,95,0.162,96,2.738,99,1.249,101,0.012,103,0.001,104,0.001,143,1.668,155,2.499,173,2.215,201,2.967,203,2.694,209,2.816,225,2.954,226,1.071,262,2.184,349,1.157,413,3.069,437,1.608,490,4.409,521,2.966,573,5.059,603,1.504,608,1.726,637,5.337,639,3.515,645,5.448,646,5.337,756,4.906,992,3.578,993,3.536,994,3.536,995,3.739,1072,4.98,1073,4.597,1102,5.448,1103,6.846,1106,7.941,1276,2.341,1600,2.816,4901,6.846,6900,4.652,6952,4.906,7874,7.598,10663,8.687,10665,5.337,10667,7.414,10729,7.832,10731,8.883,10735,9.301,15002,11.203,15003,11.203,15004,7.49,15005,7.49,15006,10.879,15007,7.49,15008,9.967,15009,7.49,15010,7.49,15011,7.49,15012,9.967,15013,7.49,15014,6.053,15015,7.49,15016,6.925,15017,7.49,15018,7.49,15019,9.967,15020,7.49]],["title/classes/MongoPatterns.html",[0,0.231,13025,5.705]],["body/classes/MongoPatterns.html",[0,0.32,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.386,30,0.001,72,5.238,101,0.016,103,0.001,104,0.001,112,0.916,355,7.257,358,5.077,413,3.842,480,2.615,486,2.834,572,9.04,1759,6.924,1770,6.297,4199,8.068,5487,8.518,8325,9.325,10381,10.669,11362,8.796,13025,9.667,15021,9.419,15022,12.476,15023,11.54,15024,11.54,15025,9.419,15026,11.54,15027,9.667,15028,11.54,15029,11.54,15030,10.669]],["title/classes/MoveCardBodyParams.html",[0,0.231,4009,5.958]],["body/classes/MoveCardBodyParams.html",[0,0.389,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.469,30,0.001,32,0.157,47,0.809,55,2.466,95,0.145,101,0.015,103,0.001,104,0.001,112,0.91,138,2.084,142,4.482,143,2.884,144,4.267,145,3.596,148,2.954,150,2.121,245,3.254,803,4.676,3431,8.164,3432,6.634,3437,6.771,4009,10.024,4050,9.461,7045,8.607,15031,11.476,15032,12.412,15033,8.607,15034,9.31,15035,8.145,15036,9.31]],["title/classes/MoveColumnBodyParams.html",[0,0.231,4961,5.958]],["body/classes/MoveColumnBodyParams.html",[0,0.385,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.464,30,0.001,32,0.155,34,1.93,47,0.8,55,2.438,95,0.144,101,0.015,103,0.001,104,0.001,112,0.9,138,2.061,142,4.816,143,2.865,144,4.239,145,3.573,148,2.901,150,2.083,153,2.078,245,3.228,803,4.623,1882,4.728,2677,5.115,3431,8.072,3432,6.513,3437,6.648,3814,5.369,4050,9.384,4961,9.911,15031,11.382,15035,7.997,15037,9.14,15038,12.311,15039,9.14,15040,9.14]],["title/classes/MoveContentElementBody.html",[0,0.231,8275,5.958]],["body/classes/MoveContentElementBody.html",[0,0.387,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,27,0.467,30,0.001,32,0.156,47,0.805,55,2.455,95,0.145,101,0.015,103,0.001,104,0.001,112,0.906,138,2.075,142,4.463,143,2.877,144,4.256,145,3.587,148,2.934,150,2.107,245,3.244,803,4.656,2193,5.006,3431,8.13,3432,6.588,3437,6.725,4050,9.432,7050,7.745,8275,9.981,15033,8.548,15035,8.088,15041,12.374,15042,12.374,15043,9.246,15044,9.246]],["title/classes/MoveElementParams.html",[0,0.231,7438,5.705]],["body/classes/MoveElementParams.html",[0,0.415,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.459,30,0.001,32,0.153,55,2.63,72,4.084,95,0.142,100,3.022,101,0.018,103,0.001,104,0.001,112,0.891,138,2.04,148,2.855,149,4.267,150,2.05,153,2.045,245,3.453,249,4.538,970,4.351,1076,5.732,1880,3.721,2279,5.522,2742,5.929,3431,9.119,3432,6.411,3437,8.891,3852,6.18,5555,7.537,5904,6.845,7050,7.537,7433,5.659,7438,9.398,7442,6.411,7559,7.271,8736,8.788,15045,11.301,15046,11.52,15047,8.997,15048,8.997]],["title/classes/MoveElementPositionParams.html",[0,0.231,15046,5.958]],["body/classes/MoveElementPositionParams.html",[0,0.404,2,0.948,3,0.02,4,0.02,5,0.01,7,0.128,27,0.487,30,0.001,32,0.162,33,0.518,55,2.845,72,4.9,95,0.137,100,3.626,101,0.018,103,0.001,104,0.001,112,0.857,138,2.162,148,2.687,149,4.107,150,1.929,153,2.454,245,3.39,249,4.368,970,5.221,1076,7.573,1880,4.465,2279,6.626,2742,6.616,3428,9.982,3431,8.92,3432,6.034,3437,8.646,3852,7.415,5555,9.045,5904,6.656,7050,7.093,7433,6.79,7438,7.093,7442,8.47,7559,9.605,15045,11.574,15046,10.952,15049,8.467,15050,8.467,15051,8.467,15052,8.467]],["title/entities/News.html",[154,1.456,6925,3.884]],["body/entities/News.html",[0,0.314,3,0.01,4,0.023,5,0.005,7,0.16,9,3.159,26,1.956,27,0.507,30,0.001,31,0.517,32,0.175,33,0.547,34,1.14,47,0.895,83,2.517,95,0.145,96,2.252,101,0.016,103,0,104,0,105,0.466,112,0.794,138,2.176,143,2.663,144,3.634,154,2.136,155,1.44,160,4.675,170,3.381,172,3.738,173,1.276,174,2.662,175,1.908,180,1.655,181,2.472,182,1.404,236,1.333,239,2.531,349,0.446,355,5.155,358,3.606,381,1.45,403,4.55,413,1.329,459,4.207,480,1.198,486,1.299,521,3.247,563,4.866,643,2.975,644,5.034,654,3.281,655,4.642,834,2.57,992,3.916,993,4.36,994,3.87,995,4.093,996,4.473,1203,3.376,1221,4.108,1600,1.623,1654,4.385,1660,4.12,1676,3.741,1752,4.384,1770,2.355,1864,2.479,2193,4.278,2503,4.632,2608,4.879,2621,2.535,2677,5.658,2722,2.215,3390,4.597,3392,4.264,3393,4.679,3395,3.076,3396,3.018,3397,3.21,3411,2.649,3544,2.915,3569,2.75,4206,2.27,4298,3.29,4299,3.139,4440,3.139,5039,3.761,5119,4.868,5687,7.27,6283,3.715,6501,3.018,6588,2.649,6590,2.417,6611,2.59,6818,2.915,6824,2.681,6911,3.21,6912,3.488,6914,4.061,6915,3.488,6916,6.869,6917,5.964,6918,3.488,6919,8.284,6920,6.141,6921,5.409,6922,6.097,6923,6.869,6924,6.768,6925,7.568,6926,5.408,6927,6.581,6928,5.408,6929,5.102,6930,5.102,6931,5.964,6932,5.408,6933,3.29,6934,3.29,6935,3.488,6936,3.21,6937,3.488,6938,2.562,6939,2.649,6940,3.29,6941,3.488,6942,3.488,6943,6.422,6944,3.488,6945,6.624,6946,3.488,6947,3.488,6948,5.102,6949,3.29,6950,5.731,6951,3.381,6952,4.384,6953,3.29,6954,3.139,6955,3.29,6956,3.488,15053,4.316,15054,4.316,15055,4.316,15056,4.316,15057,4.316,15058,4.316,15059,4.316,15060,4.316,15061,4.316,15062,4.316,15063,4.316,15064,4.316]],["title/controllers/NewsController.html",[259,2.591,15065,5.958]],["body/controllers/NewsController.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.917,10,4.388,27,0.442,29,0.841,30,0.001,31,0.605,32,0.148,33,0.518,34,1.303,35,1.297,36,2.664,95,0.149,100,3.937,101,0.008,103,0,104,0,112,0.607,138,1.964,150,1.172,154,1.634,177,0.942,223,2.118,226,0.735,236,0.837,239,2.763,247,2.252,259,1.957,261,2.443,262,2.897,270,6.52,271,4.428,274,4.588,294,6.773,310,3.956,324,4.619,333,3.236,334,3.322,337,2.659,338,2.719,343,2.74,345,1.637,349,1.116,437,1.619,608,2.489,643,3.399,654,3.006,685,4.276,819,2.683,831,7.065,989,4.244,1615,6.131,2555,5.829,2879,7.414,2896,6.48,2900,5.158,2901,2.762,3392,4.872,3717,6.344,4564,4.75,5071,4.872,5485,6.179,5504,4.388,5948,4.447,6679,6.063,6925,7.686,6965,7.07,7098,8.166,7155,3.921,10765,8.166,12806,4.309,14153,4.309,14159,4.309,15065,6.69,15066,5.144,15067,7.15,15068,5.144,15069,5.144,15070,10.954,15071,7.647,15072,5.144,15073,4.756,15074,5.144,15075,7.07,15076,5.144,15077,7.647,15078,5.144,15079,7.647,15080,5.144,15081,8.466,15082,7.647,15083,5.144,15084,4.157,15085,4.5,15086,7.376,15087,4.756,15088,4.157,15089,4.157,15090,4.756,15091,5.144,15092,4.756,15093,4.756,15094,4.756,15095,8.841,15096,4.5,15097,4.756,15098,4.756,15099,4.756,15100,4.756,15101,5.144,15102,5.144,15103,5.144,15104,5.144,15105,5.144,15106,7.647,15107,5.144]],["title/classes/NewsCrudOperationLoggable.html",[0,0.231,15108,5.958]],["body/classes/NewsCrudOperationLoggable.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,26,2.668,27,0.447,29,0.671,30,0.001,31,0.482,32,0.118,33,0.413,35,1.035,39,3.389,95,0.16,99,1.437,101,0.014,103,0.001,104,0.001,177,2.193,191,4.661,284,2.66,349,0.89,379,1.365,603,2.407,1021,3.369,1271,5.498,1272,6.148,1274,2.725,1276,3.411,1277,6.207,2345,10.179,6925,7.858,10792,9.602,15084,6.959,15085,7.534,15108,9.548,15109,11.981,15110,8.612,15111,8.612,15112,11.646,15113,8.612,15114,8.612,15115,7.962,15116,7.962,15117,8.612,15118,8.612]],["title/classes/NewsListResponse.html",[0,0.231,15088,5.503]],["body/classes/NewsListResponse.html",[0,0.264,2,0.589,3,0.012,4,0.027,5,0.006,7,0.08,27,0.447,29,0.41,30,0.001,31,0.518,32,0.177,33,0.523,34,1.944,47,0.856,55,2.857,56,5.519,59,2.417,70,5.699,83,2.841,95,0.145,99,0.878,101,0.013,103,0,104,0,112,0.618,133,1.841,138,1.859,149,3.888,150,1.2,153,3.038,154,2.73,180,1.394,239,2.345,245,3.454,247,2.305,253,3.809,284,3.368,305,3.032,319,2.377,376,4.03,377,4.2,379,0.973,382,3.084,404,2.149,406,3.4,408,3.4,437,1.197,556,1.326,563,3.125,654,3.395,810,7.248,811,6.178,812,4.437,814,2.646,816,4.246,817,2.53,818,2.948,819,1.847,820,3.681,821,5.024,822,4.48,823,3.449,824,2.804,825,3.681,826,3.681,828,3.311,829,2.922,834,2.439,989,2.922,1203,3.263,1503,3.354,1579,3.062,1660,5.137,1676,3.55,1864,1.95,2193,4.135,2306,3.354,2677,5.331,2722,2.702,2856,4.144,2857,4.144,2860,2.594,2896,3.159,3411,3.231,3464,3.916,4299,3.83,4370,7.752,4564,3.27,4648,3.616,5687,6.73,6610,3.27,6917,5.024,6920,6.152,6921,5.008,6922,3.916,6923,6.882,6924,5.492,6925,7.284,6934,4.013,6940,4.013,6950,3.681,7102,6.469,7106,3.354,7107,4.411,7108,4.013,7111,4.957,7114,3.83,10018,3.916,12478,4.255,15088,6.287,15089,9.796,15119,4.868,15120,5.265,15121,5.265,15122,6.287,15123,6.287,15124,7.477,15125,7.193,15126,7.193,15127,4.606,15128,7.193,15129,4.868,15130,4.868,15131,4.125,15132,4.868,15133,4.606,15134,6.806]],["title/classes/NewsMapper.html",[0,0.231,15084,5.503]],["body/classes/NewsMapper.html",[0,0.208,2,0.685,3,0.014,4,0.02,5,0.007,7,0.093,8,1.04,27,0.474,29,0.901,30,0.001,31,0.648,32,0.158,33,0.555,34,1.478,35,1.391,95,0.152,99,1.021,100,4.243,101,0.01,103,0,104,0,236,0.996,239,1.405,271,3.394,284,2.68,310,3.761,349,1.196,376,2.667,377,2.779,413,4.187,437,1.634,654,2.998,778,4.817,785,3.057,1203,3.218,1273,8.818,1274,1.937,1660,3.077,2193,4.078,2677,4.951,6917,6.51,6920,6.702,6921,4.696,6923,4.554,6924,6.509,6925,7.43,7098,8.862,7102,7.667,7464,8.023,10765,8.862,10767,4.947,11942,8.145,11949,8.444,11950,8.862,15081,9.187,15084,7.012,15089,8.862,15135,6.122,15136,8.678,15137,8.678,15138,8.678,15139,8.678,15140,8.678,15141,6.122,15142,8.678,15143,6.122,15144,8.678,15145,6.122,15146,8.678,15147,6.122,15148,8.678,15149,6.122,15150,5.356,15151,10.08,15152,5.356,15153,5.356,15154,6.122,15155,6.122,15156,6.122,15157,8.678,15158,6.122,15159,6.122,15160,5.66,15161,6.122,15162,6.122,15163,8.023,15164,8.023,15165,6.122,15166,6.122,15167,5.66,15168,6.122,15169,6.122,15170,6.122,15171,8.678,15172,6.122,15173,6.122,15174,6.122,15175,6.122,15176,8.678,15177,8.678,15178,6.122,15179,6.122,15180,6.122]],["title/modules/NewsModule.html",[201,1.804,15181,5.503]],["body/modules/NewsModule.html",[0,0.288,3,0.02,4,0.02,5,0.01,30,0.001,95,0.17,101,0.014,103,0.001,104,0.001,201,3.152,203,3.052,204,3.279,205,3.375,206,3.361,207,3.347,208,4.358,209,4.474,214,6.138,218,4.3,219,3.306,220,3.228,223,4.451,225,4.264,226,1.213,227,3.493,1274,2.684,1689,7.219,2469,3.851,15065,10.409,15086,11.323,15087,7.845,15181,11.375,15182,8.485,15183,8.485,15184,8.485,15185,8.485,15186,10.69,15187,8.485,15188,10.409,15189,8.485,15190,8.485,15191,8.485]],["title/injectables/NewsRepo.html",[539,0.901,15186,5.503]],["body/injectables/NewsRepo.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.071,8,0.852,10,2.887,12,3.261,18,3.596,26,2.537,27,0.5,29,0.91,30,0.001,31,0.655,32,0.164,33,0.561,34,1.466,35,1.405,36,2.643,40,2.256,49,2.803,59,2.674,95,0.138,96,1.282,98,2.77,99,0.778,101,0.008,103,0,104,0,112,0.564,153,1.061,154,0.997,155,2.371,173,1.38,180,1.274,226,0.667,236,1.156,262,2.909,310,3.08,319,3.886,333,4.382,349,1.07,382,2.903,437,1.606,479,4.652,480,1.296,486,1.404,490,4.566,539,0.941,541,1.117,590,5.906,603,1.729,604,3.497,608,2.761,654,3.245,679,6.663,685,3.007,686,3.355,687,4.355,711,2.864,712,2.899,713,2.864,714,2.899,715,3.325,716,2.864,717,2.899,718,2.59,722,3.557,767,3.205,844,5.295,1600,1.755,2031,4.016,2288,5.711,2677,5.407,3392,6.13,3395,6.856,3830,5.743,4145,3.057,4321,2.831,4689,3.103,4691,5.047,5461,2.899,5504,3.497,5687,5.169,5948,4.133,6219,4.881,6283,6.055,6679,4.264,6911,6.401,6921,3.846,6925,7.471,6949,6.561,6955,6.561,6969,7.412,6979,5.286,8119,5.169,9658,8.675,10246,6.57,10260,6.57,10769,3.771,12955,8.418,15186,5.743,15192,4.667,15193,8.607,15194,7.107,15195,8.607,15196,7.107,15197,7.107,15198,9.166,15199,4.667,15200,4.667,15201,4.667,15202,7.107,15203,4.667,15204,9.622,15205,4.667,15206,4.667,15207,4.667,15208,7.529,15209,7.107,15210,4.667,15211,9.622,15212,7.107,15213,4.667,15214,4.667,15215,7.107,15216,4.667,15217,4.667,15218,7.107,15219,7.107,15220,4.667,15221,4.667,15222,4.667,15223,8.607,15224,4.667,15225,4.667,15226,4.667]],["title/classes/NewsResponse.html",[0,0.231,15089,5.503]],["body/classes/NewsResponse.html",[0,0.231,2,0.494,3,0.01,4,0.028,5,0.005,7,0.067,27,0.531,29,0.343,30,0.001,31,0.565,32,0.183,33,0.533,34,2.086,47,0.915,55,1.788,56,3.291,70,3.398,83,3.276,95,0.135,99,0.736,101,0.011,103,0,104,0,112,0.54,133,2.38,138,2.339,149,3.554,150,1.005,153,3.026,154,2.873,180,0.79,239,2.551,245,3.338,247,1.931,253,4.069,284,2.102,305,3.919,319,3.073,376,4.397,377,4.582,379,0.851,404,1.8,406,2.849,408,2.849,437,1.075,563,2.618,654,3.579,769,2.232,810,4.177,811,2.387,812,2.516,816,5.522,828,2.774,829,2.448,834,2.605,989,3.778,1203,3.55,1209,3.778,1503,2.81,1579,3.958,1660,5.589,1676,4.264,1864,2.521,2193,4.498,2306,4.336,2677,5.613,2722,2.264,2855,2.889,2856,4.976,2857,4.976,2859,2.707,2860,3.354,2896,4.084,3411,2.707,3464,5.062,4299,3.208,4370,6.962,4564,4.227,4648,4.675,5687,7.343,6225,4.078,6610,2.74,6917,5.367,6920,6.712,6921,5.464,6922,3.281,6923,7.509,6924,5.992,6925,7.667,6934,3.362,6940,3.362,6950,3.084,7102,7.058,7106,4.336,7107,5.702,7108,5.188,7111,5.952,7114,4.95,10018,3.281,12478,3.564,15088,3.564,15089,9.279,15119,4.078,15122,6.715,15123,6.715,15124,8.158,15125,7.683,15126,7.683,15127,3.859,15128,7.683,15129,4.078,15130,4.078,15131,3.455,15132,4.078,15133,5.954,15134,8.174,15227,4.411,15228,4.411,15229,4.411,15230,4.411,15231,4.411,15232,4.411,15233,4.411,15234,4.411,15235,4.411,15236,4.411,15237,4.411,15238,4.411,15239,4.411,15240,4.411,15241,4.411,15242,4.411]],["title/classes/NewsScope.html",[0,0.231,15208,5.958]],["body/classes/NewsScope.html",[0,0.215,2,0.709,3,0.015,4,0.015,5,0.008,7,0.096,8,1.066,26,2.358,27,0.53,29,0.867,30,0.001,31,0.624,32,0.171,33,0.534,35,1.46,83,2.729,95,0.149,96,1.74,99,1.057,101,0.01,103,0.001,104,0.001,112,0.706,119,2.09,173,1.873,180,1.593,236,1.446,310,4.825,349,1.211,382,3.538,437,1.328,480,1.759,486,1.906,519,1.962,556,1.596,603,2.442,696,2.498,708,2.631,1559,2.787,1668,4.829,1755,7.646,2288,6.96,2677,2.86,3595,5.856,3597,5.119,4321,3.843,5504,5.331,6058,6.004,6059,6.004,6060,6.004,6065,6.004,6066,6.004,6067,4.351,6068,4.279,6069,4.351,6070,4.351,6079,4.279,6080,6.004,6081,4.351,6082,4.279,6083,4.351,6084,4.279,6085,7.52,6283,5.7,6920,5.91,6921,3.428,6924,3.76,6925,5.07,9658,5.306,9663,5.856,9674,4.829,10292,5.119,10301,5.542,10308,5.542,13050,7.183,13053,8.218,15198,8.996,15208,11.479,15243,10.84,15244,8.889,15245,11.133,15246,8.889,15247,11.133,15248,8.889,15249,6.334,15250,8.889,15251,6.334,15252,5.856,15253,6.334,15254,6.334,15255,6.334,15256,6.334,15257,6.334,15258,6.334,15259,6.334]],["title/interfaces/NewsTargetFilter.html",[105,0.735,15198,5.503]],["body/interfaces/NewsTargetFilter.html",[3,0.024,4,0.024,5,0.012,7,0.154,26,2.823,30,0.001,32,0.165,95,0.128,99,1.69,101,0.017,103,0.001,104,0.001,105,1.093,107,2.431,112,0.958,2677,4.573,6917,8.607,6924,7.911,9662,11.659,15198,9.744,15243,9.366,15260,10.13]],["title/injectables/NewsUc.html",[539,0.901,15086,5.503]],["body/injectables/NewsUc.html",[0,0.112,3,0.008,4,0.008,5,0.004,7,0.05,8,0.647,10,2.194,25,4.724,26,2.881,27,0.451,29,0.858,30,0.001,31,0.617,32,0.154,33,0.529,34,1.689,35,1.43,36,2.533,39,3.545,47,0.484,59,1.678,83,2.434,95,0.126,98,1.957,99,0.55,101,0.005,103,0,104,0,119,1.395,153,0.75,226,0.471,227,1.358,236,0.878,239,1.239,262,2.846,271,4.189,333,5.037,349,1.138,359,4.114,379,0.675,381,1.814,413,2.111,437,1.612,480,1.904,486,2.631,490,3.515,517,2.629,521,1.306,539,0.715,541,0.789,556,1.727,593,2.539,603,2.424,608,2.96,643,3.047,654,0.981,662,3.794,685,2.285,696,1.301,928,2.971,989,1.83,992,1.575,993,1.557,994,1.557,1150,1.311,1274,1.043,1610,3.314,1660,5.892,1695,3.624,1696,6.64,1752,3.537,1922,1.785,2250,4.063,2345,2.665,2469,1.497,2677,3.948,2711,5.192,2896,3.24,3060,2.352,3247,2.074,4206,2.966,4451,2.101,4545,3.927,5504,4.204,6679,1.978,6917,5.118,6920,6.879,6921,1.785,6924,6.54,6925,7.629,6969,4.809,7041,2.583,7102,6.931,7114,2.398,8888,5.371,9632,4.992,9639,4.992,9658,8.305,9662,4.724,10767,7.066,11942,6.405,11949,6.64,11950,8.011,12512,2.583,12801,4.724,13419,2.885,13420,2.885,15086,4.363,15096,4.724,15108,2.885,15112,3.049,15115,3.049,15127,2.885,15160,3.049,15163,7.328,15164,7.328,15167,4.992,15186,7.588,15198,4.363,15261,3.297,15262,6.856,15263,5.399,15264,5.399,15265,5.399,15266,6.856,15267,3.297,15268,3.297,15269,4.992,15270,3.297,15271,3.297,15272,3.297,15273,3.297,15274,5.399,15275,5.998,15276,5.998,15277,5.399,15278,3.297,15279,5.399,15280,3.297,15281,9.39,15282,3.297,15283,5.399,15284,3.297,15285,4.992,15286,3.297,15287,5.541,15288,3.297,15289,5.399,15290,3.297,15291,3.297,15292,3.297,15293,5.399,15294,6.856,15295,3.297,15296,3.297,15297,7.926,15298,3.297,15299,5.399,15300,3.297,15301,5.399,15302,3.297,15303,3.297,15304,3.297,15305,3.297,15306,5.399,15307,3.297,15308,3.297,15309,3.297,15310,5.399,15311,6.856,15312,3.297,15313,3.297,15314,3.297,15315,3.297,15316,3.297,15317,3.297,15318,3.297,15319,3.297,15320,3.297,15321,3.297,15322,5.399,15323,3.297,15324,3.297,15325,3.297,15326,5.399,15327,3.297,15328,3.297,15329,3.297,15330,3.297,15331,3.297]],["title/classes/NewsUrlParams.html",[0,0.231,15070,5.958]],["body/classes/NewsUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,3814,5.762,6925,6.746,15070,10.348,15332,9.809,15333,12.7,15334,9.809]],["title/injectables/NexboardService.html",[539,0.901,14222,5.958]],["body/injectables/NexboardService.html",[0,0.268,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,26,2.583,27,0.423,29,0.804,30,0.001,31,0.578,32,0.157,33,0.495,34,1.346,35,0.949,36,2.197,39,3.094,47,0.947,94,3.845,95,0.155,101,0.017,103,0.001,104,0.001,145,2.194,153,2.772,177,1.446,226,1.13,236,1.285,262,2.52,284,2.441,345,2.515,349,1.067,379,0.988,437,1.488,539,1.367,541,1.892,560,3.253,579,4.209,603,1.587,608,1.821,685,3.344,986,3.491,1174,4.242,1194,2.716,1203,3.894,1274,2.5,1882,3.298,2250,4.714,2251,5.506,2439,3.869,8482,6.913,8483,9.441,8487,7.306,8488,6.913,8494,7.306,8496,7.306,11883,7.358,14222,9.033,15335,7.902,15336,11.502,15337,7.902,15338,7.902,15339,7.902,15340,10.326,15341,7.902,15342,7.902,15343,7.902,15344,7.902]],["title/interfaces/NextcloudGroups.html",[105,0.735,11338,5.065]],["body/interfaces/NextcloudGroups.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.975,55,2.652,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,982,5.916,987,6.188,1021,3.584,3060,3.99,4542,6.188,6540,7.565,11336,6.814,11337,6.983,11338,8.438,11339,6.814,11340,6.983,11341,8.616,11342,6.983,11343,6.983,11344,6.814,11345,6.983,11346,6.664,11347,6.814,11348,6.983,11349,6.814]],["title/injectables/NextcloudStrategy.html",[539,0.901,4617,5.958]],["body/injectables/NextcloudStrategy.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.606,27,0.439,29,0.78,30,0.001,31,0.642,32,0.137,33,0.481,34,1.771,35,1.249,36,2.549,39,1.36,47,0.914,55,1.802,62,2.97,72,1.382,95,0.145,99,0.508,100,2.536,101,0.005,103,0,104,0,112,0.402,153,2.054,177,1.654,226,0.435,236,0.495,239,1.922,262,2.753,273,3.855,276,1.295,280,3.473,301,3.362,305,1.754,333,4.4,349,0.989,379,0.632,413,2.782,437,1.599,448,4.61,473,2.759,517,1.168,529,0.862,539,0.669,541,0.729,562,5.186,564,0.935,579,1.622,593,1.128,603,2.259,608,2.936,654,1.504,696,1.201,708,1.265,759,1.995,928,2.783,931,1.94,933,1.754,970,5.543,1053,3.855,1174,2.715,1245,1.967,1274,0.963,1276,1.581,1396,2.129,1455,3.678,1660,1.531,1663,1.289,1731,1.94,1757,2.025,1772,2.17,1839,1.501,1891,3.678,2143,3.603,2170,5.06,2250,2.073,2251,3.409,2256,1.754,2279,3.104,2306,3.222,2333,1.789,2365,3.312,2432,3.603,2486,2.503,2565,3.195,2768,1.808,2896,1.827,2940,2.057,3060,3.288,3368,2.092,3464,4.823,3538,3.195,3539,2.646,3541,1.541,3544,2.057,3908,6.882,3914,4.675,4542,7.432,4547,4.236,4550,3.416,4552,4.086,4553,4.086,4555,4.086,4556,4.086,4558,5.24,4561,4.086,4562,7.41,4564,8.005,4565,4.086,4569,4.086,4575,2.265,4577,2.386,4597,8.403,4598,2.461,4599,2.664,4600,8.375,4601,7.328,4615,6.963,4616,6.98,4617,4.424,4622,2.816,4623,2.386,4767,5.623,5211,2.551,5500,1.737,5643,1.892,5767,2.577,6131,1.94,6140,1.869,6166,5.875,6921,2.737,7101,2.386,7111,4.81,7141,2.673,7250,4.533,7340,3.141,7534,8.796,7871,3.962,7890,2.092,7996,2.386,8324,2.816,9003,4.823,9688,3.222,9732,6.575,10377,1.721,11516,2.321,11538,8.982,11583,9.915,11676,4.675,11786,3.222,11948,3.362,12564,6.572,14995,2.551,15345,3.045,15346,7.55,15347,7.55,15348,5.057,15349,5.057,15350,5.057,15351,3.045,15352,3.045,15353,7.569,15354,9.035,15355,3.045,15356,3.855,15357,3.045,15358,3.045,15359,5.057,15360,3.045,15361,8.376,15362,7.55,15363,5.057,15364,3.045,15365,3.045,15366,5.432,15367,3.045,15368,4.424,15369,5.057,15370,7.736,15371,3.045,15372,4.236,15373,4.675,15374,4.675,15375,5.057,15376,3.045,15377,3.045,15378,3.045,15379,3.045,15380,10.021,15381,7.55,15382,3.045,15383,2.816,15384,3.045,15385,3.045,15386,3.045,15387,5.057,15388,3.045,15389,5.057,15390,6.484,15391,7.55,15392,5.057,15393,3.045,15394,2.664,15395,2.461,15396,3.045,15397,5.057,15398,3.045,15399,3.045,15400,3.045,15401,3.045,15402,3.045,15403,3.045,15404,5.057,15405,3.045,15406,5.057,15407,3.045,15408,3.045,15409,3.045,15410,2.816,15411,3.045,15412,3.045,15413,3.045,15414,3.045,15415,3.045,15416,3.045,15417,3.045,15418,3.045,15419,3.045,15420,3.045,15421,3.045,15422,3.045,15423,3.045,15424,3.045,15425,3.045,15426,3.045,15427,3.045,15428,3.045,15429,5.057,15430,5.057,15431,3.045,15432,3.045,15433,3.045,15434,3.045,15435,3.045,15436,3.045,15437,3.045,15438,3.045,15439,3.045]],["title/classes/NotFoundLoggableException.html",[0,0.231,4481,4.6]],["body/classes/NotFoundLoggableException.html",[0,0.29,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,8,1.301,27,0.445,29,0.665,30,0.001,31,0.478,32,0.148,33,0.41,35,1.026,47,0.971,95,0.151,101,0.014,103,0.001,104,0.001,177,2.184,180,1.945,182,2.778,226,1.221,284,2.637,349,0.882,379,1.358,437,1.104,603,2.397,1021,4.246,1271,5.476,1276,3.393,1277,6.188,2619,6.356,4481,7.332,8368,6.491,8819,5.37,8821,6.085,8826,4.966,8827,5.181,10782,7.153,10783,7.153,15440,11.934,15441,11.934,15442,11.033,15443,8.539,15444,11.934,15445,11.934,15446,11.934,15447,8.539,15448,8.539,15449,8.539,15450,8.539,15451,8.539]],["title/injectables/OAuth2ToolLaunchStrategy.html",[539,0.901,15452,5.705]],["body/injectables/OAuth2ToolLaunchStrategy.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,8,0.862,9,2.237,26,2.325,27,0.529,29,0.996,30,0.001,31,0.716,32,0.179,33,0.613,35,1.536,36,2.426,39,2.337,47,0.866,95,0.132,99,0.79,101,0.008,103,0,104,0,112,0.871,120,3.163,177,1.316,180,1.288,226,0.677,262,2.688,271,2.812,284,3.389,349,0.897,382,3.897,480,1.996,519,2.227,521,3.841,539,0.952,541,1.134,556,2.443,593,3.217,603,2.673,662,4.021,992,4.632,993,4.578,994,4.578,995,4.842,996,5.292,1194,3.334,1586,2.653,1600,1.782,1836,6.731,1837,6.485,1891,7.053,1892,6.91,2026,5.61,2486,2.384,2525,3.969,2527,4.381,2528,12.228,2529,6.647,2530,8.032,2531,6.647,2532,6.647,2533,6.647,2534,6.647,2535,6.647,2536,6.647,2537,6.647,2538,6.647,2539,6.289,2540,6.289,2541,6.647,2542,6.647,2543,4.381,2544,9.492,2545,4.381,2546,6.647,2547,10.755,2549,6.647,2551,7.277,2552,4.381,2553,6.647,2554,7.364,2555,5.48,2556,4.381,2557,4.381,2558,6.647,2559,6.78,2560,4.381,2561,4.381,2562,6.647,2563,4.381,2564,4.381,2565,4.281,2566,4.381,2567,8.365,2568,4.381,2569,4.381,2570,4.381,2571,4.381,2572,4.145,2573,4.145,2574,4.381,2575,4.381,2576,4.381,2577,3.446,2578,4.381,2579,6.647,2580,6.352,2581,4.381,2582,4.381,2583,6.647,2584,4.381,2585,2.63,2586,6.647,2588,4.381,2589,3.15,2590,4.145,2591,3.712,2603,4.145,15452,6.023,15453,4.738,15454,4.738]],["title/classes/OAuthMigrationError.html",[0,0.231,15455,5.503]],["body/classes/OAuthMigrationError.html",[0,0.248,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.531,29,0.568,30,0.001,31,0.409,32,0.177,33,0.592,47,1.008,52,4.68,59,3.672,95,0.093,101,0.012,103,0.001,104,0.001,112,0.778,128,4.761,177,2.577,180,1.756,379,1.225,382,3.566,480,2.72,486,2.948,986,3.313,1021,4.965,1628,5.719,3868,5.564,4507,5.28,5500,5.588,6900,6.086,11444,9.24,13110,6.386,13736,5.429,15455,7.917,15456,10.928,15457,9.675,15458,9.675,15459,10.863,15460,12.967,15461,12.967,15462,9.798,15463,9.798,15464,7.3,15465,7.3,15466,7.3,15467,7.3,15468,7.3,15469,6.749,15470,6.749,15471,6.749,15472,6.749,15473,7.3,15474,7.3]],["title/classes/OAuthProcessDto.html",[0,0.231,15475,5.705]],["body/classes/OAuthProcessDto.html",[0,0.327,2,1.08,3,0.023,4,0.023,5,0.011,7,0.146,27,0.516,29,0.751,30,0.001,31,0.54,32,0.172,33,0.605,47,0.925,101,0.016,103,0.001,104,0.001,112,0.93,379,1.206,819,3.384,1413,7.483,2057,8.141,2073,8.079,5998,9.461,15475,11.252,15476,12.121,15477,9.644,15478,11.708,15479,9.644,15480,9.644,15481,9.644,15482,9.644]],["title/classes/OAuthRejectableBody.html",[0,0.231,5490,5.503]],["body/classes/OAuthRejectableBody.html",[0,0.309,2,0.735,3,0.015,4,0.015,5,0.008,7,0.099,27,0.486,30,0.001,32,0.162,33,0.634,47,0.907,55,1.96,95,0.115,101,0.011,103,0.001,104,0.001,112,0.723,135,6.823,138,2.16,142,5.17,144,4.354,145,3.888,148,2.082,150,1.495,153,2.866,245,3.223,248,4.957,249,4.973,282,5.658,287,5.967,347,3.337,348,5.644,662,2.865,838,7.904,946,4.227,986,4.587,1147,5.729,1227,6.626,1239,5.591,1720,8.198,1962,5.013,2362,6.783,3431,6.491,5461,5.658,5490,7.362,5491,8.766,5492,8.766,5493,8.198,5496,5.967,5513,8.856,5514,6.944,5515,7.97,5516,7.97,5517,7.97,5519,6.057,5520,8.618,5521,7.904,5522,6.944,5523,7.362,5524,6.944,5525,7.632,5526,7.362,5528,7.632,5530,6.944,5532,5.74,5533,7.632,5534,7.632,15483,11.365,15484,6.562,15485,6.562,15486,6.562,15487,6.562,15488,6.562,15489,6.562]],["title/classes/OAuthSSOError.html",[0,0.231,11444,4.853]],["body/classes/OAuthSSOError.html",[0,0.276,2,0.912,3,0.019,4,0.019,5,0.01,7,0.123,27,0.523,29,0.634,30,0.001,31,0.456,32,0.175,33,0.391,47,0.992,59,3.271,95,0.133,101,0.013,103,0.001,104,0.001,112,0.836,177,2.55,180,1.887,226,1.164,379,1.018,480,2.923,486,3.167,986,3.945,1021,4.997,1158,5.574,1628,8.248,3868,6.206,5500,6.005,6900,6.539,11444,7.502,15457,10.208,15458,10.208,15459,11.155,15469,7.527,15470,7.527,15471,7.527,15472,7.527,15490,13.085,15491,8.142,15492,10.528,15493,9.734,15494,9.775,15495,8.142,15496,8.142,15497,8.142,15498,7.527,15499,8.142]],["title/injectables/OAuthService.html",[539,0.901,11427,5.191]],["body/injectables/OAuthService.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.604,26,1.594,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,35,1.286,36,2.476,47,1,48,5.808,52,4.305,59,2.595,95,0.157,99,0.505,100,1.017,101,0.005,103,0,104,0,105,0.327,119,1.944,121,6.798,128,1.22,133,1.059,143,1.121,177,1.9,226,0.433,236,1.627,238,4.333,239,2.068,262,2.751,284,0.936,310,1.313,349,1.16,360,1.696,379,0.63,437,1.69,529,2.129,539,0.666,541,0.725,556,1.627,593,2.393,603,2.372,608,2.758,639,1.422,654,2.238,946,3.875,986,1.024,1155,3.588,1194,2.587,1271,1.39,1274,0.958,1322,6.749,1375,2.118,1378,2.253,1397,2.801,1401,2.538,1413,1.798,1417,2.309,1421,1.882,1433,5.004,1503,1.93,1547,3.662,1551,2.819,1564,5.973,1631,3.127,1663,2.13,1897,4.733,1899,4.232,1901,1.696,1902,2.819,2017,1.326,2018,1.483,2019,1.43,2020,1.93,2057,6.912,2250,2.648,2251,3.398,2369,2.081,3072,3.434,3368,3.458,3539,2.055,3541,2.548,4523,2.253,4767,5.294,4901,3.458,4902,2.373,5496,3.298,5500,2.872,6164,1.984,6779,1.956,7069,4.405,7141,3.977,8339,2.253,8522,5.004,8531,6.731,8925,2.118,9368,5.474,9397,2.448,9731,2.448,10115,1.905,11248,6.075,11291,4.295,11427,3.838,11441,8.4,11444,3.588,11447,4.699,11451,2.65,11454,4.655,11501,5.652,11522,2.253,11523,2.253,11524,4.805,11580,7.248,11840,2.253,12196,2.159,12323,3.662,12354,3.838,12356,2.309,12368,2.309,12585,2.538,13075,3.944,13102,3.52,13113,2.801,13118,2.65,13387,2.448,14118,4.405,14320,2.448,14929,8.001,14932,4.655,14937,2.65,14940,4.405,14995,2.538,15395,2.448,15459,6.997,15498,2.801,15500,3.029,15501,6.46,15502,6.46,15503,6.46,15504,4.655,15505,5.035,15506,5.035,15507,5.035,15508,6.46,15509,5.035,15510,8.001,15511,7.482,15512,6.947,15513,7.482,15514,3.029,15515,3.029,15516,7.525,15517,3.029,15518,3.029,15519,3.029,15520,3.029,15521,3.029,15522,5.035,15523,3.029,15524,5.035,15525,8.648,15526,3.029,15527,5.035,15528,3.029,15529,5.035,15530,3.029,15531,3.029,15532,3.029,15533,5.035,15534,3.029,15535,5.035,15536,3.029,15537,2.373,15538,2.65,15539,2.65,15540,2.65,15541,3.029,15542,2.801,15543,4.068,15544,2.801,15545,3.029,15546,4.405,15547,3.029,15548,3.029,15549,3.029,15550,3.029,15551,2.801,15552,2.448,15553,3.029,15554,7.525,15555,3.029,15556,3.029,15557,4.655,15558,3.029,15559,4.655,15560,3.029,15561,3.029,15562,3.029,15563,2.801,15564,4.405,15565,3.029,15566,3.029,15567,3.029,15568,2.801,15569,3.029,15570,4.218,15571,3.029,15572,3.029,15573,3.029,15574,3.029,15575,2.801,15576,3.029,15577,3.029,15578,3.029,15579,3.029,15580,3.029,15581,3.029,15582,3.029,15583,5.035,15584,3.029,15585,3.029,15586,2.801,15587,3.029,15588,3.029,15589,3.029,15590,3.029,15591,3.029,15592,3.029,15593,3.029,15594,3.029,15595,4.655,15596,2.801,15597,3.029,15598,3.029,15599,3.029,15600,4.655,15601,3.029,15602,5.035,15603,3.029]],["title/classes/OAuthTokenDto.html",[0,0.231,11447,4.953]],["body/classes/OAuthTokenDto.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.532,29,0.732,30,0.001,31,0.526,32,0.178,33,0.451,47,0.958,101,0.015,103,0.001,104,0.001,112,0.915,121,8.164,181,3.084,379,1.175,381,3.156,1433,8.287,11447,9.698,14525,7.872,14526,7.872,15604,13.334,15605,9.397,15606,11.523,15607,11.523,15608,9.397,15609,9.397,15610,8.688,15611,8.688,15612,9.397,15613,9.397]],["title/classes/Oauth2AuthorizationBodyParams.html",[0,0.231,14499,5.705]],["body/classes/Oauth2AuthorizationBodyParams.html",[0,0.389,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.508,30,0.001,32,0.17,47,0.956,48,5.894,95,0.145,101,0.015,103,0.001,104,0.001,112,0.91,138,2.258,148,2.954,150,2.121,245,3.396,248,5.18,803,4.676,804,7.447,946,5.759,5875,6.771,7398,9.259,11580,7.618,13750,8.145,13751,8.607,14394,8.607,14395,8.607,14499,9.598,15614,12.952]],["title/classes/Oauth2MigrationParams.html",[0,0.231,15615,5.958]],["body/classes/Oauth2MigrationParams.html",[0,0.385,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.504,30,0.001,32,0.168,47,0.951,48,5.846,95,0.144,101,0.015,103,0.001,104,0.001,112,0.9,128,5.184,138,2.239,148,2.901,150,2.083,245,3.374,248,5.138,803,4.623,804,7.387,946,5.712,4507,5.749,5875,6.648,7398,9.154,11580,7.556,15615,9.911,15616,12.869,15617,9.14,15618,9.14,15619,9.14,15620,9.14]],["title/injectables/Oauth2Strategy.html",[539,0.901,1364,5.958]],["body/injectables/Oauth2Strategy.html",[0,0.241,3,0.017,4,0.017,5,0.008,7,0.108,8,1.152,27,0.394,29,0.748,30,0.001,31,0.538,32,0.16,33,0.461,35,0.852,36,2.045,47,0.501,48,5.175,66,6.206,94,5.303,95,0.173,101,0.012,103,0.001,104,0.001,105,0.766,120,4.228,122,4.792,141,3.389,177,1.759,180,1.722,182,2.308,226,1.014,236,1.563,239,2.68,262,2.388,270,3.473,292,3.59,294,4.83,324,3.59,345,2.258,349,0.733,379,0.887,425,5.16,437,1.579,528,3.693,529,2.719,539,1.272,541,1.698,593,2.627,603,1.425,608,2.512,617,9.812,631,3.64,946,4.459,1237,4.046,1364,8.408,1370,5.276,1540,5.276,1815,4.717,2057,4.581,4550,4.792,5496,6.295,6164,6.295,7129,5.276,7141,5.079,7144,7.148,7148,5.732,11426,6.206,11427,9.595,11447,6.99,11580,5.898,13171,5.557,13175,8.051,13180,5.943,13671,5.943,13820,8.885,13823,6.559,13837,6.559,14499,8.051,15570,5.943,15621,7.094,15622,7.094,15623,7.094,15624,6.559,15625,8.408,15626,7.094,15627,6.559,15628,6.559,15629,6.559,15630,8.408,15631,6.206,15632,7.094,15633,7.094,15634,7.094]],["title/classes/Oauth2ToolConfig.html",[0,0.231,7339,4.677]],["body/classes/Oauth2ToolConfig.html",[0,0.249,2,0.82,3,0.017,4,0.017,5,0.009,7,0.111,27,0.553,29,0.57,30,0.001,31,0.41,32,0.189,33,0.653,47,0.961,95,0.125,101,0.012,103,0.001,104,0.001,112,0.78,119,1.999,180,1.76,181,2.629,182,2.383,379,0.916,381,2.461,382,2.963,564,2.249,1867,3.565,2133,6.261,2484,6.064,2486,4.476,2487,6.137,2488,9.181,2490,6.409,2491,5.452,2492,6.409,2493,6.409,2495,5.221,5504,4.501,5589,5.531,7200,7.059,7234,5.585,7235,5.92,7291,4.949,7292,5.92,7336,9.451,7339,8.478,7347,6.722,7350,8.445,7352,8.241,7358,4.949,12350,5.032,12351,5.449,14591,6.774,14592,6.774,14593,6.774,14594,6.774,14595,6.774,14596,6.774,15635,13.361,15636,9.821,15637,6.409,15638,7.326,15639,6.774,15640,6.774,15641,6.774,15642,6.774,15643,6.774,15644,6.774]],["title/classes/Oauth2ToolConfigCreateParams.html",[0,0.231,8699,5.705]],["body/classes/Oauth2ToolConfigCreateParams.html",[0,0.324,2,0.787,3,0.016,4,0.016,5,0.008,7,0.107,27,0.543,30,0.001,32,0.186,33,0.559,47,0.962,95,0.148,101,0.012,103,0.001,104,0.001,112,0.759,119,1.944,138,2.41,147,5.129,148,2.231,149,4.127,150,1.602,180,1.712,245,3.426,248,5.239,249,4.389,382,2.882,564,2.159,847,3.359,1867,3.421,1909,6.029,2133,6.131,2484,5.931,2486,4.392,2491,6.023,2509,8.853,2510,7.732,2511,5.682,2512,5.682,2513,5.682,2514,5.682,2515,5.682,5504,4.408,5536,6.087,5589,5.417,5893,6.949,7200,6.913,7336,9.338,7347,6.583,7350,8.271,7352,8.07,7400,5.36,8697,5.682,8699,8.003,8705,6.152,14603,6.501,14607,6.501,15645,12.082,15646,6.501,15647,7.032,15648,7.032,15649,6.501,15650,6.501,15651,7.032,15652,6.501]],["title/classes/Oauth2ToolConfigEntity.html",[0,0.231,8764,5.503]],["body/classes/Oauth2ToolConfigEntity.html",[0,0.297,2,0.979,3,0.02,4,0.02,5,0.01,7,0.133,27,0.494,29,0.681,30,0.001,31,0.49,32,0.165,33,0.42,47,0.778,95,0.153,96,2.402,101,0.014,103,0.001,104,0.001,112,0.875,119,2.243,138,2.004,172,4.169,173,2.586,180,1.567,181,2.949,379,1.093,381,2.937,403,4.853,564,2.685,1867,4.254,2484,5.749,2486,4.329,2491,4.853,2498,7.324,2500,5.695,2501,8.904,2502,7.649,2503,4.941,2504,3.906,5589,6.024,7200,7.687,7234,6.665,7235,7.065,7358,7.442,8764,10.551,12350,6.005,15637,7.649,15653,12.666,15654,11.018,15655,8.743]],["title/classes/Oauth2ToolConfigFactory.html",[0,0.231,7345,5.705]],["body/classes/Oauth2ToolConfigFactory.html",[0,0.259,2,0.432,3,0.009,4,0.009,5,0.005,7,0.058,8,0.735,27,0.506,29,0.984,30,0.001,31,0.693,32,0.179,33,0.567,34,1.044,35,1.358,47,0.432,55,2.361,59,3.133,95,0.12,101,0.016,103,0,104,0,112,0.487,120,2.695,133,2.143,140,2.16,145,2.411,153,1.733,154,1.629,155,2.045,177,1.122,180,1.556,239,0.885,249,1.56,271,5.064,319,2.766,349,1.221,363,2.16,379,0.482,382,3.683,413,1.887,437,1.579,447,6.717,448,4.133,449,4.906,452,3.462,453,4.906,454,5.209,455,3.462,456,3.462,457,3.462,458,3.401,459,3.912,460,4.307,461,6.373,462,5.258,463,6.693,464,2.2,469,2.179,470,3.462,471,2.2,472,4.589,473,4.738,474,3.709,475,4.456,476,3.431,477,2.179,478,2.054,479,3.777,480,3.046,481,2.122,482,2.087,483,2.179,484,4.521,485,2.2,486,3.3,487,4.231,488,2.179,489,7.485,490,3.89,491,6.199,492,2.2,493,3.039,494,2.179,495,2.2,496,2.179,497,2.2,498,2.179,501,2.179,502,5.597,503,2.2,504,2.179,505,3.462,506,3.238,507,3.462,508,2.2,509,2.105,510,2.087,511,1.723,512,2.179,513,2.179,514,2.179,515,2.2,516,2.2,517,1.479,518,2.179,519,1.195,520,2.2,521,2.427,522,2.179,523,2.2,525,2.243,526,2.289,527,5.209,564,1.184,708,1.602,1194,1.326,1237,2.2,1426,3.563,1839,1.901,1865,2.748,1909,3.517,1922,3.316,2133,4.307,2483,2.805,2486,1.279,2491,2.141,2494,2.697,2554,3.957,2559,2.697,2565,1.901,4314,6.75,4316,2.805,5056,2.087,5439,2.94,5449,2.649,5467,4.557,5469,2.94,5504,3.849,5589,3.059,5767,1.965,5806,2.179,5863,3.117,5868,3.022,5869,2.605,7179,2.526,7185,2.491,7187,2.491,7189,2.491,7200,2.457,7201,2.289,7203,2.314,7275,2.491,7330,5.133,7331,5.36,7333,3.374,7335,2.805,7336,4.557,7337,3.022,7338,2.805,7339,2.649,7340,2.396,7341,3.374,7342,3.374,7343,3.374,7344,6.669,7345,6.386,7346,5.36,7347,3.717,7348,3.117,7349,2.805,7350,2.94,7351,3.374,7352,2.869,7353,3.374,7354,3.374,7355,3.231,7356,5.36,7357,3.374,7358,2.605,7359,3.374,7360,3.374,7361,3.374,7362,2.649,7363,3.374,7364,3.374,7365,3.231,7366,3.374,7367,2.748,7368,4.671,7369,5.36,7370,6.669,7371,3.022,7372,5.36,7373,5.36,7374,3.374,7375,3.231,7376,3.022,7377,5.133,7378,3.374,7379,3.374,7380,3.374,7381,3.374,7382,3.374,7383,5.36,7384,3.374,7385,3.231,7386,2.526,7387,3.231,7388,3.374,7389,3.374,7390,3.374,7391,3.374,15656,6.127,15657,3.857]],["title/classes/Oauth2ToolConfigResponse.html",[0,0.231,9293,5.705]],["body/classes/Oauth2ToolConfigResponse.html",[0,0.238,2,0.783,3,0.016,4,0.016,5,0.008,7,0.106,27,0.542,29,0.545,30,0.001,31,0.392,32,0.186,33,0.635,47,0.945,95,0.137,101,0.012,103,0.001,104,0.001,112,0.756,119,1.937,138,2.374,149,5.034,150,1.594,180,1.706,181,2.548,182,2.275,245,3.47,379,0.875,381,2.35,382,2.872,564,2.148,1867,3.403,2133,6.115,2484,5.924,2486,4.388,2491,6.006,2495,4.985,2504,3.125,2505,4.985,2518,5.653,2519,9.818,2521,6.12,2522,6.12,2523,5.653,5504,4.397,5589,5.403,7200,6.894,7234,5.332,7235,5.653,7291,4.725,7292,5.653,7336,9.323,7350,8.249,7352,8.048,7358,4.725,9293,10.178,12350,4.804,14619,6.467,14620,6.467,14621,6.467,14622,6.467,14623,6.12,15637,6.12,15639,6.467,15640,6.467,15641,6.467,15642,6.467,15643,6.467,15644,6.467,15658,13.052,15659,9.519]],["title/classes/Oauth2ToolConfigUpdateParams.html",[0,0.231,9224,5.705]],["body/classes/Oauth2ToolConfigUpdateParams.html",[0,0.323,2,0.783,3,0.016,4,0.016,5,0.008,7,0.106,27,0.542,30,0.001,32,0.186,33,0.601,47,0.961,95,0.147,101,0.012,103,0.001,104,0.001,112,0.756,119,1.937,138,2.407,147,5.111,148,2.22,149,4.418,150,1.594,180,1.706,245,3.363,248,5.231,249,4.699,382,2.872,564,2.148,847,3.341,1867,3.403,1909,6.022,2133,6.115,2484,5.924,2486,4.388,2491,6.006,2509,8.837,2510,6.783,2511,5.653,2512,5.653,2513,5.653,2514,5.653,2515,5.653,5504,4.397,5536,6.065,5589,5.403,5893,7.871,7200,6.894,7336,9.323,7347,6.565,7350,8.249,7352,8.048,7400,5.332,9224,7.975,9503,5.86,9505,6.12,9507,6.12,9511,6.467,14627,6.467,15645,12.067,15646,6.467,15650,6.467,15652,6.467,15660,6.995,15661,6.995,15662,6.995]],["title/injectables/OauthAdapterService.html",[539,0.901,15510,5.705]],["body/injectables/OauthAdapterService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.129,27,0.473,29,0.899,30,0.001,31,0.646,32,0.165,33,0.554,35,1.29,36,2.718,47,0.902,95,0.165,100,2.313,101,0.011,103,0.001,104,0.001,124,3.462,143,1.533,177,1.261,236,1.12,262,2.734,345,2.192,349,1.109,379,0.861,437,1.563,529,1.949,539,1.247,541,1.649,579,3.668,595,4.332,603,2.156,608,2.171,662,3.375,958,8.723,959,3.966,960,5.25,961,4.512,986,2.329,1075,4.046,1174,3.698,1271,3.16,1322,9.325,1551,6.011,1908,6.712,1920,4.815,1922,3.727,2182,9.511,2193,2.786,2217,6.025,3539,2.811,3891,5.396,3942,6.368,7075,8.24,11444,4.908,11451,6.025,11519,5.77,11584,6.362,13557,6.368,13558,6.368,13559,6.025,13560,6.368,15510,7.891,15543,5.566,15568,8.708,15663,12.084,15664,6.887,15665,10.734,15666,10.734,15667,6.887,15668,9.419,15669,6.887,15670,9.419,15671,6.887,15672,6.887,15673,6.887,15674,6.887,15675,6.887,15676,9.419,15677,6.025,15678,6.368,15679,6.887,15680,6.887,15681,6.887,15682,6.887,15683,9.419,15684,6.887,15685,6.887,15686,6.887,15687,9.419,15688,6.887,15689,6.887,15690,6.887,15691,6.887]],["title/modules/OauthApiModule.html",[201,1.804,15692,5.503]],["body/modules/OauthApiModule.html",[0,0.249,3,0.017,4,0.017,5,0.009,30,0.001,52,3.5,95,0.174,101,0.012,103,0.001,104,0.001,128,2.951,201,2.935,203,2.635,204,2.831,205,2.914,206,2.902,207,2.89,208,4.058,209,2.755,214,5.896,218,3.906,219,2.854,220,2.787,222,4.551,223,4.044,225,3.874,226,1.047,654,2.179,1274,2.318,1315,8.323,1354,9.954,1356,8.884,1375,5.122,1689,6.934,1901,4.103,2469,3.325,2702,3.458,3531,7.892,3541,4.97,5380,8.096,10507,5.739,11417,10.645,13926,9.686,15537,5.739,15692,11.576,15693,7.326,15694,7.326,15695,7.326,15696,9.954,15697,10.645,15698,7.326,15699,9.693,15700,6.774,15701,7.326,15702,7.326]],["title/classes/OauthClientBody.html",[0,0.231,15703,5.958]],["body/classes/OauthClientBody.html",[0,0.243,2,0.527,3,0.011,4,0.011,5,0.006,7,0.071,27,0.501,30,0.001,31,0.401,32,0.167,33,0.645,34,1.218,47,0.938,95,0.123,101,0.008,103,0,104,0,112,0.568,122,4.83,124,3.594,135,6.907,138,2.227,142,5.257,143,1.926,144,4.427,145,3.923,148,1.493,150,1.072,153,2.783,245,3.263,248,5.01,249,5.034,316,3.839,319,4.362,358,3.146,363,4.004,490,2.536,536,6.611,578,4.338,591,4.041,662,2.249,819,2.509,847,2.247,965,4.911,1077,3.586,1324,5.778,1326,6.164,1327,6.99,1338,3.499,1389,6.885,1410,4.999,1426,4.158,1450,5.095,1600,4.115,1731,4.556,1962,3.935,2032,4.497,2057,4.618,2344,4.933,2358,5.778,2359,5.99,3539,5.425,3980,4.338,4056,6.99,5461,4.442,5496,8.265,5500,4.078,5504,4.622,5513,8.142,5536,6.156,5551,7.567,5569,6.256,5570,6.527,5585,6.776,7202,6.434,9454,7.997,9456,7.567,9459,9.608,9460,6.611,11346,5.201,11956,5.319,13075,5.602,15483,11.505,15703,6.256,15704,4.705,15705,7.997,15706,7.997,15707,4.705,15708,4.705,15709,4.705,15710,7.151,15711,7.151,15712,4.705,15713,4.705,15714,4.705,15715,4.705,15716,5.99,15717,5.778,15718,6.611,15719,5.99,15720,7.151,15721,7.151,15722,7.151,15723,7.151,15724,4.705,15725,8.65,15726,4.705,15727,7.151,15728,7.151,15729,4.705,15730,8.65,15731,4.705,15732,6.611,15733,7.151,15734,7.151,15735,4.705,15736,4.705,15737,4.705,15738,4.705,15739,4.705,15740,4.705]],["title/classes/OauthConfig.html",[0,0.231,11441,4.398]],["body/classes/OauthConfig.html",[0,0.305,2,0.458,3,0.01,4,0.01,5,0.005,7,0.062,26,1.359,27,0.513,29,0.318,30,0.001,31,0.229,32,0.175,33,0.467,47,1.012,83,2.431,95,0.114,96,1.123,101,0.016,103,0,104,0,105,0.441,112,0.509,119,0.832,133,1.43,138,2.251,143,2.987,144,4.38,145,1.135,153,0.929,154,1.692,160,3.659,172,4.529,173,1.209,174,2.551,175,1.808,177,0.748,178,1.698,180,0.733,181,1.094,182,1.33,276,1.738,379,0.511,511,1.826,570,2.509,578,2.48,834,2.482,945,2.509,1194,2.722,1306,2.48,1389,2.913,1421,4.918,1600,1.537,1959,2.64,1984,3.041,2500,3.316,2504,1.826,4272,3.501,4310,4.571,4344,2.453,4619,4.635,5504,3.217,5589,4.477,5767,3.269,5787,2.605,5788,2.808,6263,3.444,7204,2.571,7291,2.761,7347,5.441,8548,2.213,8886,5.348,9871,2.678,10377,2.31,11441,7.608,11522,3.041,11523,3.041,11524,3.041,11525,3.116,11569,5.438,11572,5.265,11574,5.438,11577,5.438,11580,4.86,11584,5.348,11625,2.678,12047,3.116,12231,2.913,12339,4.89,12340,3.304,12341,4.266,12342,7.52,12343,7.228,12344,4.035,12345,4.485,12346,5.187,12347,2.718,12348,2.718,12349,5.184,12350,4.406,12351,4.772,12352,3.203,12353,4.772,12354,3.116,12355,3.116,12356,3.116,12357,3.116,12358,3.203,12359,3.116,12360,3.116,12361,3.116,12362,3.203,12363,4.772,12364,3.203,12365,3.116,12366,3.203,12367,3.116,12368,3.116,12369,3.116,12370,3.203,12371,6.159,12372,3.304,12373,3.304,12374,3.304,12375,3.304,12376,3.304,12377,3.304,12378,3.304,12379,3.304,12380,3.304,12381,3.304,12382,3.304,12383,3.304,12384,3.203,12385,3.304,12386,3.304,12387,3.304,12388,3.304,12389,3.304,12390,3.304,12391,3.304,12392,3.304,12393,3.304,12394,3.304,12395,3.304,12396,3.304,12397,3.304,12398,3.304,12399,3.304,12400,3.304,12401,3.304,12402,3.041,12403,3.304,12404,3.304,12405,3.304,12406,3.304,12407,3.304,12408,3.304,12409,3.304,12410,3.304,12411,3.304,12412,3.304,12413,3.304,12414,3.304,12415,3.304,12416,3.304,12417,3.116,12418,3.304,12419,3.041,12420,3.203,12421,3.116,12422,3.203,12423,3.116,12424,3.116,12425,3.203,12426,3.116,12427,3.203,12428,3.116,12429,2.974,12430,2.974,12431,2.974,12432,3.041,12433,3.116,12434,3.304,12435,3.116,12436,3.304,12437,3.304,12438,3.304,12439,3.304,12440,3.304,12441,3.116,12442,3.203,12443,3.116,12444,3.203,15741,4.088,15742,4.088,15743,4.088,15744,4.088,15745,4.088,15746,4.088,15747,4.088,15748,4.088,15749,4.088,15750,4.088,15751,4.088,15752,4.088,15753,4.088,15754,4.088]],["title/classes/OauthConfigDto.html",[0,0.231,12689,5.191]],["body/classes/OauthConfigDto.html",[0,0.234,2,0.772,3,0.016,4,0.016,5,0.008,7,0.105,27,0.563,29,0.537,30,0.001,31,0.386,32,0.188,33,0.58,47,1.006,72,4.28,101,0.011,103,0.001,104,0.001,112,0.749,128,3.798,239,2.164,379,0.863,517,3.616,1421,6.673,2032,5.931,2057,6.09,2774,6.177,4619,6.25,5504,4.365,5589,5.364,7291,4.66,7347,6.518,8886,7.257,11569,7.379,11572,7.144,11574,7.379,11577,7.379,11580,6.594,11584,7.257,11956,7.014,12350,4.738,12351,5.131,12353,5.131,12355,5.259,12357,5.259,12359,5.259,12360,5.259,12361,5.259,12363,5.131,12365,5.259,12367,5.259,12369,5.259,12371,7.379,12689,9.516,15755,13.826,15756,6.379,15757,9.43,15758,9.43,15759,6.379,15760,6.899,15761,6.899,15762,6.899,15763,6.899,15764,6.899,15765,6.899,15766,6.379,15767,6.899,15768,6.379,15769,6.379,15770,6.899,15771,6.379,15772,6.899,15773,6.379,15774,6.379,15775,6.379,15776,6.379,15777,6.379,15778,6.379,15779,6.379,15780,6.379,15781,6.379,15782,6.379,15783,6.379]],["title/classes/OauthConfigResponse.html",[0,0.231,15784,5.705]],["body/classes/OauthConfigResponse.html",[0,0.172,2,0.566,3,0.012,4,0.012,5,0.006,7,0.077,27,0.531,29,0.394,30,0.001,31,0.283,32,0.185,33,0.559,34,1.287,47,0.997,95,0.064,101,0.008,103,0,104,0,112,0.6,120,3.323,124,3.797,138,2.331,142,5.39,143,3.047,144,4.539,145,3.848,150,1.153,153,2.914,245,3.397,379,0.633,816,5.882,819,2.651,965,5.188,1077,5.758,1324,6.104,1421,6.988,2032,7.536,2057,4.878,2518,4.089,3539,3.082,4619,5.815,5504,4.571,5530,5.758,5589,5.004,7291,3.418,8886,6.77,11569,6.884,11572,6.665,11574,6.884,11577,6.884,11580,6.152,11584,6.77,11953,6.104,11956,5.618,12350,3.475,12353,3.763,12355,3.857,12357,3.857,12359,3.857,12360,3.857,12361,3.857,12363,3.763,12365,3.857,12367,3.857,12369,3.857,12371,6.884,14623,4.427,15677,6.608,15784,7.572,15785,13.078,15786,7.554,15787,7.554,15788,5.06,15789,5.06,15790,5.06,15791,6.984,15792,5.06,15793,5.06,15794,5.06,15795,5.06,15796,5.06,15797,5.06,15798,5.06,15799,5.06,15800,5.06,15801,5.06,15802,5.06,15803,5.06,15804,5.06,15805,5.06,15806,5.06,15807,5.06,15808,5.06,15809,5.06,15810,5.06]],["title/interfaces/OauthCurrentUser.html",[105,0.735,7144,5.065]],["body/interfaces/OauthCurrentUser.html",[3,0.019,4,0.019,5,0.01,7,0.126,26,2.899,30,0.001,32,0.113,33,0.511,34,1.815,39,2.231,47,0.831,48,3.938,72,4.836,85,5.356,94,4.035,95,0.105,99,1.383,101,0.018,103,0.001,104,0.001,105,1.15,107,1.99,112,0.846,119,2.168,121,6.979,128,4.741,143,2.621,180,1.909,239,2.948,270,5.763,276,3.526,303,6.497,359,4.976,517,4.085,564,3.814,565,4.922,998,5.601,2343,5.696,2362,4.976,3060,5.127,3072,3.784,3078,4.14,3246,5.514,4206,3.614,5105,5.432,5461,6.617,5496,6.979,5500,4.73,7092,6.701,7093,6.947,7094,6.617,7142,10.038,7144,7.924,7165,7.255,11951,7.667,11952,7.667,11953,8.609,11954,9.85,11955,9.85,11956,7.924]],["title/classes/OauthDataDto.html",[0,0.231,13102,4.761]],["body/classes/OauthDataDto.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.532,29,0.668,30,0.001,31,0.48,32,0.177,33,0.623,95,0.159,101,0.014,103,0.001,104,0.001,112,0.864,181,2.913,379,1.072,381,2.88,564,3.671,3072,5.457,8498,9.115,8512,7.928,8529,8.894,8550,6.718,8551,7.184,9619,8.697,11248,6.237,13102,9.076,13131,9.662,13133,10.017,15811,12.264,15812,8.576,15813,10.461,15814,10.884,15815,8.576,15816,8.576,15817,9.367,15818,8.576,15819,8.576,15820,7.928,15821,8.576,15822,8.576,15823,8.576,15824,8.576,15825,8.576,15826,8.576,15827,8.576]],["title/classes/OauthDataStrategyInputDto.html",[0,0.231,13107,5.065]],["body/classes/OauthDataStrategyInputDto.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,27,0.525,29,0.705,30,0.001,31,0.507,32,0.175,33,0.435,47,0.905,95,0.115,101,0.015,103,0.001,104,0.001,112,0.895,121,8.031,181,3.015,284,4.075,379,1.133,381,3.042,1433,8.152,3072,5.595,4550,8.912,8550,7.096,8551,7.588,11248,6.588,13107,9.813,14525,7.588,14526,7.588,15610,8.375,15611,8.375,15811,12.198,15817,9.605,15820,8.375,15828,9.058,15829,11.265,15830,9.058,15831,9.058]],["title/classes/OauthLoginResponse.html",[0,0.231,14504,5.705]],["body/classes/OauthLoginResponse.html",[0,0.299,2,0.985,3,0.021,4,0.021,5,0.01,7,0.133,27,0.496,29,0.685,30,0.001,31,0.493,32,0.165,33,0.581,34,1.885,47,0.854,95,0.14,101,0.015,103,0.001,104,0.001,112,0.879,124,5.561,138,2.012,149,4.209,150,2.005,153,2,180,1.983,181,2.961,245,2.307,379,1.101,381,2.956,382,2.655,403,4.885,517,4.242,564,3.898,1209,4.885,1433,7.356,2355,6.79,3072,5.049,5500,6.31,5504,4.495,7142,9.779,7349,8.047,14491,9.047,14504,10.959,15832,12.101,15833,8.801,15834,11.064,15835,8.801,15836,8.801,15837,8.801,15838,8.801]],["title/classes/OauthLoginStateDto.html",[0,0.231,15839,5.503]],["body/classes/OauthLoginStateDto.html",[0,0.292,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,26,2.535,27,0.544,29,0.669,30,0.001,31,0.481,32,0.181,33,0.574,47,0.937,48,5.683,95,0.109,99,1.434,101,0.014,103,0.001,104,0.001,112,0.865,119,2.218,128,5.431,181,2.917,193,6.251,194,6.732,238,6.892,379,1.075,381,2.887,4522,7.434,4619,6.186,8094,6.392,12229,6.945,12230,6.945,12363,6.392,15525,9.672,15839,10.497,15840,13.482,15841,8.594,15842,10.899,15843,8.594,15844,8.594,15845,8.594,15846,8.594,15847,8.594,15848,8.594,15849,8.594,15850,8.594]],["title/classes/OauthLoginStateMapper.html",[0,0.231,15851,5.958]],["body/classes/OauthLoginStateMapper.html",[0,0.326,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,8,1.399,27,0.393,29,0.747,30,0.001,31,0.538,32,0.131,33,0.461,35,1.153,95,0.148,100,3.921,101,0.016,103,0.001,104,0.001,118,6.115,128,5.067,236,1.561,349,0.991,413,3.874,437,1.241,13957,8.041,15839,10.577,15851,10.213,15852,11.674,15853,9.598,15854,11.674,15855,11.674,15856,11.451,15857,9.598,15858,8.397,15859,8.397,15860,9.598]],["title/classes/OauthMigrationDto.html",[0,0.231,13956,5.503]],["body/classes/OauthMigrationDto.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.543,29,0.668,30,0.001,31,0.48,32,0.181,33,0.661,83,4.187,101,0.014,103,0.001,104,0.001,112,0.864,119,2.215,271,3.355,379,1.072,9861,8.827,13956,10.49,13975,9.522,14011,9.115,14012,9.115,14013,9.115,14134,10.017,14136,10.017,14976,7.928,14977,7.928,14978,7.928,14979,7.928,14980,7.928,14981,7.928,14982,7.928,14983,7.928,14984,7.928,14985,7.928,15861,13.476,15862,8.576,15863,10.884,15864,8.576,15865,8.576,15866,8.576,15867,8.576]],["title/modules/OauthModule.html",[201,1.804,1354,5.335]],["body/modules/OauthModule.html",[0,0.23,3,0.016,4,0.016,5,0.008,30,0.001,52,3.235,95,0.175,101,0.011,103,0.001,104,0.001,128,2.728,201,2.818,203,2.435,204,2.617,205,2.693,206,2.682,207,2.671,208,3.897,209,4.001,214,5.759,218,3.703,219,2.638,220,2.576,225,3.672,226,0.968,227,2.788,654,2.014,959,3.899,1274,2.142,1353,10.03,1354,11.247,1356,8.678,1371,5.924,1375,4.734,1689,6.773,1901,3.792,2469,3.073,3531,7.71,3541,4.711,3936,6.19,4615,9.028,5380,7.908,8335,9.028,8925,4.734,11427,10.322,11428,11.343,11448,6.261,11449,5.924,13926,9.462,15510,10.398,15537,5.305,15544,6.261,15696,9.724,15868,6.771,15869,6.771,15870,6.771,15871,6.771,15872,6.771,15873,5.924]],["title/modules/OauthProviderApiModule.html",[201,1.804,15874,5.503]],["body/modules/OauthProviderApiModule.html",[0,0.246,3,0.017,4,0.017,5,0.009,30,0.001,95,0.171,101,0.012,103,0.001,104,0.001,135,4.023,201,2.919,203,2.607,204,2.801,205,2.882,206,2.87,207,2.858,208,4.036,209,2.725,214,5.877,218,3.878,219,2.823,220,2.757,222,4.501,223,4.014,225,3.845,226,1.036,1274,2.293,1689,6.912,2469,3.289,2702,3.421,3531,7.868,3541,3.667,3669,4.819,4614,9.421,4619,5.695,4623,5.677,5500,4.133,8916,9.923,8924,4.819,15700,6.7,15874,11.599,15875,7.247,15876,7.247,15877,7.247,15878,10.611,15879,10.611,15880,10.611,15881,10.611,15882,10.611,15883,10.611,15884,10.611,15885,6.071,15886,9.64,15887,7.247,15888,6.34,15889,7.247]],["title/injectables/OauthProviderClientCrudUc.html",[539,0.901,15879,5.705]],["body/injectables/OauthProviderClientCrudUc.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.078,8,0.916,27,0.48,29,0.881,30,0.001,31,0.634,32,0.16,33,0.543,34,2.095,35,1.297,36,2.663,47,0.933,55,2.434,56,4.883,58,6.522,59,3.138,95,0.143,101,0.008,103,0,104,0,112,0.607,124,3.84,126,6.173,135,6.681,177,1.976,226,0.734,239,2.914,262,2.897,270,6.519,284,3.718,294,5.888,349,1.115,379,0.955,437,1.643,480,1.426,486,1.546,539,1.011,541,1.23,603,2.168,608,2.835,643,2.283,946,3.545,1695,6.192,2469,2.332,2901,2.758,3539,4.912,5504,3.104,5585,7.912,7348,6.173,7349,5.557,8924,5.08,9366,8.229,9390,9.833,9394,3.661,9456,6.683,9502,9.042,9972,7.512,11573,6.4,15705,7.063,15706,7.063,15879,6.4,15890,9.727,15891,11.128,15892,5.137,15893,9.12,15894,6.683,15895,6.683,15896,6.683,15897,7.979,15898,7.979,15899,4.151,15900,5.137,15901,7.063,15902,5.137,15903,7.063,15904,5.137,15905,7.063,15906,5.137,15907,4.75,15908,5.137,15909,4.75,15910,5.137,15911,7.063,15912,5.137,15913,5.137,15914,5.137,15915,10.794,15916,7.64,15917,5.137,15918,5.137,15919,9.12,15920,9.12,15921,7.64,15922,5.137,15923,5.137,15924,5.137]],["title/injectables/OauthProviderConsentFlowUc.html",[539,0.901,15880,5.705]],["body/injectables/OauthProviderConsentFlowUc.html",[0,0.182,3,0.012,4,0.012,5,0.006,7,0.081,8,0.944,27,0.47,29,0.894,30,0.001,31,0.643,32,0.157,33,0.551,35,1.319,36,2.689,39,2.512,47,0.969,95,0.15,101,0.009,103,0,104,0,106,8.628,110,3.979,121,7.19,122,6.308,123,4.481,124,2.689,126,4.323,134,8.323,135,6.588,177,1.441,226,0.765,236,0.87,262,2.724,270,5.811,294,5.177,310,4.048,324,6.627,334,3.454,349,1.064,379,0.984,437,1.42,519,2.438,529,1.513,539,1.042,541,1.28,556,2.892,603,2.574,608,2.374,819,4.165,1326,7.339,2468,3.175,2901,2.872,3717,4.624,4195,8.857,4619,2.765,4693,3.674,5488,8.628,5539,8.323,5546,8.323,8924,5.234,9366,8.35,9394,3.812,12632,9.943,12633,4.945,15880,6.594,15890,9.591,15899,4.323,15925,10.973,15926,4.68,15927,8.634,15928,6.886,15929,8.634,15930,7.277,15931,7.871,15932,5.349,15933,4.945,15934,5.349,15935,7.277,15936,5.349,15937,5.349,15938,5.349,15939,7.277,15940,8.323,15941,5.349,15942,7.871,15943,8.367,15944,5.349,15945,5.855,15946,4.481,15947,4.945,15948,7.871,15949,5.349,15950,4.945,15951,5.349,15952,5.349,15953,5.349,15954,5.349,15955,8.069,15956,5.349,15957,5.349,15958,5.349,15959,5.349,15960,5.349,15961,5.349,15962,4.191,15963,5.349]],["title/controllers/OauthProviderController.html",[259,2.591,15886,5.958]],["body/controllers/OauthProviderController.html",[0,0.114,3,0.008,4,0.008,5,0.004,7,0.051,8,0.658,10,1.367,27,0.483,29,0.902,30,0.001,31,0.649,32,0.158,33,0.556,35,1.416,36,2.863,47,0.237,95,0.154,100,1.13,101,0.006,103,0,104,0,118,2.143,134,8.079,135,6.641,138,2.144,150,0.766,177,1.735,223,1.385,226,0.481,259,1.28,261,1.597,262,2.929,270,6.497,271,5.124,294,6.695,310,4.921,324,6.479,333,4.412,334,2.172,337,1.739,338,1.778,343,6.048,349,1.217,379,0.421,437,1.667,603,1.904,608,2.557,819,1.926,1140,6.719,2017,1.472,2018,1.647,2019,1.588,2020,2.143,2057,2.172,2900,1.901,2901,1.806,3539,3.273,3669,2.236,3717,3.224,4019,2.115,4193,10.731,4486,7.349,4619,2.836,5488,6.719,5496,2.203,5539,4.435,5557,7.94,5582,5.823,8059,2.818,8924,3.649,9390,7.05,9394,2.397,12621,9.704,12650,2.718,13987,6.427,14379,7.017,14491,4.953,14527,6.481,15703,8.747,15879,4.597,15880,4.597,15881,5.823,15882,4.597,15883,5.823,15884,5.823,15886,4.801,15888,2.943,15891,3.11,15894,6.081,15895,4.801,15896,6.081,15897,6.081,15898,6.081,15901,3.11,15903,3.11,15905,3.11,15907,3.11,15909,3.11,15925,3.11,15928,4.801,15929,6.427,15943,4.183,15945,5.965,15955,7.426,15964,11.964,15965,3.364,15966,5.074,15967,4.801,15968,4.801,15969,6.427,15970,4.801,15971,3.364,15972,3.364,15973,3.364,15974,3.364,15975,3.364,15976,3.364,15977,3.364,15978,3.364,15979,3.364,15980,3.364,15981,3.364,15982,5.488,15983,3.364,15984,3.364,15985,3.364,15986,5.488,15987,3.364,15988,3.364,15989,3.364,15990,3.364,15991,3.364,15992,3.364,15993,3.364,15994,3.364,15995,3.364,15996,3.364,15997,3.364,15998,3.364,15999,3.364,16000,7.017,16001,3.364,16002,3.364,16003,3.364,16004,3.364,16005,4.299,16006,5.446,16007,8.836,16008,3.11,16009,6.951,16010,3.364,16011,3.364,16012,3.364,16013,3.364,16014,3.364,16015,3.364,16016,3.364,16017,3.364,16018,3.364,16019,3.364,16020,3.364,16021,8.02,16022,3.364,16023,3.364,16024,3.364,16025,3.364,16026,3.364,16027,3.364,16028,3.364,16029,3.364,16030,3.364,16031,3.364,16032,3.364,16033,3.364,16034,3.364,16035,3.364,16036,3.364,16037,3.364,16038,3.364,16039,3.364,16040,3.364,16041,5.488,16042,5.488,16043,3.364,16044,3.364,16045,3.364,16046,3.364,16047,3.364,16048,3.364,16049,3.364,16050,3.364,16051,3.364,16052,3.364,16053,3.364,16054,3.364,16055,3.364,16056,2.818,16057,3.364,16058,3.364,16059,3.364,16060,3.364,16061,3.364,16062,3.364,16063,3.364,16064,3.364]],["title/injectables/OauthProviderLoginFlowService.html",[539,0.901,12639,5.503]],["body/injectables/OauthProviderLoginFlowService.html",[0,0.236,3,0.016,4,0.016,5,0.008,7,0.105,8,1.136,27,0.442,29,0.84,30,0.001,31,0.604,32,0.147,33,0.517,35,1.138,36,2.016,47,0.761,95,0.165,101,0.011,103,0.001,104,0.001,119,2.195,135,6.429,143,1.547,177,1.974,226,0.993,236,1.13,262,2.363,349,1.114,379,1.185,437,1.395,529,1.965,539,1.254,541,1.663,572,5.442,593,3.509,603,2.166,608,2.184,639,3.26,662,3.933,1663,2.94,1772,4.95,1839,3.423,1909,3.205,2486,2.303,2565,6.512,2619,3.7,4523,5.167,4691,3.644,5589,5.782,6140,5.815,6166,7.857,7183,8.614,7250,8.474,7340,5.885,8596,8.828,8598,8.828,8662,6.423,8663,6.423,8871,6.077,9420,6.077,9811,5.442,11516,5.295,12639,7.656,12650,9.359,14704,10.479,16065,11.582,16066,6.947,16067,9.475,16068,9.475,16069,6.947,16070,6.947,16071,9.475,16072,6.947,16073,9.475,16074,6.947,16075,6.423,16076,5.82,16077,6.947,16078,6.947,16079,6.947,16080,6.947,16081,6.947,16082,6.947,16083,9.475,16084,6.947]],["title/injectables/OauthProviderLoginFlowUc.html",[539,0.901,15881,5.705]],["body/injectables/OauthProviderLoginFlowUc.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,8,0.863,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,34,0.809,35,1.254,36,2.611,47,0.94,95,0.16,99,0.792,101,0.008,103,0,104,0,119,1.771,122,4.865,127,7.846,128,2.901,134,7.846,135,6.334,177,1.91,226,0.679,236,1.415,239,2.228,262,2.77,310,3.77,324,5.281,349,1.135,358,2.089,379,0.901,437,1.587,529,2.461,539,0.953,541,1.137,603,2.596,604,2.926,608,2.71,643,2.111,819,1.666,1158,2.269,1695,6.031,1839,2.34,2469,2.156,2486,3.46,2565,5.412,3541,2.403,4195,9.115,4619,3.722,4691,2.491,4701,7.049,4767,6.703,5490,7.846,5496,4.718,5643,4.473,7141,3.806,7183,3.532,7198,3.384,7200,4.589,7250,7.679,7339,4.946,7340,2.95,8619,3.979,8924,4.789,9003,5.009,9366,7.989,9394,3.384,9420,4.155,9502,3.979,9732,7.838,9800,3.721,9819,3.721,11516,3.62,12639,9.222,12650,9.499,12651,4.155,14491,6.199,14527,10.078,15542,4.391,15873,4.155,15881,6.033,15890,9.222,15899,3.838,15926,4.155,15940,7.846,15945,6.471,15946,3.979,15950,4.391,15955,9.209,15967,6.301,15969,8.043,16005,5.642,16085,8.043,16086,8.043,16087,7.202,16088,4.749,16089,4.749,16090,4.749,16091,6.659,16092,4.749,16093,4.749,16094,4.749,16095,4.391,16096,4.749,16097,7.202,16098,4.749,16099,4.155,16100,4.155,16101,4.749,16102,7.202,16103,4.749,16104,4.749,16105,7.202,16106,4.749,16107,4.749,16108,4.749,16109,4.749,16110,4.749,16111,4.749,16112,3.62,16113,4.749,16114,4.749,16115,4.749,16116,4.749,16117,4.749,16118,4.749,16119,4.749,16120,4.749]],["title/injectables/OauthProviderLogoutFlowUc.html",[539,0.901,15882,5.705]],["body/injectables/OauthProviderLogoutFlowUc.html",[0,0.308,3,0.021,4,0.021,5,0.011,7,0.138,8,1.352,27,0.462,29,0.878,30,0.001,31,0.632,32,0.154,33,0.541,35,1.091,36,2.612,47,0.866,95,0.156,101,0.015,103,0.001,104,0.001,135,6.812,177,1.662,226,1.298,345,2.89,349,0.938,379,1.135,437,1.174,539,1.493,541,2.173,4195,6.469,4619,4.692,8924,7.501,9366,9.788,9394,6.469,15882,9.45,15890,9.918,15899,7.336,15926,7.942,15945,6.753,16008,11.347,16121,11.281,16122,9.079,16123,11.281,16124,9.079,16125,11.281,16126,9.079]],["title/modules/OauthProviderModule.html",[201,1.804,15878,5.705]],["body/modules/OauthProviderModule.html",[0,0.247,3,0.017,4,0.017,5,0.009,30,0.001,95,0.172,101,0.012,103,0.001,104,0.001,135,4.037,201,2.924,203,2.616,204,2.811,205,2.893,206,2.881,207,2.869,208,4.043,209,4.151,214,5.883,218,3.887,219,2.834,220,2.767,225,3.855,226,1.04,227,2.994,1274,2.301,1747,8.709,1765,9.431,1766,6.093,2486,2.411,3531,7.876,3541,3.681,4614,9.431,4619,3.759,4623,5.698,8916,9.933,8917,9.665,8924,4.836,8926,6.093,12632,11.475,12639,11.069,12650,5.877,12651,6.363,14700,10.622,15873,6.363,15878,11.994,15885,6.093,15947,6.725,16075,6.725,16076,6.093,16127,7.273,16128,7.273,16129,7.273,16130,7.273,16131,7.273,16132,7.273]],["title/classes/OauthProviderRequestMapper.html",[0,0.231,16099,5.958]],["body/classes/OauthProviderRequestMapper.html",[0,0.306,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,8,1.347,27,0.369,29,0.702,30,0.001,31,0.505,32,0.123,33,0.433,35,1.083,47,0.948,59,2.802,77,5.745,95,0.142,101,0.015,103,0.001,104,0.001,116,7.064,117,7.064,122,6.091,127,9.888,131,4.797,132,8.337,133,4.279,135,6.235,349,0.931,413,3.768,4619,5.806,4701,8.651,5977,7.287,8924,5.996,9003,7.375,9394,6.426,14527,10.856,15946,7.554,16099,9.828,16100,9.828,16133,12.236,16134,9.018,16135,9.018,16136,9.018,16137,9.018]],["title/injectables/OauthProviderResponseMapper.html",[539,0.901,15883,5.705]],["body/injectables/OauthProviderResponseMapper.html",[0,0.249,3,0.017,4,0.017,5,0.009,7,0.111,8,1.177,10,2.977,27,0.506,29,0.961,30,0.001,31,0.691,32,0.169,33,0.592,35,1.483,95,0.14,101,0.012,103,0.001,104,0.001,110,7.305,118,4.668,122,4.949,135,7.053,226,1.047,236,2.008,349,1.275,539,1.3,541,1.754,777,4.349,2057,6.343,4619,6.568,5539,9.565,5557,9.916,5582,9.916,8754,6.137,8924,4.871,9390,8.804,9394,5.221,9402,9.08,14373,6.409,14491,8.435,15883,8.228,15943,9.023,15945,8.804,15946,6.137,15955,9.273,16005,9.954,16006,9.273,16100,11.116,16138,9.821,16139,9.821,16140,9.821,16141,9.821,16142,9.821,16143,9.821,16144,7.326,16145,9.821,16146,9.821,16147,7.326,16148,9.821,16149,9.821,16150,7.326,16151,7.326,16152,7.326,16153,7.326,16154,7.326]],["title/classes/OauthProviderService.html",[0,0.231,9366,4.953]],["body/classes/OauthProviderService.html",[0,0.165,2,0.543,3,0.011,4,0.011,5,0.006,7,0.074,8,0.878,9,6.746,27,0.54,29,1.019,30,0.001,31,0.733,32,0.179,33,0.628,34,1.501,35,1.584,36,2.977,47,1.01,55,2.383,56,3.539,58,5.692,59,3.273,95,0.062,100,1.63,101,0.008,103,0,104,0,106,8.223,108,9.283,124,2.439,127,7.932,239,1.679,284,3.032,324,6.429,3539,3.597,4195,8.191,5504,3.581,5585,6.905,9366,5.324,9390,8.55,9972,6.556,13063,4.245,15885,11.123,15894,6.404,15895,6.404,15896,6.404,15897,7.711,15898,6.404,15927,6.768,15928,6.404,15930,6.768,15933,6.768,15935,6.768,15939,6.768,15940,9.289,15943,3.699,15945,3.609,15966,6.768,15967,6.404,15968,6.404,15970,6.404,16005,3.801,16006,3.801,16085,6.768,16086,6.768,16091,6.768,16095,6.768,16155,4.852,16156,7.32,16157,9.816,16158,4.852,16159,7.32,16160,4.852,16161,7.32,16162,4.852,16163,7.32,16164,4.852,16165,7.32,16166,4.852,16167,4.852,16168,4.852,16169,7.32,16170,4.852,16171,7.32,16172,4.852,16173,4.852,16174,7.32,16175,4.852,16176,4.852,16177,4.852,16178,4.852,16179,4.852,16180,7.32,16181,4.852,16182,7.32,16183,4.852]],["title/modules/OauthProviderServiceModule.html",[201,1.804,8916,5.335]],["body/modules/OauthProviderServiceModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.165,101,0.015,103,0.001,104,0.001,108,6.554,201,3.298,203,3.372,204,3.623,205,3.728,206,3.713,207,3.697,208,4.214,209,4.682,218,4.576,219,3.652,220,3.566,225,3.697,226,1.34,636,5.451,959,5.398,3936,7.651,4619,4.845,8453,7.146,8916,10.439,8924,7.651,9366,10.091,15885,9.64,16184,9.375,16185,9.375,16186,9.375,16187,9.375,16188,11.507,16189,9.375]],["title/injectables/OauthProviderUc.html",[539,0.901,15884,5.705]],["body/injectables/OauthProviderUc.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.127,8,1.282,26,2.837,27,0.484,29,0.919,30,0.001,31,0.661,32,0.161,33,0.566,35,1.285,36,2.886,39,2.877,47,0.833,95,0.158,99,1.392,101,0.014,103,0.001,104,0.001,135,6.911,177,1.527,226,1.193,345,2.656,349,1.105,379,1.044,437,1.383,539,1.416,541,1.997,4619,4.313,5589,6.216,8924,7.112,9366,9.58,9394,5.946,15884,8.96,15890,10.061,15899,6.743,15968,9.357,15970,9.357,16006,6.537,16056,8.96,16190,8.344,16191,8.344,16192,10.696,16193,8.344,16194,10.696,16195,8.344,16196,8.344,16197,8.344]],["title/controllers/OauthSSOController.html",[259,2.591,15699,5.958]],["body/controllers/OauthSSOController.html",[0,0.116,3,0.008,4,0.008,5,0.004,7,0.052,8,0.667,27,0.43,29,0.817,30,0.001,31,0.588,32,0.148,33,0.504,35,1.261,36,2.374,47,0.878,52,3.361,55,0.737,59,1.064,95,0.162,100,1.15,101,0.006,103,0,104,0,105,0.369,118,8.283,119,1.133,124,1.721,128,3.265,138,1.622,141,3.872,145,0.951,150,0.78,153,1.599,177,1.484,223,1.41,226,0.489,236,1.766,238,1.971,239,2.193,259,1.302,261,1.626,262,2.668,270,4.932,271,2.752,292,1.733,294,5.276,310,5.602,333,2.356,336,3.458,337,1.77,338,1.81,343,3.748,349,0.727,379,0.428,437,1.554,519,1.725,529,2.293,556,0.862,579,3.748,603,2.379,604,2.262,608,1.622,819,4.366,986,3.67,1150,2.214,1158,3.361,1174,3.777,1194,1.914,1274,1.083,1410,2.394,1413,5.979,1423,2.868,1441,2.868,1631,2.127,1718,8.74,1815,3.702,2017,1.499,2018,1.676,2019,1.616,2057,2.211,2250,1.403,2251,2.514,2431,3.647,2702,1.616,2901,1.838,3072,2.541,3110,2.682,3541,2.817,3717,3.27,3878,1.917,4619,4.61,4901,2.351,4902,2.682,5500,1.953,5643,2.127,6681,8.731,6683,2.054,6808,2.682,6900,2.127,7157,3.165,7198,7.48,8071,3.165,10274,3.165,10337,6.633,11417,4.664,11444,5.776,11445,3.165,11446,2.995,11447,2.49,12790,3.165,13954,4.05,13957,2.868,13964,3.967,15395,2.767,15455,6.55,15456,3.165,15475,5.894,15494,2.868,15504,6.505,15627,3.165,15697,5.894,15699,4.871,15839,7.723,15851,2.995,15856,11.077,15858,2.995,15859,2.995,15888,2.995,16198,10.854,16199,3.424,16200,5.568,16201,7.036,16202,6.505,16203,5.568,16204,7.036,16205,5.568,16206,7.036,16207,5.568,16208,3.424,16209,3.424,16210,6.35,16211,7.091,16212,5.568,16213,3.424,16214,3.424,16215,7.091,16216,3.424,16217,3.424,16218,3.424,16219,3.424,16220,5.568,16221,3.424,16222,3.424,16223,5.568,16224,3.424,16225,3.424,16226,3.424,16227,3.424,16228,5.568,16229,3.424,16230,3.424,16231,5.568,16232,3.424,16233,2.995,16234,5.568,16235,3.424,16236,3.424,16237,4.664,16238,3.424,16239,3.165,16240,3.424,16241,2.995,16242,3.424,16243,2.767,16244,3.424,16245,3.424,16246,3.424,16247,3.424,16248,3.424,16249,3.424,16250,7.036,16251,3.424,16252,5.568,16253,5.568,16254,5.568,16255,3.424,16256,3.424,16257,3.424,16258,3.424,16259,5.568,16260,3.424,16261,3.424,16262,5.568,16263,5.568,16264,3.424,16265,3.424,16266,3.165,16267,3.424,16268,9.557,16269,3.424,16270,5.568,16271,5.147,16272,3.165,16273,3.424,16274,3.424,16275,3.424,16276,3.424,16277,3.424,16278,5.568,16279,5.568,16280,3.424,16281,5.147,16282,5.147,16283,5.568,16284,5.568,16285,2.995,16286,3.424,16287,2.995,16288,3.424,16289,2.995,16290,2.995,16291,2.995,16292,3.424,16293,3.424,16294,3.424,16295,3.424,16296,3.424,16297,3.424,16298,5.568,16299,5.568,16300,3.424,16301,3.424,16302,5.568,16303,3.424,16304,3.424,16305,3.424,16306,3.424,16307,3.424,16308,3.424,16309,3.424,16310,3.424,16311,3.424,16312,3.424]],["title/interfaces/OauthTokenResponse.html",[105,0.735,15543,5.503]],["body/interfaces/OauthTokenResponse.html",[3,0.024,4,0.024,5,0.012,7,0.153,30,0.001,32,0.176,47,0.998,101,0.017,103,0.001,104,0.001,105,1.088,107,2.419,112,0.955,125,11.64,126,10.752,15476,9.319,15543,9.715,15911,12.301,16313,9.319]],["title/injectables/OauthUc.html",[539,0.901,15697,5.705]],["body/injectables/OauthUc.html",[0,0.144,3,0.01,4,0.01,5,0.005,7,0.064,8,0.791,26,2.32,27,0.406,29,0.771,30,0.001,31,0.555,32,0.135,33,0.475,35,1.098,36,2.411,39,1.139,47,0.934,48,5.925,52,5.012,59,2.516,95,0.168,99,0.706,101,0.007,102,3.314,103,0,104,0,105,0.457,118,4.201,119,1.648,128,4.413,177,2.074,201,1.747,226,0.605,236,1.487,238,7.089,239,2.097,262,2.698,284,1.308,310,3.51,349,0.944,379,0.825,437,1.664,528,2.205,529,1.866,539,0.873,541,1.014,556,1.067,593,1.568,603,2.435,608,2.838,785,2.114,819,2.314,946,4.241,986,3.091,1274,1.34,1285,2.735,1357,8.148,1375,2.96,1413,5.426,1433,4.384,1718,7.161,1731,4.201,1770,3.598,1815,2.815,1902,3.693,2057,5.23,2250,3.319,2251,4.127,3072,4.172,3110,3.317,3541,4.626,4514,8.148,4522,5.03,4619,2.189,4701,6.691,4767,6.435,5500,4.619,5643,2.63,6220,4.384,6900,2.63,7141,3.485,7144,6.023,11291,4.384,11426,3.704,11427,7.998,11447,5.89,11449,3.704,11518,5.524,11580,5.61,11655,5.771,11840,3.149,13102,4.61,13964,6.514,14117,3.915,14995,3.547,15475,5.524,15511,8.582,15512,7.968,15513,8.582,15525,8.478,15537,3.317,15538,3.704,15546,3.704,15551,3.915,15552,3.422,15570,5.524,15586,6.097,15628,3.915,15629,3.915,15630,5.769,15631,5.769,15697,5.524,15839,9.155,15856,7.997,15858,3.704,15859,3.704,16233,3.704,16243,3.422,16266,3.915,16271,6.097,16272,3.915,16281,3.915,16282,3.915,16314,4.234,16315,5.769,16316,6.594,16317,6.594,16318,8.098,16319,4.234,16320,6.594,16321,4.234,16322,3.915,16323,10.492,16324,4.234,16325,6.097,16326,6.594,16327,4.234,16328,4.234,16329,4.234,16330,3.915,16331,3.228,16332,4.234,16333,3.915,16334,4.234,16335,4.234,16336,4.234,16337,4.234,16338,4.234,16339,4.234,16340,6.594,16341,4.234,16342,4.234,16343,4.234,16344,3.704,16345,7.085,16346,3.915,16347,3.915,16348,3.915,16349,4.234,16350,3.915,16351,3.915,16352,4.234,16353,4.234]],["title/interfaces/OcsResponse.html",[105,0.735,11339,5.065]],["body/interfaces/OcsResponse.html",[3,0.021,4,0.021,5,0.011,7,0.138,30,0.001,32,0.168,34,1.554,47,0.951,55,2.646,101,0.023,103,0.001,104,0.001,105,1.474,107,2.188,112,0.898,119,1.856,120,4.977,284,2.817,347,3.34,479,3.416,982,5.89,987,6.16,1021,3.567,3060,3.972,4542,6.16,6540,5.357,11336,6.783,11337,6.952,11338,6.783,11339,8.414,11340,9.802,11341,8.598,11342,6.952,11343,6.952,11344,6.783,11345,6.952,11346,6.633,11347,6.783,11348,6.952,11349,6.783]],["title/classes/OidcConfig.html",[0,0.231,12343,4.761]],["body/classes/OidcConfig.html",[0,0.314,2,0.485,3,0.01,4,0.01,5,0.005,7,0.066,26,1.422,27,0.48,29,0.338,30,0.001,31,0.243,32,0.167,33,0.208,47,1.012,83,2.524,95,0.117,96,1.191,101,0.017,103,0,104,0,105,0.468,112,0.533,119,0.882,133,1.516,138,2.077,143,2.986,144,4.417,145,1.204,153,0.985,154,1.757,172,4.534,173,1.282,174,2.671,175,1.917,177,0.793,178,1.801,180,0.777,181,1.16,182,1.41,276,1.843,379,0.542,511,1.937,570,2.66,578,2.63,834,2.577,945,2.66,1194,2.826,1306,2.63,1389,3.089,1421,2.692,1600,1.63,1959,5.308,1984,3.224,2500,3.471,2504,1.937,4272,3.664,4310,4.785,4344,2.601,4619,3.471,5504,1.761,5589,4.622,5767,3.422,5787,2.762,5788,2.977,6263,3.605,7204,2.726,7291,2.928,7347,5.616,8548,2.346,8886,2.928,9871,2.839,10377,2.449,11441,6.841,11522,3.224,11523,3.224,11524,3.224,11525,3.304,11569,2.977,11572,2.882,11574,2.977,11577,2.977,11580,2.66,11584,2.928,11625,2.839,12047,3.304,12231,3.089,12339,5.119,12340,3.503,12341,4.465,12342,7.705,12343,8.373,12344,4.223,12345,4.695,12346,5.384,12347,2.882,12348,2.882,12349,3.503,12350,4.612,12351,4.995,12352,3.396,12353,4.995,12354,3.304,12355,3.304,12356,3.304,12357,3.304,12358,3.396,12359,3.304,12360,3.304,12361,3.304,12362,3.396,12363,4.995,12364,3.396,12365,3.304,12366,3.396,12367,3.304,12368,3.304,12369,3.304,12370,3.396,12371,6.358,12372,3.503,12373,3.503,12374,3.503,12375,3.503,12376,3.503,12377,3.503,12378,3.503,12379,3.503,12380,3.503,12381,3.503,12382,3.503,12383,3.503,12384,3.396,12385,3.503,12386,3.503,12387,3.503,12388,3.503,12389,3.503,12390,3.503,12391,3.503,12392,3.503,12393,3.503,12394,3.503,12395,3.503,12396,3.503,12397,3.503,12398,3.503,12399,3.503,12400,3.503,12401,3.503,12402,3.224,12403,3.503,12404,3.503,12405,3.503,12406,3.503,12407,3.503,12408,3.503,12409,3.503,12410,3.503,12411,3.503,12412,3.503,12413,3.503,12414,3.503,12415,3.503,12416,5.426,12417,3.304,12418,3.503,12419,3.224,12420,3.396,12421,3.304,12422,3.396,12423,3.304,12424,3.304,12425,3.396,12426,3.304,12427,3.396,12428,3.304,12429,5.979,12430,5.979,12431,5.979,12432,6.114,12433,3.304,12434,3.503,12435,3.304,12436,3.503,12437,3.503,12438,3.503,12439,3.503,12440,3.503,12441,3.304,12442,3.396,12443,3.304,12444,3.396,16354,4.335,16355,4.335,16356,4.335,16357,4.335,16358,4.335,16359,4.335,16360,4.335,16361,4.335,16362,4.335]],["title/classes/OidcConfigDto.html",[0,0.231,13356,5.335]],["body/classes/OidcConfigDto.html",[0,0.27,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.561,29,0.619,30,0.001,31,0.445,32,0.187,33,0.381,47,1.003,101,0.013,103,0.001,104,0.001,112,0.823,379,0.994,1959,7.449,1984,5.912,5589,5.759,7347,6.998,12350,5.459,12351,5.912,12353,5.912,12371,7.922,12420,6.227,12422,6.227,12425,6.227,12427,6.227,12429,8.39,12430,8.39,12431,8.39,12432,8.579,13356,10.185,15756,7.349,15759,7.349,15766,7.349,15768,7.349,15769,7.349,16363,13.798,16364,10.664,16365,10.365,16366,7.949,16367,7.949,16368,7.949,16369,7.949,16370,7.949,16371,7.949,16372,7.949,16373,7.949,16374,7.949,16375,7.949,16376,7.949,16377,7.949,16378,7.949,16379,7.949,16380,7.949,16381,7.949]],["title/classes/OidcContextResponse.html",[0,0.231,5566,5.705]],["body/classes/OidcContextResponse.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.532,30,0.001,32,0.177,33,0.673,47,0.963,95,0.138,101,0.014,103,0.001,104,0.001,112,0.864,133,3.806,135,7.363,138,2.361,150,1.954,226,1.226,245,3.637,5566,9.118,5578,11.605,9718,8.52,16382,8.576,16383,11.055,16384,11.055,16385,11.055,16386,11.055,16387,8.576,16388,8.576,16389,8.576,16390,8.576,16391,8.576,16392,8.576]],["title/classes/OidcIdentityProviderMapper.html",[0,0.231,13321,5.705]],["body/classes/OidcIdentityProviderMapper.html",[0,0.279,2,0.921,3,0.019,4,0.019,5,0.01,7,0.125,8,1.27,27,0.434,29,0.825,30,0.001,31,0.594,32,0.145,33,0.508,35,0.988,47,0.828,95,0.166,101,0.014,103,0.001,104,0.001,128,3.313,143,2.36,177,1.506,226,1.176,349,0.85,379,1.029,603,1.652,639,3.86,662,3.687,1113,4.99,1909,3.795,1959,5.312,5589,4.106,5767,4.191,7347,4.99,8339,8.721,8925,5.75,9368,9.007,10762,4.99,11597,6.687,11598,7.196,12341,5.469,12343,5.75,12417,6.27,12419,7.882,12421,6.27,12423,6.27,12424,6.27,12426,6.27,12428,6.27,12429,5.982,12430,5.982,12431,5.982,13242,6.118,13321,8.878,13356,9.702,13370,10.84,13385,7.604,13387,6.646,13391,11.449,13396,6.646,13415,7.604,13485,7.604,15732,7.604,16393,11.725,16394,8.225,16395,10.598,16396,8.225,16397,8.225,16398,10.598,16399,8.225,16400,8.225,16401,8.225,16402,8.225,16403,8.225,16404,8.225,16405,8.225,16406,8.225,16407,8.225]],["title/injectables/OidcMockProvisioningStrategy.html",[539,0.901,16408,5.705]],["body/injectables/OidcMockProvisioningStrategy.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,27,0.46,29,0.779,30,0.001,31,0.56,32,0.137,33,0.48,35,1.35,36,2.547,47,0.532,95,0.162,100,2.53,101,0.012,103,0.001,104,0.001,121,6.553,143,1.677,180,1.793,226,1.077,236,1.827,262,2.462,284,2.326,349,1.16,382,3.389,437,1.453,529,2.131,539,1.324,541,1.803,593,2.79,655,3.786,1378,5.602,1413,4.471,1438,5.478,1547,7.277,2026,6.461,2158,4.296,3072,3.437,7060,8.381,8522,5.008,9619,8.171,11011,9.377,11444,5.367,11726,6.214,12046,6.087,12344,8.055,12346,7.359,12347,5.008,12348,5.008,13099,7.626,13101,8.085,13102,8.954,13106,8.085,13107,8.903,13110,6.589,13111,7.626,13112,6.589,13116,6.964,13118,6.589,13119,6.964,13131,8.085,13135,6.087,13136,6.589,13137,6.964,15552,6.087,16408,8.381,16409,7.532,16410,7.532,16411,7.532,16412,7.532,16413,6.589,16414,7.532,16415,6.964,16416,10.005,16417,7.532]],["title/injectables/OidcProvisioningService.html",[539,0.901,16418,5.503]],["body/injectables/OidcProvisioningService.html",[0,0.114,3,0.008,4,0.008,5,0.004,7,0.051,8,0.659,26,2.599,27,0.389,29,0.739,30,0.001,31,0.605,32,0.137,33,0.455,34,0.936,35,1.062,36,2.417,39,1.478,47,0.706,48,6.277,49,1.329,51,1.639,59,1.047,64,4.305,95,0.157,99,0.562,100,1.132,101,0.006,103,0,104,0,143,1.549,145,0.935,157,2.207,177,1.91,226,0.482,236,1.848,239,2.296,262,2.658,349,1.078,379,0.687,437,1.657,524,1.922,528,1.754,529,1.555,539,0.727,541,0.807,556,1.384,564,1.034,593,3.997,603,2.282,608,2.932,617,7.627,651,1.609,652,1.609,653,1.741,654,2.63,655,4.035,685,2.325,708,1.4,759,2.207,928,3.024,970,5.604,1271,1.546,1274,1.066,1374,2.822,1540,2.506,1546,2.451,1663,1.426,1715,1.419,1772,2.401,1897,5.049,1899,4.559,1901,3.077,1902,5.312,1904,2.723,2250,4.101,3021,2.401,3060,3.031,3078,3.474,3112,2.24,3113,2.176,3355,2.276,3541,1.705,3832,2.314,4126,2.207,4206,3.218,4332,4.627,4481,2.276,4482,2.356,4483,2,4572,5.721,4583,2.568,4603,2.401,4682,7.627,4696,2.506,4767,5.572,4786,2.723,5643,3.413,6531,3.774,6539,2.24,6595,2.401,6640,2.723,7141,5.288,7147,5.423,7150,2.723,8498,8.66,8509,4.305,8511,2.822,8522,4.627,8529,5.971,8531,2.119,8537,4.701,8888,4.305,9619,5.84,9731,2.723,9860,8.381,9869,2.822,9870,2.568,9871,4.559,10377,1.904,10835,3.549,10998,5.305,11000,8.835,11014,2.822,11015,2.822,11147,8.381,12196,2.401,12659,2.639,13131,2.723,13133,2.822,13671,2.822,13827,4.604,13828,3.115,14022,8.381,14577,2.822,14940,2.948,15559,6.434,15813,6.088,16418,4.441,16419,10.005,16420,3.369,16421,5.495,16422,5.495,16423,5.495,16424,5.495,16425,6.959,16426,3.369,16427,5.495,16428,3.369,16429,6.959,16430,5.495,16431,3.369,16432,5.495,16433,3.369,16434,5.495,16435,3.369,16436,3.369,16437,3.369,16438,3.369,16439,3.369,16440,2.948,16441,2.948,16442,8.177,16443,5.495,16444,5.495,16445,3.115,16446,5.495,16447,5.495,16448,3.115,16449,3.369,16450,3.369,16451,3.369,16452,3.369,16453,2.948,16454,5.495,16455,3.115,16456,8.028,16457,3.115,16458,3.369,16459,3.115,16460,3.369,16461,6.959,16462,5.495,16463,3.369,16464,5.495,16465,3.369,16466,5.495,16467,3.369,16468,3.115,16469,3.369,16470,3.369,16471,5.495,16472,5.081,16473,3.369,16474,3.369,16475,3.369,16476,3.369,16477,3.369,16478,8.028,16479,3.369,16480,6.959,16481,5.495,16482,5.495,16483,3.369,16484,3.369,16485,3.369,16486,3.369,16487,3.369,16488,3.369,16489,3.369,16490,3.369,16491,3.369,16492,3.369,16493,5.495,16494,3.369,16495,3.369,16496,3.369,16497,3.369,16498,3.369,16499,3.369,16500,5.495,16501,3.369,16502,5.495,16503,3.369,16504,3.369,16505,3.369,16506,3.369,16507,3.369,16508,3.369,16509,3.369,16510,3.369,16511,3.369,16512,5.495,16513,3.369,16514,3.369,16515,3.369,16516,3.369,16517,3.369,16518,3.369]],["title/injectables/OidcProvisioningStrategy.html",[539,0.901,16519,5.958]],["body/injectables/OidcProvisioningStrategy.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.113,8,1.188,9,5.852,27,0.487,29,0.868,30,0.001,31,0.625,32,0.152,33,0.535,35,1.34,36,2.373,95,0.162,99,1.238,100,2.493,101,0.012,103,0.001,104,0.001,177,1.358,180,1.775,182,2.414,226,1.061,236,1.207,239,1.703,262,2.443,284,2.292,349,0.767,379,0.928,382,3.364,437,0.96,539,1.311,541,1.776,556,1.869,608,2.743,654,2.946,928,4.084,1902,5.547,2017,3.248,2018,3.633,2019,3.503,2026,4.792,2158,4.233,2291,5.012,3878,4.156,7141,5.236,8522,4.934,11011,8.736,11726,6.153,12344,8.021,12346,4.861,13099,7.551,13101,8.005,13102,8.319,13106,5.997,13107,7.368,13111,7.551,13112,6.492,13144,6.492,15552,8.005,16344,6.492,16413,6.492,16418,10.306,16519,8.666,16520,7.421,16521,7.421,16522,7.421,16523,7.421,16524,7.421,16525,7.421,16526,6.492,16527,7.421,16528,11.001,16529,7.421,16530,7.421,16531,7.421,16532,6.861,16533,7.421,16534,9.906,16535,7.421,16536,7.421]],["title/interfaces/Options.html",[105,0.735,490,2.415]],["body/interfaces/Options.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.099,30,0.001,32,0.142,33,0.604,36,2.217,47,0.735,95,0.132,101,0.019,103,0.001,104,0.001,105,0.702,107,1.562,112,0.719,119,2.496,142,4.407,143,1.449,145,3.128,153,2.916,219,2.536,262,2.283,284,2.01,345,2.072,349,1.076,437,1.659,490,4.46,510,4.903,556,2.625,603,1.307,608,2.597,1654,5.822,1759,6.759,2026,7.918,2768,3.863,3229,3.949,3247,5.697,3440,5.694,3443,6.023,3446,5.259,3452,8.811,3453,7.085,3454,3.863,3456,5.099,3457,5.934,4321,6.835,5600,5.259,5602,5.694,6258,3.389,7857,5.452,7858,6.017,7861,5.259,7862,8.163,7864,6.017,7865,9.854,7866,7.589,7868,6.017,7869,7.285,7871,8.163,7872,7.75,7873,4.203,7874,4.961,7876,5.694,7877,5.452,7878,10.949,7879,8.587,7880,8.375,7881,5.694,7882,8.375,7883,8.375,7884,6.017,7885,6.017,7886,6.017,7887,9.437,7888,8.375,7889,9.633,7890,4.47,7891,7.925,7892,6.017,7893,6.017,7894,5.694]],["title/classes/Page.html",[0,0.231,817,3.273]],["body/classes/Page.html",[0,0.327,2,1.08,3,0.023,4,0.023,5,0.011,7,0.146,27,0.516,29,0.751,30,0.001,31,0.54,32,0.172,33,0.463,55,2.89,101,0.016,103,0.001,104,0.001,112,0.93,284,4.149,379,1.206,479,5.031,811,7.479,812,6.678,817,5.626,829,5.353,16537,9.644,16538,11.708,16539,9.644,16540,8.917]],["title/classes/PageContentDto.html",[0,0.231,16541,5.335]],["body/classes/PageContentDto.html",[0,0.323,2,1.064,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.74,30,0.001,31,0.533,32,0.171,33,0.456,47,0.921,101,0.016,103,0.001,104,0.001,112,0.922,128,5.255,181,3.106,379,1.189,381,3.193,4507,5.828,16541,10.481,16542,13.046,16543,9.508,16544,10.495,16545,10.495,16546,11.606,16547,9.508,16548,8.79,16549,8.79,16550,8.79,16551,8.79]],["title/injectables/PageContentMapper.html",[539,0.901,16552,5.705]],["body/injectables/PageContentMapper.html",[0,0.319,3,0.022,4,0.022,5,0.011,7,0.142,8,1.381,27,0.385,29,0.732,30,0.001,31,0.526,32,0.128,33,0.451,35,1.129,95,0.158,100,3.156,101,0.015,103,0.001,104,0.001,128,4.642,226,1.343,236,1.529,349,0.971,437,1.215,539,1.525,541,2.249,785,4.691,819,4.043,4507,5.148,14950,10.081,14951,10.081,16541,10.179,16544,7.872,16545,7.872,16552,9.653,16553,11.523,16554,9.397,16555,9.397,16556,11.17,16557,9.397,16558,8.688,16559,9.397,16560,9.397]],["title/classes/PageContentQueryParams.html",[0,0.231,16561,5.958]],["body/classes/PageContentQueryParams.html",[0,0.371,2,0.964,3,0.02,4,0.028,5,0.01,7,0.131,27,0.491,30,0.001,32,0.184,47,0.889,95,0.152,101,0.014,103,0.001,104,0.001,112,0.867,128,5.074,138,2.179,148,2.733,150,1.962,153,2.723,245,3.303,803,4.889,816,5.498,817,5.245,847,4.114,2677,4.927,3072,4.981,4507,5.628,7108,8.319,10111,6.406,16561,9.548,16562,12.597,16563,8.612,16564,10.482,16565,9.682,16566,9.682,16567,11.02,16568,8.612,16569,8.612,16570,10.914,16571,8.612,16572,8.612,16573,7.534,16574,8.612]],["title/classes/PageContentResponse.html",[0,0.231,16556,5.705]],["body/classes/PageContentResponse.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.498,29,0.693,30,0.001,31,0.498,32,0.166,33,0.427,47,0.9,95,0.113,101,0.015,103,0.001,104,0.001,112,0.885,128,5.134,138,2.026,150,2.027,153,2.532,181,2.981,245,3.189,379,1.113,381,2.989,816,5.112,1194,4.382,4507,5.694,16544,10.188,16545,10.188,16548,8.227,16549,8.227,16550,8.227,16551,8.227,16556,10.995,16575,12.747,16576,8.898,16577,11.14,16578,11.14,16579,11.785,16580,11.14,16581,8.898]],["title/classes/PaginationParams.html",[0,0.231,831,4.761]],["body/classes/PaginationParams.html",[0,0.375,2,0.981,3,0.02,4,0.02,5,0.01,7,0.133,27,0.452,30,0.001,32,0.151,33,0.608,55,2.87,56,6.318,70,6.03,95,0.14,101,0.014,103,0.001,104,0.001,112,0.876,138,2.007,148,2.781,149,4.594,150,1.996,153,2.508,480,3.063,486,3.319,696,4.352,708,4.584,710,8.706,817,5.302,823,7.227,831,7.714,837,8.101,838,7.714,839,9.243,840,8.41,841,10.201,843,8.101,844,6.072,845,9.243,3432,6.244,3437,6.373,3488,7.081,5537,9.759,16582,8.762,16583,8.762,16584,8.762,16585,8.762,16586,8.762]],["title/classes/PaginationResponse.html",[0,0.231,810,4.18]],["body/classes/PaginationResponse.html",[0,0.262,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,9,5.705,27,0.514,29,0.601,30,0.001,31,0.432,32,0.188,33,0.603,55,3.069,56,6.358,59,3.16,70,6.565,95,0.098,101,0.013,103,0.001,104,0.001,112,0.807,138,2.198,150,1.759,153,2.747,245,3.293,284,3.512,379,0.965,479,3.809,810,6.241,811,7.116,816,5.546,817,5.808,818,5.694,819,3.568,821,7.805,822,7.426,823,6.661,824,5.416,4648,6.984,16540,7.137,16587,7.72,16588,10.169,16589,7.72,16590,7.72,16591,7.72,16592,7.72,16593,7.72,16594,7.72,16595,7.72]],["title/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.231,1868,5.958]],["body/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,8,1.317,27,0.45,29,0.678,30,0.001,31,0.488,32,0.182,33,0.418,35,1.046,47,0.85,95,0.139,101,0.014,103,0.001,104,0.001,177,1.594,180,1.969,182,2.832,226,1.245,284,2.689,345,2.771,349,0.899,363,4.875,379,1.089,564,2.673,1021,3.405,1271,5.525,1272,6.179,1274,2.754,1276,3.435,1277,6.232,1586,6.743,1868,9.613,2486,2.886,3193,7.671,8368,6.223,8369,6.464,8819,5.475,8826,5.062,8827,5.282,8835,7.035,8836,7.035,13157,7.293,16596,12.041,16597,12.041,16598,8.705,16599,12.041,16600,8.705,16601,8.705,16602,8.705]],["title/classes/PatchGroupParams.html",[0,0.231,7443,5.958]],["body/classes/PatchGroupParams.html",[0,0.39,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.383,30,0.001,31,0.644,32,0.128,47,0.811,95,0.158,100,3.859,101,0.015,103,0.001,104,0.001,112,0.912,138,1.701,148,2.968,150,2.131,153,2.612,245,3.013,247,4.094,248,4.795,970,6.273,1203,4.252,1880,5.365,6895,8.91,7116,7.558,7118,8.759,7443,10.052,16603,10.052,16604,9.353,16605,10.052,16606,9.353]],["title/classes/PatchMyAccountParams.html",[0,0.231,328,5.958]],["body/classes/PatchMyAccountParams.html",[0,0.319,2,0.768,3,0.016,4,0.016,5,0.008,7,0.104,27,0.494,30,0.001,31,0.645,32,0.165,33,0.623,47,0.941,87,6.067,95,0.146,101,0.011,103,0.001,104,0.001,112,0.746,138,2.195,142,5.216,143,2.969,144,4.393,145,3.702,148,2.178,150,1.564,153,2.744,236,2.114,239,3.059,245,3.268,246,7.594,247,3.004,248,5.037,249,4.883,250,4.636,251,8.688,252,5.75,253,3.361,254,5.75,257,5.105,328,8.221,359,5.638,651,5.119,652,5.119,653,6.239,1609,5.171,2896,5.638,4648,9.158,5513,7.362,7053,8.221,16607,11.523,16608,6.864,16609,10.715,16610,10.715,16611,6.864,16612,7.872,16613,6.864,16614,6.864,16615,6.864,16616,6.864,16617,6.864,16618,8.221,16619,6.864]],["title/classes/PatchMyPasswordParams.html",[0,0.231,299,5.958]],["body/classes/PatchMyPasswordParams.html",[0,0.37,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.446,30,0.001,32,0.149,47,0.888,87,6.972,95,0.159,101,0.014,103,0.001,104,0.001,112,0.864,138,1.98,142,4.92,143,2.8,144,4.143,145,3.492,148,2.721,150,1.954,153,2.474,236,2.046,239,2.886,245,3.135,246,9.662,247,3.754,248,4.99,250,5.792,252,7.184,253,4.199,254,9.118,299,9.522,361,6.15,12055,8.096,16607,11.055,16620,8.576,16621,11.957,16622,10.884,16623,10.884,16624,8.576,16625,8.576]],["title/classes/PatchOrderParams.html",[0,0.231,16626,5.958]],["body/classes/PatchOrderParams.html",[0,0.389,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.381,30,0.001,32,0.127,47,0.809,95,0.145,100,3.848,101,0.015,103,0.001,104,0.001,112,0.91,138,1.693,143,2.073,148,2.954,150,2.121,153,2.604,236,1.864,245,3.004,565,6.801,803,4.676,844,7.318,1669,5.965,1882,4.781,2031,7.319,2344,5.31,3852,7.869,4056,7.523,5536,7.3,16603,10.024,16605,10.024,16626,10.024,16627,9.31,16628,9.31,16629,10.593,16630,9.31]],["title/classes/PatchVisibilityParams.html",[0,0.231,16631,5.958]],["body/classes/PatchVisibilityParams.html",[0,0.394,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.388,30,0.001,32,0.13,95,0.147,100,3.893,101,0.016,103,0.001,104,0.001,112,0.92,119,2.359,138,1.725,143,2.58,145,3.218,147,6.222,148,3.01,150,2.161,153,2.634,245,3.039,1880,5.391,1882,4.837,4081,11.696,4918,7.289,4919,7.485,7125,8.298,16603,10.139,16605,10.139,16631,10.139,16632,9.485,16633,9.485]],["title/injectables/PermissionService.html",[216,5.705,539,0.901]],["body/injectables/PermissionService.html",[0,0.233,3,0.016,4,0.016,5,0.008,7,0.104,8,1.285,27,0.439,29,0.834,30,0.001,31,0.6,32,0.146,33,0.514,35,1.384,47,0.917,95,0.136,101,0.011,102,4.723,103,0.001,104,0.001,119,1.913,145,1.906,216,8.977,226,0.981,236,1.529,239,3.154,276,5.299,333,2.904,349,1.19,353,6.454,355,5.91,358,4.134,437,1.49,529,1.942,539,1.244,541,1.643,560,2.826,591,5.31,603,2.152,696,4.226,822,3.952,1610,6.576,1656,6.346,1658,6.346,1659,6.346,1660,6.414,1663,2.904,1665,6.156,1670,6.346,1671,6.346,1695,4.967,1770,3.745,2333,5.52,3078,5.753,4057,6.294,4689,6.248,5521,6.57,7865,7.362,9425,7.362,9691,8.688,10401,8.688,12173,7.594,12175,5.547,12182,5.547,16634,6.864,16635,9.397,16636,9.397,16637,9.397,16638,6.864,16639,9.397,16640,6.864,16641,9.397,16642,9.397,16643,8.688,16644,9.397,16645,6.864,16646,6.864,16647,6.864,16648,6.864,16649,6.864,16650,6.864,16651,9.397,16652,6.864,16653,9.397,16654,6.864,16655,6.864]],["title/interfaces/PlainTextMailContent.html",[105,0.735,1302,5.065]],["body/interfaces/PlainTextMailContent.html",[3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,31,0.49,32,0.151,33,0.529,47,1.012,77,5.57,101,0.014,103,0.001,104,0.001,105,1.46,107,2.098,112,0.875,180,2.34,1290,8.195,1291,6.665,1292,8.974,1293,8.399,1294,6.665,1295,4.896,1296,8.195,1297,6.359,1298,6.665,1299,6.359,1300,9.421,1301,6.665,1302,8.974,1303,9.953,1304,9.953,1305,8.195,1306,6.685,1307,6.503,1308,6.503,1309,6.665,1310,6.665]],["title/classes/PreviewActionsLoggable.html",[0,0.231,16656,5.503]],["body/classes/PreviewActionsLoggable.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,8,1.337,27,0.457,29,0.694,30,0.001,31,0.5,32,0.122,33,0.428,35,1.071,47,0.859,95,0.141,101,0.015,103,0.001,104,0.001,105,0.962,177,2.042,284,2.754,345,2.838,348,4.452,349,0.921,379,1.115,437,1.153,603,1.791,1021,4.762,1271,5.586,1272,6.248,1274,2.821,1276,3.487,1277,6.286,1551,6.817,1628,6.986,3868,6.798,6315,5.682,10859,8.298,10860,8.114,16656,9.015,16657,8.362,16658,12.174,16659,8.918,16660,9.279,16661,8.918,16662,8.918,16663,6.633,16664,7.206,16665,8.918,16666,8.918]],["title/classes/PreviewBuilder.html",[0,0.231,16667,5.958]],["body/classes/PreviewBuilder.html",[0,0.252,2,0.832,3,0.017,4,0.017,5,0.009,7,0.113,8,1.189,27,0.406,29,0.772,30,0.001,31,0.556,32,0.136,33,0.476,34,1.901,35,1.192,47,0.788,95,0.157,101,0.012,103,0.001,104,0.001,105,0.802,154,1.589,271,3.88,348,5.945,349,1.024,413,3.929,437,1.712,506,3.929,556,2.811,662,3.119,785,3.712,1295,5.554,1551,5.554,2982,4.163,4206,2.522,6236,5.179,6254,7.94,6311,8.624,6315,4.737,10670,6.228,10813,9.077,10857,10.694,10858,9.764,10859,8.856,10860,8.661,16660,8.118,16663,5.53,16667,8.677,16668,7.435,16669,11.161,16670,9.918,16671,7.435,16672,7.435,16673,9.918,16674,7.435,16675,7.435,16676,7.435,16677,7.435,16678,7.435,16679,7.435,16680,7.435,16681,7.435,16682,7.435,16683,7.435]],["title/interfaces/PreviewConfig.html",[105,0.735,16684,5.705]],["body/interfaces/PreviewConfig.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,47,0.697,55,2.126,95,0.125,101,0.02,103,0.001,104,0.001,105,1.282,107,2.371,112,0.943,3539,4.032,6334,8.421,9881,6.57,11589,6.674,11983,7.985,11985,7.985,12260,9.078,14581,7.187,16657,6.787,16684,9.953,16685,9.136,16686,11.073,16687,11.073]],["title/interfaces/PreviewFileOptions.html",[105,0.735,16660,4.953]],["body/interfaces/PreviewFileOptions.html",[3,0.023,4,0.023,5,0.011,7,0.146,30,0.001,32,0.172,47,0.984,55,2.075,101,0.021,103,0.001,104,0.001,105,1.36,107,2.314,112,0.93,119,1.963,347,3.532,348,4.815,6315,6.145,10859,9.751,10860,9.77,16657,6.624,16660,8.516,16663,10.372,16688,8.437,16689,7.556]],["title/interfaces/PreviewFileParams.html",[105,0.735,10857,5.503]],["body/interfaces/PreviewFileParams.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,31,0.479,32,0.186,33,0.522,47,1.012,55,1.841,95,0.151,101,0.018,103,0.001,104,0.001,105,1.173,107,2.053,112,0.863,154,1.829,284,2.643,348,6.274,785,4.272,1147,6.836,1149,5.605,6236,3.971,6254,8.179,6311,8.685,6341,6.365,6342,6.098,6343,6.365,6344,6.365,10320,6.523,10813,9.58,10856,7.912,10857,8.783,10858,10.995,10859,9.347,10860,9.141]],["title/modules/PreviewGeneratorAMQPModule.html",[201,1.804,16690,5.958]],["body/modules/PreviewGeneratorAMQPModule.html",[0,0.325,3,0.022,4,0.022,5,0.011,30,0.001,95,0.159,101,0.016,103,0.001,104,0.001,201,3.329,203,3.444,204,3.701,205,3.808,206,3.792,207,3.777,208,3.507,209,3.601,218,4.636,219,3.731,220,3.643,225,4.598,226,1.369,506,5.061,1164,7.299,6236,4.443,6258,4.986,6316,6.101,6334,7.427,10499,8.853,10670,8.022,10678,8.377,11982,10.777,12260,6.577,16686,8.022,16690,11.926,16691,9.576,16692,9.576,16693,11.23,16694,9.576]],["title/classes/PreviewGeneratorBuilder.html",[0,0.231,16695,5.958]],["body/classes/PreviewGeneratorBuilder.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.016,7,0.139,8,1.36,27,0.375,29,0.713,30,0.001,31,0.513,32,0.125,33,0.44,35,1.101,95,0.156,101,0.015,103,0.001,104,0.001,105,0.989,284,2.83,348,5.664,349,0.946,413,3.795,437,1.467,662,2.881,1149,6.001,1295,5.13,3539,3.739,5610,10.489,6316,7.228,6699,10.789,9881,6.091,16657,7.792,16663,10.274,16695,9.925,16696,9.167,16697,9.161,16698,11.345,16699,9.161]],["title/injectables/PreviewGeneratorConsumer.html",[539,0.901,16700,5.958]],["body/injectables/PreviewGeneratorConsumer.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.428,29,0.813,30,0.001,31,0.585,32,0.143,33,0.501,35,0.966,95,0.168,101,0.013,103,0.001,104,0.001,105,0.868,138,1.463,177,1.472,226,1.15,262,2.542,345,2.56,349,0.831,379,1.006,437,1.04,539,1.383,541,1.926,556,2.631,603,1.616,608,1.854,662,3.648,819,3.666,1021,3.147,1117,4.996,1119,6.746,1150,3.199,1156,5.624,1157,5.195,1274,2.545,1551,6.496,2250,5.443,6316,5.125,10584,7.437,10586,9.139,10593,7.437,10594,9.658,10601,7.037,16656,6.5,16657,7.968,16660,8.932,16696,9.375,16700,9.139,16701,8.044,16702,9.139,16703,8.044,16704,10.926,16705,8.044,16706,8.044,16707,9.718,16708,8.044,16709,7.437,16710,7.037,16711,7.037,16712,7.037,16713,8.044,16714,10.446,16715,8.044,16716,6.739,16717,8.044,16718,8.044]],["title/modules/PreviewGeneratorConsumerModule.html",[201,1.804,16693,5.705]],["body/modules/PreviewGeneratorConsumerModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,8,0.974,27,0.333,29,0.633,30,0.001,31,0.455,32,0.111,33,0.39,35,0.976,95,0.173,101,0.013,103,0.001,104,0.001,201,3.088,203,2.922,208,3.851,214,4.879,225,3.205,226,1.162,236,1.322,349,0.839,413,3.238,437,1.36,506,5.557,598,4.679,636,4.725,637,5.79,639,3.813,1106,7.751,1274,2.571,1909,5.379,2250,5.233,3539,3.316,6316,6.699,8438,5.402,9881,5.402,10109,6.194,10659,7.492,10666,5.79,10672,6.043,10676,5.79,10677,5.581,10848,6.566,10849,7.82,12260,7.222,14581,5.91,16657,7.222,16684,10.326,16686,6.807,16693,9.765,16696,8.497,16700,9.199,16704,8.808,16712,7.108,16719,8.125,16720,7.108,16721,10.514,16722,8.125,16723,8.125,16724,8.125,16725,8.125,16726,8.125,16727,8.125]],["title/modules/PreviewGeneratorProducerModule.html",[201,1.804,10669,5.705]],["body/modules/PreviewGeneratorProducerModule.html",[0,0.306,3,0.021,4,0.021,5,0.011,30,0.001,95,0.162,101,0.015,103,0.001,104,0.001,201,3.238,203,3.236,204,3.477,205,3.578,206,3.563,207,3.549,208,4.477,209,4.596,214,6.23,218,4.462,219,3.505,220,3.423,225,4.424,226,1.286,506,4.755,1157,5.811,1274,2.846,10659,9.568,10669,11.776,16657,6.18,16696,7.271,16728,8.997,16729,8.997,16730,8.997,16731,8.997,16732,11.831,16733,8.997,16734,8.997]],["title/injectables/PreviewGeneratorService.html",[539,0.901,16704,5.705]],["body/injectables/PreviewGeneratorService.html",[0,0.217,3,0.015,4,0.015,5,0.014,7,0.097,8,1.071,27,0.482,29,0.87,30,0.001,31,0.626,32,0.153,33,0.536,35,1.239,36,2.377,47,0.728,95,0.162,101,0.011,103,0.001,104,0.001,105,0.689,112,0.71,143,1.422,177,1.169,226,0.913,262,2.67,271,4.37,345,2.032,347,2.338,348,3.188,349,1.065,379,0.798,437,1.651,480,1.773,486,1.921,539,1.183,541,1.528,556,1.608,603,2.64,608,2.377,662,3.243,1149,4.182,1274,2.02,1559,3.932,2250,5.128,3268,6.369,3539,2.605,6311,7.118,6315,5.694,6316,6.57,6340,8.126,6699,8.639,9881,4.245,10139,6.648,10848,7.223,10849,8.309,10859,4.749,10860,6.501,16656,5.159,16657,8.37,16660,8.126,16663,9.064,16689,5.002,16695,5.586,16696,9.848,16702,7.819,16704,7.487,16710,5.586,16711,5.586,16716,7.487,16735,5.903,16736,11.759,16737,8.938,16738,8.938,16739,5.903,16740,8.938,16741,8.938,16742,6.385,16743,6.385,16744,8.263,16745,6.385,16746,8.938,16747,6.385,16748,10.313,16749,5.903,16750,6.385,16751,6.385,16752,6.385,16753,6.385,16754,6.385,16755,6.385,16756,6.385,16757,6.385,16758,6.385,16759,6.385,16760,6.385,16761,6.385,16762,6.385]],["title/interfaces/PreviewModuleConfig.html",[105,0.735,16687,5.705]],["body/interfaces/PreviewModuleConfig.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,47,0.899,55,2.741,95,0.125,101,0.02,103,0.001,104,0.001,105,1.282,107,2.371,112,0.943,3539,4.032,6334,7.569,9881,6.57,11589,6.674,11983,10.681,11985,10.681,12260,6.787,14581,7.187,16657,6.787,16684,8.278,16685,9.136,16686,8.278,16687,10.672]],["title/interfaces/PreviewOptions.html",[105,0.735,16663,5.065]],["body/interfaces/PreviewOptions.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.161,33,0.566,47,0.967,55,2.727,101,0.021,103,0.001,104,0.001,105,1.368,107,2.342,112,0.936,119,1.987,347,3.575,348,6.572,6315,8.387,10859,7.26,10860,8.578,16657,6.704,16660,7.1,16663,9.791,16688,8.54,16689,7.647]],["title/classes/PreviewParams.html",[0,0.231,6311,4.339]],["body/classes/PreviewParams.html",[0,0.452,2,0.69,3,0.014,4,0.02,5,0.01,7,0.093,26,2.552,27,0.414,30,0.001,32,0.169,33,0.578,39,1.657,47,0.94,95,0.157,99,1.028,101,0.022,103,0,104,0,105,0.665,112,0.692,119,2.058,138,1.84,143,1.94,147,4.679,148,1.955,149,4.183,150,1.403,151,5.795,153,1.4,154,1.317,245,3.62,247,2.696,248,5.027,249,4.448,348,3.075,803,4.916,804,6.598,834,3.171,847,2.942,984,2.657,986,2.083,1075,3.618,1135,5.553,1136,4.035,1137,4.035,1194,2.118,1276,1.925,2677,4.566,2860,5.718,3570,3.016,4206,2.089,5904,6.498,6236,5.102,6249,7.203,6255,6,6284,3.035,6287,4.231,6288,4.307,6289,4.307,6292,7.715,6295,4.307,6296,8.01,6297,8.422,6298,8.422,6299,4.307,6300,4.231,6301,6.831,6302,4.231,6303,4.307,6304,4.161,6305,5.887,6306,4.096,6307,4.161,6308,4.231,6309,4.161,6310,4.161,6311,5.553,6312,4.307,6313,7.071,6314,4.307,6315,6.444,6316,5.553,6317,5.709,6318,5.795,6319,7.071,10753,8.058,10773,5.695,16763,6.16,16764,6.16,16765,6.16,16766,6.16,16767,6.16]],["title/injectables/PreviewProducer.html",[539,0.901,16732,5.705]],["body/injectables/PreviewProducer.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.12,27,0.493,29,0.991,30,0.001,31,0.674,32,0.174,33,0.577,35,1.379,36,1.988,47,0.877,55,1.465,95,0.164,101,0.011,103,0.001,104,0.001,105,0.734,141,4.463,177,1.953,180,1.674,226,0.973,262,2.637,349,0.703,379,1.168,382,3.219,437,1.208,448,5.315,479,3.5,500,5.545,519,2.108,539,1.237,541,1.629,584,8.34,598,3.919,603,1.367,608,1.569,819,3.743,1117,4.227,1119,4.395,1142,5.5,1143,9.246,1150,3.716,1156,4.758,1157,4.395,1274,2.153,1551,7.368,1909,3.14,2250,5.219,3920,7.55,3956,7.935,8438,4.525,10109,5.188,10596,6.949,10697,10.414,10698,8.173,10699,8.173,10707,5.954,10708,6.292,10709,5.954,10710,6.292,10711,5.954,10712,6.292,10714,6.292,13061,6.292,14581,4.95,16656,5.5,16657,7.327,16660,8.352,16687,5.701,16689,5.332,16707,7.826,16709,6.292,16710,5.954,16711,5.954,16716,7.826,16732,7.826,16768,6.806,16769,6.806,16770,9.343,16771,6.806,16772,6.806,16773,6.806,16774,6.806,16775,6.806]],["title/interfaces/PreviewResponseMessage.html",[105,0.735,16689,5.335]],["body/interfaces/PreviewResponseMessage.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.162,47,0.968,55,2.111,101,0.021,103,0.001,104,0.001,105,1.37,107,2.354,112,0.939,119,2.585,347,4.829,348,4.897,6315,6.249,10859,7.296,10860,9.816,16657,6.737,16660,7.135,16663,9.446,16688,8.581,16689,9.266]],["title/injectables/PreviewService.html",[539,0.901,10581,5.705]],["body/injectables/PreviewService.html",[0,0.178,3,0.012,4,0.012,5,0.014,7,0.079,8,0.928,27,0.483,29,0.918,30,0.001,31,0.692,32,0.161,33,0.565,35,1.368,36,2.675,47,0.651,59,1.625,95,0.162,101,0.009,103,0,104,0,105,0.564,154,1.118,177,1.417,226,0.748,236,0.851,262,2.906,271,3.986,349,0.952,379,0.968,437,1.598,500,3.105,506,2.765,519,2.398,529,2.191,539,1.025,541,1.252,579,2.786,603,2.664,604,2.125,608,2.789,631,2.684,639,2.455,662,3.581,785,2.612,819,3.575,986,3.445,990,3.727,1174,2.808,1274,1.655,1551,2.929,2250,3.778,2251,4.6,2295,3.805,2300,4.098,2619,4.124,2982,2.929,3539,2.135,5643,5.726,6236,5.614,6254,7.895,6256,3.727,6258,2.723,6261,6.257,6274,4.227,6280,4.227,6311,7.873,6316,3.333,9881,3.478,10132,3.727,10187,4.098,10223,4.576,10317,4.576,10320,5.902,10387,3.987,10581,6.486,10670,4.382,10678,4.576,10813,8.681,10848,6.257,10849,7.578,10857,10.305,10860,3.805,11981,4.836,16667,4.576,16702,6.774,16732,9.872,16739,4.836,16744,7.158,16776,5.231,16777,7.743,16778,7.743,16779,9.218,16780,7.743,16781,7.743,16782,5.231,16783,7.743,16784,5.231,16785,7.743,16786,5.231,16787,5.231,16788,5.231,16789,5.231,16790,7.743,16791,5.231,16792,7.743,16793,5.231,16794,5.231,16795,5.231,16796,5.231,16797,5.231,16798,5.231,16799,5.231,16800,5.231,16801,5.231,16802,4.836,16803,5.231,16804,5.231,16805,5.231,16806,5.231,16807,7.743,16808,7.743,16809,5.231,16810,5.231,16811,5.231,16812,5.231,16813,5.231,16814,5.231]],["title/classes/PrometheusMetricsConfig.html",[0,0.231,16815,5.958]],["body/classes/PrometheusMetricsConfig.html",[0,0.23,2,0.758,3,0.016,4,0.016,5,0.008,7,0.103,8,1.116,27,0.562,30,0.001,32,0.17,35,0.813,47,0.809,55,2.466,95,0.086,101,0.011,103,0.001,104,0.001,112,0.739,119,2.756,177,2.525,236,1.515,349,1.282,379,1.331,413,3.916,519,2.098,556,1.706,603,2.822,662,2.928,686,4.395,1128,7.439,2017,2.964,2018,3.315,2019,3.196,2020,4.314,5230,6.691,8753,5.162,9655,8.335,16815,10.024,16816,6.771,16817,10.64,16818,10.64,16819,10.64,16820,10.64,16821,10.64,16822,10.64,16823,10.024,16824,10.64,16825,9.837,16826,9.837,16827,6.771,16828,6.771,16829,6.771,16830,6.771,16831,6.771,16832,6.771,16833,6.771,16834,6.771,16835,6.771,16836,6.771,16837,6.771,16838,6.771,16839,6.771,16840,6.771,16841,6.771,16842,6.771,16843,6.771,16844,6.771,16845,6.771,16846,9.31,16847,9.31,16848,9.31,16849,9.31,16850,9.31,16851,6.771,16852,6.771,16853,6.771,16854,6.771,16855,6.771,16856,11.458]],["title/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.231,16857,6.296]],["body/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.227,2,0.748,3,0.016,4,0.016,5,0.008,7,0.101,8,1.106,27,0.378,29,0.52,30,0.001,31,0.374,32,0.091,33,0.321,35,0.803,95,0.144,101,0.019,103,0.001,104,0.001,177,1.223,236,2.011,238,6.084,284,2.064,330,4.589,345,2.127,349,1.091,379,0.836,437,1.599,486,2.01,819,2.345,824,3.559,834,2.095,1021,2.614,1128,4.671,1220,3.742,1237,3.811,1268,5.845,1270,5.845,1271,5.228,1272,5.422,1274,2.114,1275,7.728,1276,2.883,1277,5.614,1455,8.991,1579,3.885,1962,3.677,2250,4.9,2306,4.257,6683,6.339,6779,5.957,6953,5.093,8094,4.97,9655,8.925,11786,6.731,14121,4.97,15564,9.967,16815,5.845,16825,9.768,16826,9.768,16857,10.533,16858,10.565,16859,6.682,16860,6.682,16861,11.393,16862,6.682,16863,6.682,16864,5.845,16865,6.682,16866,6.682,16867,6.682,16868,12.362,16869,13.607,16870,6.682,16871,6.682,16872,6.682,16873,5.234,16874,6.682,16875,6.682,16876,9.225,16877,6.682,16878,6.682,16879,5.399,16880,6.682,16881,9.225,16882,11.955,16883,6.682,16884,6.682,16885,6.682,16886,6.682,16887,6.682,16888,6.682,16889,6.682,16890,6.682,16891,9.225,16892,6.682,16893,6.682,16894,6.682,16895,6.682,16896,6.682]],["title/classes/PropertyData.html",[0,0.231,2547,5.503]],["body/classes/PropertyData.html",[0,0.31,2,1.021,3,0.021,4,0.021,5,0.011,7,0.138,27,0.527,29,0.71,30,0.001,31,0.72,32,0.176,33,0.59,47,0.908,95,0.116,101,0.015,103,0.001,104,0.001,112,0.898,172,2.912,181,3.028,379,1.141,381,3.063,480,3.415,1586,7.403,1982,3.627,2547,10.683,2587,10.759,4282,3.992,7249,7.145,7275,8.304,7289,7.64,7290,7.64,7316,7.64,16897,13.22,16898,8.432,16899,11.313,16900,9.12,16901,9.12]],["title/interfaces/ProviderConsentResponse.html",[105,0.735,15943,5.191]],["body/interfaces/ProviderConsentResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.19,33,0.688,47,1.016,70,6.016,77,7.677,95,0.128,101,0.013,103,0.001,104,0.001,105,0.827,107,1.838,108,5.356,112,0.803,119,2.306,129,10.542,130,10.542,131,4.514,133,3.962,1337,6.418,3539,4.917,4195,8.586,5541,11.141,5542,11.141,5543,10.095,5544,10.095,5545,10.095,5546,9.737,9390,8.963,15943,7.713,16902,7.661,16903,10.095,16904,7.083,16905,7.083,16906,6.702]],["title/interfaces/ProviderConsentSessionResponse.html",[105,0.735,16006,5.335]],["body/interfaces/ProviderConsentSessionResponse.html",[3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,32,0.189,33,0.675,47,0.988,55,2.596,95,0.111,101,0.014,103,0.001,104,0.001,105,0.943,107,2.098,108,6.113,112,0.875,113,11.711,114,11.081,115,11.711,116,9.923,117,9.923,118,8.07,119,2.456,120,4.847,125,7.649,126,7.065,5584,8.084,15943,9.655,16006,8.632,16907,8.743,16908,12.666,16909,8.743]],["title/interfaces/ProviderLoginResponse.html",[105,0.735,16005,5.335]],["body/interfaces/ProviderLoginResponse.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,32,0.188,33,0.603,47,1.01,70,6.279,77,8.013,95,0.138,101,0.014,103,0.001,104,0.001,105,0.925,107,2.058,108,5.995,112,0.864,119,2.434,1337,7.184,3539,5.133,4195,8.962,5543,10.536,5544,10.536,5545,10.536,5546,10.163,9390,9.355,14534,11.628,16005,8.527,16903,10.536,16904,7.928,16905,7.928,16906,7.502,16910,8.576]],["title/interfaces/ProviderOidcContext.html",[105,0.735,16903,5.705]],["body/interfaces/ProviderOidcContext.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.182,33,0.675,47,1.002,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,108,6.57,112,0.915,133,4.358,1608,8.688,9718,9.259,16383,12.013,16384,12.013,16385,12.013,16386,12.013,16903,9.653,16911,9.397]],["title/interfaces/ProviderRedirectResponse.html",[105,0.735,15945,5.065]],["body/interfaces/ProviderRedirectResponse.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,47,0.925,101,0.017,103,0.001,104,0.001,105,1.139,107,2.533,108,7.38,112,0.981,15945,9.189,16912,10.555,16913,12.487]],["title/classes/ProvisioningDto.html",[0,0.231,13111,5.191]],["body/classes/ProvisioningDto.html",[0,0.342,2,1.128,3,0.024,4,0.024,5,0.012,7,0.153,27,0.492,29,0.785,30,0.001,31,0.565,32,0.164,33,0.484,47,0.849,101,0.017,103,0.001,104,0.001,112,0.955,379,1.261,8522,8.543,8525,8.818,13111,10.516,16914,10.079,16915,12.023,16916,12.023,16917,10.079]],["title/modules/ProvisioningModule.html",[201,1.804,15696,5.335]],["body/modules/ProvisioningModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,30,0.001,95,0.174,101,0.011,103,0.001,104,0.001,201,2.856,203,2.499,204,2.685,205,2.763,206,2.751,207,2.74,208,3.949,209,4.054,213,8.914,214,5.804,218,3.768,219,2.706,220,2.643,225,3.737,226,0.993,654,2.066,959,4,1274,2.198,1355,9.304,1356,8.745,1374,5.82,1901,3.89,3531,7.77,3541,3.515,3669,4.619,3936,6.3,4550,4.692,5380,7.97,8511,5.82,11028,10.108,13096,10.479,15511,10.653,15696,11.253,16408,10.479,16418,10.108,16526,6.077,16918,6.947,16919,6.947,16920,6.947,16921,6.947,16922,10.479,16923,10.479,16924,6.947,16925,6.947,16926,6.947,16927,6.947,16928,6.947,16929,6.947]],["title/injectables/ProvisioningService.html",[539,0.901,15511,5.335]],["body/injectables/ProvisioningService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.005,27,0.511,29,0.921,30,0.001,31,0.663,32,0.167,33,0.568,35,1.365,36,2.593,47,0.931,48,3.979,95,0.155,100,1.958,101,0.01,103,0,104,0,112,0.665,121,7.025,177,1.963,226,0.833,236,1.745,262,2.783,284,2.588,349,1.108,379,1.048,437,1.643,448,4.021,480,1.619,486,1.754,519,1.806,529,1.649,539,1.109,541,1.395,556,1.468,603,2.589,608,2.261,1158,2.785,1375,4.076,1433,7.131,2158,3.325,2585,5.953,3072,4.477,4550,8.578,11291,6.522,11672,8.582,12344,7.987,12346,7.025,12347,3.876,12348,3.876,13096,8.985,13099,6.387,13102,7.943,13107,7.296,13111,7.478,13135,4.711,15511,6.565,15512,8.604,15546,5.1,15817,7.685,16331,4.444,16408,8.985,16922,8.985,16930,5.83,16931,8.379,16932,8.379,16933,8.379,16934,8.379,16935,5.39,16936,9.81,16937,9.81,16938,9.81,16939,5.83,16940,8.379,16941,5.83,16942,8.379,16943,5.83,16944,8.379,16945,5.83,16946,5.83,16947,8.379,16948,5.83,16949,8.379,16950,5.83,16951,5.83,16952,5.1,16953,5.83,16954,5.83,16955,5.83,16956,5.83,16957,5.83,16958,5.83,16959,5.83,16960,5.83,16961,5.83,16962,8.379,16963,5.83,16964,5.83,16965,5.83,16966,5.83,16967,5.83]],["title/classes/ProvisioningStrategy.html",[0,0.231,12344,4.283]],["body/classes/ProvisioningStrategy.html",[0,0.309,2,1.019,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,9,6.61,27,0.503,29,0.88,30,0.001,31,0.633,32,0.154,33,0.542,35,1.476,36,2.734,95,0.143,100,3.056,101,0.015,103,0.001,104,0.001,284,2.81,2158,5.19,11011,10.066,11726,7.017,12344,7.105,12346,8.048,12347,6.05,12348,6.05,13099,8.611,13101,9.129,13102,8.983,13106,9.129,13107,9.556,13111,6.936,16968,9.099,16969,9.099,16970,9.099,16971,9.099]],["title/classes/ProvisioningSystemDto.html",[0,0.231,15817,5.335]],["body/classes/ProvisioningSystemDto.html",[0,0.31,2,1.021,3,0.021,4,0.021,5,0.011,7,0.138,26,2.605,27,0.527,29,0.71,30,0.001,31,0.511,32,0.176,33,0.59,47,0.798,48,5.84,95,0.143,99,1.521,101,0.015,103,0.001,104,0.001,112,0.898,181,3.028,193,6.633,194,7.145,379,1.141,381,3.063,12344,7.735,12345,8.598,12346,8.056,12347,6.064,12348,6.064,12441,6.952,12442,7.145,12443,6.952,12444,7.145,15817,10.357,16972,13.22,16973,9.12,16974,11.313,16975,9.12,16976,9.12]],["title/classes/ProvisioningSystemInputMapper.html",[0,0.231,16952,5.958]],["body/classes/ProvisioningSystemInputMapper.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,8,1.379,27,0.384,29,0.73,30,0.001,31,0.525,32,0.128,33,0.45,35,1.126,48,4.452,95,0.158,100,3.865,101,0.015,103,0.001,104,0.001,236,1.525,349,0.968,413,3.834,556,2.361,3072,5.251,6477,7.853,11291,8.632,12344,5.896,12345,6.554,12346,6.141,12347,6.233,12348,6.233,15817,9.015,16331,7.146,16952,10.067,16977,11.507,16978,9.375,16979,11.507,16980,11.507,16981,9.375,16982,9.375,16983,9.375,16984,9.375]],["title/classes/Pseudonym.html",[0,0.231,9003,3.921]],["body/classes/Pseudonym.html",[0,0.281,2,0.927,3,0.019,4,0.019,5,0.01,7,0.125,8,1.275,26,2.72,27,0.547,30,0.001,32,0.113,35,0.994,39,3.339,47,0.751,83,3.811,95,0.135,101,0.018,103,0.001,104,0.001,105,0.893,112,0.845,133,2.894,180,2.107,349,1.326,376,5.406,377,5.634,381,3.574,382,3.21,448,4.361,479,3.985,662,3.346,686,5.022,1597,6.187,1601,5.433,1604,7.594,1715,3.485,2439,4.052,2733,5.502,2751,5.502,2754,7.24,2756,7.24,2759,6.483,2760,6.483,7475,6.687,8857,6.773,9003,7.568,16985,7.651,16986,7.651,16987,8.276,16988,8.276,16989,8.276,16990,8.276,16991,8.276,16992,8.276,16993,7.24,16994,7.651,16995,7.651,16996,6.687]],["title/modules/PseudonymApiModule.html",[201,1.804,16997,5.503]],["body/modules/PseudonymApiModule.html",[0,0.299,3,0.021,4,0.021,5,0.01,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,201,3.205,203,3.165,204,3.401,205,3.5,206,3.485,207,3.471,208,4.432,209,3.309,218,4.4,219,3.429,220,3.348,222,5.466,223,4.555,225,4.364,226,1.258,654,2.618,1689,7.287,1901,4.928,2469,3.995,2702,4.154,4614,9.932,5380,8.507,16997,11.379,16998,8.801,16999,8.801,17000,8.801,17001,11.186,17002,8.801,17003,10.587,17004,8.801,17005,8.801]],["title/controllers/PseudonymController.html",[259,2.591,17003,5.958]],["body/controllers/PseudonymController.html",[0,0.268,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.324,29,0.615,30,0.001,31,0.443,32,0.157,33,0.379,35,1.382,36,2.197,95,0.17,99,1.318,100,2.654,101,0.013,103,0.001,104,0.001,138,1.437,150,1.8,153,1.796,177,1.446,223,3.253,226,1.13,239,2.369,259,3.006,261,3.752,262,2.52,270,5.971,271,4.499,292,5.225,294,6.36,333,4.369,335,6.195,337,4.084,338,4.176,343,4.209,345,2.515,346,4.69,349,0.816,437,1.335,608,1.821,1239,6.337,2486,3.423,2702,3.73,2901,4.242,7111,6.579,9003,7.614,9009,5.254,13952,8.344,13955,7.51,16986,10.634,17001,9.635,17003,9.033,17006,7.902,17007,7.902,17008,10.67,17009,7.902,17010,7.902,17011,7.902,17012,7.68,17013,6.913,17014,7.902,17015,10.601,17016,7.902,17017,7.902,17018,7.902,17019,7.902,17020,7.902,17021,7.902,17022,7.902]],["title/entities/PseudonymEntity.html",[154,1.456,17023,5.705]],["body/entities/PseudonymEntity.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.127,26,2.269,27,0.484,30,0.001,32,0.161,34,1.424,39,3.465,47,0.834,49,5.285,95,0.158,96,2.942,97,3.624,99,1.395,101,0.018,103,0.001,104,0.001,105,0.902,112,0.938,138,2.149,154,2.289,155,2.79,168,6.74,172,4.208,173,2.473,174,4.26,178,3.474,180,1.498,181,2.238,182,2.72,191,4.525,192,5.327,404,3.412,405,5.894,593,3.097,4273,5.073,8857,7.029,9003,7.175,9004,7.315,9009,5.56,9010,6.757,9011,7.005,9012,6.082,9013,6.551,17023,8.972,17024,7.731,17025,8.362,17026,8.362,17027,8.362,17028,8.972]],["title/interfaces/PseudonymEntityProps.html",[105,0.735,17028,5.705]],["body/interfaces/PseudonymEntityProps.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.127,26,2.639,30,0.001,32,0.17,33,0.514,34,2.123,39,3.545,47,0.879,49,5.405,95,0.158,96,2.942,97,3.624,99,1.395,101,0.018,103,0.001,104,0.001,105,0.902,107,2.006,112,0.938,154,2.289,168,6.74,172,3.978,173,2.473,174,4.26,178,3.474,180,1.498,181,2.238,182,2.72,191,4.525,192,5.327,404,3.412,405,5.894,593,3.097,4273,5.073,8857,7.191,9003,7.417,9009,5.56,9010,6.757,9011,7.005,9012,6.082,9013,6.551,17023,7.005,17024,7.731,17028,9.899]],["title/classes/PseudonymMapper.html",[0,0.231,17013,5.958]],["body/classes/PseudonymMapper.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,34,1.631,35,1.15,39,2.576,95,0.148,99,1.597,101,0.016,103,0.001,104,0.001,236,1.558,349,0.989,413,3.87,437,1.238,778,6.47,785,4.781,819,4.09,8857,5.225,9003,7.719,17013,10.198,17015,11.23,17029,9.576,17030,11.657,17031,9.576,17032,9.576,17033,9.576,17034,9.576]],["title/modules/PseudonymModule.html",[201,1.804,4614,5.065]],["body/modules/PseudonymModule.html",[0,0.27,3,0.019,4,0.019,5,0.009,30,0.001,95,0.168,101,0.013,103,0.001,104,0.001,201,3.058,203,2.864,204,3.078,205,3.168,206,3.154,207,3.141,208,4.229,209,4.341,218,4.128,219,3.103,220,3.03,225,4.093,226,1.139,560,3.279,1274,2.52,1764,6.901,1765,7.72,1766,6.672,1860,6.436,2251,5.873,2425,4.31,3531,8.08,3541,4.03,4614,10.616,9014,10.897,9712,10.586,9732,9.538,13861,9.269,17035,7.964,17036,7.964,17037,7.964,17038,7.964,17039,10.897,17040,7.964]],["title/classes/PseudonymParams.html",[0,0.231,17008,5.958]],["body/classes/PseudonymParams.html",[0,0.404,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,27,0.406,30,0.001,32,0.135,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,112,0.945,138,1.802,142,4.654,143,2.649,144,3.263,145,3.303,148,3.143,150,2.257,245,3.12,248,4.965,4322,8.298,9003,7.344,11143,9.158,17008,10.409,17041,11.898,17042,9.906]],["title/interfaces/PseudonymProps.html",[105,0.735,16993,5.958]],["body/interfaces/PseudonymProps.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.13,26,2.916,30,0.001,32,0.177,39,3.492,47,0.888,83,4.187,95,0.138,101,0.018,103,0.001,104,0.001,105,0.925,107,2.058,112,0.864,133,2.999,180,2.143,349,1.341,376,5.654,377,5.892,1597,6.953,1601,4.606,1715,3.612,2439,4.199,2759,6.718,2760,6.718,8857,7.084,9003,7.638,16985,7.928,16993,9.522,16994,7.928,16995,7.928,16996,6.93]],["title/classes/PseudonymResponse.html",[0,0.231,17015,5.705]],["body/classes/PseudonymResponse.html",[0,0.31,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.527,29,0.712,30,0.001,31,0.512,32,0.176,33,0.439,34,2.097,39,3.312,47,0.951,95,0.116,101,0.015,103,0.001,104,0.001,112,0.9,138,2.239,150,2.083,191,4.947,245,3.583,379,1.143,404,3.73,819,3.207,5998,9.154,6008,6.968,8857,6.718,9012,6.648,17015,11.082,17043,9.14,17044,11.329,17045,9.14,17046,9.14,17047,8.451,17048,9.14]],["title/classes/PseudonymScope.html",[0,0.231,9045,5.958]],["body/classes/PseudonymScope.html",[0,0.242,2,0.797,3,0.017,4,0.017,5,0.008,7,0.108,8,1.155,27,0.537,29,0.952,30,0.001,31,0.685,32,0.179,33,0.587,35,1.157,39,2.937,47,0.937,49,2.808,95,0.138,101,0.012,103,0.001,104,0.001,112,0.765,119,2.222,180,1.726,227,2.931,236,1.567,310,3.085,349,1.128,382,3.688,480,1.977,486,2.142,519,2.205,524,4.06,556,3.346,564,2.186,603,2.531,724,5.295,2288,6.481,2486,2.36,5504,5.397,6058,6.507,6059,6.507,6060,6.507,6065,6.507,6066,6.507,6067,4.889,6068,4.808,6069,4.889,6070,4.889,6079,4.808,6080,6.507,6081,4.889,6082,4.808,6083,4.889,6084,4.808,6085,7.375,8857,5.958,9000,5.073,9003,6.287,9045,8.428,9048,6.228,17049,7.119,17050,9.633,17051,8.906,17052,9.633,17053,9.633,17054,7.119,17055,8.906,17056,7.119,17057,9.633,17058,7.119,17059,7.119]],["title/interfaces/PseudonymSearchQuery.html",[105,0.735,9036,5.705]],["body/interfaces/PseudonymSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.174,33,0.659,39,3.559,47,0.996,101,0.016,103,0.001,104,0.001,105,1.069,107,2.377,112,0.945,808,7.058,8857,7.219,9003,7.617,9036,9.967,9355,8.666,17060,9.906]],["title/injectables/PseudonymService.html",[539,0.901,9732,4.677]],["body/injectables/PseudonymService.html",[0,0.137,3,0.009,4,0.009,5,0.005,7,0.061,8,0.762,11,5.328,13,4.626,27,0.506,29,0.961,30,0.001,31,0.692,32,0.169,33,0.592,34,1.651,35,1.462,36,2.862,37,5.328,39,3.086,42,4.626,47,0.953,49,1.595,83,1.953,95,0.141,96,1.111,97,1.752,99,0.674,101,0.007,103,0,104,0,177,1.164,226,0.578,236,1.814,239,1.459,262,2.996,310,1.752,349,1.275,376,1.761,377,1.835,379,0.795,437,1.549,490,3.161,528,4.093,529,2.522,539,0.842,541,0.968,556,1.602,570,2.481,593,2.355,603,2.584,604,1.643,608,2.372,662,3.827,817,3.056,928,3.5,931,5.679,1158,1.931,1559,3.921,1715,1.703,1839,1.992,2017,1.77,2018,1.98,2019,1.908,2425,2.188,2486,3.893,2565,5.9,3878,2.264,4126,2.648,4442,8.241,6969,5.408,7141,5.69,7250,8.21,7340,2.511,8619,8.119,8857,2.206,9003,7.009,9009,5.926,9014,9.837,9018,5.564,9021,5.88,9022,5.328,9028,5.564,9035,5.88,9036,7.467,9038,4.848,9732,4.368,9997,2.827,12666,5.88,12834,5.88,15410,5.88,17039,9.019,17061,4.043,17062,6.36,17063,6.36,17064,6.36,17065,6.36,17066,6.36,17067,6.36,17068,6.36,17069,4.043,17070,4.043,17071,6.36,17072,4.043,17073,6.36,17074,4.043,17075,4.043,17076,4.043,17077,4.043,17078,6.36,17079,4.043,17080,6.36,17081,4.043,17082,4.043,17083,4.043,17084,6.36,17085,4.043,17086,6.36,17087,4.043,17088,6.36,17089,4.043,17090,10.291,17091,4.043,17092,8.913,17093,4.043,17094,4.043,17095,6.36,17096,2.881,17097,4.043,17098,4.043,17099,4.043,17100,6.36,17101,6.36,17102,4.043,17103,4.043,17104,4.043,17105,8.913,17106,4.043,17107,4.043,17108,4.043,17109,4.043,17110,4.043,17111,4.043,17112,4.043]],["title/injectables/PseudonymUc.html",[539,0.901,17001,5.705]],["body/injectables/PseudonymUc.html",[0,0.263,3,0.018,4,0.018,5,0.009,7,0.117,8,1.222,26,2.564,27,0.418,29,0.794,30,0.001,31,0.571,32,0.139,33,0.489,35,0.931,36,2.169,39,2.085,47,0.854,95,0.164,99,1.293,101,0.013,103,0.001,104,0.001,177,2.086,226,1.108,236,1.261,239,2.777,262,2.496,349,0.8,379,1.275,437,1.626,529,2.193,539,1.349,541,1.855,560,3.191,593,3.776,603,2.288,608,2.79,654,2.305,1612,4.702,1695,6.956,1793,4.702,1897,7.612,1899,7.463,1901,4.34,1902,5.709,2469,3.517,2473,5.418,4481,5.234,4482,5.418,4483,4.6,9003,7.578,9022,8.54,9732,8.867,9804,6.071,9805,6.071,17001,8.54,17113,7.75,17114,7.75,17115,7.75,17116,10.195,17117,7.75,17118,11.393,17119,7.75,17120,7.75,17121,7.75,17122,7.75,17123,10.195,17124,7.75,17125,6.492]],["title/injectables/PseudonymsRepo.html",[539,0.901,17039,5.705]],["body/injectables/PseudonymsRepo.html",[0,0.184,3,0.013,4,0.013,5,0.006,7,0.082,8,0.953,13,5.782,26,2.889,27,0.501,29,0.952,30,0.001,31,0.685,32,0.167,33,0.587,34,1.354,35,1.432,36,2.794,39,3.411,42,5.782,49,2.138,95,0.131,96,1.489,97,2.35,99,0.904,101,0.009,103,0,104,0,154,2.613,155,1.809,177,0.992,226,0.775,236,2.062,262,2.923,345,1.726,349,1.263,376,2.361,377,2.461,379,0.678,437,1.64,448,4.728,539,1.052,541,1.298,556,1.366,593,2.944,608,2.389,724,7.71,1601,4.67,2249,5.969,2273,3.662,2297,4.132,2302,3.79,2316,4.541,2768,4.718,3279,3.79,3284,4.823,3345,4.381,4386,3.454,4400,4.541,4401,4.541,8857,6.918,9003,7.732,9009,5.285,9017,7.349,9018,6.954,9019,7.349,9020,7.349,9023,6.954,9024,7.349,9026,7.349,9028,6.954,9031,7.349,9033,7.349,9040,7.349,9042,7.349,9048,6.954,9049,9.584,9052,4.743,9053,5.012,9055,5.012,9057,4.743,9058,5.012,9059,6.954,9062,5.012,9063,5.012,9064,5.012,9065,5.012,9066,5.012,9067,5.012,17023,10.448,17028,8.684,17039,6.659,17126,5.421,17127,5.421,17128,5.421,17129,5.421,17130,5.421,17131,5.421,17132,5.421,17133,5.421,17134,5.421,17135,5.421,17136,5.421,17137,5.421,17138,5.421,17139,5.421,17140,5.421,17141,5.421]],["title/classes/PublicSystemListResponse.html",[0,0.231,17142,5.705]],["body/classes/PublicSystemListResponse.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.474,29,0.737,30,0.001,31,0.53,32,0.171,33,0.454,95,0.147,101,0.016,103,0.001,104,0.001,112,0.919,138,1.721,150,2.156,245,3.034,284,3.861,379,1.183,556,2.384,662,2.976,809,6.616,814,4.756,819,3.321,829,5.253,3072,5.944,5802,9.066,17142,9.695,17143,11.559,17144,11.573,17145,11.124,17146,10.7]],["title/classes/PublicSystemResponse.html",[0,0.231,17145,5.503]],["body/classes/PublicSystemResponse.html",[0,0.235,2,0.774,3,0.016,4,0.016,5,0.008,7,0.105,27,0.512,29,0.538,30,0.001,31,0.602,32,0.184,33,0.613,34,2.061,47,0.919,95,0.12,101,0.011,103,0.001,104,0.001,112,0.75,138,2.201,141,4.51,142,5.223,143,2.973,144,4.399,145,3.707,150,1.575,153,2.75,245,3.275,379,0.864,404,2.82,816,5.552,1909,5.332,2504,3.087,2523,5.585,3072,6.339,5500,6.591,5767,5.48,5787,4.403,9718,6.728,10377,5.335,10774,7.022,11441,6.945,11840,5.14,12341,8.044,12433,5.268,12435,5.268,13791,4.925,15784,10.136,17143,11.82,17145,9.777,17147,4.925,17148,8.729,17149,9.441,17150,6.911,17151,6.911,17152,6.911,17153,6.911,17154,6.39,17155,5.79,17156,5.585,17157,5.79]],["title/modules/RabbitMQWrapperModule.html",[201,1.804,10659,4.853]],["body/modules/RabbitMQWrapperModule.html",[0,0.345,3,0.018,4,0.018,5,0.009,30,0.001,31,0.677,32,0.165,47,0.803,95,0.153,101,0.019,103,0.001,104,0.001,142,3.02,177,1.413,201,3.201,203,3.657,209,3.824,225,4.485,226,1.104,236,1.256,262,1.692,345,2.457,437,0.998,463,4.178,608,1.779,685,3.267,760,5.644,928,4.248,965,5.302,1003,5.397,1117,4.795,1143,8.458,1156,5.397,1157,4.986,1276,2.413,2017,3.379,2018,3.78,2019,3.644,2020,4.918,2333,4.535,2355,4.738,2363,4.918,2369,5.302,3548,5.742,4545,5.615,4693,5.302,5105,6.661,5948,4.489,6220,5.133,6506,8.781,6828,5.615,10585,7.564,10659,7.246,10660,5.397,10683,6.754,13057,6.238,13392,10.574,15006,9.948,16707,8.519,17158,7.137,17159,10.513,17160,11.612,17161,7.137,17162,7.137,17163,6.754,17164,7.137,17165,7.137,17166,6.467,17167,7.137,17168,7.137,17169,7.137,17170,7.137,17171,7.137,17172,6.754,17173,7.137,17174,6.467,17175,7.137,17176,6.754,17177,6.754,17178,7.137,17179,7.137,17180,7.137]],["title/modules/RabbitMQWrapperTestModule.html",[201,1.804,10660,4.761]],["body/modules/RabbitMQWrapperTestModule.html",[0,0.342,3,0.018,4,0.018,5,0.009,8,0.911,27,0.311,30,0.001,31,0.673,32,0.164,35,0.913,47,0.797,95,0.152,101,0.019,103,0.001,104,0.001,142,2.974,177,1.392,201,3.182,203,3.621,209,3.785,225,4.451,226,1.087,236,1.237,262,2.206,345,2.42,437,0.983,463,4.115,608,1.753,685,3.217,760,5.588,928,4.184,965,5.222,1003,5.316,1117,4.723,1143,8.395,1156,5.316,1157,4.91,1276,2.376,2017,3.328,2018,3.723,2019,3.589,2020,4.844,2333,4.466,2355,4.666,2363,4.844,2369,5.222,3548,5.655,4545,5.53,4693,5.222,5105,6.594,5948,4.421,6220,5.055,6506,8.737,6828,5.53,10585,7.488,10659,5.418,10660,7.038,10683,6.652,13057,6.144,13392,10.51,15006,10.933,16707,8.434,17158,7.03,17159,10.435,17160,11.554,17161,7.03,17162,7.03,17163,6.652,17164,7.03,17165,7.03,17166,6.369,17167,7.03,17168,7.03,17169,7.03,17170,7.03,17171,7.03,17172,6.652,17173,7.03,17174,6.369,17175,7.03,17176,6.652,17177,6.652,17178,7.03,17179,7.03,17180,7.03,17181,7.603]],["title/classes/ReadableStreamWithFileTypeImp.html",[0,0.231,17182,6.296]],["body/classes/ReadableStreamWithFileTypeImp.html",[0,0.287,2,0.946,3,0.02,4,0.02,5,0.015,7,0.128,27,0.442,29,0.658,30,0.001,31,0.473,32,0.171,33,0.57,95,0.151,101,0.014,103,0.001,104,0.001,112,0.856,180,1.932,181,2.886,182,2.749,349,0.873,379,1.057,381,2.838,437,1.395,447,4.65,521,3.346,526,5.015,992,4.036,993,3.989,994,3.989,995,4.218,996,4.611,1147,8.447,1149,8.194,1276,3.37,1932,5.907,8868,7.812,8911,7.812,10110,6.619,13065,7.812,17182,9.969,17183,11.875,17184,8.449,17185,11.875,17186,12.923,17187,12.509,17188,10.782,17189,12.509,17190,8.449,17191,8.449,17192,8.449,17193,8.449,17194,8.449]],["title/classes/RecursiveCopyVisitor.html",[0,0.231,3263,5.958]],["body/classes/RecursiveCopyVisitor.html",[0,0.114,2,0.374,3,0.008,4,0.008,5,0.007,7,0.051,8,0.655,26,0.708,27,0.502,29,0.93,30,0.001,31,0.669,32,0.178,33,0.573,34,1.772,35,1.414,36,2.702,49,1.319,83,3.761,95,0.12,99,0.558,101,0.006,103,0,104,0,112,0.434,131,1.253,177,0.612,236,2.216,262,2.927,345,1.064,347,4.055,349,1.112,376,4.531,377,4.722,379,0.418,437,1.566,480,1.516,486,1.643,521,1.324,524,1.907,529,0.946,556,1.376,608,2.179,654,0.995,844,4.848,989,1.856,1150,1.33,1194,1.15,1203,2.813,1276,1.707,1390,2.62,1559,3.046,1863,5.229,2278,2.006,2418,8.098,2450,5.673,2463,4.695,2466,2.383,2585,4.436,2591,6.261,2630,4.621,2732,7.145,2739,3.987,2792,4.978,2799,5.77,2802,5.406,2805,5.77,2808,5.344,2811,5.54,2818,2.432,2820,1.617,2833,4.575,2834,4.575,2835,4.575,2836,4.575,2837,4.575,2838,4.575,2839,4.575,2840,4.575,2841,4.575,2963,3.527,2979,2.62,2980,2.487,2981,2.029,2982,1.873,2995,8.15,3003,2.801,3019,2.383,3083,9.436,3213,2.131,3216,1.985,3218,1.985,3221,1.964,3224,1.728,3227,1.716,3232,1.873,3263,4.778,3266,6.261,3267,2.801,3268,8.241,3269,4.778,4126,6.814,5710,2.801,6255,1.825,6284,1.648,6388,4.778,6398,3.092,6399,8.432,6400,2.702,6401,2.926,6434,2.801,8438,2.223,17195,12.379,17196,3.344,17197,6.923,17198,6.923,17199,5.462,17200,5.462,17201,5.462,17202,3.344,17203,5.462,17204,3.344,17205,5.462,17206,3.344,17207,5.462,17208,3.344,17209,5.462,17210,3.344,17211,5.462,17212,3.344,17213,5.462,17214,3.344,17215,5.462,17216,3.344,17217,5.462,17218,3.344,17219,5.462,17220,3.344,17221,5.462,17222,3.344,17223,5.462,17224,3.344,17225,5.462,17226,3.344,17227,5.462,17228,3.344,17229,5.462,17230,3.344,17231,3.344,17232,3.344,17233,3.344,17234,7.993,17235,7.993,17236,3.344,17237,6.923,17238,10.763,17239,3.344,17240,7.993,17241,10.403,17242,3.344,17243,3.344,17244,3.344,17245,3.344,17246,3.344,17247,3.344,17248,3.344,17249,3.092,17250,3.344,17251,3.092,17252,3.344,17253,3.344,17254,3.344,17255,3.344,17256,3.344,17257,3.344,17258,3.344,17259,3.344,17260,3.344,17261,3.344,17262,3.344,17263,3.344,17264,3.344,17265,3.344,17266,3.344,17267,3.344,17268,3.344,17269,3.344,17270,3.092,17271,5.462,17272,5.462,17273,5.462,17274,3.344,17275,3.344,17276,5.05,17277,5.462,17278,3.344,17279,3.344]],["title/injectables/RecursiveDeleteVisitor.html",[539,0.901,3282,5.705]],["body/injectables/RecursiveDeleteVisitor.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.078,8,0.914,27,0.526,29,1.001,30,0.001,31,0.72,32,0.176,33,0.617,35,1.525,36,2.893,95,0.148,96,1.408,97,2.221,99,0.855,101,0.008,103,0,104,0,177,1.667,226,0.733,262,3.069,379,0.954,437,0.663,519,2.362,539,1.009,541,1.227,564,2.341,603,1.829,608,2.994,1163,3.223,1276,1.602,1601,3.227,1837,3.913,1839,2.525,1863,6.4,2249,5.808,2297,3.906,2450,5.558,2463,5.925,2630,5.656,2739,4.391,2744,3.223,2792,6.093,2799,7.063,2802,6.618,2805,7.063,2808,6.542,2811,6.781,2818,3.727,2821,2.254,2824,6.388,2825,6.388,2826,6.388,2827,6.388,2828,6.388,2829,6.388,2830,6.388,2832,6.388,2833,6.388,2834,6.388,2835,6.388,2836,6.388,2837,6.388,2838,6.388,2839,6.388,2840,6.388,2841,6.388,3109,2.688,3279,3.583,3282,6.388,3284,4.626,3538,2.525,3539,2.091,3540,4.924,5707,7.05,5710,4.293,5754,6.671,5883,7.56,6140,3.145,6152,4.014,6365,8.341,17270,4.738,17280,12.009,17281,5.124,17282,7.625,17283,7.625,17284,5.124,17285,7.625,17286,5.124,17287,5.124,17288,7.625,17289,5.124,17290,5.124,17291,5.124,17292,5.124,17293,5.124,17294,5.124,17295,5.124,17296,5.124,17297,5.124,17298,5.124,17299,5.124,17300,5.124,17301,5.124,17302,5.124,17303,5.124,17304,5.124,17305,5.124,17306,5.124,17307,5.124,17308,5.124,17309,5.124,17310,5.124,17311,5.124,17312,5.124,17313,5.124,17314,5.124,17315,5.124,17316,5.124,17317,5.124,17318,5.124,17319,5.124,17320,5.124]],["title/classes/RecursiveSaveVisitor.html",[0,0.231,3310,5.958]],["body/classes/RecursiveSaveVisitor.html",[0,0.12,2,0.396,3,0.008,4,0.008,5,0.004,7,0.054,8,0.686,18,2.896,26,0.75,27,0.508,29,0.956,30,0.001,31,0.687,32,0.171,33,0.589,34,1.871,35,1.456,36,1.218,39,0.953,55,0.762,59,1.1,95,0.13,96,1.572,97,1.535,99,0.591,101,0.006,103,0,104,0,112,0.454,131,1.326,173,1.047,177,1.047,236,1.912,262,1.578,345,1.127,379,0.443,437,1.681,480,0.983,486,1.065,519,4.07,529,1.002,556,1.441,564,1.087,603,2.434,608,0.816,708,1.471,1194,1.217,1203,2.64,1276,1.788,1601,1.498,1663,1.498,1665,2.32,1837,1.817,1863,5.762,1880,1.464,1882,1.478,2249,4.761,2261,2.32,2363,2.256,2450,6.268,2463,5.702,2481,3.098,2585,4.589,2630,5.092,2735,4.229,2742,6.405,2744,6.425,2768,3.396,2773,3.098,2777,3.098,2782,5.29,2783,5.29,2784,5.29,2785,5.29,2786,5.29,2787,5.29,2788,5.29,2789,5.29,2790,5.29,2791,5.006,2792,5.485,2794,5.006,2796,5.006,2798,5.006,2799,5.945,2801,5.006,2802,5.958,2804,5.006,2805,5.945,2807,5.006,2808,5.89,2810,5.006,2811,6.105,2813,5.006,2818,2.576,2820,1.712,3109,7.08,3133,4.483,3136,4.624,3139,4.362,3142,5.64,3145,4.483,3148,4.483,3151,4.483,3154,4.483,3157,4.483,3159,3.274,3201,3.274,3213,2.256,3216,2.102,3218,2.102,3221,2.08,3224,1.83,3227,1.817,3229,2.148,3279,2.476,3280,8.255,3284,3.472,3303,5.006,3304,6.195,3306,2.862,3308,3.274,3310,5.006,3540,2.287,3592,3.274,4088,3.098,4089,3.098,4090,2.967,4125,3.274,4993,3.274,4994,3.098,5105,2.32,5710,2.967,5719,3.274,5722,3.274,5725,3.274,5727,3.274,5740,3.274,5742,3.274,5745,3.274,5748,3.274,5754,5.006,5756,3.274,5838,2.576,5852,2.287,9057,3.098,17280,11.585,17321,3.541,17322,7.2,17323,5.722,17324,5.722,17325,5.722,17326,5.722,17327,5.722,17328,5.722,17329,3.541,17330,5.722,17331,11.278,17332,3.541,17333,3.541,17334,5.722,17335,3.541,17336,3.541,17337,5.722,17338,3.541,17339,3.541,17340,3.541,17341,3.541,17342,3.541,17343,3.541,17344,3.541,17345,3.541,17346,3.541,17347,3.541,17348,11.533,17349,3.541,17350,3.541,17351,5.722,17352,5.722,17353,5.722,17354,3.541,17355,3.541,17356,3.541,17357,10.982,17358,10.982,17359,3.541,17360,10.216,17361,3.541,17362,3.541,17363,3.541,17364,3.541,17365,3.541,17366,3.541,17367,7.2,17368,3.541,17369,3.541,17370,3.541,17371,3.541,17372,3.541,17373,3.541,17374,3.274,17375,3.274,17376,3.541,17377,3.541,17378,3.541,17379,3.541,17380,3.541,17381,3.541,17382,3.541,17383,3.541,17384,3.541,17385,3.541]],["title/classes/RedirectResponse.html",[0,0.231,15955,5.335]],["body/classes/RedirectResponse.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,27,0.471,29,0.73,30,0.001,31,0.525,32,0.157,33,0.45,47,0.812,95,0.119,101,0.015,103,0.001,104,0.001,112,0.914,135,6.911,138,1.705,150,2.136,153,2.131,239,2.64,245,3.017,379,1.172,816,4.302,1194,3.956,1731,7.331,2057,7.431,3229,6.981,6900,7.147,15955,10.439,16913,11.511,17386,9.375,17387,11.507,17388,9.375,17389,9.375,17390,11.507,17391,9.64,17392,9.375,17393,9.375,17394,9.375]],["title/modules/RedisModule.html",[201,1.804,17395,5.503]],["body/modules/RedisModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,30,0.001,47,0.767,95,0.164,101,0.014,103,0.001,104,0.001,201,3.164,203,3.078,204,3.307,205,3.403,206,3.389,207,3.375,208,3.981,209,4.087,214,6.152,218,4.323,219,3.334,220,3.255,225,4.287,226,1.223,349,1.123,437,1.406,556,2.156,636,4.976,637,6.098,639,4.016,986,2.893,1194,2.942,1274,2.707,2017,3.746,2018,4.19,2019,4.039,2250,3.507,2251,5.393,3539,4.436,3878,4.792,3881,7.912,3892,6.704,3893,9.106,3897,10.049,3898,7.912,3900,7.486,3901,7.912,3902,7.486,3903,7.486,3904,7.912,8008,9.509,17395,10.713,17396,8.557,17397,8.557,17398,8.557,17399,10.45,17400,8.557,17401,8.557]],["title/injectables/ReferenceLoader.html",[539,0.901,1743,5.503]],["body/injectables/ReferenceLoader.html",[0,0.188,3,0.013,4,0.013,5,0.007,7,0.084,8,0.969,26,2.22,27,0.429,29,0.743,30,0.001,31,0.534,32,0.164,33,0.458,35,0.971,36,1.72,49,3.762,95,0.152,99,0.925,101,0.009,103,0,104,0,105,0.599,112,0.642,119,1.129,133,3.896,143,1.8,177,2.364,217,7.203,226,0.793,227,2.284,236,1.552,262,2.09,349,0.835,379,1.011,437,1.046,480,1.54,486,1.669,529,1.57,539,1.07,541,1.328,564,1.704,603,2.722,608,1.864,1362,7.789,1597,4.701,1683,4.701,1684,3.446,1740,9.639,1741,7.465,1742,8.059,1743,6.533,1744,9.151,1745,9.379,1746,8.602,1747,8.45,1768,4.036,1784,8.555,2425,7.247,2456,7.652,2585,5.817,3193,3.535,3540,3.583,4689,5.376,5390,7.991,5793,9.942,6140,3.405,12134,9.169,12135,5.13,12136,7.475,12137,7.708,12138,8.819,12139,5.13,12140,5.13,12141,5.13,12142,5.13,12143,5.13,12144,5.13,12145,5.13,12146,5.13,12147,5.13,12148,5.13,12149,5.13,12150,5.13,12151,5.13,12152,5.13,12153,5.13,12154,5.13,12155,5.13,12156,5.13,12157,5.13,12158,5.13,12159,5.13,12160,5.13,12161,7.475,12162,5.13,12163,5.13,12164,8.819,12165,7.475,12166,5.13,12167,5.13,12168,5.13,12169,7.475,17402,8.085,17403,4.854,17404,8.085,17405,5.548,17406,5.548,17407,5.548]],["title/interfaces/RejectRequestBody.html",[105,0.735,15940,5.503]],["body/interfaces/RejectRequestBody.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.182,33,0.675,47,1.002,55,2.682,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,108,6.57,111,7.593,112,0.915,986,4.393,1720,10.179,5491,10.885,5492,10.885,5493,10.179,15940,9.312,17408,9.397]],["title/classes/RenameBodyParams.html",[0,0.231,2895,5.503]],["body/classes/RenameBodyParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,47,0.835,95,0.161,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,3.837,143,2.634,144,3.897,145,2.723,148,3.113,150,2.235,245,3.101,247,4.294,248,4.936,1203,4.055,2895,9.558,7118,9.016,17409,9.809,17410,9.809,17411,9.809,17412,9.809]],["title/classes/RenameFileParams.html",[0,0.231,6308,4.677]],["body/classes/RenameFileParams.html",[0,0.457,2,0.735,3,0.015,4,0.021,5,0.011,7,0.099,26,2.604,27,0.269,30,0.001,32,0.162,39,1.765,47,0.958,95,0.16,99,1.095,101,0.022,103,0.001,104,0.001,105,0.708,112,0.723,119,1.854,138,1.193,143,1.461,147,4.891,148,2.082,149,4.3,150,1.495,151,6.057,153,1.492,154,1.402,245,3.648,247,2.872,248,5.13,249,4.573,348,3.276,803,5.016,804,6.783,834,3.281,847,3.134,984,2.83,986,2.218,1075,3.854,1135,5.804,1136,4.298,1137,4.298,1194,2.256,1276,2.051,2677,4.724,2860,5.157,3570,3.213,4206,2.226,5904,6.651,6236,4.227,6249,5.967,6255,6.169,6284,3.233,6287,4.507,6288,4.587,6289,4.587,6292,7.897,6295,4.587,6296,8.173,6297,7.904,6298,7.904,6299,4.587,6300,4.507,6301,8.023,6302,4.507,6303,4.587,6304,4.432,6305,6.153,6306,4.363,6307,4.432,6308,6.257,6309,4.432,6310,4.432,6311,4.181,6312,4.587,6313,4.587,6314,4.587,6315,4.181,6316,4.181,6317,4.298,6318,4.363,6319,4.587,17413,6.562,17414,6.562]],["title/classes/RequestInfo.html",[0,0.231,17415,5.958]],["body/classes/RequestInfo.html",[0,0.313,2,0.747,3,0.016,4,0.016,5,0.008,7,0.101,8,1.105,27,0.506,29,0.717,30,0.001,31,0.591,32,0.169,33,0.442,35,0.801,47,0.911,55,1.983,95,0.134,101,0.017,103,0.001,104,0.001,112,0.732,120,2.934,133,2.333,141,5.902,236,1.717,349,0.952,360,5.16,379,0.834,437,1.638,480,1.852,486,2.007,556,1.68,591,6.752,593,2.47,603,2.12,819,4.335,987,4.506,1007,5.226,1150,2.653,1220,3.735,1503,4.25,1572,4.852,1579,6.62,2133,5.965,2505,6.566,3539,3.76,3928,5.085,5493,7.218,5510,4.961,5520,5.085,6681,7.13,6683,4.002,10337,6.853,16864,5.836,17415,8.061,17416,6.167,17417,9.76,17418,9.76,17419,9.214,17420,8.519,17421,6.67,17422,6.67,17423,6.67,17424,6.67,17425,6.67,17426,8.519,17427,6.67,17428,11.047,17429,5.836,17430,6.167,17431,8.519,17432,5.588,17433,5.836,17434,8.519,17435,8.519,17436,6.167,17437,8.519,17438,6.167,17439,5.836,17440,6.167,17441,6.167,17442,8.519,17443,8.519,17444,8.519,17445,8.519,17446,6.167,17447,6.167,17448,6.167,17449,6.167,17450,6.167,17451,6.167,17452,6.167,17453,6.167,17454,6.167,17455,6.167,17456,6.167,17457,6.167,17458,6.167,17459,6.167,17460,6.167,17461,6.167,17462,6.167,17463,6.167]],["title/injectables/RequestLoggingInterceptor.html",[539,0.901,17464,6.296]],["body/injectables/RequestLoggingInterceptor.html",[0,0.268,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.423,29,0.804,30,0.001,31,0.578,32,0.141,33,0.495,35,0.949,39,2.126,95,0.165,101,0.013,103,0.001,104,0.001,131,2.96,141,5.494,226,1.13,270,5.056,271,3.091,294,3.972,310,3.425,345,2.515,349,1.067,379,0.988,437,1.488,521,4.555,539,1.367,541,1.892,556,1.99,591,4.465,961,5.176,962,6.19,963,6.023,986,2.672,1150,3.143,1175,6.865,1194,2.716,1274,2.5,1276,2.47,2182,8.767,2250,4.232,2251,5.506,2940,5.337,3717,4.642,6504,5.877,6683,4.741,8223,7.306,8225,9.033,8227,9.033,8228,10.67,8229,10.67,8231,9.033,8232,9.546,10337,5.877,12099,9.033,17433,6.913,17464,9.546,17465,11.502,17466,7.902,17467,7.902,17468,9.546,17469,7.902,17470,7.902,17471,7.902,17472,7.902,17473,7.902,17474,7.902,17475,7.902,17476,7.306,17477,10.326,17478,7.306,17479,7.902]],["title/classes/ResolvedGroupDto.html",[0,0.231,11051,5.503]],["body/classes/ResolvedGroupDto.html",[0,0.28,2,0.923,3,0.019,4,0.019,5,0.01,7,0.125,27,0.547,29,0.642,30,0.001,31,0.694,32,0.188,33,0.615,34,1.999,47,0.927,95,0.149,99,1.375,101,0.014,103,0.001,104,0.001,112,0.843,239,1.891,379,1.031,404,3.363,970,5.131,1054,6.282,1715,3.471,1982,3.278,2504,3.682,2968,6.904,3060,5.112,8500,7.62,8506,8.946,8513,6.457,8537,8.867,10998,8.946,11051,10.363,11137,6.904,11183,9.283,11195,7.21,11196,7.21,11197,7.62,11198,7.21,11199,7.62,11200,7.62,11290,9.832,17480,12.508,17481,10.612,17482,8.242,17483,8.242,17484,8.242,17485,8.242,17486,8.242]],["title/classes/ResolvedGroupUser.html",[0,0.231,11290,5.705]],["body/classes/ResolvedGroupUser.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,27,0.51,29,0.73,30,0.001,31,0.525,32,0.17,33,0.45,95,0.146,99,1.564,101,0.015,103,0.001,104,0.001,112,0.914,181,3.08,239,2.857,276,5.293,379,1.172,381,3.149,970,6.278,2068,6.819,4572,8.872,4583,7.146,7141,6.581,7644,6.554,11290,11.163,11316,8.667,11326,6.819,11327,7.146,17480,12.004,17487,11.507,17488,9.375]],["title/classes/ResolvedUserMapper.html",[0,0.231,17489,5.958]],["body/classes/ResolvedUserMapper.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.351,29,0.668,30,0.001,31,0.61,32,0.117,33,0.411,34,1.461,35,1.03,47,0.844,95,0.138,99,1.43,100,3.656,101,0.014,103,0.001,104,0.001,236,1.395,239,2.978,276,5.347,349,1.124,413,3.682,437,1.109,480,2.381,486,2.58,528,4.465,778,6.041,785,4.281,1660,6.322,3078,5.97,3112,5.702,3113,5.538,4603,6.111,6477,7.184,7131,7.502,7150,6.93,12892,7.928,12895,7.928,15383,7.928,16459,7.928,17489,9.522,17490,10.884,17491,9.522,17492,8.576,17493,10.536,17494,8.576,17495,8.576,17496,8.576,17497,8.576,17498,8.576,17499,8.576,17500,8.576]],["title/classes/ResolvedUserResponse.html",[0,0.231,17493,5.705]],["body/classes/ResolvedUserResponse.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,27,0.552,30,0.001,31,0.451,32,0.186,34,2.093,47,0.982,83,3.773,95,0.102,101,0.017,103,0.001,104,0.001,112,0.831,138,2.449,150,1.836,245,3.72,276,4.937,376,5.058,377,5.271,651,5.547,652,5.547,1660,5.836,3078,5.798,4206,3.939,11329,6.513,17493,8.762,17501,13.612,17502,8.06,17503,8.06,17504,8.06,17505,8.06,17506,8.06,17507,8.06,17508,8.06,17509,8.06]],["title/classes/ResponseInfo.html",[0,0.231,17439,5.958]],["body/classes/ResponseInfo.html",[0,0.329,2,0.804,3,0.017,4,0.017,5,0.009,7,0.109,27,0.397,29,0.559,30,0.001,31,0.543,32,0.132,33,0.345,47,0.829,55,2.36,95,0.139,101,0.018,103,0.001,104,0.001,112,0.77,133,2.512,141,5.609,236,1.784,349,1.001,360,5.427,379,0.898,437,1.67,556,1.809,591,6.198,593,2.66,603,1.443,819,4.608,987,7.409,1007,5.627,1150,2.857,1220,4.022,1503,4.576,1572,5.224,1579,6.828,2133,4.059,2505,6.906,3539,3.955,3928,5.475,5493,7.592,5510,5.342,5520,5.475,6681,7.931,6683,4.309,10337,5.342,16864,6.284,17415,6.284,17416,6.641,17417,6.641,17418,6.641,17420,6.641,17426,6.641,17428,10.856,17429,6.284,17430,6.641,17431,8.96,17432,6.017,17433,6.284,17434,8.96,17435,8.96,17436,6.641,17437,8.96,17438,6.641,17439,8.478,17440,8.96,17441,6.641,17442,8.96,17443,8.96,17444,8.96,17445,8.96,17446,6.641,17447,6.641,17448,6.641,17449,6.641,17450,6.641,17451,6.641,17452,6.641,17453,6.641,17454,6.641,17455,6.641,17456,6.641,17457,6.641,17458,6.641,17459,6.641,17460,6.641,17461,6.641,17462,6.641,17463,6.641,17510,9.691]],["title/injectables/RestartUserLoginMigrationUc.html",[539,0.901,17511,5.705]],["body/injectables/RestartUserLoginMigrationUc.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.1,8,1.098,27,0.43,29,0.818,30,0.001,31,0.589,32,0.144,33,0.504,35,1.101,36,2.414,39,2.465,47,0.959,95,0.163,99,1.104,101,0.011,103,0.001,104,0.001,128,5.188,131,3.432,177,2.077,236,1.49,239,2.899,262,2.7,349,0.683,379,1.146,437,1.359,529,2.592,539,1.213,541,1.584,560,2.724,593,2.45,603,2.279,608,2.746,643,2.94,654,3.126,986,2.237,1271,3.036,1274,2.093,1606,4.958,1612,4.014,1695,6.678,1793,4.014,1799,6.528,1897,7.135,1899,6.885,1901,3.705,1902,5.13,2250,5.179,2458,6.814,2469,3.003,2473,4.625,2482,4.921,4206,4.436,4507,5.068,4509,5.346,4512,5.346,4513,8.782,4520,5.917,4522,7.047,4523,4.921,4524,7.177,4525,5.043,4526,5.183,4527,5.542,4529,7.177,4531,5.542,4532,4.921,4539,5.043,4540,5.542,8888,5.183,14123,5.346,17511,7.675,17512,11.345,17513,8.015,17514,6.616,17515,6.616,17516,9.162,17517,6.616,17518,5.542,17519,6.616,17520,6.616,17521,6.116,17522,5.788]],["title/classes/RevokeConsentParams.html",[0,0.231,16000,5.958]],["body/classes/RevokeConsentParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,34,1.997,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,135,6.508,138,1.758,142,4.586,143,2.61,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,248,4.893,257,7.191,3539,5.485,5496,7.68,16000,10.257,17523,11.725,17524,9.668,17525,9.668]],["title/classes/RichText.html",[0,0.231,17526,5.503]],["body/classes/RichText.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.49,29,0.668,30,0.001,31,0.48,32,0.188,33,0.411,47,0.768,95,0.152,101,0.014,103,0.001,104,0.001,112,0.864,138,1.98,150,1.954,153,2.474,245,3.135,348,5.434,379,1.361,769,4.34,816,4.994,834,3.412,1880,5.201,2158,6.82,2193,5.366,2504,3.831,2819,9.355,2820,6.082,3224,6.709,3411,5.263,5709,7.928,12456,7.184,17526,10.49,17527,12.577,17528,8.576,17529,8.576,17530,8.576,17531,8.576,17532,8.576,17533,8.576,17534,8.576]],["title/classes/RichTextContentBody.html",[0,0.231,5714,4.528]],["body/classes/RichTextContentBody.html",[0,0.453,2,0.635,3,0.013,4,0.013,5,0.007,7,0.086,9,2.678,27,0.337,30,0.001,31,0.63,32,0.187,47,0.89,83,1.742,95,0.143,99,0.946,101,0.022,103,0,104,0,112,0.652,138,1.495,143,1.263,148,1.8,149,3.675,150,1.293,153,2.196,172,1.811,180,2.014,245,3.625,248,5.044,249,4.741,284,1.752,305,3.267,480,3.121,802,5.235,803,3.353,834,1.779,847,2.71,1194,1.95,1203,1.811,1579,3.299,1880,4.38,2193,4.547,2439,2.778,2510,4.043,2820,4.671,2821,2.496,2860,2.796,3216,3.368,3218,3.368,3221,3.333,3224,6.057,3227,2.911,3232,3.177,3705,3.524,3726,3.524,3727,6.82,4101,5.598,5621,6.155,5623,6.239,5625,6.155,5627,6.239,5629,6.239,5674,3.716,5711,6.423,5712,6.423,5713,6.423,5714,7.042,5715,6.423,5903,3.568,5904,6.769,7046,3.772,7106,3.615,8238,8.165,8239,6.635,8240,3.897,8243,5.382,8244,6.423,8245,6.423,8246,3.897,8247,6.423,8248,3.482,8249,3.832,8250,6.423,8251,6.423,8252,3.772,8253,3.772,8254,3.772,8255,3.772,8256,3.897,8257,3.897,8258,3.897,8259,3.897,8260,3.897,17535,5.673,17536,5.673,17537,5.673]],["title/classes/RichTextElement.html",[0,0.231,2808,4.132]],["body/classes/RichTextElement.html",[0,0.211,2,0.696,3,0.015,4,0.015,5,0.007,7,0.094,8,1.052,27,0.546,29,0.967,30,0.001,31,0.696,32,0.176,33,0.596,35,1.549,36,1.867,47,0.822,55,1.888,59,1.932,95,0.129,101,0.017,103,0,104,0,105,0.671,112,0.697,119,2.069,137,5.517,145,1.726,180,1.822,262,2.227,349,1.14,381,2.946,382,3.826,448,3.596,474,2.656,479,3.286,480,3.066,517,3.363,519,3.743,604,2.526,608,1.433,662,2.758,686,4.141,1150,2.473,1600,2.338,1601,3.712,1604,6.565,1676,4.003,1882,2.594,2439,3.044,2450,5.738,2724,7.823,2727,6.251,2728,6.251,2729,6.251,2730,7.341,2731,6.251,2733,4.134,2734,5.384,2735,6.486,2737,6.133,2738,5.384,2739,6.358,2741,4.346,2742,4.636,2744,6.393,2745,4.346,2749,4.346,2751,4.134,2778,5.322,2808,6.699,2820,6.235,3224,6.755,3963,5.748,3964,4.522,3965,4.522,3966,4.522,3975,3.91,4753,5.439,8715,4.43,17538,10.765,17539,6.217,17540,6.217,17541,5.748,17542,6.217,17543,5.748,17544,6.217,17545,6.217,17546,6.217,17547,6.217,17548,8.11,17549,5.748,17550,8.11,17551,5.748,17552,5.748,17553,5.748,17554,5.439,17555,5.748]],["title/classes/RichTextElementContent.html",[0,0.231,17556,5.705]],["body/classes/RichTextElementContent.html",[0,0.358,2,0.915,3,0.019,4,0.019,5,0.01,7,0.124,27,0.479,29,0.637,30,0.001,31,0.458,32,0.179,33,0.392,34,1.992,47,0.825,95,0.148,99,1.364,101,0.017,103,0.001,104,0.001,112,0.838,138,1.92,150,1.863,245,3.578,253,4.003,379,1.462,404,3.336,769,4.137,834,2.563,2193,4.729,2504,3.652,2820,6.599,2856,4.354,2857,4.354,2860,4.028,3224,6.981,3399,5.715,3411,5.017,3654,6.939,3658,6.138,3662,5.435,3664,5.435,3710,7.522,4101,6.179,5625,5.208,8731,6.606,9933,7.152,9934,7.558,17556,10.974,17557,11.423,17558,6.848,17559,6.848]],["title/classes/RichTextElementContentBody.html",[0,0.231,8247,4.528]],["body/classes/RichTextElementContentBody.html",[0,0.453,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,802,5.219,803,3.343,814,2.84,834,1.771,847,2.699,1194,1.942,1203,1.804,1579,3.285,1880,3.986,2193,4.884,2439,2.766,2820,2.732,2821,2.485,2860,2.784,3216,3.353,3218,3.353,3221,3.319,3224,4.981,3227,2.899,3232,3.164,3705,3.509,3726,3.509,3727,6.808,4101,5.587,5621,6.14,5623,6.224,5625,6.734,5627,6.224,5629,6.224,5674,3.701,5711,6.408,5712,6.408,5713,6.408,5714,7.028,5715,6.408,5903,3.553,5904,6.76,7046,3.756,7106,3.599,8238,8.512,8239,5.626,8240,3.88,8243,5.366,8244,6.408,8245,6.408,8246,3.88,8247,7.028,8248,3.467,8249,3.816,8250,6.408,8251,6.408,8252,3.756,8253,3.756,8254,3.756,8255,3.756,8256,3.88,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8736,4.426,17560,5.65,17561,5.65]],["title/entities/RichTextElementNode.html",[154,1.456,3151,5.335]],["body/entities/RichTextElementNode.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,27,0.441,30,0.001,32,0.147,47,0.837,95,0.164,96,2.316,101,0.018,103,0.001,104,0.001,105,0.91,112,0.855,138,1.959,154,2.301,155,2.814,172,4.123,173,2.494,180,1.93,181,2.257,349,0.871,403,4.68,437,1.091,1600,3.17,1601,4.556,1880,4.906,2439,4.128,2450,5.113,2503,4.765,2504,3.767,2820,6.491,3109,5.648,3120,6.461,3151,8.436,3187,5.175,3210,9.42,3224,7.025,3355,5.695,3558,6.609,3579,5.237,4064,5.372,4066,5.372,8741,7.376,17558,7.063,17559,7.063,17562,10.968,17563,8.432,17564,9.42,17565,7.796,17566,7.796,17567,7.796]],["title/interfaces/RichTextElementNodeProps.html",[105,0.735,17564,5.958]],["body/interfaces/RichTextElementNodeProps.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.149,47,0.889,95,0.165,96,2.366,101,0.018,103,0.001,104,0.001,105,0.929,107,2.067,112,0.867,154,2.333,172,3.825,173,2.547,180,2.147,181,2.305,349,0.89,403,4.78,437,1.114,1600,3.238,1601,4.618,1880,3.562,2439,4.217,2450,5.182,2503,4.867,2504,3.847,2820,6.421,3109,5.725,3120,6.548,3151,6.747,3187,5.286,3210,9.548,3224,7.175,3355,5.817,3558,7.353,3579,5.349,4064,5.487,4066,5.487,17558,7.215,17559,7.215,17562,7.962,17564,10.482,17565,7.962,17566,7.962,17567,7.962]],["title/interfaces/RichTextElementProps.html",[105,0.735,17554,5.958]],["body/interfaces/RichTextElementProps.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.161,36,1.779,47,0.909,95,0.15,101,0.019,103,0.001,104,0.001,105,0.902,107,2.006,112,0.85,119,1.702,145,2.322,180,2.118,262,1.832,349,1.287,474,3.572,480,2.974,517,4.106,519,2.59,604,3.397,608,1.927,1150,3.325,1600,3.144,1676,4.888,1882,3.489,2439,4.094,2724,6.498,2730,5.56,2734,5.132,2735,6.291,2738,5.132,2739,6.167,2778,7.169,2808,7.169,2820,6.372,3224,7.188,3975,5.259,8715,5.958,17538,7.731,17548,9.902,17549,7.731,17550,9.902,17551,7.731,17552,7.731,17553,7.731,17554,9.37,17555,7.731]],["title/classes/RichTextElementResponse.html",[0,0.231,3710,4.853]],["body/classes/RichTextElementResponse.html",[0,0.345,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,27,0.514,29,0.601,30,0.001,31,0.432,32,0.186,33,0.37,34,2.14,47,0.803,95,0.144,99,1.288,101,0.017,103,0.001,104,0.001,112,0.807,138,2.198,150,1.759,245,3.54,253,3.78,379,1.422,404,3.15,769,3.907,834,2.42,2193,5.081,2504,3.449,2820,6.528,2855,5.057,2856,5.416,2857,5.416,2859,4.738,2860,5.011,3224,6.492,3399,5.397,3411,4.738,3654,7.455,3658,6.613,3662,5.133,3664,5.133,3710,8.95,4101,6.638,5625,6.479,9946,6.754,9947,6.754,9948,6.754,9949,6.754,9950,6.754,17556,10.125,17557,11.923,17558,6.467,17559,6.467]],["title/classes/RichTextElementResponseMapper.html",[0,0.231,5650,5.958]],["body/classes/RichTextElementResponseMapper.html",[0,0.257,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.491,29,0.782,30,0.001,31,0.563,32,0.164,33,0.482,34,1.29,35,1.353,95,0.152,99,1.264,100,2.544,101,0.012,103,0.001,104,0.001,112,0.797,119,2.044,236,1.951,349,1.164,376,3.299,413,3.95,437,0.98,603,2.263,604,3.078,662,2.382,777,4.496,778,5.574,1276,3.139,1559,4.418,1880,5.496,1938,4.32,2193,3.064,2441,8.379,2444,7.867,2445,7.867,2447,7.655,2808,8.062,2820,6.328,3224,3.915,3654,4.496,3658,5.84,3667,6.627,3675,5.397,3710,8.548,4101,4.003,4907,7.003,5230,7.085,5625,4.826,5646,5.934,5650,11.449,8753,9.144,8757,6.121,8758,6.121,8759,6.121,17556,8.413,17568,12.482,17569,7.575,17570,7.575,17571,7.575,17572,7.575,17573,7.003,17574,11.265,17575,7.575]],["title/classes/RocketChatError.html",[0,0.231,985,5.503]],["body/classes/RocketChatError.html",[0,0.191,2,0.388,3,0.008,4,0.008,5,0.004,7,0.052,27,0.334,29,0.27,30,0.001,31,0.502,32,0.138,33,0.166,34,1.528,36,2.771,39,3.414,47,0.992,51,3.97,55,1.756,72,2.55,83,1.725,87,3.564,95,0.103,101,0.013,103,0,104,0,105,0.765,112,0.446,119,1.955,124,4.508,133,1.211,143,0.771,177,1.028,180,1.007,226,0.495,236,1.459,239,1.627,262,2.854,316,3.806,324,4.129,347,2.058,349,1.359,379,0.703,437,1.364,479,1.297,490,1.228,509,1.889,517,2.718,519,1.072,521,4.434,529,2.538,539,0.744,603,2.549,608,2.214,639,1.625,653,1.789,662,3.922,676,4.003,756,4.644,819,3.371,838,2.42,955,8.178,956,7.249,957,2.9,958,4.957,959,1.994,960,6.219,961,2.268,962,2.712,963,2.639,964,4.401,965,3.859,966,4.401,967,4.401,968,4.401,969,4.54,970,1.674,971,3.092,972,2.9,973,2.9,974,2.9,975,2.9,976,2.9,977,2.9,978,2.518,979,2.9,980,2.9,981,2.9,982,2.236,983,8.048,984,1.493,985,4.54,986,2.397,987,4.789,988,2.42,989,1.922,990,5.052,991,4.706,992,5.348,993,5.285,994,5.285,995,5.59,996,6.251,997,7.868,998,6.489,999,5.939,1000,2.639,1001,2.9,1002,2.9,1003,2.42,1004,2.9,1005,2.9,1006,2.9,1007,2.712,1008,2.9,1009,5.554,1010,2.798,1011,2.9,1012,2.9,1013,2.9,1014,2.798,1015,2.9,1016,2.9,1017,2.9,1018,8.478,1019,2.9,1020,2.9,1021,1.354,1022,2.9,1023,2.9,1024,2.9,1025,2.9,1026,2.9,1027,2.9,1028,2.9,1029,2.9,1030,8.048,1031,8.048,1032,2.9,1033,2.9,1034,2.9,1035,2.9,1036,2.9,1037,2.9,1038,2.378,1039,2.9,1040,2.9,1041,2.9,1042,2.9,1043,2.9,1044,2.9,1045,2.9,1046,2.9,1047,2.9,1048,2.9,1049,2.9,1050,2.9,1051,2.9,1052,2.9,1053,4.283,1054,4.283,1055,2.9,1056,2.9,1057,2.9,1058,2.9,1059,2.9,1060,2.338,1061,2.9,1062,2.9,1063,2.9,1064,4.706,1065,2.9,1066,4.706,1067,4.706,1068,2.9,1069,2.9,1070,2.639,1071,5.939,1072,4.714,1073,4.351,1074,2.9,1075,3.3,1076,5.198,1077,4.283,1078,5.554,1079,5.939,1080,5.939,1081,5.939,1082,2.712,1083,2.9,1084,2.9,1085,2.9,1086,7.514,1087,5.939,1088,5.939,1089,5.939,1090,2.9,1091,4.706,1092,4.706,1093,2.9,1094,2.9,1095,2.9,1096,2.9,1097,2.9,1098,4.706,1099,4.401,2256,1.994,17576,5.618,17577,3.462,17578,3.462]],["title/interfaces/RocketChatGroupModel.html",[105,0.735,969,5.503]],["body/interfaces/RocketChatGroupModel.html",[0,0.194,3,0.008,4,0.008,5,0.004,7,0.054,30,0.001,31,0.463,32,0.14,34,1.547,36,2.782,39,3.429,47,0.992,51,4.025,55,1.55,72,2.599,83,1.758,87,3.621,95,0.105,101,0.014,103,0,104,0,105,0.777,107,0.85,112,0.455,119,2.165,120,2.519,124,4.563,133,1.239,143,0.789,177,1.048,180,0.635,226,0.507,236,1.477,239,1.653,262,2.865,316,3.868,324,4.186,347,2.097,349,1.364,379,0.443,437,1.376,479,1.328,490,1.257,509,1.934,517,2.762,519,1.098,521,4.468,529,2.569,539,0.758,603,2.4,608,2.238,639,1.663,653,1.832,662,3.941,676,4.08,756,4.719,819,2.903,838,2.478,955,8.258,956,2.864,957,2.969,958,5.037,959,2.041,960,6.305,961,2.322,962,2.777,963,2.702,964,4.486,965,3.933,966,4.486,967,4.486,968,4.486,969,5.822,970,4,971,3.151,972,2.969,973,2.969,974,2.969,975,2.969,976,2.969,977,2.969,978,2.578,979,2.969,980,2.969,981,2.969,982,5.342,983,7.606,984,1.529,985,2.864,986,1.936,987,2.394,988,2.478,989,1.967,990,2.526,991,2.969,992,5.389,993,5.325,994,5.325,995,5.632,996,6.295,997,7.923,998,6.559,999,6.035,1000,2.702,1001,2.969,1002,2.969,1003,2.478,1004,2.969,1005,2.969,1006,2.969,1007,2.777,1008,2.969,1009,5.644,1010,2.864,1011,2.969,1012,2.969,1013,2.969,1014,2.864,1015,2.969,1016,2.969,1017,2.969,1018,8.561,1019,2.969,1020,2.969,1021,1.386,1022,2.969,1023,2.969,1024,2.969,1025,2.969,1026,2.969,1027,2.969,1028,2.969,1029,2.969,1030,8.135,1031,8.135,1032,2.969,1033,2.969,1034,2.969,1035,2.969,1036,2.969,1037,2.969,1038,2.434,1039,2.969,1040,2.969,1041,2.969,1042,2.969,1043,2.969,1044,2.969,1045,2.969,1046,2.969,1047,2.969,1048,2.969,1049,2.969,1050,2.969,1051,2.969,1052,2.969,1053,4.365,1054,4.365,1055,2.969,1056,2.969,1057,2.969,1058,2.969,1059,2.969,1060,2.394,1061,2.969,1062,2.969,1063,2.969,1064,4.797,1065,2.969,1066,4.797,1067,4.797,1068,2.969,1069,2.969,1070,2.702,1071,6.035,1072,4.79,1073,4.422,1074,2.969,1075,3.364,1076,5.27,1077,4.365,1078,5.644,1079,6.035,1080,6.035,1081,6.035,1082,2.777,1083,2.969,1084,2.969,1085,2.969,1086,7.606,1087,6.035,1088,6.035,1089,6.035,1090,2.969,1091,4.797,1092,4.797,1093,2.969,1094,2.969,1095,2.969,1096,2.969,1097,2.969,1098,4.797,1099,4.486]],["title/modules/RocketChatModule.html",[201,1.804,17579,5.503]],["body/modules/RocketChatModule.html",[0,0.317,3,0.022,4,0.022,5,0.011,8,1.119,27,0.382,29,0.727,30,0.001,31,0.523,32,0.128,33,0.448,35,1.121,95,0.158,101,0.015,103,0.001,104,0.001,201,3.291,203,3.356,208,3.418,209,3.509,225,3.68,226,1.334,349,0.964,413,3.533,490,4.069,636,5.426,956,9.272,959,5.373,964,10.155,1014,10.04,1102,6.787,1103,7.881,1106,8.261,1112,6.649,3936,7.629,17579,10.04,17580,9.331,17581,9.331,17582,8.163,17583,9.331,17584,9.331]],["title/interfaces/RocketChatOptions.html",[105,0.735,964,5.335]],["body/interfaces/RocketChatOptions.html",[0,0.19,3,0.008,4,0.008,5,0.004,7,0.052,30,0.001,31,0.457,32,0.144,33,0.537,34,1.527,36,2.771,39,3.412,47,1,51,3.966,55,1.524,72,2.546,83,1.723,87,3.559,95,0.103,101,0.013,103,0,104,0,105,0.764,107,0.829,112,0.445,119,1.954,124,4.504,133,1.209,143,0.769,177,1.027,180,0.619,226,0.494,236,1.458,239,1.625,262,2.853,316,3.802,324,4.125,347,2.055,349,1.359,379,0.432,437,1.363,479,1.295,490,1.225,509,1.886,517,2.715,519,1.071,521,4.432,529,2.536,539,0.743,603,2.385,608,2.213,639,1.622,653,1.786,662,3.92,676,6.386,756,4.639,819,2.86,838,2.416,955,8.172,956,2.793,957,2.895,958,4.951,959,1.99,960,6.213,961,2.264,962,2.708,963,2.634,964,5.548,965,6.155,966,7.021,967,7.021,968,7.021,969,4.534,970,1.671,971,3.087,972,2.895,973,2.895,974,2.895,975,2.895,976,2.895,977,2.895,978,2.514,979,2.895,980,2.895,981,2.895,982,2.232,983,7.508,984,1.491,985,2.793,986,1.897,987,2.334,988,2.416,989,1.918,990,2.463,991,2.895,992,5.345,993,5.283,994,5.283,995,5.587,996,6.248,997,7.864,998,6.484,999,5.932,1000,2.634,1001,2.895,1002,2.895,1003,2.416,1004,2.895,1005,2.895,1006,2.895,1007,2.708,1008,2.895,1009,5.548,1010,2.793,1011,2.895,1012,2.895,1013,2.895,1014,2.793,1015,2.895,1016,2.895,1017,2.895,1018,8.472,1019,2.895,1020,2.895,1021,1.352,1022,2.895,1023,2.895,1024,2.895,1025,2.895,1026,2.895,1027,2.895,1028,2.895,1029,2.895,1030,8.041,1031,8.041,1032,2.895,1033,2.895,1034,2.895,1035,2.895,1036,2.895,1037,2.895,1038,2.374,1039,2.895,1040,2.895,1041,2.895,1042,2.895,1043,2.895,1044,2.895,1045,2.895,1046,2.895,1047,2.895,1048,2.895,1049,2.895,1050,2.895,1051,2.895,1052,2.895,1053,4.277,1054,4.277,1055,2.895,1056,2.895,1057,2.895,1058,2.895,1059,2.895,1060,2.334,1061,2.895,1062,2.895,1063,2.895,1064,4.7,1065,2.895,1066,4.7,1067,4.7,1068,2.895,1069,2.895,1070,2.634,1071,5.932,1072,4.709,1073,4.346,1074,2.895,1075,3.296,1076,5.193,1077,4.277,1078,5.548,1079,5.932,1080,5.932,1081,5.932,1082,2.708,1083,2.895,1084,2.895,1085,2.895,1086,7.508,1087,5.932,1088,5.932,1089,5.932,1090,2.895,1091,4.7,1092,4.7,1093,2.895,1094,2.895,1095,2.895,1096,2.895,1097,2.895,1098,4.7,1099,4.395]],["title/entities/Role.html",[154,1.456,276,2.895]],["body/entities/Role.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,27,0.468,30,0.001,31,0.679,32,0.14,47,0.721,95,0.145,96,2.137,101,0.017,103,0.001,104,0.001,105,1.103,112,0.812,138,2.076,154,2.44,155,2.596,168,5.829,172,3.87,173,2.301,174,4.065,175,3.44,178,3.232,180,1.394,181,2.082,182,2.531,236,1.972,276,5.353,349,0.804,437,1.476,480,2.838,486,3.075,529,2.201,643,5.388,662,2.446,822,4.48,1654,3.694,1660,6.621,1982,3.094,2611,5.577,2615,5.577,3078,6.286,4057,4.57,4282,3.405,4602,6.615,7218,6.287,9004,6.806,10018,7.602,10048,8.007,12170,8.942,12171,7.193,12172,6.517,12173,6.287,12174,6.517,12175,6.287,12176,7.193,12177,6.517,12178,7.193,12179,9.449,12180,7.193,12181,8.562,12182,6.287,17585,7.78,17586,7.78,17587,7.78,17588,7.78]],["title/classes/RoleDto.html",[0,0.231,4572,4.853]],["body/classes/RoleDto.html",[0,0.315,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,26,2.624,27,0.53,29,0.722,30,0.001,31,0.724,32,0.177,33,0.637,34,2.11,95,0.117,99,1.546,101,0.015,103,0.001,104,0.001,112,0.907,181,3.058,379,1.159,381,3.113,404,3.782,405,5.099,643,5.505,1660,6.226,1982,3.685,4282,4.056,4572,9.464,4602,6.759,10018,6.892,10048,7.26,17589,9.267,17590,11.425,17591,9.267,17592,9.267]],["title/classes/RoleMapper.html",[0,0.231,17593,5.958]],["body/classes/RoleMapper.html",[0,0.308,2,1.016,3,0.021,4,0.021,5,0.011,7,0.138,8,1.352,27,0.462,29,0.878,30,0.001,31,0.687,32,0.154,33,0.541,34,1.547,35,1.355,95,0.143,99,1.514,101,0.015,103,0.001,104,0.001,154,1.94,236,1.477,276,5.801,349,1.165,413,4.144,1660,4.563,4386,5.784,4387,7.112,4572,9.589,4583,6.92,17593,9.869,17594,9.079,17595,9.869,17596,9.45,17597,11.281,17598,9.079,17599,9.079,17600,9.45,17601,9.079,17602,9.079,17603,9.079,17604,7.942]],["title/modules/RoleModule.html",[201,1.804,1355,5.065]],["body/modules/RoleModule.html",[0,0.299,3,0.021,4,0.021,5,0.01,30,0.001,95,0.161,101,0.015,103,0.001,104,0.001,201,3.205,203,3.165,204,3.401,205,3.5,206,3.485,207,3.471,208,4.432,209,4.55,218,4.4,219,3.429,220,3.348,226,1.258,227,3.623,1355,10.518,4682,10.734,4704,7.372,17605,8.801,17606,8.801,17607,8.801,17608,11.796,17609,12.319,17610,8.801,17611,8.801]],["title/classes/RoleNameMapper.html",[0,0.231,12875,5.958]],["body/classes/RoleNameMapper.html",[0,0.286,2,0.944,3,0.02,4,0.02,5,0.01,7,0.128,8,1.291,27,0.441,29,0.838,30,0.001,31,0.7,32,0.147,33,0.517,35,1.294,95,0.137,99,1.406,101,0.014,103,0.001,104,0.001,276,4.578,310,3.654,349,1.364,413,4.067,529,3.046,778,5.977,785,4.21,1715,3.551,4507,5.3,4602,7.49,9802,7.159,9803,7.159,10757,11.556,12023,10.346,12024,8.208,12849,9.043,12875,9.42,12926,8.436,17612,11.863,17613,8.432,17614,9.955,17615,10.768,17616,8.432,17617,10.768,17618,8.432,17619,7.796,17620,7.796,17621,7.796,17622,8.432,17623,8.432,17624,8.432]],["title/classes/RoleReference.html",[0,0.231,7147,4.6]],["body/classes/RoleReference.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,26,2.648,27,0.512,29,0.737,30,0.001,31,0.73,32,0.171,33,0.454,34,2.13,95,0.147,101,0.016,103,0.001,104,0.001,105,1.021,112,0.919,181,3.097,379,1.183,381,3.178,404,3.862,405,5.207,1600,3.558,1982,3.763,3412,8.279,4282,4.142,4602,6.822,7147,9.024,17625,13.025,17626,11.573,17627,9.463]],["title/injectables/RoleRepo.html",[539,0.901,17608,5.705]],["body/injectables/RoleRepo.html",[0,0.211,3,0.015,4,0.015,5,0.007,7,0.094,8,1.052,10,3.564,12,4.025,18,4.439,26,2.339,27,0.528,29,0.967,30,0.001,31,0.732,32,0.173,33,0.596,34,1.732,35,1.492,36,2.98,40,4.242,47,0.717,55,1.338,95,0.129,99,1.037,101,0.01,103,0,104,0,112,0.697,154,1.329,155,2.927,180,1.572,226,0.889,262,3.002,276,3.729,349,1.203,382,3.331,437,1.428,479,4.951,480,1.726,486,1.87,539,1.161,541,1.488,565,5.207,679,7.295,685,3.712,686,4.141,687,5.144,711,3.816,712,5.449,713,3.816,714,3.862,716,3.816,717,3.862,718,3.451,3274,7.349,3291,7.674,3635,4.27,3891,8.65,4602,6.776,5071,5.589,9077,7.349,9085,7.349,17608,7.349,17628,6.217,17629,9.398,17630,7.674,17631,6.217,17632,6.217,17633,7.674,17634,6.217,17635,8.11,17636,6.217,17637,6.217,17638,8.772,17639,10.208,17640,8.772]],["title/injectables/RoleService.html",[539,0.901,4682,5.191]],["body/injectables/RoleService.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.111,8,1.175,12,4.496,26,2.747,27,0.505,29,0.92,30,0.001,31,0.662,32,0.162,33,0.567,34,1.243,35,1.42,36,2.804,40,4.737,95,0.156,99,1.218,101,0.012,103,0.001,104,0.001,154,1.56,155,2.436,177,1.336,226,1.044,227,3.005,262,3.003,276,5.025,345,2.324,349,1.221,379,0.913,437,1.677,539,1.297,541,1.747,565,4.333,608,2.725,3078,3.644,3274,8.208,3291,8.571,4572,9.24,4602,6.45,4682,7.468,5071,4.651,9802,4.854,17593,6.386,17608,10.633,17630,8.571,17633,8.571,17641,7.3,17642,11.82,17643,7.3,17644,7.3,17645,7.3,17646,7.3,17647,7.3,17648,7.3,17649,7.3,17650,7.3,17651,12.693,17652,7.3,17653,7.3,17654,7.3,17655,7.3,17656,7.3,17657,7.3,17658,7.3]],["title/injectables/RoleUc.html",[539,0.901,17609,5.958]],["body/injectables/RoleUc.html",[0,0.31,3,0.021,4,0.021,5,0.011,7,0.139,8,1.358,27,0.464,29,0.882,30,0.001,31,0.635,32,0.155,33,0.544,35,1.098,36,2.815,95,0.163,99,1.525,101,0.015,103,0.001,104,0.001,177,1.673,226,1.307,262,2.698,345,2.909,349,0.944,379,1.143,437,1.182,539,1.499,541,2.188,4572,6.513,4583,6.968,4602,7.022,4682,10.275,4704,7.657,5071,5.824,17609,9.911,17630,9.911,17633,9.911,17659,9.14,17660,9.14,17661,9.14,17662,9.14,17663,9.14]],["title/injectables/RoomBoardDTOFactory.html",[539,0.901,8217,5.503]],["body/injectables/RoomBoardDTOFactory.html",[0,0.241,3,0.011,4,0.011,5,0.006,7,0.071,8,0.85,27,0.291,29,0.552,30,0.001,31,0.481,32,0.164,33,0.34,34,1.208,35,0.559,95,0.138,99,0.777,100,3.228,101,0.008,103,0.001,104,0,119,1.444,120,3.121,143,1.579,145,1.97,177,1.299,226,0.666,236,1.154,239,2.848,347,3.992,349,1.316,376,3.09,377,3.22,379,1.075,437,1.751,539,0.939,541,1.115,603,2.493,604,1.892,643,2.069,844,3.904,1038,3.198,1203,2.265,1559,4.986,1609,3.904,1610,2.857,1625,3.05,1695,5.761,1864,3.559,1880,1.925,1882,5.372,1886,3.198,2017,2.038,2018,2.28,2019,2.198,2193,4.409,2469,2.113,2622,4.542,2624,4.621,2626,7.767,2629,5.408,2631,6.124,2634,2.185,2642,8.666,2710,3.549,2711,3.05,2972,3.549,3008,9.05,3009,5.943,3013,5.943,3016,3.9,3035,4.073,3404,3.9,3414,2.928,3417,3.9,3735,2.892,3753,5.714,3878,2.607,4486,5.048,5097,3.9,6432,5.714,6983,3.9,7490,8.43,7644,3.255,7784,4.073,8122,6.206,8123,7.946,8124,4.305,8125,9.915,8126,10.084,8130,4.305,8131,4.305,8141,4.305,8142,10.077,8144,8.666,8145,4.305,8147,4.305,8152,4.305,8154,4.305,8156,4.305,8158,4.305,8160,3.386,8161,6.206,8162,6.206,8163,4.305,8164,4.305,8165,4.073,8166,6.559,8167,4.305,8168,6.559,8169,6.559,8170,4.305,8171,4.305,8172,4.305,8173,4.305,8174,4.305,8175,4.305,8176,4.305,8177,4.305,8178,4.305,8179,4.305,8180,6.559,8181,4.073,8182,4.305,8183,4.305,8184,4.305,8185,4.305,8186,7.946,8187,4.305,8188,4.305,8189,4.305,8190,4.073,8191,4.073,8192,6.559,8193,4.305,8194,4.305,8195,4.073,8196,4.073,8197,3.9,8198,4.073,8199,4.073,8200,4.305,8201,4.305,8202,4.305,8203,4.305,8204,4.305,8205,4.305,8206,4.073,8207,4.305,8208,4.305,8209,4.305,8210,4.305,8211,4.305,8212,4.305,8213,4.305,8214,4.305,8215,3.9,8216,4.305,8217,5.733,8218,7.946,8219,4.305,8220,4.305,17664,4.656,17665,4.656,17666,4.656,17667,4.656]],["title/injectables/RoomBoardResponseMapper.html",[539,0.901,13864,5.705]],["body/injectables/RoomBoardResponseMapper.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.978,27,0.459,29,0.437,30,0.001,31,0.538,32,0.144,33,0.27,34,1.636,35,0.675,95,0.148,99,0.937,101,0.009,103,0,104,0,112,0.648,226,0.803,236,1.96,347,2.988,349,1.157,376,4.184,377,4.36,437,1.709,480,2.927,486,3.172,539,1.08,541,1.345,603,2.63,777,3.335,778,4.528,785,2.805,844,5.801,1038,3.859,1203,2.605,1600,2.112,1864,3.022,1882,5.252,1886,3.859,2193,3.886,2624,2.51,2630,4.279,2634,2.637,2706,6.835,2708,4.401,2710,4.282,2711,3.68,3398,11.24,3401,6.835,3402,6.835,3404,4.706,3408,5.194,3414,3.533,3415,5.194,3416,5.194,3417,4.706,3666,7.543,3670,4.915,3735,3.489,3749,4.915,4486,4.792,5097,4.706,8144,9.38,8160,6.987,8161,8.404,8162,8.404,8191,7.137,8195,7.137,8196,4.915,8197,4.706,8198,4.915,8199,4.915,8206,7.137,8215,4.706,13864,6.835,17668,11.68,17669,9.607,17670,9.607,17671,9.607,17672,9.607,17673,5.618,17674,8.832,17675,5.194,17676,5.618,17677,5.618,17678,5.618,17679,5.618,17680,5.618,17681,5.618,17682,5.618,17683,5.618,17684,5.618,17685,5.618,17686,9.607,17687,5.618,17688,5.618,17689,5.618,17690,7.543,17691,5.618,17692,5.618,17693,5.618,17694,8.159,17695,5.618,17696,8.159,17697,5.618,17698,5.618,17699,5.618,17700,5.618,17701,5.618,17702,5.618,17703,5.618,17704,5.618,17705,5.618,17706,5.618,17707,5.618,17708,5.618,17709,5.618,17710,5.618,17711,5.618,17712,5.618,17713,8.159,17714,5.618,17715,5.618,17716,5.618,17717,5.618,17718,5.618,17719,8.159,17720,5.618,17721,5.618,17722,5.618,17723,5.618,17724,5.618,17725,5.618]],["title/classes/RoomElementUrlParams.html",[0,0.231,17726,5.958]],["body/classes/RoomElementUrlParams.html",[0,0.382,2,1.012,3,0.021,4,0.021,5,0.011,7,0.137,27,0.461,30,0.001,32,0.154,34,2.183,47,0.905,95,0.143,101,0.015,103,0.001,104,0.001,112,0.893,138,2.046,142,5.014,143,2.854,144,4.223,145,3.559,148,2.868,150,2.059,153,2.557,245,3.211,803,4.998,1038,8.412,1855,9.596,1880,4.652,3814,6.608,3852,7.726,5760,8.356,5762,8.356,7490,9.534,17726,9.842,17727,12.249,17728,9.038]],["title/classes/RoomUrlParams.html",[0,0.231,17729,5.958]],["body/classes/RoomUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,1038,8.722,3814,5.762,7490,8.798,17729,10.348,17730,9.809,17731,9.809]],["title/injectables/RoomsAuthorisationService.html",[539,0.901,8126,5.335]],["body/injectables/RoomsAuthorisationService.html",[0,0.237,3,0.016,4,0.016,5,0.008,7,0.106,8,1.14,27,0.475,29,0.904,30,0.001,31,0.65,32,0.159,33,0.557,35,1.394,95,0.121,99,1.165,101,0.016,103,0.001,104,0.001,119,2.655,145,2.64,226,0.998,236,1.136,239,3.215,349,1.199,437,1.501,529,1.976,539,1.258,541,1.672,834,2.189,1615,4.237,1616,4.643,1672,7.601,1864,5.074,2343,4.796,2622,6.135,2624,5.727,2634,5.074,3193,4.449,5091,3.946,5103,4.021,8126,7.449,8197,5.85,11914,4.976,17732,6.983,17733,9.508,17734,9.508,17735,9.508,17736,9.508,17737,9.508,17738,6.983,17739,9.508,17740,6.983,17741,9.508,17742,6.983,17743,9.508,17744,6.983,17745,6.983,17746,9.508,17747,9.508,17748,6.983,17749,8.318,17750,6.983,17751,12.062,17752,6.983,17753,6.983,17754,6.983,17755,9.996,17756,9.508,17757,9.508,17758,8.791]],["title/controllers/RoomsController.html",[259,2.591,13867,5.958]],["body/controllers/RoomsController.html",[0,0.187,3,0.013,4,0.013,5,0.007,7,0.083,8,0.962,27,0.455,29,0.864,30,0.001,31,0.622,32,0.152,33,0.532,35,1.333,36,2.706,95,0.163,100,3.728,101,0.009,103,0,104,0,138,2.019,150,1.252,177,1.91,223,2.262,226,0.786,259,2.09,261,2.609,262,2.93,270,6.588,271,4.896,294,6.868,324,5.28,333,4.904,334,3.549,337,2.84,338,2.904,340,2.641,343,2.927,349,0.98,379,0.687,437,1.499,602,4.441,603,2.096,608,2.558,631,2.82,1882,3.35,2879,8.539,2900,3.105,2901,2.95,2935,7.947,2963,5.185,2981,3.334,2982,3.077,3669,3.654,3717,6.519,4486,4.716,6215,4.305,6453,4.441,6458,8.74,6687,5.081,6709,7.947,6762,7.947,7494,5.081,12260,3.774,13863,7.947,13864,6.726,13865,7.947,13867,7.024,13873,5.081,14154,8.173,14161,5.081,16626,9.127,16631,9.127,17674,4.603,17726,9.127,17729,11.127,17759,5.495,17760,9.486,17761,9.486,17762,9.486,17763,5.495,17764,5.495,17765,5.495,17766,5.495,17767,5.495,17768,5.495,17769,5.495,17770,8.028,17771,5.495,17772,5.495,17773,8.028,17774,5.495,17775,5.495,17776,8.028,17777,5.495,17778,4.603,17779,7.423,17780,5.495,17781,5.495,17782,5.495,17783,5.495,17784,5.495,17785,5.495,17786,5.495,17787,8.028,17788,5.495,17789,5.495,17790,5.495,17791,5.495,17792,5.495,17793,7.024,17794,5.495,17795,7.024,17796,5.495,17797,5.495,17798,5.495]],["title/injectables/RoomsService.html",[539,0.901,6714,5.503]],["body/injectables/RoomsService.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.112,26,2.814,27,0.435,29,0.826,30,0.001,31,0.594,32,0.156,33,0.509,34,1.148,35,1.115,36,2.433,39,2.855,95,0.161,99,1.124,101,0.011,103,0.001,104,0.001,119,1.371,143,1.5,177,2.195,226,0.963,227,2.774,262,2.716,349,0.958,379,1.16,437,1.642,539,1.228,541,1.613,603,2.598,608,2.927,696,2.657,1038,8.512,1742,8.318,1768,4.901,1851,9.679,1862,4.71,1863,3.999,1882,5.299,1885,5.136,2017,2.949,2018,3.299,2019,3.18,2630,3.534,2631,6.611,2941,9.445,2986,5.444,3878,3.773,4825,6.229,4922,10.637,4931,6.229,5052,9.447,5104,6.229,6714,7.497,8181,5.894,17799,6.737,17800,9.278,17801,9.278,17802,6.737,17803,6.737,17804,9.278,17805,6.737,17806,9.278,17807,6.737,17808,6.737,17809,9.278,17810,6.737,17811,9.278,17812,11.991,17813,6.737,17814,6.737,17815,6.737,17816,6.229,17817,6.737,17818,6.737,17819,6.737,17820,6.737,17821,6.737]],["title/injectables/RoomsUc.html",[539,0.901,13865,5.705]],["body/injectables/RoomsUc.html",[0,0.201,3,0.014,4,0.014,5,0.007,7,0.09,8,1.016,26,2.975,27,0.443,29,0.841,30,0.001,31,0.605,32,0.148,33,0.518,35,1.189,36,2.531,39,3.589,95,0.155,99,0.988,101,0.01,103,0,104,0,119,2.015,143,1.319,177,2.177,217,7.347,226,0.847,227,2.439,236,1.379,239,2.479,262,2.794,349,0.612,379,1.06,437,1.693,463,5.357,529,2.398,539,1.122,541,1.418,603,2.389,608,3.049,1038,7.852,1600,2.228,1741,7.215,1829,7.754,1855,7.754,1864,4.405,1880,2.45,1882,4.771,2468,3.516,2941,9.108,3980,5.143,4081,9.452,6713,4.963,6714,9.895,6929,6.461,7490,6.305,8125,8.659,8126,8.464,8144,8.292,8165,5.183,8217,8.731,13865,7.101,17816,7.837,17822,5.924,17823,8.477,17824,8.477,17825,9.898,17826,5.924,17827,8.477,17828,5.924,17829,8.477,17830,9.898,17831,5.924,17832,5.924,17833,5.924,17834,5.924,17835,5.924,17836,9.898,17837,5.924,17838,5.924,17839,5.924,17840,8.477,17841,7.837,17842,8.477,17843,5.924,17844,5.924,17845,5.924,17846,5.924]],["title/interfaces/RpcMessage.html",[105,0.735,10596,5.065]],["body/interfaces/RpcMessage.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.163,33,0.573,47,0.704,55,2.147,101,0.02,103,0.001,104,0.001,105,1.29,107,2.395,112,0.949,180,1.788,347,3.655,479,4.792,986,4.584,1021,5.304,8435,10.716,10596,8.889,11971,8.73,11972,9.226]],["title/classes/RpcMessageProducer.html",[0,0.231,10697,5.705]],["body/classes/RpcMessageProducer.html",[0,0.238,2,0.785,3,0.016,4,0.016,5,0.008,7,0.106,8,1.143,9,3.308,27,0.476,29,0.977,30,0.001,31,0.651,32,0.171,33,0.558,35,1.301,47,0.954,55,2.501,80,6.13,95,0.137,101,0.012,103,0.001,104,0.001,141,4.553,177,1.983,262,2.373,349,0.984,379,1.192,437,1.401,448,5.581,479,3.57,519,2.171,529,1.983,608,1.615,760,3.889,819,3.8,986,3.222,1021,4.906,1117,7.551,1119,6.155,1142,5.663,1143,9.328,1150,4.623,1156,4.899,1157,4.525,1551,7.413,1776,5.663,3920,8.752,3956,9.042,6954,5.097,8431,6.13,8433,6.479,10596,8.645,10697,7.984,10698,8.338,10699,8.338,10707,8.338,10709,8.338,10711,8.338,11971,10.636,17847,7.007,17848,7.007,17849,7.007,17850,7.007,17851,7.007,17852,7.007,17853,7.007,17854,7.007,17855,7.007,17856,7.007,17857,7.007,17858,7.007,17859,9.531,17860,7.007,17861,7.007,17862,6.479]],["title/interfaces/Rule.html",[105,0.735,1817,4.23]],["body/interfaces/Rule.html",[3,0.021,4,0.021,5,0.011,7,0.134,8,1.328,27,0.454,29,0.863,30,0.001,31,0.621,32,0.151,33,0.532,35,1.331,59,2.74,95,0.161,99,1.471,101,0.015,103,0.001,104,0.001,105,0.952,107,2.116,119,2.586,131,5.005,133,4.742,239,3.174,479,5.005,1597,5.129,1606,7.339,1631,5.478,1672,6.722,1683,5.129,1684,5.478,1685,6.285,1686,6.723,1813,7.155,1817,6.882,3349,7.366,3353,7.257,16906,7.716,17863,8.82,17864,8.82,17865,8.82]],["title/injectables/RuleManager.html",[539,0.901,1705,5.705]],["body/injectables/RuleManager.html",[0,0.204,3,0.014,4,0.014,5,0.007,7,0.091,8,1.026,27,0.445,29,0.776,30,0.001,31,0.559,32,0.163,33,0.478,35,1.028,95,0.151,99,1.001,101,0.01,103,0,104,0,112,0.68,131,4.072,133,4.018,177,2.495,226,0.858,236,1.392,239,2.636,349,0.884,379,1.07,437,1.107,529,2.421,539,1.133,541,1.437,603,2.775,662,3.136,696,2.368,708,2.494,1158,2.868,1597,6.321,1606,5.883,1683,6.321,1684,3.729,1685,4.278,1686,4.576,1697,10.298,1698,10.298,1699,9.934,1700,8.885,1702,10.298,1703,9.106,1704,9.934,1705,7.169,1706,10.298,1707,10.298,1708,9.934,1709,10.298,1710,10.298,1711,10.298,1717,9.002,1817,8.058,3193,5.452,17866,11.491,17867,6.004,17868,8.558,17869,8.558,17870,6.004,17871,9.972,17872,8.558,17873,8.558,17874,6.004,17875,8.558,17876,6.004,17877,6.004,17878,6.004,17879,6.004,17880,6.004,17881,6.004,17882,6.004,17883,6.004,17884,6.004,17885,6.004,17886,6.004,17887,6.004,17888,6.004,17889,6.004,17890,6.004,17891,6.004,17892,6.004,17893,6.004,17894,6.004,17895,8.558,17896,6.004,17897,6.004]],["title/injectables/S3ClientAdapter.html",[539,0.901,10849,5.065]],["body/injectables/S3ClientAdapter.html",[0,0.105,3,0.007,4,0.007,5,0.012,7,0.047,8,0.614,10,3.095,27,0.453,29,0.814,30,0.001,31,0.586,32,0.147,33,0.502,34,0.526,35,1.256,36,2.145,47,0.917,59,0.96,72,1.402,95,0.128,101,0.005,103,0,104,0,105,0.333,112,0.406,131,2.854,133,1.08,177,0.937,226,0.442,236,1.931,261,1.467,262,2.815,271,3.943,284,2.608,316,3.517,324,1.564,349,1.167,360,6.552,379,0.64,437,1.662,480,0.858,486,0.93,519,0.957,521,3.344,529,2.958,539,0.677,541,0.74,565,1.834,579,6.017,603,1.935,604,1.255,608,2.697,639,1.45,662,4.063,685,3.224,696,1.219,986,1.045,992,3.639,993,3.596,994,3.596,995,3.803,996,4.157,997,5.232,998,4.425,1000,2.355,1070,3.901,1147,5.31,1149,4.99,1150,2.035,1158,3.129,1159,2.202,1160,2.421,1174,5.786,1175,6.952,1176,8.819,1274,0.978,1380,2.703,1559,4.435,1572,2.247,1609,5.302,1761,3.647,1909,3.023,1922,4.569,2026,3.305,2250,2.685,2251,3.439,2268,5.132,2278,1.854,2418,3.848,2619,1.646,2659,4.732,2768,3.038,3019,2.202,3538,1.523,3539,2.673,3832,2.122,4691,2.685,5386,4.477,6258,3.966,6329,5.968,6330,8.85,6332,4.136,6333,4.136,6334,4.854,6337,8.181,6340,2.247,6341,2.298,6342,3.647,6343,2.298,6344,2.298,6807,2.298,7890,3.515,7996,7.548,8020,6.665,8030,4.287,8031,2.703,8032,4.136,9688,3.261,9883,2.703,9884,2.857,10337,7.167,10387,7.345,10813,5.807,10820,2.857,10849,3.807,12120,2.497,16802,4.732,17898,10.445,17899,3.09,17900,6.551,17901,5.118,17902,7.618,17903,6.551,17904,5.118,17905,5.731,17906,3.09,17907,5.118,17908,5.118,17909,3.09,17910,5.118,17911,3.09,17912,5.118,17913,3.09,17914,3.09,17915,5.118,17916,3.09,17917,5.118,17918,3.09,17919,3.09,17920,5.118,17921,3.09,17922,5.118,17923,3.09,17924,7.618,17925,5.118,17926,3.09,17927,5.118,17928,5.118,17929,5.118,17930,5.118,17931,3.09,17932,6.057,17933,2.857,17934,3.09,17935,3.09,17936,3.09,17937,3.09,17938,3.09,17939,2.703,17940,11.701,17941,8.443,17942,3.09,17943,3.09,17944,3.09,17945,3.09,17946,3.09,17947,3.09,17948,3.09,17949,3.09,17950,5.118,17951,5.118,17952,5.118,17953,3.09,17954,3.09,17955,5.118,17956,3.09,17957,3.09,17958,3.09,17959,3.09,17960,3.09,17961,5.118,17962,5.118,17963,5.118,17964,5.118,17965,5.118,17966,3.09,17967,3.09,17968,3.09,17969,5.118,17970,3.09,17971,3.09,17972,3.09,17973,3.09,17974,3.09,17975,3.09,17976,3.09,17977,3.09,17978,3.09,17979,3.09,17980,3.09,17981,3.09,17982,6.551,17983,3.09,17984,5.118,17985,3.09,17986,3.09,17987,3.09,17988,3.09,17989,3.09,17990,3.09,17991,6.551,17992,3.09,17993,5.118,17994,3.09,17995,3.09,17996,3.09,17997,3.09,17998,3.09,17999,3.09]],["title/modules/S3ClientModule.html",[201,1.804,10672,5.065]],["body/modules/S3ClientModule.html",[0,0.275,3,0.019,4,0.019,5,0.01,8,0.972,27,0.332,29,0.631,30,0.001,31,0.454,32,0.111,33,0.389,35,0.974,95,0.162,101,0.013,103,0.001,104,0.001,105,0.875,143,2.338,201,3.085,203,2.916,208,4.265,209,3.049,214,4.872,225,3.198,226,1.159,236,1.708,349,1.085,413,3.234,437,1.593,636,4.715,637,5.778,639,3.806,1106,7.743,1274,2.565,1909,5.373,2032,6.604,2250,4.304,2251,5.901,6330,8.226,6334,8.129,6336,7.341,6338,7.341,6339,7.341,8020,10.188,8030,6.793,8031,7.094,8032,8.485,8061,7.497,8063,7.497,8064,6.031,10573,7.497,10672,8.662,10849,6.031,13461,7.497,16720,7.094,17898,9.708,18000,10.501,18001,8.109,18002,8.109,18003,8.109,18004,8.109,18005,8.109,18006,8.109,18007,8.109]],["title/interfaces/S3Config.html",[105,0.735,6334,4.339]],["body/interfaces/S3Config.html",[3,0.022,4,0.022,5,0.011,7,0.146,30,0.001,32,0.183,47,1.014,101,0.016,103,0.001,104,0.001,105,1.038,107,2.309,112,0.928,2032,8.238,6334,7.448,6336,9.158,6337,9.158,6338,9.158,6339,9.158,10795,7.537,10796,7.537,18008,9.621]],["title/interfaces/S3Config-1.html",[105,0.611,708,2.352,6334,3.607]],["body/interfaces/S3Config-1.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.182,47,1.021,55,1.865,95,0.11,101,0.021,103,0.001,104,0.001,105,1.363,107,2.08,112,0.87,284,3.385,1147,7.557,1149,5.678,1295,4.854,2032,7.941,6329,6.79,6330,6.79,6331,7.261,6332,7.004,6333,7.004,6334,6.982,6335,9.892,6336,8.828,6337,8.828,6338,8.828,6339,8.828,6340,6.305,6341,6.447,6342,6.176,6343,6.447,6344,6.447]],["title/classes/SSOLoginQuery.html",[0,0.231,16211,5.958]],["body/classes/SSOLoginQuery.html",[0,0.395,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,27,0.477,30,0.001,32,0.159,33,0.627,47,0.822,52,5.997,95,0.148,101,0.016,103,0.001,104,0.001,112,0.924,119,2.369,138,2.117,147,6.249,148,3.031,150,2.177,245,3.292,248,4.857,249,5.079,15525,10.145,16211,10.183,18009,12.554,18010,9.553,18011,9.553,18012,9.553,18013,9.553,18014,9.553]],["title/interfaces/SanisGruppeResponse.html",[105,0.735,18015,5.958]],["body/interfaces/SanisGruppeResponse.html",[3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.185,34,2.206,47,0.986,95,0.145,101,0.015,103,0.001,104,0.001,105,1.005,107,2.234,112,0.91,819,3.267,970,4.502,13161,11.331,17147,6.634,18015,10.024,18016,6.771,18017,8.607,18018,12.952,18019,12.295,18020,12.952,18021,11.331,18022,11.975,18023,8.164]],["title/interfaces/SanisGruppenResponse.html",[105,0.735,18024,5.705]],["body/interfaces/SanisGruppenResponse.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.171,33,0.556,95,0.159,101,0.016,103,0.001,104,0.001,105,1.024,107,2.276,112,0.92,819,4.392,11243,10.534,17147,6.759,18015,11.404,18016,6.899,18017,12.361,18023,8.918,18024,9.709,18025,8.77,18026,12.361,18027,13.036,18028,11.404,18029,8.77,18030,8.77]],["title/interfaces/SanisGruppenzugehoerigkeitResponse.html",[105,0.735,18028,5.958]],["body/interfaces/SanisGruppenzugehoerigkeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.157,30,0.001,32,0.141,95,0.131,101,0.017,103,0.001,104,0.001,105,1.116,107,2.481,112,0.969,276,4.395,970,4.999,17147,7.367,18016,7.52,18023,7.367,18026,9.558,18028,10.677,18031,11.737,18032,11.737]],["title/interfaces/SanisLaufzeitResponse.html",[105,0.735,18021,5.958]],["body/interfaces/SanisLaufzeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.166,83,4.255,101,0.017,103,0.001,104,0.001,105,1.11,107,2.468,112,0.966,17147,7.329,18016,7.481,18019,9.509,18021,10.645,18033,13.394,18034,13.394]],["title/interfaces/SanisNameResponse.html",[105,0.735,18035,5.958]],["body/interfaces/SanisNameResponse.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,31,0.576,32,0.166,47,0.978,101,0.017,103,0.001,104,0.001,105,1.11,107,2.468,112,0.966,17147,7.329,18016,7.481,18035,10.645,18036,13.394,18037,13.394]],["title/interfaces/SanisOrganisationResponse.html",[105,0.735,18038,5.958]],["body/interfaces/SanisOrganisationResponse.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.739,32,0.18,34,2.248,47,1.008,101,0.016,103,0.001,104,0.001,105,1.061,107,2.359,112,0.941,13161,11.545,17147,7.007,18016,7.152,18038,10.363,18039,9.091,18040,13.196]],["title/interfaces/SanisPersonResponse.html",[105,0.735,18041,5.958]],["body/interfaces/SanisPersonResponse.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,31,0.753,32,0.179,47,0.992,95,0.123,101,0.016,103,0.001,104,0.001,105,1.043,107,2.32,112,0.931,819,3.392,17147,6.889,18016,7.032,18023,6.889,18035,11.479,18041,10.257,18042,8.458,18043,13.121,18044,13.121,18045,13.121]],["title/interfaces/SanisPersonenkontextResponse.html",[105,0.735,18046,5.958]],["body/interfaces/SanisPersonenkontextResponse.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.181,33,0.544,34,2.192,47,0.951,95,0.156,101,0.015,103,0.001,104,0.001,105,0.986,107,2.193,112,0.9,276,3.886,819,3.975,17147,6.513,18016,6.648,18023,8.772,18024,10.781,18025,12.231,18038,11.258,18039,12.231,18046,9.911,18047,8.451,18048,12.869,18049,12.869,18050,11.898]],["title/injectables/SanisProvisioningStrategy.html",[539,0.901,16922,5.705]],["body/injectables/SanisProvisioningStrategy.html",[0,0.21,3,0.014,4,0.014,5,0.007,7,0.094,8,1.048,27,0.476,29,0.858,30,0.001,31,0.617,32,0.151,33,0.529,34,1.054,35,1.324,36,2.157,95,0.169,99,1.032,100,2.079,101,0.01,103,0,104,0,137,3.892,177,1.856,180,1.567,226,0.885,236,1.422,262,2.547,284,1.911,349,0.903,379,1.093,382,3.059,437,1.503,448,2.536,519,2.709,529,1.751,539,1.157,541,1.481,556,1.559,603,2.335,608,1.426,819,2.171,931,3.943,958,8.67,959,3.563,961,4.054,1075,3.635,1158,4.177,1194,2.127,1441,5.184,1631,3.844,1908,7.225,1920,4.326,2017,2.709,2018,3.03,2019,2.921,2026,3.996,2158,3.529,2183,7.325,3072,3.99,3669,4.115,3878,3.465,3947,7.066,4602,3.377,8498,6.665,8529,6.503,9619,8.454,10361,5.414,11011,8.632,11248,4.501,11459,7.325,11726,5.431,12344,6.377,12346,6.642,12347,4.115,12348,4.115,13099,6.665,13101,5.001,13102,8.126,13106,7.066,13107,8.196,13122,5.721,13131,8.193,13133,7.325,13135,7.066,13136,5.414,15813,8.87,16413,5.414,16418,10.022,16457,5.721,16519,8.87,16526,5.414,16532,5.721,16922,7.325,16923,9.231,18023,6.23,18051,6.188,18052,8.744,18053,6.188,18054,6.188,18055,8.084,18056,8.744,18057,6.188,18058,6.188,18059,6.188,18060,6.188,18061,6.188,18062,5.184,18063,6.188,18064,6.188,18065,6.188,18066,6.188,18067,6.188,18068,6.188,18069,6.188,18070,6.188,18071,6.188,18072,6.188,18073,6.188,18074,6.188]],["title/interfaces/SanisResponse.html",[105,0.735,18062,5.705]],["body/interfaces/SanisResponse.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.173,47,0.894,95,0.15,101,0.016,103,0.001,104,0.001,105,1.053,107,2.342,112,0.936,819,4.138,18023,8.404,18041,11.516,18042,11.79,18046,11.516,18047,9.025,18062,9.88,18075,9.761,18076,13.164,18077,13.164]],["title/injectables/SanisResponseMapper.html",[539,0.901,16923,5.705]],["body/injectables/SanisResponseMapper.html",[0,0.179,3,0.012,4,0.025,5,0.006,7,0.08,8,0.932,27,0.483,29,0.888,30,0.001,31,0.679,32,0.161,33,0.547,35,1.309,47,0.371,95,0.15,99,0.877,100,1.766,101,0.009,103,0,104,0,112,0.617,177,0.963,226,0.752,236,1.662,239,1.783,345,1.674,349,1.278,379,0.658,437,1.703,480,1.46,484,4.047,486,1.582,539,1.029,541,1.259,556,2.745,593,4.488,603,2.292,651,2.512,652,2.512,655,4.647,777,3.121,819,1.845,970,3.758,984,2.268,1271,2.413,1274,1.664,2250,4.676,2940,3.552,3060,2.29,3078,2.625,4486,7.118,4602,5.574,6028,4.861,6540,5.431,8248,3.227,8498,8.697,8501,6.8,8506,5.925,8509,9.247,8511,4.405,8522,3.496,8529,7.597,8531,4.888,8888,4.119,9619,7.43,9802,5.168,9803,5.168,11094,4.6,11239,4.6,11243,8.808,11245,4.861,12024,5.925,12849,7.048,13082,7.186,13083,7.186,13724,4.861,14635,4.861,16923,6.511,18022,4.861,18024,6.511,18031,4.6,18032,4.6,18050,4.861,18062,10.936,18078,12.118,18079,9.246,18080,7.772,18081,7.772,18082,7.772,18083,7.772,18084,7.772,18085,5.258,18086,7.772,18087,5.258,18088,7.772,18089,5.258,18090,7.772,18091,7.772,18092,5.258,18093,7.772,18094,5.258,18095,5.258,18096,5.258,18097,5.258,18098,5.258,18099,5.258,18100,5.258,18101,5.258,18102,5.258,18103,5.258,18104,5.258,18105,5.258,18106,5.258,18107,5.258,18108,5.258,18109,5.258,18110,5.258,18111,5.258,18112,5.258,18113,5.258,18114,9.246,18115,5.258,18116,7.772,18117,4.861,18118,5.258,18119,5.258,18120,5.258,18121,5.258,18122,5.258,18123,7.772,18124,5.258,18125,5.258,18126,5.258,18127,5.258,18128,5.258,18129,5.258,18130,5.258,18131,5.258,18132,5.258,18133,5.258,18134,5.258]],["title/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[105,0.735,11243,5.503]],["body/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[3,0.024,4,0.024,5,0.012,7,0.153,30,0.001,32,0.164,47,0.907,95,0.128,101,0.017,103,0.001,104,0.001,105,1.088,107,2.419,112,0.955,276,4.285,970,4.874,11243,9.715,17147,7.182,18016,7.331,18023,7.182,18029,9.319,18030,9.319,18031,11.64,18032,11.64,18117,12.301]],["title/interfaces/ScanResult.html",[105,0.735,1135,4.339]],["body/interfaces/ScanResult.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.169,33,0.649,47,1.004,55,1.994,101,0.02,103,0.001,104,0.001,105,1.337,107,2.224,112,0.907,119,2.703,986,4.372,1104,7.488,1113,6.932,1115,9.232,1117,7.096,1119,7.378,1128,6.479,1132,8.107,1133,7.763,1134,7.488,1135,7.279,1136,8.47,1137,8.47]],["title/classes/ScanResultDto.html",[0,0.231,10216,5.705]],["body/classes/ScanResultDto.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.739,30,0.001,31,0.531,32,0.171,33,0.455,47,0.818,95,0.12,101,0.016,103,0.001,104,0.001,112,0.92,154,2.027,181,3.102,347,4.584,379,1.186,381,3.186,1924,5.572,1925,6.631,6236,6.048,6257,8.198,10123,8.453,10126,7.055,10127,7.055,10216,11.2,18135,13.036,18136,9.485,18137,11.59,18138,9.485]],["title/classes/ScanResultParams.html",[0,0.231,6306,4.528]],["body/classes/ScanResultParams.html",[0,0.453,2,0.698,3,0.015,4,0.021,5,0.01,7,0.095,26,2.562,27,0.417,30,0.001,32,0.17,33,0.58,39,1.678,47,0.956,95,0.158,99,1.04,101,0.022,103,0,104,0,105,0.673,112,0.698,119,2.072,138,1.852,143,1.388,147,4.72,148,1.979,149,4.206,150,1.421,151,5.845,153,1.418,154,1.333,245,3.626,247,2.73,248,5.048,249,4.473,348,3.113,803,4.936,804,6.634,834,3.192,847,2.979,984,2.69,986,3.442,1075,3.663,1135,6.487,1136,6.67,1137,6.67,1194,2.144,1276,2.748,2677,4.597,2860,5.017,3570,3.053,4206,2.115,5904,6.528,6236,5.13,6249,7.242,6255,6.033,6284,3.073,6287,4.283,6288,4.36,6289,4.36,6292,7.751,6295,4.36,6296,8.042,6297,7.73,6298,7.73,6299,4.36,6300,4.283,6301,6.877,6302,4.283,6303,4.36,6304,4.212,6305,5.938,6306,5.845,6307,4.212,6308,4.283,6309,4.212,6310,4.212,6311,3.973,6312,4.36,6313,4.36,6314,4.36,6315,3.973,6316,3.973,6317,4.085,6318,4.146,6319,4.36,18139,10.182,18140,6.236,18141,6.236,18142,6.236]],["title/entities/SchoolEntity.html",[154,1.456,644,3.108]],["body/entities/SchoolEntity.html",[0,0.291,3,0.011,4,0.011,5,0.006,7,0.13,27,0.515,30,0.001,31,0.537,32,0.169,33,0.636,47,0.898,83,2.633,95,0.138,96,1.275,101,0.017,102,2.332,103,0,104,0,105,0.501,112,0.681,119,2.102,128,1.869,133,2.474,138,2.288,143,3.056,144,4.37,145,2.664,154,1.512,155,1.548,160,6.208,172,4.064,173,1.372,175,2.052,178,1.927,180,0.831,181,1.242,182,1.509,236,1.151,261,3.36,480,1.288,486,1.396,556,1.782,593,1.718,644,3.229,655,5.191,834,1.455,971,2.553,988,3.244,1654,2.203,1660,4.31,1982,1.845,2289,4.779,2500,4.433,2608,5.803,2611,3.861,2615,3.861,2616,5.543,3073,4.508,3074,3.998,4266,3.306,4272,3.861,4282,2.031,4332,6.379,4349,3.537,4350,5.543,4522,6.761,5039,3.935,6531,7.094,6539,6.379,6546,4.29,6553,4.569,6604,4.342,6623,5.393,6624,3.451,6818,4.779,6938,2.754,6939,4.342,8531,6.033,8535,3.451,8536,5.717,8548,4.641,8549,3.451,9871,7.13,10115,2.918,10377,6.397,10835,6.67,11583,5.543,12191,5.543,12192,3.887,12193,7.313,12194,6.978,12195,6.589,12196,6.836,12197,8.096,12198,3.749,12199,3.749,12200,3.887,12201,3.749,12202,3.887,12203,3.887,12204,5.927,12205,3.887,12206,3.887,12207,3.887,12208,3.887,12209,3.887,12210,3.887,12211,3.887,12212,3.887,12213,6.93,12214,3.887,12215,3.887,12216,7.752,12217,5.927,12218,5.927,12219,5.927,12220,4.947,12221,5.543,12222,3.451,12223,3.749,12224,3.887,12225,5.927,12226,3.537,12227,3.887,12228,3.887,12229,5.717,12230,3.749,12231,3.306,12232,3.887,18143,4.64,18144,4.64,18145,4.64,18146,4.64,18147,4.64,18148,4.64,18149,4.64,18150,4.64,18151,4.64,18152,4.64,18153,4.64,18154,4.29,18155,4.64]],["title/classes/SchoolExternalTool.html",[0,0.231,1836,3.627]],["body/classes/SchoolExternalTool.html",[0,0.238,2,0.785,3,0.016,4,0.016,5,0.008,7,0.106,8,1.143,27,0.542,29,0.947,30,0.001,31,0.681,32,0.178,33,0.616,34,1.845,35,0.842,47,0.954,55,2.616,95,0.147,101,0.016,103,0.001,104,0.001,105,0.756,112,0.757,180,1.708,181,2.551,347,4.257,349,0.724,379,0.876,381,2.354,382,2.114,564,4.304,1276,2.979,1683,6.759,1836,5.076,1867,3.409,1924,4.116,1925,4.899,1982,2.787,2580,7.614,4206,3.943,4282,3.067,4283,4.159,4284,5.212,5397,8.283,5399,7.537,5765,5.49,5769,8.86,5777,5.097,5779,5.49,5780,4.659,5781,4.993,5782,5.341,5789,4.659,5790,5.097,5791,6.791,5792,5.212,7321,8.223,8857,6.343,9012,5.097,9013,5.49,18156,11.582,18157,9.737,18158,9.531,18159,7.007,18160,7.007,18161,7.007,18162,7.007,18163,7.007,18164,7.007]],["title/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.231,18165,5.705]],["body/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,27,0.465,29,0.713,30,0.001,31,0.513,32,0.168,33,0.44,95,0.144,101,0.015,103,0.001,104,0.001,112,0.901,138,1.666,150,2.087,245,2.974,284,4.088,379,1.146,556,2.308,564,3.954,654,2.725,809,6.405,812,6.47,814,4.605,829,5.085,1073,7.564,2017,5.637,2484,5.594,2486,4.27,5802,8.887,5803,8.47,18165,9.504,18166,11.394,18167,11.048]],["title/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.231,18167,5.503]],["body/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,26,2.4,27,0.527,29,0.938,30,0.001,31,0.675,32,0.179,33,0.544,47,0.851,55,2.177,95,0.144,99,1.278,101,0.013,103,0.001,104,0.001,112,0.803,138,2.279,149,4.31,150,1.746,245,3.493,379,0.958,556,1.93,564,4.03,814,3.851,1237,4.37,1982,3.047,2017,5.831,2484,5.957,2486,4.351,5056,6.131,5789,5.094,5804,7.083,5805,7.92,5806,6.402,5808,9.354,5810,7.083,5811,7.083,5812,7.083,5813,9.44,5814,9.354,5815,7.083,5816,6.702,5817,6.418,5818,7.083,5821,7.083,5822,5.018,5823,7.083,5824,7.083,5825,6.002,5826,7.083,18166,12.134,18167,10.124]],["title/entities/SchoolExternalToolEntity.html",[154,1.456,5848,4.953]],["body/entities/SchoolExternalToolEntity.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.116,27,0.493,30,0.001,32,0.164,55,2.433,95,0.159,96,2.097,101,0.017,103,0.001,104,0.001,105,0.824,112,0.801,138,2.188,143,2.679,154,2.157,155,2.547,172,3.61,173,2.257,174,4.014,178,3.17,180,1.368,181,2.043,182,2.483,564,4.209,644,5.71,654,3.579,1669,5.255,2486,3.989,4266,5.438,4272,5.507,4273,4.63,5039,5.521,5399,7.068,5791,5.438,5792,5.677,5840,6.167,5846,9.538,5848,7.341,5851,6.394,5852,4.929,6610,4.741,6611,4.579,6818,5.155,7321,7.772,8761,8.574,11135,5.336,12042,8.156,12183,8.455,12184,11.569,12185,10.526,12186,7.056,12187,7.056,12188,7.056,12189,7.056,12190,7.056,18168,7.632,18169,7.632,18170,7.632,18171,7.632]],["title/classes/SchoolExternalToolFactory.html",[0,0.231,18172,6.296]],["body/classes/SchoolExternalToolFactory.html",[0,0.166,2,0.547,3,0.011,4,0.011,5,0.006,7,0.074,8,0.882,27,0.532,29,1.028,30,0.001,31,0.728,32,0.182,33,0.602,34,1.253,35,1.457,47,0.745,55,2.479,59,3.282,95,0.125,101,0.008,103,0,104,0,112,0.584,120,3.235,133,2.571,140,2.734,153,2.011,154,1.891,155,2.454,177,1.346,180,1.318,236,0.794,271,4.911,319,3.32,347,1.788,349,0.76,379,0.611,382,3.881,413,2.264,437,0.951,447,7.079,448,4.55,449,5.564,452,4.155,453,5.564,454,5.629,455,4.155,456,4.155,457,4.155,458,4.082,459,4.54,460,4.999,461,6.675,462,5.862,463,7.031,464,2.784,469,2.759,470,4.155,471,2.784,472,5.204,473,5.373,474,4.206,475,5.053,476,4.118,477,2.759,478,2.6,479,4.158,480,3.432,481,2.686,482,2.642,483,2.759,484,5.126,485,2.784,486,3.567,487,4.91,488,2.759,489,7.188,490,4.204,491,6.699,492,2.784,493,3.647,494,2.759,495,2.784,496,2.759,497,2.784,498,2.759,501,2.759,502,6.161,503,2.784,504,2.759,505,4.155,506,3.886,507,4.155,508,2.784,509,2.664,510,2.642,511,2.181,512,2.759,513,2.759,514,2.759,515,2.784,516,2.784,517,1.872,518,2.759,519,1.512,520,2.784,521,2.912,522,2.759,523,2.784,525,2.839,526,2.898,527,2.929,564,2.716,708,2.028,1836,2.6,1839,2.406,2580,4.817,4206,3.34,4314,6.304,4316,3.551,5397,3.479,5399,2.868,5405,4.09,5863,3.945,5868,3.824,5943,3.479,8857,4.013,18157,4.09,18172,8.179,18173,7.353,18174,7.353,18175,7.353,18176,4.882,18177,4.882,18178,4.882]],["title/classes/SchoolExternalToolIdParams.html",[0,0.231,18179,5.335]],["body/classes/SchoolExternalToolIdParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,47,0.83,95,0.149,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,142,4.6,143,2.618,144,3.2,145,3.265,148,3.083,150,2.213,245,3.083,256,6.922,564,4.035,803,4.799,2486,3.899,5807,9.198,5872,8.138,5873,8.498,7321,7.304,18179,9.212,18180,9.502]],["title/classes/SchoolExternalToolIdParams-1.html",[0,0.192,708,2.352,18179,4.435]],["body/classes/SchoolExternalToolIdParams-1.html",[0,0.402,2,1.101,3,0.023,4,0.023,5,0.012,7,0.149,26,2.693,27,0.403,30,0.001,32,0.134,95,0.161,99,1.64,101,0.016,103,0.001,104,0.001,112,0.941,138,1.788,148,3.12,150,2.24,245,3.106,256,7.007,564,3.637,803,4.834,2484,5.377,2486,3.927,5807,9.247,5875,7.152,5876,7.946,18179,9.28,18181,10.952]],["title/modules/SchoolExternalToolModule.html",[201,1.804,5882,5.335]],["body/modules/SchoolExternalToolModule.html",[0,0.293,3,0.02,4,0.02,5,0.01,30,0.001,95,0.16,101,0.014,103,0.001,104,0.001,201,3.177,203,3.104,204,3.335,205,3.432,206,3.418,207,3.404,208,4.392,209,4.51,218,4.346,219,3.362,220,3.283,225,4.31,226,1.234,560,3.553,564,3.682,2486,2.862,5079,4.97,5375,9.664,5385,6.974,5881,10.128,5882,11.093,6124,9.338,7321,5.361,18182,8.631,18183,8.631,18184,8.631,18185,8.631,18186,11.766,18187,8.631]],["title/classes/SchoolExternalToolPostParams.html",[0,0.231,18188,5.705]],["body/classes/SchoolExternalToolPostParams.html",[0,0.394,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,27,0.503,29,0.904,30,0.001,32,0.182,33,0.502,47,0.867,55,2.251,95,0.156,101,0.013,103,0.001,104,0.001,112,0.831,138,2.235,143,1.795,148,2.558,149,3.979,150,1.836,245,3.222,248,4.846,249,4.231,363,4.514,564,4.216,803,4.739,1237,4.597,2344,4.597,2486,4.222,3431,7.453,4206,3.939,5056,6.285,5536,6.664,5888,7.452,5895,9.707,5896,6.752,5897,6.752,5898,6.752,5900,7.452,5901,7.452,5903,5.069,5904,5.857,7321,7.91,8857,6.337,18180,10.291,18188,8.762,18189,8.06,18190,9.671,18191,8.06,18192,8.06,18193,8.06]],["title/interfaces/SchoolExternalToolProps.html",[105,0.735,18157,5.705]],["body/interfaces/SchoolExternalToolProps.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.119,29,0.982,30,0.001,31,0.707,32,0.18,33,0.621,34,2.07,47,0.992,55,2.715,95,0.154,101,0.017,103,0.001,104,0.001,105,0.844,107,1.878,112,0.815,180,1.402,181,2.094,347,4.62,349,0.808,564,3.15,1276,2.446,1683,5.966,1836,4.168,1867,3.807,1924,4.597,1925,5.471,1982,3.112,2580,8.263,4206,4.279,4282,3.425,4283,4.645,4284,5.82,5397,8.989,5399,7.749,5765,6.13,5769,5.965,5779,6.13,5780,5.203,5781,5.576,5782,5.965,5789,5.203,5790,5.692,5791,7.311,5792,5.82,7321,4.86,8857,6.884,9012,5.692,9013,6.13,18156,6.846,18157,9.589]],["title/classes/SchoolExternalToolRefDO.html",[0,0.231,5775,5.503]],["body/classes/SchoolExternalToolRefDO.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,27,0.508,29,0.723,30,0.001,31,0.52,32,0.169,33,0.595,47,0.913,101,0.015,103,0.001,104,0.001,112,0.909,181,3.062,379,1.162,381,3.12,564,4.252,2486,4.291,4206,4.206,4283,5.513,4284,6.908,5775,10.739,5867,9.019,6009,8.587,7321,8.038,18156,11.322,18194,9.288,18195,11.441,18196,9.288,18197,9.288]],["title/injectables/SchoolExternalToolRepo.html",[539,0.901,1744,5.065]],["body/injectables/SchoolExternalToolRepo.html",[0,0.132,3,0.009,4,0.009,5,0.005,7,0.059,8,0.74,10,2.507,12,2.831,18,3.122,26,2.331,27,0.534,29,1.016,30,0.001,31,0.726,32,0.177,33,0.622,34,1.486,35,1.546,36,2.693,40,1.881,47,0.8,95,0.153,96,1.695,97,1.686,99,0.649,101,0.006,103,0,104,0,112,0.309,133,2.157,154,1.865,155,2.558,173,1.151,177,1.129,180,1.106,236,1.247,262,2.92,310,2.674,349,1.224,379,0.487,381,1.307,382,3.691,437,1.532,448,3.142,519,1.205,539,0.817,541,0.931,564,3.756,603,2.38,608,1.767,644,1.775,654,2.28,680,4.313,686,2.912,687,4.814,718,2.159,738,6.422,1274,1.231,1601,4.489,1744,4.589,1836,6.6,1839,1.917,1938,2.219,2237,8.693,2239,4.396,2240,4.396,2241,4.396,2242,4.396,2243,4.313,2244,4.313,2245,4.396,2246,4.313,2247,4.396,2248,2.83,2249,5.024,2250,3.576,2251,3.939,2253,4.487,2254,2.772,2256,5.024,2257,2.772,2259,2.772,2261,6.231,2262,4.313,2263,2.772,2265,2.772,2267,4.396,2271,4.396,2273,4.167,2274,4.313,2276,2.772,2278,2.334,2279,2.388,2280,2.772,2282,2.772,2284,2.72,2285,2.772,2291,2.628,2302,5.36,2303,5.702,2325,5.168,2338,3.404,2486,2.542,2565,1.917,4206,2.601,4386,2.479,4523,2.894,4691,3.236,5399,3.624,5504,3.115,5848,8.897,5852,3.984,5907,3.404,5908,5.704,5913,5.704,5921,5.168,5930,2.83,5931,2.83,5932,2.83,5933,2.83,5934,2.83,5935,2.83,5936,2.83,5937,2.83,5938,2.83,5942,2.772,5943,5.463,5944,3.144,5945,3.404,5946,2.966,5948,3.588,5949,3.597,5950,2.72,5957,3.597,5963,3.597,5970,3.597,5971,3.597,7340,2.417,8761,2.772,8857,5.191,9089,3.597,9090,2.966,9091,3.597,12183,8.48,12185,3.404,14720,3.259,18198,10.174,18199,6.169,18200,6.169,18201,5.704,18202,9.808,18203,3.89,18204,8.856,18205,6.169,18206,3.89,18207,3.89,18208,3.89,18209,6.169,18210,3.89,18211,5.704,18212,3.89,18213,3.89,18214,3.89,18215,3.89,18216,3.89,18217,3.89,18218,3.89,18219,3.89,18220,3.144,18221,3.89,18222,3.404,18223,3.404,18224,3.89,18225,3.89]],["title/injectables/SchoolExternalToolRequestMapper.html",[539,0.901,18226,5.705]],["body/injectables/SchoolExternalToolRequestMapper.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.126,8,1.281,27,0.438,29,0.918,30,0.001,31,0.661,32,0.146,33,0.513,35,1.283,95,0.158,101,0.014,103,0.001,104,0.001,141,3.978,226,1.191,349,1.218,480,2.312,539,1.414,541,1.993,564,4.11,603,2.369,785,4.157,2486,3.91,2580,7.725,4206,2.825,5399,4.891,5780,5.537,5895,9.807,5942,5.934,5977,6.729,5979,10.318,5983,7.285,5985,8.949,5992,7.699,5993,7.285,5994,6.976,5995,7.285,7321,7.325,8857,4.544,18188,10.422,18226,8.949,18227,10.904,18228,10.682,18229,8.327,18230,10.682,18231,8.327,18232,10.318,18233,7.285,18234,8.327,18235,8.327,18236,8.327]],["title/classes/SchoolExternalToolResponse.html",[0,0.231,18237,5.503]],["body/classes/SchoolExternalToolResponse.html",[0,0.233,2,0.767,3,0.016,4,0.016,5,0.008,7,0.104,27,0.54,29,0.897,30,0.001,31,0.645,32,0.182,33,0.514,34,1.824,47,0.941,55,2.02,95,0.136,101,0.011,103,0.001,104,0.001,112,0.745,131,2.567,138,2.362,149,4.073,150,1.561,245,3.582,347,3.921,363,3.837,379,0.857,404,2.796,556,1.726,564,4.331,814,3.444,819,2.404,834,2.148,1237,3.908,1924,4.025,1982,2.725,2017,2.999,2859,4.205,3748,5.368,4206,3.632,4283,4.067,5399,6.289,5789,4.556,5791,4.883,5806,6.05,5822,4.488,5997,5.995,5998,7.585,5999,8.211,6000,5.995,6001,5.995,6002,5.995,6003,5.995,6004,9.021,6005,5.995,6006,5.995,6007,5.995,6008,5.223,6014,5.995,6015,6.335,6016,5.995,7321,8.279,8857,5.842,9012,4.984,9295,5.995,17047,6.335,18180,10.771,18237,9.748,18238,10.105,18239,5.995,18240,6.852,18241,6.852,18242,6.852]],["title/injectables/SchoolExternalToolResponseMapper.html",[539,0.901,18243,5.705]],["body/injectables/SchoolExternalToolResponseMapper.html",[0,0.251,3,0.017,4,0.017,5,0.009,7,0.112,8,1.183,27,0.455,29,0.924,30,0.001,31,0.693,32,0.152,33,0.534,34,1.257,35,1.336,95,0.161,101,0.012,103,0.001,104,0.001,131,2.764,226,1.055,236,1.606,347,3.615,349,1.149,437,0.955,480,2.049,539,1.306,541,1.767,564,4.108,603,2.234,777,4.381,785,3.685,1715,3.108,1836,7.127,1893,6.456,2486,3.936,2580,8.341,3669,4.907,4206,2.503,5399,4.335,5485,5.964,5780,4.907,5905,5.626,6004,9.301,6022,6.456,6030,6.182,6031,6.823,7321,7.374,8602,5.964,8625,6.182,8629,6.456,8857,4.027,9126,6.823,9185,6.823,9186,6.823,9187,6.823,11346,5.368,18227,10.976,18237,9.594,18238,6.182,18243,8.268,18244,9.87,18245,9.87,18246,9.87,18247,9.87,18248,7.38,18249,9.87,18250,9.87,18251,6.823,18252,9.316,18253,7.38,18254,7.38,18255,7.38,18256,7.38,18257,7.38,18258,7.38,18259,7.38,18260,7.38,18261,6.823]],["title/injectables/SchoolExternalToolRule.html",[539,0.901,1706,5.705]],["body/injectables/SchoolExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.17,27,0.452,29,0.859,30,0.001,31,0.618,32,0.161,33,0.529,35,1.173,95,0.161,101,0.012,103,0.001,104,0.001,119,2.579,131,4.131,154,2.85,177,1.329,226,1.038,239,3.092,345,2.311,349,1.008,379,0.908,437,0.939,539,1.292,541,1.738,564,3.891,604,4.481,662,3.985,1276,2.269,1606,6.383,1634,7.872,1655,4.356,1672,7.856,1706,8.178,1813,4.689,1817,6.063,1824,6.491,1836,7.012,1839,3.578,3349,6.491,3350,4.904,3353,6.394,3356,4.904,3357,6.594,3358,7.261,5848,9.7,5852,4.689,5943,6.956,6050,6.712,6051,6.712,6052,6.712,6053,6.712,6054,6.956,18220,5.867,18262,11.794,18263,6.712]],["title/classes/SchoolExternalToolScope.html",[0,0.231,18204,5.958]],["body/classes/SchoolExternalToolScope.html",[0,0.252,2,0.829,3,0.017,4,0.017,5,0.009,7,0.112,8,1.186,26,2.757,27,0.533,29,0.926,30,0.001,31,0.666,32,0.178,33,0.57,35,1.189,95,0.141,99,1.236,101,0.012,103,0.001,104,0.001,112,0.786,119,2.267,180,1.773,310,3.21,349,1.022,382,3.738,480,2.057,486,2.228,519,2.295,556,3.331,564,3.651,603,2.56,654,2.203,2288,6.613,2486,2.456,4206,3.779,5504,5.44,5848,5.388,5852,4.784,5943,5.278,6057,6.48,6058,6.683,6059,6.683,6060,6.683,6065,6.683,6066,6.683,6067,5.087,6068,5.003,6069,5.087,6070,5.087,6079,5.003,6080,6.683,6081,5.087,6082,5.003,6083,5.087,6084,5.003,6085,6.683,8857,6.079,9346,6.848,10296,8.656,10305,8.656,17051,9.147,17055,9.147,18198,10.3,18204,8.656,18264,7.407,18265,7.407]],["title/classes/SchoolExternalToolSearchListResponse.html",[0,0.231,18252,5.705]],["body/classes/SchoolExternalToolSearchListResponse.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,27,0.466,29,0.717,30,0.001,31,0.516,32,0.169,33,0.442,95,0.144,101,0.015,103,0.001,104,0.001,112,0.903,138,1.674,150,2.097,245,2.983,284,4.094,379,1.151,556,2.318,564,4.202,654,2.737,808,8.799,809,6.434,812,6.489,814,4.626,829,5.108,2486,4.094,5802,8.913,6087,8.051,7321,7.67,18180,9.979,18237,11.059,18252,9.531]],["title/classes/SchoolExternalToolSearchParams.html",[0,0.231,18266,5.958]],["body/classes/SchoolExternalToolSearchParams.html",[0,0.403,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.404,30,0.001,32,0.135,47,0.837,95,0.15,101,0.016,103,0.001,104,0.001,112,0.942,138,1.793,148,3.128,150,2.246,245,3.11,248,4.951,564,4.055,803,4.841,2486,3.933,4206,4.317,7321,7.369,9350,8.623,9353,8.623,18180,9.586,18190,9.113,18266,10.378]],["title/injectables/SchoolExternalToolService.html",[539,0.901,6124,4.528]],["body/injectables/SchoolExternalToolService.html",[0,0.187,3,0.013,4,0.013,5,0.007,7,0.084,8,0.964,12,3.691,26,2.457,27,0.503,29,0.956,30,0.001,31,0.702,32,0.168,33,0.589,35,1.439,36,2.775,95,0.156,99,0.919,101,0.009,103,0,104,0,177,1.473,226,0.788,227,2.269,236,0.896,262,2.966,310,2.388,347,2.946,349,1.148,379,1.006,437,1.437,539,1.065,541,1.319,564,4.23,603,2.591,608,2.831,928,3.032,1715,2.321,1744,8.629,1836,7.427,1839,2.715,1867,2.681,2486,3.464,2565,6.271,4206,1.869,5392,4.453,5397,7.444,5807,5.851,5942,3.926,6101,5.094,6103,5.094,6124,5.349,6131,3.511,6140,3.382,6166,7.352,7321,7.779,8607,6.77,8692,4.821,8961,4.2,9325,4.821,18202,9.658,18233,4.821,18267,11.579,18268,8.044,18269,8.044,18270,8.044,18271,8.044,18272,7.437,18273,8.044,18274,5.51,18275,5.51,18276,5.51,18277,8.044,18278,5.51,18279,8.044,18280,5.51,18281,8.044,18282,5.51,18283,8.044,18284,8.044,18285,5.51,18286,8.044,18287,5.51,18288,5.51,18289,5.51,18290,5.094,18291,5.51,18292,8.044,18293,5.51,18294,5.51,18295,5.51,18296,5.51,18297,8.784,18298,5.51,18299,5.51]],["title/injectables/SchoolExternalToolUc.html",[539,0.901,18300,5.705]],["body/injectables/SchoolExternalToolUc.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.874,26,2.912,27,0.47,29,0.893,30,0.001,31,0.643,32,0.157,33,0.55,34,0.822,35,1.327,36,2.699,39,3.252,47,0.62,95,0.15,99,0.805,101,0.008,103,0,104,0,131,4.897,177,1.791,226,0.69,236,1.429,262,2.924,305,2.777,310,3.806,349,1.011,379,0.911,437,1.641,539,0.964,541,1.155,560,1.986,564,4.098,603,2.304,608,2.988,643,3.238,928,4.01,1606,6.543,1612,2.926,1715,2.031,1836,7.273,2469,2.189,2486,2.416,2982,2.701,4206,1.636,5807,8.962,5883,7.409,5942,3.437,6116,4.22,6123,8.533,6124,7.346,6125,4.459,6131,7.309,6139,3.779,6140,2.96,7321,7.336,8642,7.683,8652,4.22,8667,3.677,8668,9.714,8669,4.459,8687,6.375,8688,9.714,8692,4.22,9498,6.737,18186,9.61,18232,11.526,18272,6.737,18290,6.737,18297,6.737,18300,6.104,18301,11.811,18302,8.119,18303,6.737,18304,6.737,18305,8.119,18306,4.459,18307,4.823,18308,4.823,18309,4.823,18310,7.287,18311,4.823,18312,4.823,18313,7.287,18314,9.786,18315,7.287,18316,4.823,18317,4.823,18318,4.823,18319,4.823,18320,7.287,18321,4.823,18322,4.823,18323,4.823,18324,4.823]],["title/injectables/SchoolExternalToolValidationService.html",[539,0.901,18186,5.705]],["body/injectables/SchoolExternalToolValidationService.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,27,0.46,29,0.875,30,0.001,31,0.629,32,0.154,33,0.539,35,1.202,36,2.129,55,2.756,95,0.162,101,0.012,103,0.001,104,0.001,177,1.831,226,1.077,236,1.225,262,2.462,274,4.519,283,6.14,340,3.62,361,4.256,379,1.251,437,0.974,519,3.099,529,2.131,539,1.324,541,1.803,564,4.166,603,2.503,608,1.736,1715,3.172,1836,6.961,1839,3.712,2486,3.968,2565,5.536,5056,5.415,5382,10.238,5409,5.901,5422,6.589,6140,4.623,6164,6.553,6166,7.861,6171,5.901,6176,6.964,7321,7.434,8647,5.901,8689,5.478,18186,8.381,18267,11.066,18325,10.005,18326,7.532,18327,10.005,18328,12.459,18329,7.532,18330,11.234,18331,10.005,18332,7.532,18333,7.532,18334,7.532,18335,7.532,18336,7.532]],["title/classes/SchoolForGroupNotFoundLoggable.html",[0,0.231,16440,5.958]],["body/classes/SchoolForGroupNotFoundLoggable.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.343,27,0.459,29,0.699,30,0.001,31,0.503,32,0.123,33,0.431,35,1.079,95,0.142,100,3.015,101,0.015,103,0.001,104,0.001,177,1.643,284,2.773,292,4.543,345,2.857,349,0.927,379,1.123,654,2.67,970,6.489,1021,3.512,1271,5.603,1272,6.267,1274,2.84,1276,3.501,1277,6.301,3021,6.397,8368,6.312,8369,6.556,8498,9.747,8501,7.854,11183,7.854,16440,9.8,18337,12.211,18338,8.3,18339,8.3,18340,8.3,18341,8.3,18342,7.854,18343,8.977,18344,8.977,18345,8.977]],["title/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.231,18346,6.296]],["body/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.282,2,0.928,3,0.019,4,0.019,5,0.01,7,0.126,8,1.277,26,2.631,27,0.436,29,0.646,30,0.001,31,0.465,32,0.113,33,0.398,34,2.24,35,0.996,47,0.928,59,2.577,95,0.135,99,1.383,101,0.014,103,0.001,104,0.001,177,2.155,239,2.948,284,2.561,349,0.857,361,7.019,379,1.332,603,2.364,654,3.911,1021,3.244,1271,5.401,1272,6.04,1274,2.624,1276,3.33,1277,6.121,4206,4.214,4283,4.922,4507,5.258,8368,6.084,8369,6.319,11775,6.947,12860,6.701,18346,9.85,18347,10.298,18348,8.293,18349,8.293,18350,11.771,18351,8.293,18352,11.771,18353,8.293,18354,8.293,18355,8.293]],["title/classes/SchoolIdParams.html",[0,0.231,18356,5.335]],["body/classes/SchoolIdParams.html",[0,0.403,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,26,2.699,27,0.405,30,0.001,32,0.135,95,0.162,99,1.648,101,0.016,103,0.001,104,0.001,112,0.943,128,4.786,138,1.797,148,3.136,150,2.251,245,3.115,256,7.041,803,4.848,4206,4.321,4507,5.308,5876,7.985,5889,7.985,18356,9.307,18357,11.881]],["title/classes/SchoolIdParams-1.html",[0,0.192,708,2.352,18356,4.435]],["body/classes/SchoolIdParams-1.html",[0,0.405,2,1.112,3,0.023,4,0.023,5,0.012,7,0.151,26,2.704,27,0.407,30,0.001,32,0.136,95,0.162,99,1.656,101,0.016,103,0.001,104,0.001,112,0.946,138,1.806,148,3.151,150,2.262,245,3.124,256,7.076,803,4.863,2484,5.408,4206,4.331,5875,7.223,5876,8.024,18181,11.017,18356,9.335]],["title/classes/SchoolInMigrationError.html",[0,0.231,15625,5.958]],["body/classes/SchoolInMigrationError.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.539,29,0.602,30,0.001,31,0.433,32,0.186,33,0.546,35,0.929,47,0.803,52,4.864,55,1.664,59,2.403,95,0.129,101,0.013,103,0.001,104,0.001,112,0.808,128,4.101,138,2.286,177,2.495,180,1.825,182,2.516,226,1.106,239,1.775,340,3.717,347,2.833,379,0.967,382,3.893,595,6.403,654,2.3,816,5.55,819,2.714,946,5.281,984,5.217,986,4.089,1021,4.452,1201,8.289,1202,7.168,1203,3.862,1204,7.252,1208,4.995,1209,4.293,1210,4.995,1211,4.995,1212,4.995,1213,4.995,1214,4.995,1215,4.641,1216,4.412,1222,4.864,1633,7.151,2431,5.067,3464,5.753,7094,4.804,13736,5.753,13771,8.53,15625,8.908,18358,10.182,18359,6.767,18360,7.735]],["title/classes/SchoolInUserMigrationEndLoggable.html",[0,0.231,18361,6.296]],["body/classes/SchoolInUserMigrationEndLoggable.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.35,27,0.461,29,0.705,30,0.001,31,0.507,32,0.124,33,0.435,35,1.088,47,0.865,52,6.128,95,0.115,101,0.015,103,0.001,104,0.001,177,1.658,239,2.813,284,2.798,345,2.883,349,0.936,379,1.133,654,2.694,1021,3.543,1271,5.626,1272,6.292,1274,2.866,1276,3.521,1277,6.321,3229,5.496,4507,5.477,8368,6.337,8369,6.582,12402,9.119,18347,10.726,18361,10.415,18362,9.058,18363,9.058,18364,9.058,18365,9.058,18366,8.375]],["title/classes/SchoolInUserMigrationStartLoggable.html",[0,0.231,18367,6.296]],["body/classes/SchoolInUserMigrationStartLoggable.html",[0,0.289,2,0.952,3,0.02,4,0.02,5,0.01,7,0.129,8,1.298,26,2.656,27,0.443,29,0.662,30,0.001,31,0.476,32,0.116,33,0.408,35,1.022,39,2.912,47,0.841,52,5.989,95,0.137,99,1.418,101,0.014,103,0.001,104,0.001,119,2.424,177,2.18,191,4.602,239,2.733,284,2.626,321,6.185,349,0.878,379,1.354,603,2.392,654,3.22,1021,3.326,1271,5.465,1272,6.112,1274,2.69,1276,3.384,1277,6.178,1285,5.491,4507,5.321,4701,5.743,8368,6.156,8369,6.394,10779,6.871,12402,9.326,12779,11.011,18347,10.42,18366,7.861,18367,10.009,18368,7.861,18369,7.861,18370,8.503,18371,8.503,18372,8.503]],["title/classes/SchoolInfoMapper.html",[0,0.231,15150,5.958]],["body/classes/SchoolInfoMapper.html",[0,0.326,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,8,1.399,27,0.393,29,0.747,30,0.001,31,0.654,32,0.131,33,0.461,34,1.635,35,1.153,95,0.148,99,1.601,100,3.921,101,0.016,103,0.001,104,0.001,236,1.561,349,0.991,413,3.874,437,1.241,644,5.973,778,6.48,785,4.792,15122,10.577,15150,10.213,18373,11.674,18374,8.397,18375,11.674,18376,8.397,18377,9.598,18378,9.598,18379,9.598]],["title/classes/SchoolInfoResponse.html",[0,0.231,15122,5.503]],["body/classes/SchoolInfoResponse.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.498,29,0.693,30,0.001,31,0.769,32,0.166,33,0.427,34,2.314,47,0.9,95,0.113,101,0.015,103,0.001,104,0.001,112,0.885,138,2.026,150,2.027,153,2.765,154,2.724,245,3.189,253,4.357,379,1.393,404,3.631,654,3.791,769,4.503,816,4.083,1982,3.539,2100,6.971,2855,5.829,2856,5.934,2857,5.934,4364,7.784,15122,10.606,18380,12.747,18381,7.784,18382,8.227]],["title/classes/SchoolMigrationError.html",[0,0.231,18383,5.958]],["body/classes/SchoolMigrationError.html",[0,0.259,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,8,1.208,27,0.537,29,0.593,30,0.001,31,0.427,32,0.186,33,0.542,35,0.915,47,0.797,52,4.815,55,1.639,59,3.132,95,0.128,101,0.013,103,0.001,104,0.001,112,0.8,128,4.06,138,2.275,177,2.489,180,1.806,182,2.478,226,1.089,239,1.748,340,3.661,347,2.79,379,0.953,382,3.877,595,4.791,654,2.998,816,5.517,819,2.673,946,5.242,984,5.185,986,4.065,1021,4.419,1150,3.03,1201,8.264,1202,7.132,1203,3.839,1204,7.198,1208,4.92,1209,4.228,1210,4.92,1211,4.92,1212,4.92,1213,4.92,1214,4.92,1215,4.571,1216,4.345,1222,4.791,3856,9.419,4507,4.503,6900,4.732,7094,4.732,8825,6.381,11655,5.428,13736,5.666,13771,8.444,18359,6.664,18383,8.818,18384,9.319,18385,7.618]],["title/interfaces/SchoolMigrationFlags.html",[105,0.735,18386,6.296]],["body/interfaces/SchoolMigrationFlags.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,32,0.166,52,4.888,101,0.017,103,0.001,104,0.001,105,1.104,107,2.455,112,0.963,119,2.818,128,4.122,4507,4.572,18386,11.216,18387,10.233,18388,10.233,18389,13.371,18390,13.371]],["title/injectables/SchoolMigrationService.html",[539,0.901,4514,5.065]],["body/injectables/SchoolMigrationService.html",[0,0.122,3,0.008,4,0.008,5,0.004,7,0.054,8,0.692,27,0.474,29,0.901,30,0.001,31,0.648,32,0.158,33,0.555,35,1.36,36,2.509,47,0.973,52,4.361,55,2.298,59,1.113,95,0.14,99,0.598,101,0.006,103,0,104,0,119,1.477,128,4.75,143,1.286,145,2.311,177,1.524,226,0.512,227,1.475,236,1.67,262,2.837,283,2.199,292,1.813,340,1.722,349,1.06,379,0.722,437,1.591,519,2.248,529,2.761,539,0.764,541,0.858,556,2.097,579,1.908,593,3.614,603,2.499,608,2.836,654,3.279,655,4.905,696,1.413,817,4,931,2.282,986,2.453,1021,1.401,1150,1.425,1174,1.923,1274,1.133,1896,2.895,1897,5.235,1899,3.783,1901,2.006,1902,7.034,2104,7.695,2114,7.695,2145,2.173,2250,2.974,2251,3.758,2256,3.326,2677,3.276,3060,2.515,3072,3.311,3541,1.813,4206,3.925,4507,5.268,4514,4.296,4520,6.628,4522,6.848,4529,5.685,4532,4.296,4535,5.053,4539,2.731,4540,3.001,4641,2.895,4648,2.46,4691,1.879,4701,3.901,4767,6.029,5643,2.225,7094,2.225,7141,5.158,7996,2.806,8531,6.455,12598,2.664,13086,7.377,13090,5.34,13091,5.34,13664,3.001,13746,6.054,14137,4.838,14933,8.041,15455,6.726,16112,2.731,16345,6.348,16442,9.873,16448,3.312,18391,11.791,18392,5.775,18393,5.34,18394,5.775,18395,5.775,18396,5.775,18397,5.34,18398,5.775,18399,5.775,18400,3.312,18401,5.775,18402,9.129,18403,3.582,18404,5.775,18405,7.943,18406,3.582,18407,5.775,18408,8.323,18409,3.582,18410,5.775,18411,5.775,18412,3.582,18413,5.775,18414,3.582,18415,5.775,18416,3.582,18417,5.775,18418,3.582,18419,5.775,18420,3.582,18421,3.582,18422,5.775,18423,3.582,18424,5.775,18425,3.582,18426,3.134,18427,3.582,18428,3.582,18429,3.001,18430,3.001,18431,3.312,18432,3.134,18433,2.731,18434,3.582,18435,3.582,18436,3.582,18437,3.582,18438,3.582,18439,3.582,18440,3.582,18441,3.582,18442,5.775,18443,3.582,18444,3.582,18445,8.323,18446,6.709,18447,5.34,18448,3.582,18449,7.256,18450,3.312,18451,3.582,18452,3.582,18453,5.34,18454,3.582,18455,3.582,18456,5.775,18457,5.775,18458,3.582,18459,3.582,18460,3.582,18461,3.582,18462,5.775,18463,3.582,18464,3.582,18465,3.312,18466,3.582,18467,3.582,18468,3.582,18469,3.582,18470,3.582]],["title/entities/SchoolNews.html",[154,1.456,6949,5.191]],["body/entities/SchoolNews.html",[0,0.344,3,0.012,4,0.021,5,0.006,7,0.172,9,3.623,26,2.146,27,0.212,30,0.001,31,0.43,32,0.138,34,0.881,47,0.87,83,2.357,95,0.153,96,2.515,101,0.018,103,0,104,0,105,0.558,112,0.859,138,0.94,143,2.525,144,3.736,154,2.313,155,1.725,172,3.748,173,1.529,174,3.053,175,2.286,180,1.815,181,2.711,182,1.682,236,1.489,239,2.483,349,0.534,355,5.758,358,4.027,381,1.737,403,5.082,413,1.592,459,4.698,521,3.626,563,4.556,643,2.298,644,5.358,654,3.219,655,3.858,834,2.406,992,4.373,993,4.782,994,4.322,995,4.571,996,4.996,1203,2.923,1221,4.711,1600,1.944,1654,3.645,1660,2.599,1676,3.503,1752,3.387,1770,2.821,1864,2.843,2193,3.704,2503,5.173,2608,4.224,2621,3.037,2677,5.813,2722,2.653,3390,3.551,3392,3.294,3393,3.615,3395,3.684,3396,3.615,3397,3.846,3411,3.173,3544,3.492,3569,3.294,4206,1.754,4298,3.941,4299,3.761,4440,3.761,5039,4.201,5119,3.761,5687,6.659,6283,2.87,6501,3.615,6588,3.173,6590,2.895,6611,3.102,6818,3.492,6824,3.211,6911,3.846,6912,4.178,6914,4.657,6915,4.178,6916,6.809,6917,5.912,6918,4.178,6919,8.884,6920,5.104,6921,4.955,6922,5.709,6923,5.709,6924,6.731,6925,7.548,6926,4.178,6927,5.47,6928,4.178,6929,3.941,6930,3.941,6931,4.957,6932,4.178,6933,3.941,6934,3.941,6935,4.178,6936,3.846,6937,4.178,6938,3.069,6939,3.173,6940,3.941,6941,4.178,6942,4.178,6943,7.172,6944,4.178,6945,7.398,6946,4.178,6947,4.178,6948,5.851,6949,5.851,6950,6.401,6951,4.051,6952,5.028,6953,3.941,6954,3.761,6955,3.941,6956,4.178,18471,5.17]],["title/classes/SchoolNumberDuplicateLoggableException.html",[0,0.231,18472,5.958]],["body/classes/SchoolNumberDuplicateLoggableException.html",[0,0.294,2,0.968,3,0.02,4,0.02,5,0.01,7,0.131,8,1.312,18,4.377,27,0.448,29,0.673,30,0.001,31,0.484,32,0.15,33,0.415,35,1.039,47,0.847,55,2.715,95,0.139,101,0.014,103,0.001,104,0.001,177,1.583,180,1.961,182,2.814,226,1.237,284,2.671,345,2.753,349,0.893,379,1.082,590,5.308,654,3.571,1021,3.383,1271,5.509,1272,6.161,1274,2.736,1276,3.421,1277,6.217,1391,5.666,3021,6.163,5643,7.457,8368,6.205,8369,6.445,8531,7.55,8535,6.433,8819,5.44,8826,5.03,8827,5.248,8835,6.989,8836,6.989,9861,7.864,13746,6.291,18472,9.574,18473,12.005,18474,12.005,18475,8.649,18476,8.649]],["title/classes/SchoolNumberMissingLoggableException.html",[0,0.231,18477,5.705]],["body/classes/SchoolNumberMissingLoggableException.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,26,2.664,27,0.446,29,0.668,30,0.001,31,0.48,32,0.149,33,0.411,35,1.03,55,2.706,95,0.152,99,1.43,101,0.014,103,0.001,104,0.001,128,4.816,177,1.57,180,1.95,182,2.79,226,1.226,284,2.649,345,2.73,349,0.886,379,1.072,654,3.237,931,5.464,1021,3.355,1271,5.487,1272,6.136,1274,2.713,1276,3.402,1277,6.198,4206,4.056,4283,5.09,4507,5.342,5643,7.427,8368,6.18,8369,6.419,8819,5.393,8821,6.111,8826,4.987,8827,5.203,13746,6.237,18384,11.055,18477,9.118,18478,11.957,18479,7.928,18480,6.93,18481,8.576]],["title/classes/SchoolParams.html",[0,0.231,13941,5.958]],["body/classes/SchoolParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,654,3.508,803,4.813,3814,5.734,4206,4.299,9861,7.725,13941,10.317,18482,9.761,18483,9.761]],["title/classes/SchoolRolePermission.html",[0,0.231,12213,5.503]],["body/classes/SchoolRolePermission.html",[0,0.325,2,0.626,3,0.013,4,0.013,5,0.007,7,0.145,27,0.333,30,0.001,31,0.456,32,0.111,33,0.505,47,0.887,83,2.497,95,0.148,96,1.537,101,0.018,102,2.812,103,0,104,0,105,0.604,112,0.761,119,2.374,128,2.253,133,1.956,138,1.479,143,3.021,144,4.386,145,2.258,154,1.739,160,4.639,172,4.177,173,1.655,175,2.474,178,2.324,180,1.003,181,1.497,182,1.82,236,0.91,261,2.657,556,1.409,593,2.072,644,2.553,655,4.817,834,1.754,971,3.079,988,3.911,1654,2.657,1660,2.812,1982,2.225,2289,5.494,2500,4.954,2608,5.553,2611,3.053,2615,4.438,2616,6.372,3073,5.182,3074,4.596,4272,4.438,4282,2.449,4332,5.408,4349,4.265,4350,6.372,4522,5.953,5039,4.398,6531,7.226,6539,5.408,6553,3.613,6604,4.992,6623,6.2,6624,4.161,6938,3.321,6939,4.992,8531,5.115,8535,4.161,8536,6.573,8548,5.187,8549,4.161,9871,6.278,10115,3.518,10377,5.946,10835,6.795,11583,6.372,12191,6.372,12192,4.687,12193,6.2,12194,5.916,12195,5.586,12196,6.829,12197,8.314,12198,4.521,12199,4.521,12200,4.687,12201,4.521,12202,4.687,12203,4.687,12204,6.814,12205,4.687,12206,4.687,12207,4.687,12208,4.687,12209,4.687,12210,4.687,12211,4.687,12212,4.687,12213,8.502,12214,8.029,12215,8.029,12216,7.745,12217,4.687,12218,4.687,12219,4.687,12220,3.911,12221,6.372,12222,4.161,12223,4.521,12224,4.687,12225,6.814,12226,4.265,12227,4.687,12228,4.687,12229,6.573,12230,4.521,12231,3.986,12232,4.687,18484,5.595,18485,5.595]],["title/classes/SchoolRoles.html",[0,0.231,12216,5.503]],["body/classes/SchoolRoles.html",[0,0.324,2,0.623,3,0.013,4,0.013,5,0.007,7,0.145,27,0.332,30,0.001,31,0.454,32,0.111,33,0.504,47,0.886,83,2.487,95,0.148,96,1.528,101,0.018,102,2.796,103,0,104,0,105,0.6,112,0.759,119,2.136,128,2.241,133,1.946,138,1.473,143,3.018,144,4.382,145,2.249,154,1.732,160,4.62,172,4.172,173,1.645,175,2.46,178,2.311,180,0.997,181,1.489,182,1.81,236,0.905,261,2.642,556,1.401,593,2.061,644,2.539,655,4.802,834,1.744,971,3.062,988,3.89,1654,2.642,1660,2.796,1982,2.213,2289,5.472,2500,4.938,2608,5.793,2611,3.036,2615,4.421,2616,6.346,3073,7.106,3074,6.302,4272,4.421,4282,2.435,4332,5.386,4349,4.241,4350,6.346,4522,5.934,5039,4.384,6531,7.208,6539,5.386,6553,3.593,6604,4.972,6623,6.175,6624,4.138,6938,3.302,6939,4.972,8531,5.095,8535,4.138,8536,6.546,8548,5.17,8549,4.138,9871,6.258,10115,3.499,10377,5.93,10835,6.777,11583,6.346,12191,6.346,12192,4.661,12193,6.175,12194,5.892,12195,5.564,12196,6.808,12197,8.296,12198,4.496,12199,4.496,12200,4.661,12201,4.496,12202,4.661,12203,4.661,12204,6.786,12205,4.661,12206,4.661,12207,4.661,12208,4.661,12209,4.661,12210,4.661,12211,4.661,12212,4.661,12213,9.013,12214,4.661,12215,4.661,12216,8.48,12217,4.661,12218,4.661,12219,4.661,12220,3.89,12221,6.346,12222,4.138,12223,4.496,12224,4.661,12225,6.786,12226,4.241,12227,4.661,12228,4.661,12229,6.546,12230,4.496,12231,3.964,12232,4.661,18486,5.564,18487,5.564]],["title/interfaces/SchoolSpecificFileCopyService.html",[105,0.735,3266,5.335]],["body/interfaces/SchoolSpecificFileCopyService.html",[3,0.021,4,0.021,5,0.015,7,0.138,8,1.354,26,2.852,27,0.373,29,0.709,30,0.001,31,0.51,32,0.168,33,0.437,35,1.093,36,2.404,39,2.448,95,0.156,99,1.518,101,0.02,103,0.001,104,0.001,105,0.982,107,2.183,271,3.559,989,6.27,1163,7.105,2418,6.636,3083,8.611,3266,8.85,3538,4.484,4783,8.413,4785,8.413,6235,6.936,6255,6.164,6284,4.484,10201,7.96,10512,9.129,17249,8.413,17251,8.413,18488,9.883,18489,9.099,18490,10.444,18491,11.879,18492,9.099,18493,8.413,18494,7.96]],["title/injectables/SchoolSpecificFileCopyServiceFactory.html",[539,0.901,3536,5.705]],["body/injectables/SchoolSpecificFileCopyServiceFactory.html",[0,0.296,3,0.02,4,0.02,5,0.016,7,0.132,8,1.319,27,0.451,29,0.857,30,0.001,31,0.616,32,0.15,33,0.528,35,1.048,95,0.16,101,0.014,103,0.001,104,0.001,177,1.597,226,1.247,236,1.419,345,2.777,349,0.901,379,1.091,381,3.696,454,5.225,539,1.456,541,2.088,654,3.273,989,7.243,1163,5.487,2418,7.827,2978,7.309,3083,9.188,3266,9.442,3267,7.309,3536,9.218,3538,4.299,3539,3.56,6365,9.494,18488,10.544,18494,11.072,18495,8.724,18496,8.066,18497,8.724,18498,11.003,18499,8.724,18500,7.632,18501,8.724]],["title/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.231,18500,5.958]],["body/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.278,2,0.917,3,0.019,4,0.025,5,0.015,7,0.124,8,1.267,27,0.433,29,0.823,30,0.001,31,0.592,32,0.144,33,0.507,35,0.984,36,2.249,39,2.204,95,0.148,101,0.013,103,0.001,104,0.001,177,1.935,262,2.564,271,3.204,349,0.846,379,1.322,381,3.931,603,2.123,654,2.436,662,3.68,989,6.863,1163,6.647,1276,3.304,2418,6.874,2677,3.698,2931,6.417,3083,8.92,3266,9.168,3267,6.862,3538,5.208,3539,3.343,3570,5.175,4206,3.585,6235,6.244,6284,5.208,6365,9.339,6715,7.573,10512,8.541,16996,6.619,18488,10.238,18490,9.772,18491,11.432,18493,7.573,18494,10.817,18496,7.573,18500,9.247,18502,8.191,18503,8.191,18504,8.191,18505,10.57,18506,8.191,18507,8.191,18508,8.191]],["title/injectables/SchoolValidationService.html",[539,0.901,14023,5.705]],["body/injectables/SchoolValidationService.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.475,29,0.903,30,0.001,31,0.65,32,0.159,33,0.557,35,1.255,36,2.613,47,0.568,95,0.156,99,1.342,101,0.013,103,0.001,104,0.001,143,1.791,177,1.472,226,1.15,227,3.312,236,1.309,262,2.858,345,2.56,349,1.079,379,1.006,437,1.04,529,2.276,539,1.383,541,1.926,593,3.869,603,2.33,608,2.408,654,3.107,662,3.648,986,2.72,1362,8.585,1902,7.538,1904,6.5,5409,6.302,6164,6.843,8937,7.037,8957,7.437,9861,8.044,12137,8.441,14023,8.751,14082,7.437,14938,6.5,18472,7.037,18509,12.28,18510,10.446,18511,8.044,18512,10.446,18513,10.446,18514,8.044,18515,8.044,18516,10.446,18517,8.044,18518,8.044]],["title/entities/SchoolYearEntity.html",[154,1.456,10835,4.398]],["body/entities/SchoolYearEntity.html",[0,0.3,3,0.021,4,0.021,5,0.011,7,0.134,27,0.497,30,0.001,31,0.712,32,0.166,47,0.856,83,4.105,95,0.141,96,2.428,101,0.018,103,0.001,104,0.001,105,0.954,112,0.881,138,2.205,154,2.371,155,2.95,172,4.331,173,2.614,175,3.908,178,3.672,180,1.584,181,2.366,182,2.875,1276,2.763,1982,3.515,2289,7.494,4282,3.869,6542,9.061,6619,7.143,6620,6.738,10835,7.165,12233,10.608,12234,8.172,12235,10.653,12236,7.405,12237,8.172,12238,8.172,18519,8.839,18520,8.839,18521,8.839]],["title/injectables/SchoolYearRepo.html",[539,0.901,14024,5.705]],["body/injectables/SchoolYearRepo.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.113,8,1.188,10,4.025,12,4.545,18,5.013,26,2.098,27,0.522,29,0.926,30,0.001,31,0.666,32,0.163,33,0.571,34,1.264,35,1.489,36,2.638,40,3.588,49,3.907,83,2.279,95,0.141,99,1.238,101,0.012,103,0.001,104,0.001,154,1.586,155,3.306,180,1.775,226,1.061,236,1.207,262,2.935,349,1.023,382,3.59,437,1.281,479,5.111,539,1.311,541,1.776,593,2.748,608,1.711,679,7.649,685,4.192,686,4.676,687,5.643,711,4.555,712,4.609,713,4.555,714,4.609,715,5.288,716,4.555,717,4.609,718,4.119,722,5.657,3597,5.997,4209,7.205,6542,5.288,6989,5.997,9861,7.304,10835,7.201,12235,6.217,14024,8.299,18522,7.421,18523,11.898,18524,7.421,18525,7.421,18526,11.151,18527,7.421]],["title/injectables/SchoolYearService.html",[539,0.901,14022,5.705]],["body/injectables/SchoolYearService.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,8,1.289,12,4.934,26,2.646,27,0.485,29,0.837,30,0.001,31,0.602,32,0.147,33,0.516,34,1.433,35,1.292,36,2.658,40,5.2,95,0.15,99,1.404,101,0.014,103,0.001,104,0.001,177,1.54,226,1.203,262,2.892,345,2.678,349,1.111,379,1.052,437,1.391,539,1.423,541,2.014,608,2.479,685,3.56,1663,3.56,1715,3.544,1772,5.996,2425,4.554,3832,5.779,4209,7.821,4332,5.594,4648,7.386,9861,8.181,9869,7.049,9870,6.414,9871,5.512,10835,7.654,14022,9.008,14024,11.058,18528,12.489,18529,8.414,18530,12.489,18531,8.414,18532,8.414,18533,8.414,18534,8.414,18535,8.414,18536,8.414]],["title/classes/Scope.html",[0,0.231,5504,2.767]],["body/classes/Scope.html",[0,0.247,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,8,1.172,27,0.531,29,0.86,30,0.001,31,0.618,32,0.18,33,0.53,35,1.174,95,0.124,96,1.998,101,0.012,103,0.001,104,0.001,112,0.776,119,2.506,145,2.019,173,2.151,310,5.495,349,1.219,379,0.91,437,0.941,480,2.019,486,2.188,519,3.028,603,2.68,686,4.614,696,2.869,708,3.021,762,8.551,1503,4.634,2288,8.002,5504,4.795,6058,7.456,6059,7.456,6060,7.456,6065,6.602,6066,6.602,6068,8.565,6079,6.602,6080,7.972,6082,6.602,6084,6.602,15252,10.206,18537,7.273,18538,9.774,18539,9.774,18540,7.273,18541,7.273,18542,7.273,18543,7.273,18544,7.273,18545,7.273,18546,7.273,18547,7.273,18548,9.774,18549,11.039,18550,9.774,18551,7.273,18552,7.273,18553,7.273]],["title/classes/ScopeRef.html",[0,0.231,18554,5.191]],["body/classes/ScopeRef.html",[0,0.317,2,1.045,3,0.022,4,0.022,5,0.011,7,0.141,26,2.87,27,0.509,29,0.727,30,0.001,31,0.523,32,0.17,33,0.448,34,2.267,95,0.118,99,1.557,101,0.015,103,0.001,104,0.001,112,0.911,379,1.167,404,3.808,1936,6.7,2235,8.989,5504,5.577,6189,8.627,6190,10.608,6191,8.627,7291,6.303,12240,11.984,18554,8.746,18555,10.614]],["title/classes/ServerConsole.html",[0,0.231,18556,5.958]],["body/classes/ServerConsole.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,8,1.254,27,0.476,29,0.814,30,0.001,31,0.586,32,0.143,33,0.502,35,1.257,47,0.82,95,0.133,101,0.013,103,0.001,104,0.001,138,1.903,153,2.895,220,3.979,345,2.566,349,1.08,379,1.008,519,3.807,591,6.944,929,7.994,1220,4.514,1962,6.39,2158,7.009,3442,6.752,3443,8.171,3446,8.452,3448,8.452,3451,5.536,3452,8.963,3453,8.469,3454,4.784,9841,9.097,10967,9.931,18556,9.151,18557,8.06,18558,11.362,18559,10.46,18560,8.06,18561,8.06,18562,10.46,18563,9.151,18564,8.06,18565,9.671,18566,8.06,18567,8.06]],["title/modules/ServerConsoleModule.html",[201,1.804,18568,5.958]],["body/modules/ServerConsoleModule.html",[0,0.244,3,0.017,4,0.017,5,0.009,30,0.001,32,0.098,47,0.508,87,3.616,95,0.177,96,2.666,99,1.2,101,0.012,103,0.001,104,0.001,119,1.464,143,1.602,155,2.401,173,2.128,201,3.113,203,2.588,204,2.781,205,2.862,206,2.85,207,2.838,208,4.021,209,2.706,218,3.859,219,2.803,220,2.737,225,3.827,226,1.029,236,1.17,239,1.651,292,3.641,573,4.86,598,4.143,599,5.234,687,4.91,1163,6.102,1454,4.066,1544,6.295,1663,3.045,1962,3.96,2017,3.15,2018,3.523,2019,3.397,2619,3.832,3453,6.102,3454,4.271,3528,9.635,3878,4.029,4901,4.942,5570,4.86,5600,5.814,6254,5.822,7876,6.295,8022,7.396,9706,4.86,10201,6.295,10439,10.589,10661,7.217,10662,7.217,10663,5.234,10665,5.127,10666,5.127,10667,7.217,10673,7.058,10674,7.058,10675,7.058,10676,5.127,10677,4.942,10689,5.352,10690,5.352,10691,5.234,11796,5.352,12257,6.028,12260,4.942,12671,7.841,14778,9.902,14790,6.028,14798,6.295,15016,6.652,18556,8.489,18568,11.771,18569,7.195,18570,7.195,18571,7.195,18572,7.195,18573,7.195,18574,7.195,18575,7.195,18576,9.703,18577,7.195,18578,7.195]],["title/controllers/ServerController.html",[259,2.591,18579,5.705]],["body/controllers/ServerController.html",[0,0.336,3,0.023,4,0.023,5,0.012,7,0.15,8,1.424,27,0.405,30,0.001,35,1.187,47,0.839,95,0.125,101,0.016,103,0.001,104,0.001,138,1.797,223,4.068,226,1.413,259,4.519,316,6.378,349,1.021,486,3.574,662,3.736,929,7.052,1220,5.533,1962,5.438,9655,9.307,11538,8.278,18558,12.22,18579,9.953,18580,9.881,18581,9.881]],["title/modules/ServerModule.html",[201,1.804,18582,5.705]],["body/modules/ServerModule.html",[0,0.182,3,0.008,4,0.008,5,0.004,8,0.392,27,0.22,29,0.255,30,0.001,31,0.3,32,0.073,33,0.157,35,0.393,47,0.776,52,1.562,55,1.154,72,3.58,87,1.644,95,0.174,96,1.473,99,0.546,101,0.011,103,0,104,0,118,4.344,119,1.605,122,2.209,128,2.16,143,0.728,145,1.489,153,0.743,155,1.091,173,0.967,177,1.444,201,2.732,202,7.559,203,2.837,204,1.264,205,1.301,206,1.295,207,1.29,208,1.198,209,1.23,214,4.584,218,2.133,219,1.274,220,1.244,223,3.247,225,3.111,226,0.468,236,0.872,239,0.75,292,1.655,349,0.338,358,2.36,379,0.671,413,1.007,437,1.126,454,1.553,490,2.417,493,1.622,511,1.461,519,1.013,521,1.295,556,2.488,564,1.004,573,3.623,598,1.883,603,1.584,639,1.535,654,0.973,676,2.331,687,2.714,756,2.142,965,2.246,966,2.562,967,2.562,968,2.562,988,2.287,992,1.562,993,1.544,994,1.544,995,1.633,1072,2.175,1073,2.007,1103,2.246,1106,3.566,1117,2.031,1119,2.112,1157,2.112,1163,2.057,1237,1.865,1274,1.035,1276,1.676,1306,1.984,1311,7.328,1410,2.287,1426,1.902,1454,3.031,1572,2.379,1663,2.885,1759,1.962,1901,1.832,1962,3.752,2017,1.432,2018,1.601,2019,1.544,2020,2.084,2145,1.984,2250,2.794,2251,3.561,2334,3.059,2619,1.742,2686,7.559,3457,2.142,3530,6.957,3538,2.643,3539,2.189,3541,2.714,3880,5.197,3892,4.202,3893,8.945,4145,2.142,4575,2.433,4619,1.69,4661,7.559,4901,2.246,5519,2.175,5570,2.209,6489,6.219,6683,1.962,8081,1.832,8438,2.175,10009,2.331,10500,2.287,10659,6.665,10660,4.766,10661,3.989,10662,3.989,10663,2.379,10664,4.088,10665,2.331,10666,2.331,10667,3.989,10673,3.901,10674,3.901,10675,3.901,10676,2.331,10677,2.246,10688,6.012,10689,2.433,10690,2.433,10691,2.379,10692,2.643,10693,2.433,10694,2.493,10729,2.287,10731,3.989,10733,2.379,10735,2.379,10737,10.209,10738,3.989,10872,2.379,11024,7.559,11384,2.331,11542,2.74,11628,2.246,11647,4.959,11649,2.379,11726,2.031,12260,2.246,12931,7.559,13050,2.643,13182,2.643,13434,2.493,13651,2.643,13857,7.559,13922,7.559,13929,2.74,14141,7.559,14581,4.959,14764,2.562,14790,2.74,14820,7.559,14824,7.328,15181,7.559,15692,7.559,15874,7.559,16056,4.493,16076,2.74,16285,2.861,16287,2.861,16289,2.861,16290,2.861,16291,2.861,16997,7.559,17174,2.74,17395,7.983,17399,2.861,17579,2.643,18579,7.293,18582,11.801,18583,3.271,18584,3.271,18585,7.328,18586,7.559,18587,7.559,18588,7.559,18589,7.559,18590,7.559,18591,7.559,18592,7.559,18593,3.024,18594,6.303,18595,8.648,18596,3.271,18597,3.024,18598,3.024,18599,3.024,18600,3.024,18601,3.024,18602,3.024,18603,3.024,18604,3.024,18605,3.024,18606,3.024,18607,3.024,18608,3.024,18609,3.024,18610,3.024,18611,3.024,18612,2.74,18613,3.024,18614,2.643,18615,2.643,18616,6.303,18617,3.024,18618,3.024,18619,3.024,18620,3.024,18621,3.024,18622,7.292,18623,3.024,18624,3.024,18625,3.024,18626,3.024,18627,3.024,18628,3.024,18629,3.024,18630,3.024,18631,3.024,18632,6.303,18633,3.024,18634,4.959,18635,6.303,18636,3.024,18637,3.024,18638,3.024,18639,3.024,18640,3.024,18641,3.024,18642,3.024,18643,3.024,18644,3.024,18645,3.024,18646,3.024,18647,2.861,18648,3.024,18649,3.024,18650,3.024,18651,3.024,18652,3.024,18653,3.024,18654,3.024,18655,4.959,18656,3.024,18657,4.959,18658,3.024,18659,4.959,18660,3.024,18661,3.024,18662,3.024,18663,4.493,18664,3.024]],["title/modules/ServerTestModule.html",[201,1.804,18663,5.705]],["body/modules/ServerTestModule.html",[0,0.176,3,0.007,4,0.007,5,0.004,8,0.377,27,0.272,29,0.404,30,0.001,31,0.371,32,0.091,33,0.249,35,0.624,47,0.765,52,1.501,55,1.117,59,0.976,72,3.494,87,1.58,95,0.174,96,1.426,99,0.524,101,0.011,103,0,104,0,118,4.224,119,1.567,122,2.123,128,2.091,143,0.7,145,1.441,153,0.714,155,1.049,173,0.929,177,1.409,201,2.689,202,7.415,203,3.492,204,1.215,205,1.25,206,1.245,207,1.24,208,1.151,209,1.182,214,4.505,218,2.064,219,1.224,220,1.196,223,3.169,225,3.036,226,0.449,236,0.844,239,0.721,292,1.59,349,0.325,358,2.917,379,0.649,413,1.598,437,1.102,454,1.492,490,2.73,493,1.559,511,1.404,519,0.974,521,1.245,556,2.445,564,1.594,573,3.506,598,1.81,603,1.546,639,1.475,654,0.935,676,2.24,687,2.627,756,2.059,965,2.159,966,2.462,967,2.462,968,2.462,988,3.629,992,1.501,993,1.484,994,1.484,995,1.569,1072,2.09,1073,1.929,1102,2.286,1103,3.565,1106,4.409,1117,1.952,1119,2.03,1157,3.352,1163,1.977,1237,2.96,1274,0.994,1276,1.622,1306,3.149,1311,7.189,1410,2.197,1426,1.828,1454,3.747,1572,2.286,1663,3.606,1759,3.114,1901,1.76,1962,3.649,2017,1.376,2018,1.539,2019,1.484,2020,2.002,2145,3.149,2250,2.718,2251,3.476,2334,4.391,2619,1.674,2686,7.415,3457,2.059,3530,6.825,3538,2.558,3539,2.118,3541,2.627,3880,5.054,3892,4.066,3893,8.815,4145,3.4,4575,2.338,4619,1.624,4661,7.415,4901,2.159,5519,2.09,5570,2.123,6489,6.101,6683,1.886,8081,1.76,8438,2.09,10009,2.24,10500,2.197,10659,3.699,10660,6.787,10661,3.861,10662,3.861,10663,2.286,10664,3.957,10665,2.24,10666,2.24,10667,3.861,10673,3.775,10674,3.775,10675,3.775,10676,2.24,10677,2.159,10688,5.868,10689,2.338,10690,2.338,10691,2.286,10692,2.54,10693,2.338,10694,2.396,10729,5.958,10731,5.726,10733,2.286,10735,3.775,10737,10.114,10738,3.861,10872,2.286,11024,7.415,11384,3.699,11542,2.633,11628,3.565,11647,3.775,11649,2.286,11726,1.952,12260,2.159,12931,7.415,13050,2.54,13182,2.54,13434,2.396,13651,2.54,13857,7.415,13922,7.415,13929,2.633,14141,7.415,14581,4.823,14764,2.462,14790,2.633,14820,7.415,14824,7.189,15181,7.415,15692,7.415,15874,7.415,16056,4.348,16076,2.633,16285,2.75,16287,2.75,16289,2.75,16290,2.75,16291,2.75,16997,7.415,17174,2.633,17395,7.845,17399,2.75,17579,2.54,18579,7.139,18582,7.139,18585,7.189,18586,7.415,18587,7.415,18588,7.415,18589,7.415,18590,7.415,18591,7.415,18592,7.415,18593,2.906,18594,6.13,18595,8.484,18597,2.906,18598,2.906,18599,2.906,18600,2.906,18601,2.906,18602,2.906,18603,2.906,18604,2.906,18605,2.906,18606,2.906,18607,2.906,18608,2.906,18609,2.906,18610,2.906,18611,2.906,18612,2.633,18613,2.906,18614,2.54,18615,2.54,18616,6.13,18617,2.906,18618,2.906,18619,2.906,18620,2.906,18621,2.906,18622,7.117,18623,2.906,18624,2.906,18625,2.906,18626,2.906,18627,2.906,18628,2.906,18629,2.906,18630,2.906,18631,2.906,18632,6.13,18633,2.906,18634,4.799,18635,6.13,18636,2.906,18637,2.906,18638,2.906,18639,2.906,18640,2.906,18641,2.906,18642,2.906,18643,2.906,18644,2.906,18645,2.906,18646,2.906,18647,2.75,18648,2.906,18649,2.906,18650,2.906,18651,2.906,18652,2.906,18653,2.906,18654,2.906,18655,4.799,18656,2.906,18657,4.799,18658,2.906,18659,4.799,18660,4.799,18661,4.799,18662,4.799,18663,11.778,18664,2.906,18665,3.143,18666,3.143,18667,3.143,18668,3.143]],["title/classes/SetHeightBodyParams.html",[0,0.231,4013,5.958]],["body/classes/SetHeightBodyParams.html",[0,0.404,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,27,0.406,30,0.001,32,0.135,55,2.56,95,0.151,101,0.016,103,0.001,104,0.001,112,0.945,138,1.802,142,3.875,143,2.649,144,3.92,145,3.303,148,3.143,150,2.257,245,3.12,3213,8.125,4013,10.409,18669,11.898,18670,9.906,18671,9.906,18672,9.906,18673,11]],["title/entities/ShareToken.html",[154,1.456,6541,4.677]],["body/entities/ShareToken.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.161,26,2.543,27,0.508,30,0.001,32,0.17,33,0.595,34,1.152,49,5.013,83,3.264,95,0.152,96,2.555,97,2.93,101,0.015,103,0.001,104,0.001,105,0.729,112,0.738,124,5.755,131,3.483,138,2.257,143,2.762,144,3.772,154,1.988,155,2.256,159,7.734,172,3.961,173,1.999,174,3.698,178,2.808,180,1.211,181,1.809,182,2.199,187,5.153,188,5.663,197,5.296,198,5.663,236,1.513,349,0.961,490,2.397,556,2.342,696,2.666,834,3.59,2608,4.291,3304,4.643,3330,8.59,3570,4.553,4273,4.101,4801,7.089,4803,6.87,4809,5.663,5830,5.848,5858,5.663,5859,5.463,5860,5.663,6275,4.495,6284,5.642,6541,6.387,6558,5.663,9891,5.028,9959,7.575,9964,5.663,10040,4.917,10041,4.917,10098,6.25,10099,6.25,10138,5.153,10140,5.153,12261,7.79,12262,11.75,12263,6.25,12264,9.252,12265,7.864,12266,8.97,12267,6.25,12268,4.495,12269,4.428,12270,6.25,12271,6.25,18674,6.76,18675,6.76,18676,6.76,18677,6.76,18678,6.76,18679,6.76]],["title/classes/ShareTokenBodyParams.html",[0,0.231,18680,5.958]],["body/classes/ShareTokenBodyParams.html",[0,0.333,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.54,30,0.001,32,0.173,33,0.567,34,1.669,47,0.692,55,2.543,95,0.14,101,0.012,103,0.001,104,0.001,112,0.778,119,1.994,133,4.133,138,2.15,142,5.156,143,2.935,144,4.342,145,3.659,147,5.26,148,2.316,150,1.663,153,2.687,245,3.233,249,4.474,274,5.878,654,2.914,708,4.07,803,3.998,834,3.072,839,8.208,847,3.487,1053,7.468,2398,9.01,3060,4.267,3570,5.415,3814,4.288,5498,6.115,5537,7.917,6284,5.449,6541,8.118,7991,8.208,12265,8.468,12268,4.854,12269,4.782,18673,9.058,18680,8.571,18681,9.658,18682,7.3,18683,9.675,18684,9.675,18685,7.3,18686,9.798,18687,7.3,18688,9.26,18689,7.3,18690,7.3,18691,7.3,18692,9.798,18693,8.208,18694,7.3,18695,7.3]],["title/classes/ShareTokenContextTypeMapper.html",[0,0.231,18696,5.958]],["body/classes/ShareTokenContextTypeMapper.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.38,29,0.723,30,0.001,31,0.52,32,0.156,33,0.446,35,1.116,95,0.157,101,0.015,103,0.001,104,0.001,226,1.328,236,1.861,349,0.959,413,3.818,437,1.48,529,2.628,1600,3.492,1784,8.836,2585,6.351,3193,7.289,3798,6.756,6681,8.375,10619,10.009,10624,10.009,10639,8.587,10646,7.781,12264,10.458,12268,6.176,12269,6.084,14918,8.126,14921,8.126,18696,10.009,18697,11.441,18698,9.288]],["title/controllers/ShareTokenController.html",[259,2.591,18699,5.705]],["body/controllers/ShareTokenController.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.92,27,0.375,29,0.713,30,0.001,31,0.513,32,0.191,33,0.439,35,1.1,36,2.413,95,0.163,100,1.737,101,0.009,103,0,104,0,124,5.092,138,1.665,150,1.178,177,0.946,223,2.129,226,0.739,259,1.967,261,2.455,262,2.699,270,6.138,278,5.272,282,4.768,285,3.387,287,7.428,290,7.369,294,6.301,324,6.234,333,3.874,335,6.078,336,8.156,337,2.672,338,2.733,340,2.485,343,2.754,345,1.646,346,5.434,347,4.766,349,0.946,437,1.467,602,4.178,608,2.11,631,2.653,685,3.248,819,3.798,1158,4.839,1198,5.185,1541,4.178,1542,3.846,1543,4.523,1551,2.895,2468,6.013,2619,4.876,2702,2.441,2871,6.659,2873,7.722,2875,3.941,2876,6.979,2879,7.428,2900,4.338,2901,2.776,2963,3.339,2981,3.137,2982,2.895,3193,4.891,3570,2.532,3717,4.509,6215,6.013,6284,2.548,6453,4.178,6541,5.272,8442,8.644,12260,3.551,13155,6.203,14121,5.709,14836,4.78,17778,4.331,17793,4.523,17795,4.523,18680,8.863,18683,4.523,18684,4.523,18699,6.43,18700,10.131,18701,5.17,18702,8.464,18703,8.464,18704,8.464,18705,5.17,18706,8.644,18707,7.676,18708,5.17,18709,5.17,18710,5.17,18711,10.271,18712,8.863,18713,5.17,18714,5.17,18715,7.676,18716,5.17,18717,7.676,18718,5.17,18719,5.17,18720,5.17,18721,5.17,18722,5.17,18723,5.17,18724,4.523,18725,4.523,18726,7.398,18727,6.43,18728,6.43,18729,5.17,18730,5.17,18731,5.17,18732,5.17,18733,5.17,18734,5.17,18735,5.17,18736,5.17,18737,5.17,18738,5.17,18739,4.523,18740,5.17,18741,7.676,18742,5.17,18743,5.17,18744,5.17,18745,5.17,18746,5.17]],["title/classes/ShareTokenDO.html",[0,0.231,18747,5.191]],["body/classes/ShareTokenDO.html",[0,0.264,2,0.869,3,0.018,4,0.018,5,0.009,7,0.118,26,2.416,27,0.529,29,0.605,30,0.001,31,0.435,32,0.185,33,0.632,34,1.739,47,0.72,83,3.134,95,0.129,101,0.021,103,0.001,104,0.001,112,0.811,124,5.732,131,4.272,159,7.703,180,1.829,187,5.919,197,6.083,379,0.971,382,2.343,654,2.309,834,3.2,1551,6.386,1601,3.286,1683,7.044,1864,2.876,2439,3.802,2624,3.469,2634,3.644,3355,5.245,3570,3.802,4778,4.31,4803,4.659,5091,4.388,5103,4.471,5777,5.648,5830,4.883,6284,3.826,7251,7.997,7252,6.083,10115,4.883,12264,8.249,12265,7.011,12266,8.934,13918,6.793,16664,6.274,18747,9.592,18748,12.917,18749,7.765,18750,10.208,18751,9.553,18752,7.765,18753,9.215,18754,7.765,18755,7.765,18756,7.179,18757,7.765,18758,7.765,18759,7.179]],["title/classes/ShareTokenFactory.html",[0,0.231,18760,6.296]],["body/classes/ShareTokenFactory.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,8,1.332,26,2.696,27,0.363,29,0.69,30,0.001,31,0.496,32,0.121,33,0.425,34,1.892,35,1.064,49,3.494,59,2.752,95,0.161,99,1.478,101,0.015,103,0.001,104,0.001,124,5.584,180,1.991,236,1.807,349,1.148,437,1.146,461,6.114,463,6.569,521,3.508,524,5.053,525,5.151,1551,4.961,2278,5.315,3019,6.312,3570,4.337,4126,5.803,6284,4.365,7355,7.421,12265,6.084,12269,5.803,18706,6.753,18747,6.753,18760,11.222,18761,11.11,18762,8.859,18763,11.11,18764,11.11,18765,8.859,18766,8.859,18767,8.859,18768,8.859,18769,7.75]],["title/classes/ShareTokenImportBodyParams.html",[0,0.231,18712,5.958]],["body/classes/ShareTokenImportBodyParams.html",[0,0.373,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,27,0.45,30,0.001,31,0.616,32,0.15,33,0.527,34,1.872,47,0.893,95,0.153,101,0.014,103,0.001,104,0.001,112,0.873,124,6.052,133,3.842,138,1.999,142,4.947,143,2.816,144,4.166,145,3.511,148,2.762,150,1.983,153,2.498,236,1.787,245,3.157,247,3.811,248,5.025,249,4.445,1864,4.07,6221,10.534,6727,10.534,7116,7.035,7118,8.376,11775,9.205,11786,7.001,18681,9.433,18712,9.613,18770,8.705,18771,8.705,18772,10.988,18773,8.705,18774,8.705]],["title/interfaces/ShareTokenInfoDto.html",[105,0.735,18775,5.705]],["body/interfaces/ShareTokenInfoDto.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.174,47,0.97,95,0.126,101,0.016,103,0.001,104,0.001,105,1.069,107,2.377,112,0.945,124,6.801,4329,9.158,6284,6.519,12265,9.086,12268,6.586,12269,6.489,18775,9.967,18776,9.906,18777,10.69]],["title/classes/ShareTokenInfoResponse.html",[0,0.231,18727,5.705]],["body/classes/ShareTokenInfoResponse.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.515,29,0.668,30,0.001,31,0.48,32,0.172,33,0.411,47,0.888,95,0.152,101,0.014,103,0.001,104,0.001,112,0.864,124,6.972,138,2.175,150,1.954,187,6.537,245,3.404,247,3.754,379,1.361,769,4.34,834,2.688,2717,6.111,2720,6.845,2859,5.263,6275,5.702,6284,6.397,12265,8.916,12268,5.702,12269,5.617,18681,10.17,18727,10.875,18777,10.49,18778,8.576,18779,8.576,18780,8.576,18781,8.576,18782,8.576,18783,8.576]],["title/classes/ShareTokenInfoResponseMapper.html",[0,0.231,18724,5.958]],["body/classes/ShareTokenInfoResponseMapper.html",[0,0.321,2,1.059,3,0.029,4,0.022,5,0.011,7,0.143,8,1.387,27,0.388,29,0.737,30,0.001,31,0.53,32,0.129,33,0.454,35,1.137,95,0.147,100,3.887,101,0.016,103,0.001,104,0.001,124,6.284,236,1.539,349,0.977,413,3.85,437,1.224,777,5.617,778,6.424,785,4.724,1553,6.616,6284,4.663,14556,8.279,18724,10.125,18727,10.911,18739,8.279,18775,10.911,18777,7.647,18784,10.7,18785,11.573,18786,9.463,18787,9.463,18788,9.463]],["title/classes/ShareTokenParentTypeMapper.html",[0,0.231,18789,5.958]],["body/classes/ShareTokenParentTypeMapper.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,8,1.364,27,0.377,29,0.717,30,0.001,31,0.516,32,0.155,33,0.442,35,1.106,95,0.157,101,0.015,103,0.001,104,0.001,226,1.316,236,1.851,349,0.951,413,3.803,437,1.471,529,2.604,1600,3.461,1784,8.799,2585,6.315,3193,7.248,3798,6.694,6681,8.341,6774,7.71,10619,9.953,10624,9.953,10634,8.509,10641,8.509,10646,7.71,12265,8.86,12268,6.119,12269,6.028,14918,8.051,14921,8.051,14922,8.509,18789,9.953,18790,11.377,18791,9.203,18792,9.203]],["title/classes/ShareTokenPayloadResponse.html",[0,0.231,18793,5.958]],["body/classes/ShareTokenPayloadResponse.html",[0,0.308,2,1.016,3,0.021,4,0.021,5,0.011,7,0.138,27,0.503,29,0.707,30,0.001,31,0.509,32,0.168,33,0.436,47,0.796,95,0.143,101,0.015,103,0.001,104,0.001,112,0.896,124,6.453,138,2.052,150,2.068,245,3.366,379,1.135,834,2.846,1551,5.084,2859,5.572,3570,6.009,6269,7.112,6275,6.036,6284,6.048,12265,9.068,12268,6.036,12269,5.947,18681,10.057,18753,10.374,18793,9.869,18794,9.079,18795,11.281,18796,9.079,18797,9.079,18798,9.079,18799,8.394,18800,8.394]],["title/injectables/ShareTokenRepo.html",[539,0.901,18801,5.503]],["body/injectables/ShareTokenRepo.html",[0,0.169,3,0.012,4,0.012,5,0.006,7,0.075,8,0.895,10,3.032,12,3.424,18,3.776,26,2.526,27,0.539,29,1.015,30,0.001,31,0.73,32,0.178,33,0.626,34,1.525,35,1.566,36,2.595,40,2.407,95,0.135,96,1.368,101,0.008,103,0,104,0,112,0.711,124,4.998,131,2.795,133,2.61,154,2.277,159,5.041,173,1.472,180,1.337,226,0.712,236,1.214,262,2.881,349,1.1,381,1.672,382,3.897,437,1.446,448,4.888,519,1.542,539,0.988,541,1.192,556,1.88,603,2.395,608,1.148,680,5.217,686,3.523,687,5.39,718,2.763,1551,4.179,1601,4.732,1938,2.839,2237,9.097,2239,5.318,2240,5.318,2241,5.318,2242,5.318,2243,5.217,2244,5.217,2245,5.318,2246,5.217,2247,5.318,2254,3.547,2256,5.725,2257,3.547,2259,3.547,2261,3.261,2262,5.217,2263,3.547,2265,3.547,2267,5.318,2273,3.363,2274,5.217,2276,3.547,2278,2.987,2279,3.055,2280,3.547,2282,3.547,2284,3.481,2285,3.547,2303,3.703,3570,3.654,4803,4.477,5830,4.693,5930,3.621,5931,3.621,5932,3.621,5933,3.621,5934,3.621,5935,3.621,5936,3.621,5937,3.621,5938,3.621,5960,6.899,6284,3.677,6541,8.376,9090,3.795,12261,9.713,12266,7.79,12268,3.31,12269,3.261,14710,4.603,14720,4.171,18747,8.838,18751,6.252,18753,6.03,18756,4.603,18759,4.603,18801,6.03,18802,8.951,18803,4.978,18804,7.462,18805,7.462,18806,4.978,18807,7.462,18808,4.978,18809,4.978,18810,4.978,18811,4.978,18812,4.978,18813,4.978,18814,4.978,18815,4.978,18816,4.978,18817,7.462,18818,4.978,18819,4.978,18820,4.978,18821,4.978,18822,4.978,18823,4.978]],["title/classes/ShareTokenResponse.html",[0,0.231,18728,5.705]],["body/classes/ShareTokenResponse.html",[0,0.298,2,0.981,3,0.02,4,0.02,5,0.01,7,0.133,27,0.519,29,0.682,30,0.001,31,0.491,32,0.173,33,0.579,47,0.779,83,3.388,95,0.14,101,0.014,103,0.001,104,0.001,112,0.876,124,6.704,138,2.197,149,4.594,150,1.996,159,8.825,187,6.679,197,6.864,236,1.425,245,3.426,379,1.38,769,4.434,1551,7.099,16313,8.101,16664,7.081,18681,10.236,18706,6.679,18728,10.945,18793,10.565,18824,8.762,18825,8.762,18826,8.762,18827,8.762,18828,8.762,18829,8.762]],["title/classes/ShareTokenResponseMapper.html",[0,0.231,18725,5.958]],["body/classes/ShareTokenResponseMapper.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,8,1.389,27,0.388,29,0.739,30,0.001,31,0.531,32,0.13,33,0.455,35,1.14,95,0.147,100,3.893,101,0.016,103,0.001,104,0.001,124,6.29,159,6.407,236,1.543,349,0.98,413,3.854,437,1.227,777,5.63,778,6.433,785,4.736,1551,5.312,6541,6.515,12268,6.307,12269,6.213,14556,8.298,18725,10.139,18728,10.92,18747,9.937,18784,10.715,18830,11.59,18831,9.485,18832,9.485,18833,8.77]],["title/injectables/ShareTokenService.html",[539,0.901,18834,5.503]],["body/injectables/ShareTokenService.html",[0,0.209,3,0.014,4,0.014,5,0.007,7,0.094,8,1.046,27,0.476,29,0.904,30,0.001,31,0.65,32,0.169,33,0.557,35,1.322,36,2.565,59,1.917,83,1.894,95,0.157,101,0.01,103,0,104,0,120,3.838,124,5.835,131,3.268,159,5.893,177,2.125,226,0.882,236,1.004,262,2.82,349,1.046,379,1.091,437,1.423,486,1.856,490,3.589,519,1.911,539,1.155,541,1.477,593,2.285,603,2.542,608,2.778,1242,5.829,1551,5.668,1849,8.369,1869,3.88,2985,4.985,2986,4.985,5051,9.707,5052,9.445,5256,6.73,6541,8.51,9759,4.703,12265,4.237,12266,9.707,12268,4.102,12269,4.041,12634,5.704,16712,5.397,18747,8.85,18751,7.309,18753,8.892,18769,5.397,18777,9.382,18801,10.013,18833,8.066,18834,7.05,18835,12.053,18836,8.725,18837,10.122,18838,8.725,18839,8.725,18840,6.169,18841,9.74,18842,6.169,18843,8.725,18844,6.169,18845,6.169,18846,6.169,18847,8.725,18848,6.169,18849,8.725,18850,6.169,18851,5.397,18852,5.397,18853,6.169,18854,6.169,18855,6.169,18856,6.169,18857,6.169,18858,6.169,18859,6.169,18860,5.704,18861,6.169,18862,5.704,18863,6.169,18864,5.704,18865,6.169]],["title/injectables/ShareTokenUC.html",[539,0.901,18726,5.503]],["body/injectables/ShareTokenUC.html",[0,0.101,3,0.007,4,0.007,5,0.004,7,0.045,8,0.595,26,2.669,27,0.457,29,0.87,30,0.001,31,0.626,32,0.161,33,0.536,34,0.845,35,1.312,36,2.377,39,3.278,47,0.96,55,1.602,59,2.313,83,2.286,95,0.149,99,0.497,100,1,101,0.005,102,3.207,103,0,104,0,119,1.515,120,2.183,124,5.182,131,2.789,142,1.941,159,2.011,177,1.817,226,0.426,236,1.615,239,2.05,262,2.842,349,0.979,379,0.621,437,1.541,486,2.24,490,2.64,519,0.922,521,1.966,529,2.681,539,0.657,541,0.713,556,1.25,560,1.226,603,2.659,608,2.861,631,1.528,643,2.836,992,2.371,993,2.343,994,2.343,1113,3.872,1158,1.422,1242,6.67,1274,0.942,1450,2.122,1551,5.559,1559,3.639,1606,4.029,1609,3.512,1610,6.328,1612,1.807,1615,3.872,1695,5.009,1739,7.424,1793,4.517,1849,6.401,1858,5.081,1860,2.406,1864,2.363,1869,4.682,1878,3.692,2017,1.303,2018,1.458,2019,1.406,2250,2.616,2251,3.361,2418,2.915,2469,1.352,2618,1.715,2624,2.217,2634,2.329,2935,4.158,2936,5.157,2942,7.424,2943,7.939,2951,5.833,2963,3.205,2981,1.807,2982,1.667,2985,2.406,2986,2.406,3027,2.605,3028,2.605,3030,2.605,3031,6.237,3193,1.897,3304,1.487,3609,4.462,3798,2.166,3803,4.642,3878,1.667,4803,1.787,5066,4.517,5256,7.073,5830,1.873,6054,2.122,6221,8.29,6284,4.67,6541,5.114,6707,7.658,6709,4.158,6726,8.023,6727,9.554,6765,4.158,6769,4.589,6775,2.753,6779,4.808,7991,4.158,9502,2.495,9759,2.27,11627,2.122,12255,5.9,12264,2.406,12265,6.509,12268,1.98,12269,1.951,13157,4.158,14175,4.589,17125,2.495,18683,2.605,18684,2.605,18696,2.605,18702,6.884,18703,6.884,18704,5.9,18726,4.011,18739,4.342,18747,2.27,18751,6.93,18753,7.658,18769,6.514,18775,4.158,18777,4.011,18789,2.605,18799,2.753,18800,2.753,18834,7.22,18860,6.884,18862,6.884,18864,6.884,18866,11.388,18867,2.978,18868,4.963,18869,4.963,18870,4.963,18871,4.963,18872,2.978,18873,2.978,18874,4.963,18875,2.978,18876,4.963,18877,2.978,18878,4.963,18879,2.978,18880,4.963,18881,2.978,18882,2.978,18883,2.978,18884,2.753,18885,2.978,18886,2.978,18887,2.978,18888,2.978,18889,2.978,18890,4.963,18891,2.978,18892,4.963,18893,2.978,18894,2.978,18895,2.978,18896,2.978,18897,4.963,18898,2.978,18899,4.963,18900,2.978,18901,6.382,18902,2.978,18903,2.978,18904,2.978,18905,2.978,18906,2.978,18907,4.963,18908,4.963,18909,7.445,18910,2.978,18911,2.978,18912,6.382,18913,4.963,18914,2.978,18915,2.978,18916,2.978,18917,4.963,18918,2.978,18919,4.589,18920,4.963,18921,4.963,18922,2.978,18923,4.963,18924,4.963,18925,2.978,18926,2.978,18927,2.978,18928,2.978,18929,6.382,18930,5.583,18931,2.978,18932,6.382,18933,2.978,18934,2.978,18935,2.978]],["title/classes/ShareTokenUrlParams.html",[0,0.231,18711,5.958]],["body/classes/ShareTokenUrlParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,124,6.756,133,4.1,138,1.758,142,4.586,143,2.61,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,248,4.893,257,7.191,18681,9.185,18688,9.185,18711,10.257,18936,9.668,18937,11.725,18938,9.668]],["title/modules/SharingApiModule.html",[201,1.804,18585,5.335]],["body/modules/SharingApiModule.html",[0,0.338,3,0.017,4,0.017,5,0.009,30,0.001,95,0.173,101,0.016,103,0.001,104,0.001,201,3.159,203,2.684,204,2.884,205,2.968,206,2.955,207,2.943,208,4.368,209,3.739,214,6.05,218,3.954,219,2.907,220,2.839,223,4.604,225,4.41,226,1.067,560,3.072,1274,2.361,1689,7.115,1734,9.698,2469,3.387,2624,3.334,2634,3.502,2702,3.523,3543,5.846,10508,6.03,10509,6.03,13861,9.291,13862,9.698,13880,9.698,18585,11.115,18699,9.367,18726,10.322,18801,8.035,18834,9.036,18841,8.035,18851,6.528,18852,6.528,18939,7.462,18940,7.462,18941,7.462,18942,10.701,18943,6.899,18944,6.899,18945,6.899]],["title/modules/SharingModule.html",[201,1.804,18942,5.705]],["body/modules/SharingModule.html",[0,0.332,3,0.017,4,0.017,5,0.009,30,0.001,95,0.172,101,0.016,103,0.001,104,0.001,201,3.126,203,2.616,204,2.811,205,2.893,206,2.881,207,2.869,208,4.323,209,4.151,214,6.011,218,3.887,219,2.834,220,2.767,223,4.024,225,4.354,226,1.04,560,2.994,1274,2.301,1689,7.069,1734,9.636,2469,3.301,2624,3.249,2634,3.414,2702,3.433,3543,5.698,10508,5.877,10509,5.877,13861,9.231,13862,9.636,13880,9.636,18585,5.698,18699,8.188,18726,7.898,18801,10.246,18834,11.069,18841,10.246,18851,6.363,18852,6.363,18942,11.955,18943,6.725,18944,6.725,18945,6.725,18946,7.273,18947,7.273,18948,7.273,18949,7.273]],["title/classes/SingleColumnBoardResponse.html",[0,0.231,17674,5.705]],["body/classes/SingleColumnBoardResponse.html",[0,0.24,2,0.791,3,0.017,4,0.017,5,0.008,7,0.107,27,0.515,29,0.55,30,0.001,31,0.396,32,0.181,33,0.339,34,1.633,47,0.888,95,0.138,101,0.012,103,0.001,104,0.001,112,0.761,119,2.374,138,2.218,150,1.611,153,2.858,172,3.061,245,3.297,247,3.094,253,4.694,379,1.199,556,1.781,769,3.577,814,3.553,816,4.992,844,6.71,989,5.322,1038,8.375,1203,4.106,1663,2.991,1669,4.992,1882,5.647,2630,6.746,2707,10.075,2720,6.03,2722,3.628,2856,5.107,2857,5.107,3398,9.773,3735,7.574,4083,6.184,5091,5.418,5103,5.521,5562,10.206,6536,6.375,6894,5.538,6898,7.511,7450,5.388,7490,8.677,7664,6.184,8215,10.215,17573,6.536,17674,10.215,18950,7.069,18951,7.069,18952,7.069,18953,7.069,18954,7.069,18955,7.069,18956,7.069,18957,5.388,18958,7.069,18959,7.069]],["title/classes/SingleFileParams.html",[0,0.231,6307,4.6]],["body/classes/SingleFileParams.html",[0,0.457,2,0.735,3,0.015,4,0.021,5,0.011,7,0.099,26,2.671,27,0.269,30,0.001,32,0.162,39,1.765,47,0.951,95,0.16,99,1.095,101,0.022,103,0.001,104,0.001,105,0.708,112,0.723,119,1.854,138,1.193,143,1.461,147,4.891,148,2.082,149,4.3,150,1.495,151,6.057,153,1.492,154,1.402,245,3.648,247,2.872,248,5.13,249,4.573,348,3.276,803,5.016,804,6.783,834,3.281,847,3.134,984,2.83,986,2.218,1075,3.854,1135,5.804,1136,4.298,1137,4.298,1194,2.256,1276,2.051,2677,4.724,2860,5.157,3570,3.213,4206,2.226,5889,5.302,5904,6.651,6236,4.227,6249,5.967,6255,6.169,6284,3.233,6287,4.507,6288,4.587,6289,4.587,6292,7.897,6295,4.587,6296,8.173,6297,7.904,6298,7.904,6299,4.587,6300,4.507,6301,7.068,6302,4.507,6303,4.587,6304,4.432,6305,7.636,6306,4.363,6307,6.153,6308,4.507,6309,4.432,6310,4.432,6311,4.181,6312,4.587,6313,4.587,6314,4.587,6315,4.181,6316,4.181,6317,4.298,6318,4.363,6319,4.587,18960,6.562]],["title/classes/SortExternalToolParams.html",[0,0.231,9228,5.705]],["body/classes/SortExternalToolParams.html",[0,0.381,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.46,30,0.001,31,0.629,32,0.154,33,0.539,34,1.914,95,0.155,101,0.019,103,0.001,104,0.001,112,0.892,138,2.043,148,2.862,149,4.273,150,2.055,180,2.013,247,3.947,249,4.544,382,3.389,480,2.504,486,2.713,834,3.522,847,4.308,2484,4.093,2486,2.99,2987,9.327,4450,10.648,4451,8.16,4455,6.193,4456,7.554,4457,7.889,8696,7.287,9228,9.411,18961,9.018,18962,13.177,18963,9.018,18964,8.337,18965,9.018]],["title/classes/SortHelper.html",[0,0.231,18966,6.296]],["body/classes/SortHelper.html",[0,0.282,2,0.928,3,0.019,4,0.019,5,0.01,7,0.126,8,1.277,27,0.34,29,0.83,30,0.001,31,0.465,32,0.146,33,0.398,35,0.996,47,0.752,55,2.765,95,0.105,99,1.383,101,0.014,103,0.001,104,0.001,349,0.857,413,3.625,479,5.009,556,3.129,662,2.608,696,3.271,708,4.426,1503,8.63,2031,7.655,2661,10.075,4451,8.63,7041,6.497,18966,9.85,18967,10.654,18968,7.255,18969,10.654,18970,10.654,18971,8.293,18972,8.293]],["title/classes/SortImportUserParams.html",[0,0.231,12762,5.705]],["body/classes/SortImportUserParams.html",[0,0.381,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.46,30,0.001,32,0.154,33,0.539,95,0.162,101,0.019,103,0.001,104,0.001,112,0.892,138,2.043,148,2.862,149,4.273,150,2.055,180,2.013,247,3.947,249,4.544,382,3.389,480,2.504,486,2.713,651,5.366,652,5.366,834,3.522,847,4.308,2987,9.327,4450,10.648,4451,8.16,4455,6.193,4456,7.554,4457,7.889,4507,4.029,10741,7.554,12762,9.411,12873,12.182,18964,8.337,18973,9.018,18974,9.018,18975,9.018]],["title/classes/SortingParams.html",[0,0.231,4450,5.503]],["body/classes/SortingParams.html",[0,0.381,2,1.37,3,0.021,4,0.021,5,0.011,7,0.137,9,6.046,27,0.46,30,0.001,32,0.175,33,0.539,95,0.142,101,0.015,103,0.001,104,0.001,112,0.892,138,2.226,148,2.862,149,4.273,150,2.055,249,4.544,479,4.208,480,2.504,486,2.713,517,4.307,834,3.522,847,4.308,2987,9.327,3614,9.411,4450,9.078,4451,8.774,4455,7.715,4456,7.554,10459,9.078,18976,9.018,18977,9.018,18978,11.234,18979,9.018,18980,9.018]],["title/injectables/StartUserLoginMigrationUc.html",[539,0.901,18981,5.705]],["body/injectables/StartUserLoginMigrationUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,8,1.102,27,0.432,29,0.821,30,0.001,31,0.59,32,0.144,33,0.506,35,1.104,36,2.419,39,2.473,47,0.966,95,0.163,99,1.109,101,0.011,103,0.001,104,0.001,128,5.194,131,3.444,177,2.081,236,1.495,239,2.903,262,2.705,349,0.687,379,1.15,437,1.363,529,2.601,539,1.217,541,1.591,560,2.737,593,2.462,603,2.284,608,2.751,643,2.955,654,3.134,986,2.248,1271,3.051,1274,2.103,1606,4.975,1612,4.034,1695,6.687,1793,4.034,1897,7.15,1899,6.903,1901,3.723,1902,5.148,1904,5.372,2250,5.186,2469,3.018,2473,4.648,4206,4.374,4507,5.079,4509,5.372,4512,5.372,4513,8.795,4516,6.147,4520,5.937,4522,7.062,4523,4.945,4526,5.208,4531,7.701,4532,6.838,8888,5.208,14123,5.372,17518,5.57,17521,6.147,17522,5.816,18477,5.57,18981,7.701,18982,11.369,18983,9.193,18984,8.043,18985,9.193,18986,6.648,18987,9.193,18988,6.648,18989,7.429,18990,6.648,18991,6.648,18992,6.648,18993,6.648]],["title/classes/StatelessAuthorizationParams.html",[0,0.231,16215,5.958]],["body/classes/StatelessAuthorizationParams.html",[0,0.376,2,0.985,3,0.021,4,0.021,5,0.01,7,0.133,27,0.52,30,0.001,32,0.174,33,0.658,47,0.942,95,0.14,101,0.015,103,0.001,104,0.001,112,0.879,138,2.309,148,2.793,248,5.298,249,5.292,388,9.268,804,6.638,847,4.204,946,5.615,986,4.091,1720,9.48,1721,11.188,1722,8.137,1724,11.188,1725,8.137,1730,8.137,1731,5.607,1732,8.137,1733,8.137,16215,9.679,18994,13.082,18995,8.801,18996,8.801,18997,8.801,18998,8.801,18999,8.801]],["title/classes/StorageProviderEncryptedStringType.html",[0,0.231,12275,5.705]],["body/classes/StorageProviderEncryptedStringType.html",[0,0.235,2,0.774,3,0.016,4,0.016,5,0.008,7,0.105,8,1.132,27,0.473,29,0.837,30,0.001,31,0.602,32,0.18,33,0.516,35,1.134,47,0.996,59,2.147,95,0.136,96,1.899,101,0.011,103,0.001,104,0.001,112,0.75,153,1.571,173,2.044,180,1.692,182,2.248,349,1.29,379,0.864,437,1.221,480,3.468,556,3.146,560,2.845,572,8.424,593,3.497,603,2.16,696,3.724,1150,3.755,1389,8.235,1546,5.027,1663,2.924,1668,8.197,1759,5.665,1922,5.82,2017,3.025,2018,3.384,2019,3.262,2020,4.403,6595,4.925,7205,6.867,8325,8.69,11774,6.867,11961,8.26,11962,9.009,12275,7.909,14577,5.79,19000,6.911,19001,8.729,19002,9.441,19003,9.441,19004,9.441,19005,9.441,19006,9.441,19007,10.754,19008,9.441,19009,6.911,19010,9.441,19011,6.911,19012,6.911,19013,6.911,19014,9.441,19015,8.729,19016,9.441,19017,6.911,19018,6.39,19019,9.441,19020,6.911,19021,6.39]],["title/entities/StorageProviderEntity.html",[154,1.456,8017,5.065]],["body/entities/StorageProviderEntity.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,27,0.507,30,0.001,32,0.179,33,0.508,47,0.984,95,0.149,96,2.255,101,0.017,103,0.001,104,0.001,105,0.886,112,0.84,138,2.251,143,2.356,144,2.704,154,2.262,155,2.739,160,4.682,172,4.26,173,2.427,174,4.209,175,3.629,178,3.41,180,1.471,181,2.197,182,2.67,2608,3.787,4801,6.257,6336,8.651,6338,8.651,6339,9.168,8017,7.872,11687,7.181,12272,9.259,12273,7.589,12274,11.441,12275,9.813,12276,7.589,12277,7.589,12278,7.589,12279,7.589,12280,7.589,12281,7.589,12282,7.589,12283,7.589,12284,7.589,19022,8.208,19023,8.208,19024,8.208,19025,8.208]],["title/injectables/StorageProviderRepo.html",[539,0.901,8014,5.705]],["body/injectables/StorageProviderRepo.html",[0,0.253,3,0.017,4,0.017,5,0.009,7,0.113,8,1.19,10,4.035,12,4.557,18,5.025,26,2.104,27,0.534,29,0.967,30,0.001,31,0.695,32,0.17,33,0.596,34,1.269,35,1.491,36,2.641,40,3.602,49,3.917,95,0.151,96,2.046,97,3.228,99,1.242,101,0.012,103,0.001,104,0.001,154,1.592,155,3.314,177,1.363,180,1.78,208,3.637,226,1.065,262,2.937,349,1.026,379,0.931,382,3.595,437,0.963,479,5.114,539,1.314,541,1.783,679,7.656,685,4.202,686,4.688,687,5.653,711,4.571,712,4.626,713,4.571,714,4.626,715,5.307,716,4.571,717,4.626,718,4.134,2248,5.418,2249,6.862,2253,7.223,2291,5.031,3635,5.116,5946,5.678,8014,8.319,8017,7.386,15067,9.335,19026,7.448,19027,7.448,19028,7.448,19029,7.448,19030,7.448]],["title/classes/StringValidator.html",[0,0.231,12872,5.335]],["body/classes/StringValidator.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.848,30,0.001,31,0.61,32,0.149,33,0.522,35,1.308,47,0.972,59,3.382,101,0.014,103,0.001,104,0.001,119,2.215,143,2.423,145,3.492,248,4.542,349,1.299,413,4.085,437,1.408,480,3.683,486,2.58,593,3.176,696,4.293,1503,5.464,1559,5.533,12872,8.527,13033,11.003,19015,7.928,19031,8.576,19032,10.884,19033,10.884,19034,8.576,19035,10.884,19036,8.576,19037,8.576,19038,8.576]],["title/entities/Submission.html",[154,1.456,2821,2.996]],["body/entities/Submission.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.156,26,2.186,27,0.499,30,0.001,32,0.172,33,0.56,34,0.789,47,0.798,55,1.843,62,2.719,72,2.101,95,0.148,96,1.272,101,0.012,103,0,104,0,105,0.5,112,0.761,119,2.523,138,2.217,143,2.596,144,3.399,145,1.961,154,1.51,155,1.545,160,4.884,168,4.028,172,3.723,173,1.369,174,2.809,175,2.047,178,1.923,180,0.83,181,1.239,182,1.506,226,0.662,236,1.559,239,2.676,349,1.205,437,1.678,480,1.285,486,1.393,528,2.41,529,1.31,556,2.414,603,1.419,644,4.709,654,2.85,662,3.42,760,2.569,910,3.236,933,2.666,946,2.148,1158,3.374,1600,1.741,1654,2.198,1753,3.179,1755,3.179,1761,3.299,1770,2.526,2608,5.625,2611,3.854,2615,2.526,2624,5.446,2625,2.875,2821,3.767,3074,6.145,3392,2.949,3393,3.236,3680,2.616,3757,6.472,3762,6.472,3770,5.917,3772,5.917,4206,1.57,5039,3.241,6283,3.92,6585,6.85,6586,3.078,6588,2.841,6590,2.592,6606,5.033,6610,2.875,6611,2.777,6818,3.127,6819,4.28,6931,4.561,7111,2.949,8975,7.304,11894,4.938,11895,4.938,11900,4.938,11901,3.236,12117,6.969,12285,5.917,12286,4.28,12287,8.859,12288,9.475,12289,6.179,12290,4.28,12291,6.53,12292,4.28,12293,4.28,12294,4.28,12295,4.28,12296,3.741,12297,4.28,12298,4.28,12299,4.28,12300,3.878,12301,4.28,12302,4.28,12303,4.28,12304,4.28,12305,4.28,12306,4.28,12307,9.539,12308,4.28,12309,4.28,12310,4.28,12311,4.28,12312,4.28,12313,4.28,12314,8.859,12315,4.28,12316,6.37,12317,3.741,12318,10.054,12319,6.53,12320,3.878,12321,6.53,12322,4.05,12323,3.367,12324,3.626,12325,4.28,12326,4.28,12327,4.28,12328,4.28,12329,6.53,12330,6.53,12331,4.28,12332,4.28,12333,4.28,12334,4.28,12335,6.37,12336,3.741,12337,3.878,12338,6.53,19039,4.629,19040,4.629,19041,4.629,19042,4.629,19043,4.629,19044,4.629,19045,4.629,19046,4.629,19047,4.629,19048,4.629,19049,4.629]],["title/classes/SubmissionContainerContentBody.html",[0,0.231,5715,4.528]],["body/classes/SubmissionContainerContentBody.html",[0,0.454,2,0.64,3,0.013,4,0.013,5,0.007,7,0.087,9,2.697,27,0.234,30,0.001,31,0.631,32,0.186,33,0.396,47,0.875,83,2.536,95,0.143,99,0.953,101,0.022,103,0,104,0,112,0.656,138,1.039,143,1.272,148,1.813,149,3.69,150,1.302,153,2.205,172,1.824,180,2.02,245,3.628,248,5.055,249,4.753,284,1.765,305,3.29,480,3.13,802,5.262,803,3.37,834,1.791,847,2.729,1194,1.964,1203,1.824,1579,4.803,1880,4.011,2193,4.56,2439,2.798,2820,2.763,2821,3.633,2860,2.816,3216,3.391,3218,3.391,3221,3.356,3224,5.013,3227,4.977,3232,3.2,3705,3.549,3726,3.549,3727,6.839,4101,5.616,5621,6.18,5623,6.264,5625,6.18,5627,6.264,5629,6.264,5674,3.743,5711,6.449,5712,6.449,5713,6.449,5714,6.449,5715,7.065,5903,3.593,5904,6.783,7046,3.799,7105,4.787,7106,5.262,8238,8.182,8239,5.672,8240,3.924,8243,5.41,8244,6.449,8245,6.449,8246,3.924,8247,6.449,8248,5.069,8249,5.579,8250,6.449,8251,6.449,8252,3.799,8253,3.799,8254,3.799,8255,3.799,8256,3.924,8257,3.924,8258,3.924,8259,3.924,8260,3.924,19050,5.714]],["title/classes/SubmissionContainerElement.html",[0,0.231,2811,4.283]],["body/classes/SubmissionContainerElement.html",[0,0.215,2,0.709,3,0.015,4,0.015,5,0.008,7,0.096,8,1.066,27,0.537,29,0.972,30,0.001,31,0.699,32,0.177,33,0.599,35,1.531,36,1.891,55,1.913,59,1.968,83,3.6,95,0.13,101,0.017,103,0.001,104,0.001,105,0.684,112,0.706,119,2.09,137,5.59,180,1.84,262,2.25,349,1.061,381,2.985,382,3.844,437,0.819,448,3.643,474,2.706,479,3.329,480,2.468,517,2.429,519,3.632,593,4.343,604,3.611,608,1.46,662,2.795,686,4.196,1150,2.519,1600,2.382,1601,4.711,1604,6.632,1676,4.056,1882,2.643,2450,6.23,2463,5.221,2724,7.857,2727,6.334,2728,6.334,2729,6.334,2730,5.91,2731,6.334,2733,4.212,2734,5.455,2735,6.54,2737,6.214,2738,5.455,2739,6.411,2741,4.429,2742,4.698,2744,6.458,2745,4.429,2747,6.334,2749,4.429,2751,4.212,2778,5.393,2811,7.002,2821,2.787,2822,6.161,2823,5.119,3227,5.713,3964,6.465,3965,4.607,3966,4.607,3975,3.984,3980,5.393,4741,5.856,4742,5.856,8715,4.514,17541,5.856,17543,5.856,19051,8.298,19052,6.334,19053,6.334,19054,8.218,19055,5.856,19056,5.856,19057,5.856,19058,5.542,19059,5.856]],["title/classes/SubmissionContainerElementContent.html",[0,0.231,19060,5.705]],["body/classes/SubmissionContainerElementContent.html",[0,0.355,2,0.901,3,0.019,4,0.019,5,0.01,7,0.122,27,0.428,29,0.626,30,0.001,31,0.451,32,0.178,33,0.386,34,1.976,47,0.819,83,4.005,95,0.147,99,1.342,101,0.017,103,0.001,104,0.001,112,0.829,138,1.463,150,1.833,153,2.375,245,3.42,253,3.939,379,1.451,404,3.283,517,4.005,593,4.548,769,4.071,814,4.043,834,2.522,2193,4.693,2430,6.268,2504,3.594,2822,6.961,2856,4.285,2857,4.285,2860,3.964,3227,6.814,3399,5.624,3411,4.937,3654,6.886,3658,6.075,3662,5.348,3664,5.348,4022,7.963,4101,6.132,5627,5.195,8731,6.5,9933,7.037,12474,6.132,19060,10.926,19061,10.726,19062,9.139,19063,9.658,19064,9.658]],["title/classes/SubmissionContainerElementContentBody.html",[0,0.231,8250,4.528]],["body/classes/SubmissionContainerElementContentBody.html",[0,0.453,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,802,5.219,803,3.343,814,2.84,834,1.771,847,2.699,1194,1.942,1203,1.804,1579,3.285,1880,3.986,2193,4.884,2439,2.766,2820,2.732,2821,2.485,2860,2.784,3216,3.353,3218,3.353,3221,3.319,3224,4.981,3227,2.899,3232,3.164,3705,3.509,3726,3.509,3727,6.808,4101,5.587,5621,6.14,5623,6.224,5625,6.14,5627,6.826,5629,6.224,5674,3.701,5711,6.408,5712,6.408,5713,6.408,5714,6.408,5715,7.028,5903,3.553,5904,6.76,7046,3.756,7106,3.599,8238,8.512,8239,5.626,8240,3.88,8243,5.366,8244,6.408,8245,6.408,8246,3.88,8247,6.408,8248,3.467,8249,3.816,8250,7.028,8251,6.408,8252,3.756,8253,3.756,8254,3.756,8255,3.756,8256,3.88,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8736,4.426,19065,5.65,19066,5.65]],["title/entities/SubmissionContainerElementNode.html",[154,1.456,3154,5.335]],["body/entities/SubmissionContainerElementNode.html",[0,0.296,3,0.02,4,0.02,5,0.01,7,0.132,27,0.357,30,0.001,32,0.119,83,3.701,95,0.16,96,2.397,101,0.018,103,0.001,104,0.001,105,0.941,112,0.874,138,1.587,143,2.45,144,2.874,154,2.352,155,2.911,160,4.976,172,3.513,173,2.58,180,1.972,181,2.335,349,0.901,403,4.842,437,1.128,593,4.464,1600,3.28,1601,5.1,1880,4.55,2450,5.225,2503,4.93,2504,3.897,2822,6.602,3109,5.772,3120,6.602,3154,8.62,3187,5.354,3211,9.626,3227,6.495,3558,6.753,3579,5.419,4064,5.558,4066,5.558,9941,7.632,12474,6.65,12475,7.05,19067,9.218,19068,9.626,19069,8.066]],["title/interfaces/SubmissionContainerElementProps.html",[105,0.735,19058,5.958]],["body/interfaces/SubmissionContainerElementProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.147,36,1.794,83,3.965,95,0.15,101,0.02,103,0.001,104,0.001,105,0.91,107,2.023,112,0.855,119,1.716,180,2.126,262,1.848,349,1.225,437,1.091,474,3.602,480,2.341,517,3.233,519,2.612,593,4.783,604,4.375,608,1.944,1150,3.353,1600,3.17,1601,3.568,1676,4.914,1882,3.519,2450,5.113,2463,6.325,2724,6.533,2734,5.175,2735,6.325,2738,5.175,2739,6.2,2747,6.008,2778,7.198,2811,7.461,2821,3.709,2822,5.059,2823,6.814,3227,6.627,3975,5.303,3980,6.533,8715,6.008,19051,6.814,19054,9.955,19055,7.796,19056,7.796,19057,7.796,19058,9.42,19059,7.796]],["title/classes/SubmissionContainerElementResponse.html",[0,0.231,4022,5.191]],["body/classes/SubmissionContainerElementResponse.html",[0,0.342,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,27,0.512,29,0.593,30,0.001,31,0.427,32,0.187,33,0.366,34,2.13,47,0.797,83,3.469,95,0.143,99,1.271,101,0.017,103,0.001,104,0.001,112,0.8,138,2.187,150,1.736,153,1.732,245,3.489,253,3.73,379,1.413,404,3.109,517,2.921,593,3.733,769,3.855,834,2.388,2193,5.059,2430,4.571,2504,3.403,2822,7.709,2855,4.99,2856,5.369,2857,5.369,2859,4.675,2860,4.967,3227,6.17,3399,5.326,3411,4.675,3654,7.423,3658,6.569,3662,5.065,3664,5.065,4022,9.532,4101,6.609,5627,6.51,9946,6.664,9947,6.664,9948,6.664,9949,6.664,9950,6.664,12474,5.807,19060,10.072,19061,11.879,19062,6.664,19063,7.043,19064,7.043]],["title/classes/SubmissionContainerElementResponseMapper.html",[0,0.231,5651,5.958]],["body/classes/SubmissionContainerElementResponseMapper.html",[0,0.256,2,0.845,3,0.018,4,0.018,5,0.009,7,0.114,8,1.201,27,0.491,29,0.78,30,0.001,31,0.561,32,0.164,33,0.481,34,1.285,35,1.351,95,0.143,99,1.259,100,2.535,101,0.012,103,0.001,104,0.001,112,0.795,119,2.039,236,2.028,349,1.161,376,3.287,413,3.946,437,0.976,603,2.259,604,3.066,662,2.373,777,4.479,778,5.56,781,5.912,783,5.613,1276,3.131,1559,4.407,1880,5.491,1938,4.304,2193,3.053,2441,8.363,2444,7.847,2445,7.847,2447,7.636,2811,8.351,2822,7.48,3227,5.14,3654,4.479,3658,5.825,3675,5.377,4022,9.131,4101,3.988,5230,7.072,5627,4.873,5646,5.912,5651,11.439,8753,9.131,8755,5.912,8757,6.098,8758,6.098,8759,6.098,19060,9.42,19070,11.526,19071,7.546,19072,11.244,19073,11.244,19074,7.546]],["title/interfaces/SubmissionContainerNodeProps.html",[105,0.735,19068,5.958]],["body/interfaces/SubmissionContainerNodeProps.html",[0,0.298,3,0.021,4,0.021,5,0.01,7,0.133,30,0.001,32,0.12,83,3.895,95,0.161,96,2.412,101,0.018,103,0.001,104,0.001,105,0.948,107,2.107,112,0.877,143,1.955,144,2.893,154,2.362,172,3.528,173,2.597,180,2.166,181,2.35,349,0.907,403,4.874,437,1.136,593,4.699,1600,3.302,1601,5.115,1880,3.632,2450,5.246,2503,4.962,2504,3.923,2822,5.269,3109,5.795,3120,6.629,3154,6.879,3187,5.39,3211,9.666,3227,6.709,3558,7.42,3579,5.454,4064,5.595,4066,5.595,12474,6.694,12475,7.096,19067,7.356,19068,10.576,19069,8.119]],["title/classes/SubmissionContainerUrlParams.html",[0,0.231,3694,5.958]],["body/classes/SubmissionContainerUrlParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,34,1.997,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,1.758,142,4.586,143,2.61,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,803,4.785,2821,5.158,2822,7.035,3694,10.257,3814,5.679,7122,9.185,19075,10.257,19076,9.668,19077,11.668,19078,9.668]],["title/controllers/SubmissionController.html",[259,2.591,19079,5.958]],["body/controllers/SubmissionController.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,8,1.224,10,4.633,27,0.418,29,0.795,30,0.001,31,0.572,32,0.14,33,0.49,35,1.226,36,2.578,95,0.164,100,2.608,101,0.013,103,0.001,104,0.001,138,1.857,150,1.769,177,1.421,223,3.197,226,1.11,236,1.263,259,2.954,261,3.687,262,2.83,270,6.447,271,4.461,294,6.715,333,4.319,337,4.013,338,4.104,343,4.136,345,2.471,349,1.054,437,1.567,608,2.353,631,3.985,1559,4.491,2702,3.665,2879,6.686,2901,4.168,3680,5.768,14153,6.505,14159,6.505,19079,8.93,19080,7.765,19081,11.404,19082,10.597,19083,10.208,19084,7.765,19085,7.765,19086,10.148,19087,10.208,19088,7.765,19089,6.793,19090,9.553,19091,6.505,19092,7.765,19093,7.765,19094,7.765,19095,7.765,19096,7.765,19097,7.179,19098,7.765,19099,10.208,19100,7.765,19101,7.765,19102,7.765]],["title/classes/SubmissionFactory.html",[0,0.231,19103,6.296]],["body/classes/SubmissionFactory.html",[0,0.155,2,0.512,3,0.011,4,0.011,5,0.005,7,0.069,8,0.839,27,0.538,29,1.008,30,0.001,31,0.692,32,0.18,33,0.593,34,1.448,35,1.43,47,0.494,55,2.615,59,3.188,95,0.137,99,0.763,101,0.008,103,0,104,0,112,0.555,120,3.077,133,2.446,140,2.56,143,1.558,153,1.932,154,2.193,155,2.334,177,1.281,180,1.254,271,5.017,319,3.158,349,1.06,379,0.572,382,3.829,413,2.154,437,1.4,447,7.182,448,4.435,449,5.379,452,3.953,453,5.379,454,5.654,455,3.953,456,3.953,457,3.953,458,3.883,459,4.361,460,4.802,461,6.392,462,5.695,463,7.006,464,2.607,469,2.583,470,3.953,471,2.607,472,5.031,473,5.195,474,4.066,475,4.885,476,3.917,477,2.583,478,2.435,479,4.053,480,3.225,481,2.515,482,2.474,483,2.583,484,4.956,485,2.607,486,3.494,487,4.717,488,2.583,489,7.315,490,4.119,491,6.564,492,2.607,493,4.215,494,2.583,495,2.607,496,2.583,497,2.607,498,2.583,499,2.912,500,2.713,501,2.583,502,6.006,503,2.607,504,2.583,505,3.953,506,3.697,507,3.953,508,2.607,509,2.494,510,2.474,511,2.042,512,2.583,513,2.583,514,2.583,515,2.607,516,2.607,517,1.753,518,2.583,519,1.416,520,2.607,521,2.771,522,2.583,523,2.607,525,2.658,526,2.713,527,5.712,648,3.257,649,3.484,654,1.36,2624,2.042,2821,3.077,3074,3.953,3757,6.93,3762,6.93,6803,3.581,6804,3.694,6813,3.581,8975,5.332,12285,3.829,12288,5.86,19103,7.856,19104,4.571,19105,9.52,19106,6.995,19107,4.571,19108,4.571,19109,4.571,19110,6.995,19111,4.571,19112,4.571,19113,3.999,19114,4.571,19115,3.999,19116,4.571,19117,4.571,19118,4.571,19119,4.226]],["title/classes/SubmissionItem.html",[0,0.231,2463,4]],["body/classes/SubmissionItem.html",[0,0.202,2,0.666,3,0.014,4,0.014,5,0.007,7,0.09,8,1.019,26,2.523,27,0.542,29,0.976,30,0.001,31,0.702,32,0.177,33,0.602,35,1.533,36,1.809,39,2.912,55,1.83,59,1.849,95,0.126,99,0.993,101,0.018,103,0,104,0,105,0.642,112,0.675,119,2.552,137,5.348,180,1.778,262,2.174,349,1.118,381,2.856,382,3.783,437,1.1,448,3.485,474,2.542,479,3.185,480,3.006,517,3.26,519,3.69,604,2.418,608,1.372,662,2.674,686,4.014,1150,2.366,1600,2.237,1601,3.598,1604,6.408,1676,3.881,1880,3.517,1882,2.483,2450,6.222,2463,6.359,2724,7.743,2727,6.059,2728,6.059,2729,6.059,2730,5.654,2731,6.059,2733,3.956,2734,5.219,2735,6.359,2737,5.945,2738,5.219,2739,6.234,2741,4.16,2742,4.494,2744,6.809,2745,4.16,2749,4.16,2751,3.956,2778,5.159,2802,5.219,2808,5.159,3229,6.568,3964,4.328,3965,4.328,3966,4.328,3975,3.742,3980,5.159,4753,5.206,7475,4.808,16996,6.871,19051,9.254,19120,5.501,19121,5.95,19122,5.95,19123,7.862,19124,5.95,19125,5.95,19126,5.95,19127,5.95,19128,5.95,19129,5.95,19130,5.95,19131,5.206,19132,5.206,19133,7.862,19134,5.501,19135,5.501,19136,5.501,19137,5.501,19138,5.501,19139,5.501,19140,5.206,19141,5.501,19142,5.206,19143,5.206,19144,5.206]],["title/injectables/SubmissionItemFactory.html",[539,0.901,19145,6.296]],["body/injectables/SubmissionItemFactory.html",[0,0.325,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,30,0.001,34,1.631,35,1.15,39,2.576,49,3.777,83,3.579,95,0.159,101,0.016,103,0.001,104,0.001,145,2.659,226,1.369,236,2.181,349,0.989,376,4.171,377,4.346,454,6.21,524,5.461,539,1.543,541,2.292,2463,7.682,2821,4.213,2823,7.738,3229,5.81,4126,7.636,19051,9.42,19145,10.777,19146,9.576,19147,9.576]],["title/entities/SubmissionItemNode.html",[154,1.456,3157,5.335]],["body/entities/SubmissionItemNode.html",[0,0.272,3,0.019,4,0.019,5,0.01,7,0.158,26,2.595,27,0.426,30,0.001,32,0.142,39,3.296,95,0.161,96,2.197,99,1.334,101,0.017,103,0.001,104,0.001,105,0.863,112,0.826,119,2.354,138,1.893,154,2.224,155,2.668,172,3.912,173,2.365,180,1.865,181,2.14,191,4.327,192,5.094,239,2.387,349,0.826,403,4.438,437,1.034,595,5.029,600,4.967,685,3.383,763,7.147,986,2.703,1113,4.851,1600,3.007,1601,4.895,1663,3.383,2363,5.094,2450,4.941,2503,4.518,2504,3.572,2821,4.578,3074,5.88,3109,5.458,3120,6.243,3157,8.152,3160,7.37,3187,4.908,3226,9.103,3229,7.433,3558,6.386,3579,4.967,4064,5.094,4065,7.393,4066,5.094,5524,7.932,7872,5.947,8741,6.995,8975,6.095,11621,5.816,19067,9.691,19148,7.996,19149,9.621,19150,9.621,19151,7.393,19152,9.103,19153,6.995,19154,7.393,19155,7.393]],["title/interfaces/SubmissionItemNodeProps.html",[105,0.735,19152,5.958]],["body/interfaces/SubmissionItemNodeProps.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.161,26,2.716,30,0.001,32,0.145,39,3.45,95,0.163,96,2.264,99,1.375,101,0.017,103,0.001,104,0.001,105,0.889,107,1.978,112,0.843,119,2.522,154,2.268,172,3.747,173,2.437,180,2.103,181,2.206,191,4.46,192,5.251,239,1.891,349,0.851,403,4.575,437,1.066,595,5.183,600,5.119,685,3.487,763,5.661,986,2.786,1113,5,1600,3.099,1601,4.966,1663,3.487,2363,5.251,2450,5.039,2503,4.657,2504,3.682,2821,3.626,3074,4.657,3109,5.566,3120,6.367,3157,6.457,3160,5.251,3187,5.058,3226,9.283,3229,7.78,3558,7.203,3579,5.119,4064,5.251,4066,5.251,5524,6.282,7872,6.13,8975,6.282,11621,5.995,19067,6.904,19149,7.62,19150,7.62,19151,7.62,19152,10.268,19153,7.21,19154,7.62,19155,7.62]],["title/interfaces/SubmissionItemProps.html",[105,0.735,19140,5.958]],["body/interfaces/SubmissionItemProps.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,26,2.754,30,0.001,32,0.158,36,1.691,39,3.411,95,0.146,99,1.326,101,0.02,103,0.001,104,0.001,105,0.858,107,1.907,112,0.823,119,2.646,180,2.067,262,1.742,349,1.263,437,1.341,474,3.395,480,2.878,517,3.974,519,2.462,604,3.23,608,1.832,1150,3.161,1600,2.989,1676,4.73,1880,4.287,1882,3.317,2450,5.477,2463,6.776,2724,6.289,2734,4.878,2735,6.089,2738,4.878,2739,5.969,2778,6.998,2802,6.362,2808,6.289,3229,7.692,3975,4.999,3980,6.289,16996,8.376,19051,6.423,19120,7.349,19123,7.349,19131,6.954,19132,6.954,19133,9.583,19134,7.349,19135,7.349,19136,7.349,19137,7.349,19138,7.349,19139,7.349,19140,9.068,19141,7.349,19142,6.954,19143,6.954,19144,6.954]],["title/classes/SubmissionItemResponse.html",[0,0.231,8283,5.503]],["body/classes/SubmissionItemResponse.html",[0,0.253,2,0.834,3,0.017,4,0.017,5,0.009,7,0.113,27,0.523,29,0.58,30,0.001,31,0.417,32,0.178,33,0.357,34,2.114,39,3.339,47,0.841,95,0.142,101,0.012,103,0.001,104,0.001,112,0.789,119,2.021,138,2.258,150,1.697,191,4.031,245,3.471,253,4.862,379,1.242,404,3.04,556,1.876,769,3.769,814,3.744,822,5.718,844,6.831,1669,5.17,1880,3.08,2855,6.505,2856,6.347,2857,6.347,3229,7.531,3654,7.368,3658,6.496,3662,4.952,3664,4.952,3704,5.678,3705,4.626,3709,7.961,3710,8.491,3726,4.626,3727,6.025,3728,6.019,3729,6.019,4083,6.516,7122,10.21,8283,10.03,19075,11.402,19153,6.516,19156,7.448,19157,7.448,19158,7.448,19159,7.448,19160,7.448,19161,7.448,19162,7.448,19163,7.448]],["title/classes/SubmissionItemResponseMapper.html",[0,0.231,3712,5.705]],["body/classes/SubmissionItemResponseMapper.html",[0,0.228,2,0.752,3,0.016,4,0.016,5,0.008,7,0.102,8,1.11,27,0.491,29,0.825,30,0.001,31,0.593,32,0.156,33,0.508,34,1.144,35,1.372,39,2.49,95,0.134,99,1.12,100,2.255,101,0.011,103,0.001,104,0.001,112,0.735,236,1.948,239,1.541,349,1.179,376,2.925,413,3.813,437,1.601,603,2.487,651,3.208,652,3.208,662,3.989,777,3.986,778,5.138,781,5.261,783,4.994,819,3.248,844,3.695,1559,5.023,1880,2.777,2193,2.716,2463,7.593,2481,5.875,2732,4.612,2802,5.681,2808,5.616,3060,4.614,3077,9.671,3112,4.465,3113,4.337,3160,7.888,3229,4.074,3654,3.986,3658,5.383,3675,4.785,3706,8.874,3711,5.119,3712,10.628,3715,5.875,3732,6.208,4087,6.208,5230,6.662,6647,4.884,8283,9.678,8753,8.703,8754,5.625,8755,5.261,11022,5.625,17374,6.208,17375,6.208,19070,11.447,19142,5.875,19164,9.257,19165,9.257,19166,9.257,19167,9.257,19168,9.257,19169,6.715,19170,8.874,19171,10.593,19172,6.208,19173,6.715,19174,6.715,19175,9.257,19176,6.715,19177,6.715,19178,6.715,19179,6.715,19180,6.715,19181,6.715]],["title/injectables/SubmissionItemService.html",[539,0.901,3534,5.503]],["body/injectables/SubmissionItemService.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.103,8,1.117,12,4.277,26,2.695,27,0.47,29,0.893,30,0.001,31,0.642,32,0.17,33,0.55,34,1.814,35,1.279,36,2.643,39,2.865,40,4.507,49,2.675,83,3.27,95,0.157,99,1.131,101,0.011,103,0.001,104,0.001,119,2.334,120,4.1,177,1.706,226,0.97,236,2.069,262,2.881,283,4.163,340,3.26,345,2.159,349,0.963,376,2.954,377,3.079,379,0.848,437,1.483,524,3.869,529,2.637,539,1.234,541,1.624,603,1.362,604,2.756,608,2.455,685,4.506,1551,5.963,1755,4.659,1880,4.404,1882,2.831,2425,3.671,2463,7.723,2619,3.613,2811,7.211,2896,5.593,3087,5.045,3088,8.682,3096,6.271,3229,7.292,3316,5.934,3365,9.462,3534,7.532,4119,5.481,4126,4.443,5643,5.79,5656,5.934,8311,5.934,15269,6.271,19182,12.019,19183,6.783,19184,6.783,19185,11.466,19186,6.783,19187,6.783,19188,9.321,19189,6.783,19190,6.783,19191,6.783,19192,6.783,19193,6.783,19194,6.783,19195,6.783,19196,9.321]],["title/injectables/SubmissionItemUc.html",[539,0.901,2694,5.705]],["body/injectables/SubmissionItemUc.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.079,8,0.924,26,2.936,27,0.482,29,0.916,30,0.001,31,0.659,32,0.178,33,0.564,34,0.885,35,1.365,36,2.57,39,3.377,59,1.615,95,0.138,99,0.867,101,0.009,103,0,104,0,119,1.869,177,1.859,180,1.381,226,0.743,236,1.494,262,2.903,349,0.949,379,0.964,382,2.771,437,1.469,448,5.145,529,2.598,539,1.02,541,1.244,560,2.14,608,2.893,639,2.439,1609,5.969,1625,3.404,1695,6.215,1764,3.455,1799,5.491,1850,7.387,1880,3.187,2450,5.395,2451,8.66,2453,6.037,2454,7.957,2455,3.78,2456,8.295,2458,3.865,2459,5.605,2460,6.543,2462,4.071,2463,7.373,2465,4.071,2466,5.491,2469,2.359,2480,4.354,2482,3.865,2618,4.437,2619,2.768,2694,6.455,2802,3.19,2808,3.153,2811,5.775,2821,2.286,2822,3.118,3060,4,3077,3.962,3095,3.865,3229,6.162,3534,9.503,3681,7.693,3683,8.49,3715,8.034,3795,4.2,3796,4.2,3797,4.2,3800,4.2,3801,4.2,4101,5.368,4155,8.034,4157,4.805,4691,2.726,5621,3.311,5625,3.311,5643,4.786,8311,4.547,8312,4.805,8321,7.124,8323,4.805,8332,4.805,8691,4.547,19077,8.49,19131,4.547,19132,4.547,19143,4.547,19144,4.547,19197,10.846,19198,5.197,19199,9.183,19200,5.197,19201,10.504,19202,5.197,19203,5.197,19204,5.197,19205,5.197,19206,5.197,19207,5.197,19208,5.197,19209,5.197,19210,5.197,19211,5.197,19212,5.197,19213,5.197,19214,5.197,19215,7.705,19216,5.197,19217,5.197]],["title/classes/SubmissionItemUrlParams.html",[0,0.231,3685,5.958]],["body/classes/SubmissionItemUrlParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,34,1.997,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,1.758,142,4.586,143,2.61,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,803,4.785,2821,5.158,3160,7.47,3685,10.257,3814,5.679,7122,9.185,19075,10.257,19201,11.668,19218,9.668,19219,9.668]],["title/classes/SubmissionMapper.html",[0,0.231,19089,5.958]],["body/classes/SubmissionMapper.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,8,1.387,27,0.388,29,0.737,30,0.001,31,0.53,32,0.129,33,0.454,34,1.612,35,1.137,95,0.147,99,1.579,100,3.887,101,0.016,103,0.001,104,0.001,236,1.539,349,0.977,413,3.85,437,1.224,785,4.724,2821,5.878,12117,6.883,12316,7.038,12335,7.038,12518,7.647,12522,7.927,12530,7.927,19089,10.125,19220,9.463,19221,11.573,19222,11.573,19223,9.463,19224,10.911,19225,9.463,19226,8.279,19227,9.463,19228,8.279,19229,9.463]],["title/injectables/SubmissionRepo.html",[539,0.901,1745,5.191]],["body/injectables/SubmissionRepo.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.011,10,3.426,12,3.869,18,4.267,26,2.736,27,0.521,29,0.973,30,0.001,31,0.7,32,0.171,33,0.6,34,1.002,35,1.502,36,2.81,39,3.067,40,4.077,47,0.696,95,0.137,96,1.616,98,3.491,99,0.981,101,0.01,103,0,104,0,154,1.257,155,2.814,173,1.739,180,1.511,226,0.841,262,3.02,310,3.655,349,1.177,382,3.249,437,1.474,479,4.897,539,1.116,541,1.408,603,2.383,608,2.881,679,7.177,685,3.568,686,3.98,687,4.989,711,3.609,712,3.653,713,3.609,714,3.653,716,3.609,717,3.653,718,3.264,1454,3.323,1559,3.709,1663,2.488,1745,6.428,2288,3.491,2624,2.627,2821,5.375,2982,3.293,3074,3.323,3635,4.039,3680,5.57,4428,6.606,4434,6.814,5504,2.389,5948,4.903,6543,3.698,6585,5.791,6849,4.483,12288,4.926,17755,5.437,19230,5.881,19231,8.432,19232,8.432,19233,8.432,19234,8.432,19235,5.881,19236,8.432,19237,5.881,19238,8.432,19239,5.881,19240,5.437,19241,8.432,19242,5.881,19243,5.881,19244,5.881,19245,8.432,19246,5.881,19247,5.881,19248,8.432,19249,5.881,19250,5.881,19251,5.881,19252,5.881]],["title/injectables/SubmissionRule.html",[539,0.901,1707,5.705]],["body/injectables/SubmissionRule.html",[0,0.181,3,0.012,4,0.012,5,0.006,7,0.081,8,0.941,27,0.498,29,0.947,30,0.001,31,0.681,32,0.17,33,0.584,35,1.424,95,0.139,101,0.009,103,0,104,0,119,2.413,131,3.851,145,2.179,154,2.197,177,1.437,226,0.762,236,0.867,239,3.218,345,1.696,349,1.224,379,0.666,437,1.483,529,1.507,539,1.039,541,1.275,603,2.69,604,2.165,662,3.605,1276,1.665,1450,3.796,1559,3.453,1606,5.563,1609,7.201,1610,6.309,1624,5.39,1625,5.141,1634,7.12,1655,3.197,1672,4.762,1707,6.575,1708,9.579,1813,5.068,1817,4.875,1824,3.542,2821,6.311,3193,3.394,3349,5.218,3350,3.599,3353,5.141,3356,3.599,3357,5.301,12518,4.305,14271,4.926,19253,5.328,19254,11.464,19255,10.28,19256,10.28,19257,11.464,19258,10.28,19259,5.328,19260,7.848,19261,5.328,19262,7.848,19263,5.328,19264,7.848,19265,5.328,19266,5.328,19267,7.848,19268,5.328,19269,7.848,19270,5.328,19271,5.328,19272,5.328,19273,5.328,19274,7.848,19275,5.328,19276,7.848,19277,5.328,19278,5.328,19279,5.328,19280,7.848,19281,7.848]],["title/injectables/SubmissionService.html",[539,0.901,19282,5.503]],["body/injectables/SubmissionService.html",[0,0.269,3,0.019,4,0.019,5,0.009,7,0.12,8,1.241,10,4.206,12,4.75,26,2.804,27,0.5,29,0.951,30,0.001,31,0.684,32,0.167,33,0.586,35,1.384,36,2.765,95,0.155,98,4.709,99,1.323,101,0.013,103,0.001,104,0.001,177,1.895,226,1.134,227,3.266,262,2.974,349,1.069,379,1.295,437,1.026,539,1.37,541,1.899,603,2.079,608,2.386,1163,4.989,1745,9.905,2821,5.574,3538,3.909,3539,3.237,3680,5.85,6365,9.431,19282,8.365,19283,7.933,19284,9.571,19285,7.933,19286,7.933,19287,10.352,19288,7.933,19289,10.352,19290,7.933,19291,6.215,19292,10.352,19293,7.933,19294,6.94,19295,7.933,19296,7.933,19297,7.933,19298,7.933]],["title/classes/SubmissionStatusListResponse.html",[0,0.231,19091,5.705]],["body/classes/SubmissionStatusListResponse.html",[0,0.372,2,0.968,3,0.02,4,0.02,5,0.01,7,0.131,27,0.448,29,0.673,30,0.001,31,0.484,32,0.164,33,0.415,34,2.045,47,0.847,55,1.861,95,0.11,101,0.018,103,0.001,104,0.001,112,0.869,119,2.227,138,1.573,149,4.567,150,1.971,245,3.486,284,4.02,379,1.369,404,3.53,556,2.179,812,6.242,814,4.347,829,4.801,12117,8.732,12300,7.246,12316,8.929,12320,7.246,12335,8.929,12337,7.246,19091,9.168,19224,11.444,19226,10.502,19228,10.502,19299,7.997,19300,8.649,19301,8.649,19302,7.997,19303,7.997]],["title/classes/SubmissionStatusResponse.html",[0,0.231,19224,5.705]],["body/classes/SubmissionStatusResponse.html",[0,0.347,2,0.871,3,0.018,4,0.018,5,0.009,7,0.118,27,0.54,29,0.606,30,0.001,31,0.436,32,0.183,33,0.604,34,2.145,47,0.912,55,2.199,95,0.099,101,0.017,103,0.001,104,0.001,112,0.812,119,2.467,138,2.351,149,4.79,150,1.773,245,3.578,284,3.157,379,1.278,404,3.175,769,3.937,812,4.437,829,4.318,12117,9.158,12300,6.517,12316,9.365,12320,6.517,12335,9.365,12337,6.517,19091,6.517,19224,11.197,19226,11.015,19228,11.015,19299,7.193,19302,7.193,19303,7.193,19304,7.78,19305,7.78,19306,7.78,19307,7.78,19308,7.78,19309,7.78,19310,7.78]],["title/injectables/SubmissionUc.html",[539,0.901,19090,5.705]],["body/injectables/SubmissionUc.html",[0,0.24,3,0.017,4,0.017,5,0.008,7,0.107,8,1.151,10,3.9,26,2.908,27,0.478,29,0.909,30,0.001,31,0.654,32,0.16,33,0.56,35,1.308,36,2.042,39,2.582,95,0.148,99,1.181,101,0.012,103,0.001,104,0.001,143,1.577,177,1.757,226,1.012,239,3.106,262,2.757,349,1.206,379,1.2,437,1.664,539,1.27,541,1.695,560,2.915,603,2.451,608,2.691,643,3.147,928,3.897,1150,2.816,1612,4.296,1672,5.824,1695,6.8,1793,5.824,1795,5.548,2469,3.214,2821,5.837,3680,5.424,12517,5.932,14316,8.398,19090,8.041,19282,10.166,19284,8.875,19291,8.531,19294,9.527,19311,7.081,19312,9.599,19313,7.081,19314,7.081,19315,7.081,19316,9.599,19317,7.081,19318,9.599,19319,7.081,19320,7.081,19321,11.674,19322,7.081,19323,7.081,19324,7.081,19325,7.081,19326,6.547,19327,9.599,19328,7.081]],["title/classes/SubmissionUrlParams.html",[0,0.231,19082,5.958]],["body/classes/SubmissionUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,2821,5.203,3814,5.762,19082,10.348,19294,11.11,19329,9.809,19330,9.809]],["title/classes/SubmissionsResponse.html",[0,0.231,3706,5.705]],["body/classes/SubmissionsResponse.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,27,0.497,29,0.69,30,0.001,31,0.496,32,0.179,33,0.425,95,0.154,101,0.015,103,0.001,104,0.001,112,0.882,138,2.021,150,2.018,239,2.033,245,3.182,379,1.108,556,2.798,814,5.584,2821,3.897,3060,5.912,3706,9.307,7122,9.97,8283,10.968,8513,6.94,19170,11.37,19172,12.119,19331,8.859,19332,11.11,19333,8.859,19334,8.859,19335,8.859,19336,8.859,19337,8.859,19338,8.859]],["title/interfaces/SuccessfulRes.html",[105,0.735,11344,5.065]],["body/interfaces/SuccessfulRes.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.952,55,2.652,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,2.508,284,2.83,347,3.355,479,3.432,982,8.318,987,6.188,1021,3.584,3060,3.99,4542,6.188,6540,5.381,11336,6.814,11337,6.983,11338,6.814,11339,6.814,11340,6.983,11341,8.616,11342,6.983,11343,6.983,11344,8.438,11345,6.983,11346,6.664,11347,6.814,11348,6.983,11349,6.814]],["title/classes/SuccessfulResponse.html",[0,0.231,19339,5.958]],["body/classes/SuccessfulResponse.html",[0,0.335,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.486,29,0.768,30,0.001,31,0.552,32,0.162,33,0.473,95,0.125,101,0.016,103,0.001,104,0.001,112,0.942,119,2.75,138,1.793,150,2.246,245,3.337,379,1.233,13804,11.32,19339,10.378,19340,9.857,19341,11.863,19342,9.857,19343,9.857,19344,9.857]],["title/injectables/SymetricKeyEncryptionService.html",[539,0.901,8342,5.958]],["body/injectables/SymetricKeyEncryptionService.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,8,1.244,27,0.533,29,0.899,30,0.001,31,0.647,32,0.158,33,0.554,35,1.247,47,0.985,59,2.475,95,0.155,101,0.013,103,0.001,104,0.001,226,1.139,284,3.778,345,2.535,349,1.344,379,0.996,539,1.374,541,1.907,603,1.6,662,4.09,763,5.47,1274,2.52,1276,2.489,1546,5.793,1922,7.04,2250,4.254,2251,5.523,2820,5.019,2940,5.38,3833,7.72,6595,5.675,7205,8.398,8341,7.363,8342,9.08,9368,7.549,11961,9.08,11962,8.695,11963,9.596,11965,9.596,12673,7.363,14577,6.672,19018,7.363,19021,7.363,19345,7.964,19346,7.964,19347,7.964,19348,7.964,19349,11.546,19350,11.546,19351,7.964,19352,7.964]],["title/modules/SystemApiModule.html",[201,1.804,18586,5.503]],["body/modules/SystemApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.295,203,3.364,204,3.615,205,3.72,206,3.704,207,3.689,208,4.555,209,3.517,218,4.57,219,3.644,220,3.558,222,5.809,223,4.731,225,4.532,226,1.337,1356,9.477,18586,11.206,19353,9.353,19354,9.353,19355,9.353,19356,11.356,19357,9.353,19358,10.881,19359,9.353,19360,9.353,19361,9.353]],["title/controllers/SystemController.html",[259,2.591,19358,5.958]],["body/controllers/SystemController.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.081,27,0.369,29,0.702,30,0.001,31,0.505,32,0.167,33,0.433,35,1.47,36,2.39,72,5.099,95,0.165,101,0.011,103,0.001,104,0.001,128,4.525,138,1.64,150,1.473,153,2.554,177,1.184,223,2.662,226,0.925,259,2.46,261,3.071,262,2.681,271,3.528,278,7.716,284,3.47,310,2.803,319,4.071,333,2.736,335,6.23,336,6.45,337,3.342,345,2.058,346,5.353,347,3.303,349,0.931,437,1.453,482,6.08,560,2.662,608,2.079,692,9.828,819,2.269,1239,5.535,1391,5.907,2032,7.065,2355,6.895,2431,7.359,3060,3.928,3072,5.392,3669,4.3,4486,6.599,4691,4.73,10377,7.237,11037,8.338,11291,7.469,15275,7.889,16210,8.801,17142,9.411,17145,9.078,19356,8.699,19358,7.889,19362,6.467,19363,9.018,19364,6.467,19365,9.828,19366,6.467,19367,10.386,19368,6.467,19369,6.467,19370,11.234,19371,6.467,19372,6.467,19373,6.467,19374,6.467,19375,6.467,19376,6.467,19377,8.338,19378,5.979,19379,6.467,19380,5.979,19381,5.657,19382,6.467,19383,6.467,19384,6.467,19385,6.467,19386,6.467,19387,6.467,19388,6.467,19389,6.467,19390,6.467,19391,6.467,19392,6.467,19393,6.467,19394,6.467]],["title/classes/SystemDto.html",[0,0.231,11291,4.528]],["body/classes/SystemDto.html",[0,0.259,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,26,2.393,27,0.557,29,0.593,30,0.001,31,0.427,32,0.19,33,0.677,34,1.924,47,0.96,95,0.143,99,1.271,101,0.013,103,0.001,104,0.001,112,0.8,119,2.052,379,0.953,404,3.109,1194,3.884,2504,3.403,3072,3.476,5767,5.757,5787,4.853,6263,4.09,11291,8.315,11441,7.296,11840,5.666,12341,7.511,12344,7.105,12345,7.898,12346,7.4,12347,5.065,12348,5.065,12433,5.807,12435,5.807,12441,5.807,12443,5.807,12689,8.611,13791,5.428,17148,9.319,17155,6.381,17156,6.156,17157,6.381,19395,7.618,19396,10.445,19397,10.08,19398,7.618,19399,7.618,19400,7.618,19401,7.618,19402,7.618,19403,7.618,19404,7.618,19405,7.618,19406,6.664,19407,6.381,19408,7.043,19409,7.043,19410,7.043,19411,7.618,19412,7.043]],["title/entities/SystemEntity.html",[154,1.456,8548,3.686]],["body/entities/SystemEntity.html",[0,0.309,3,0.01,4,0.01,5,0.005,7,0.064,26,1.389,27,0.476,30,0.001,32,0.17,33,0.617,47,1.008,83,2.475,95,0.115,96,1.155,101,0.016,103,0,104,0,105,0.454,112,0.521,119,0.856,133,2.293,138,2.112,143,3.057,144,4.418,145,1.82,153,0.956,154,1.723,155,1.403,160,6.446,172,4.484,173,1.243,174,2.608,175,1.859,177,0.769,178,1.746,180,0.753,181,1.125,182,1.367,276,1.787,511,1.878,570,2.58,578,2.55,834,2.527,945,2.58,1194,3.394,1306,2.55,1389,2.995,1421,2.611,1600,1.581,1959,2.715,1984,3.126,2500,3.389,2504,1.878,4272,3.578,4310,4.672,4344,2.522,4619,3.389,5504,1.708,5589,3.273,5767,4.64,5787,2.678,5788,2.887,6263,3.52,7204,2.644,7291,2.839,7347,3.978,8548,3.548,8886,2.839,9871,2.753,10377,2.375,11441,7.499,11522,3.126,11523,3.126,11524,3.126,11525,3.204,11569,2.887,11572,2.795,11574,2.887,11577,2.887,11580,2.58,11584,2.839,11625,2.753,12047,3.204,12231,2.995,12339,4.998,12340,3.397,12341,6.054,12342,8.637,12343,8.119,12344,5.726,12345,6.366,12346,5.964,12347,2.795,12348,2.795,12349,3.397,12350,4.503,12351,4.877,12352,3.293,12353,4.877,12354,3.204,12355,3.204,12356,3.204,12357,3.204,12358,3.293,12359,3.204,12360,3.204,12361,3.204,12362,3.293,12363,4.877,12364,3.293,12365,3.204,12366,3.293,12367,3.204,12368,3.204,12369,3.204,12370,3.293,12371,4.503,12372,3.397,12373,3.397,12374,3.397,12375,3.397,12376,3.397,12377,3.397,12378,3.397,12379,3.397,12380,3.397,12381,3.397,12382,3.397,12383,3.397,12384,3.293,12385,3.397,12386,3.397,12387,3.397,12388,3.397,12389,3.397,12390,3.397,12391,3.397,12392,3.397,12393,3.397,12394,3.397,12395,3.397,12396,3.397,12397,3.397,12398,3.397,12399,3.397,12400,3.397,12401,3.397,12402,3.126,12403,3.397,12404,3.397,12405,3.397,12406,3.397,12407,3.397,12408,3.397,12409,3.397,12410,3.397,12411,3.397,12412,3.397,12413,3.397,12414,3.397,12415,3.397,12416,3.397,12417,3.204,12418,3.397,12419,3.126,12420,3.293,12421,3.204,12422,3.293,12423,3.204,12424,3.204,12425,3.293,12426,3.204,12427,3.293,12428,3.204,12429,3.057,12430,3.057,12431,3.057,12432,3.126,12433,3.204,12434,3.397,12435,3.204,12436,3.397,12437,3.397,12438,3.397,12439,3.397,12440,3.397,12441,3.204,12442,3.293,12443,3.204,12444,3.293,19413,4.203,19414,4.203,19415,4.203,19416,4.203,19417,4.203,19418,4.203,19419,4.203,19420,4.203,19421,4.203,19422,4.203,19423,4.203]],["title/classes/SystemFactory.html",[0,0.231,12835,5.958]],["body/classes/SystemFactory.html",[0,0.148,2,0.488,3,0.01,4,0.01,5,0.005,7,0.066,8,0.809,27,0.53,29,0.999,30,0.001,31,0.684,32,0.179,33,0.586,34,1.582,35,1.411,47,0.476,55,2.383,59,3.3,95,0.118,99,0.728,101,0.011,103,0,104,0,112,0.536,120,2.969,133,2.36,140,2.443,143,0.971,153,1.876,154,2.147,155,2.252,177,1.235,180,1.209,236,1.343,271,4.914,319,3.047,349,0.959,379,0.546,382,3.79,413,2.078,437,1.201,447,7.122,448,4.353,449,5.249,452,3.814,453,5.249,454,5.577,455,3.814,456,3.814,457,3.814,458,3.746,459,4.235,460,4.664,461,6.296,462,5.576,463,6.943,464,2.488,469,2.465,470,3.814,471,2.488,472,4.909,473,5.069,474,3.968,475,4.767,476,3.779,477,2.465,478,2.324,479,3.979,480,3.177,481,2.401,482,2.361,483,2.465,484,4.836,485,2.488,486,3.442,487,4.581,488,2.465,489,7.313,490,4.057,491,6.466,492,2.488,493,4.094,494,2.465,495,2.488,496,2.465,497,2.488,498,2.465,499,2.78,500,2.59,501,2.465,502,5.895,503,2.488,504,2.465,505,3.814,506,3.567,507,3.814,508,2.488,509,2.381,510,2.361,511,1.949,512,2.465,513,2.465,514,2.465,515,2.488,516,2.488,517,1.673,518,2.465,519,1.352,520,2.488,521,2.673,522,2.465,523,2.488,525,2.537,526,2.59,527,4.952,570,2.678,653,2.255,946,2.024,1194,2.32,1421,2.71,1426,2.537,1959,2.818,3072,3.08,3539,2.754,4619,2.255,5500,3.849,5504,1.773,5589,3.369,5767,2.223,7347,4.095,7349,4.909,8548,2.361,8797,7.506,8886,2.947,11441,5.33,11569,2.997,11572,2.901,11573,3.655,11574,2.997,11577,2.997,11580,2.678,11584,2.947,11625,2.858,12339,3.326,12341,2.901,12342,6.003,12343,5.77,12344,2.744,12345,3.05,12346,2.858,12347,2.901,12348,2.901,12371,6.38,12429,3.173,12430,3.173,12431,3.173,12432,3.245,12835,7.221,13396,3.526,14566,4.034,16415,4.034,19424,4.363,19425,6.24,19426,8.588,19427,8.588,19428,6.749,19429,4.363,19430,6.749,19431,4.363,19432,4.363,19433,4.363,19434,4.363,19435,4.363,19436,4.363,19437,4.363,19438,4.363,19439,4.363,19440,4.363,19441,4.363,19442,4.363,19443,4.363,19444,4.363,19445,4.363,19446,4.363,19447,4.363,19448,4.363,19449,4.363,19450,4.363]],["title/classes/SystemFilterParams.html",[0,0.231,19365,5.958]],["body/classes/SystemFilterParams.html",[0,0.381,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.459,30,0.001,32,0.186,33,0.614,95,0.162,99,1.501,101,0.015,103,0.001,104,0.001,112,0.891,119,2.283,138,2.04,141,5.359,147,6.022,148,2.855,149,4.65,150,2.05,151,7.459,153,2.55,247,3.938,249,4.945,847,4.298,1209,6.227,1909,4.151,3072,4.106,5500,6.398,10377,6.339,10774,8.344,19365,9.814,19451,8.997,19452,11.301,19453,8.997,19454,8.997,19455,9.576,19456,8.997,19457,8.997,19458,8.997]],["title/classes/SystemIdParams.html",[0,0.231,16210,5.335]],["body/classes/SystemIdParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,47,0.832,48,6.018,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,256,6.956,258,9.025,803,4.813,3072,5.382,3814,5.734,16210,9.239,19459,11.793]],["title/classes/SystemIdParams-1.html",[0,0.192,708,2.352,16210,4.435]],["body/classes/SystemIdParams-1.html",[0,0.406,2,1.117,3,0.023,4,0.023,5,0.012,7,0.151,26,2.71,27,0.409,30,0.001,32,0.136,48,6.075,95,0.162,99,1.665,101,0.016,103,0.001,104,0.001,112,0.949,138,1.815,148,3.167,150,2.274,245,3.134,256,7.111,803,4.877,5875,7.258,5876,8.064,16210,9.363,19460,11.951]],["title/classes/SystemMapper.html",[0,0.231,19461,5.958]],["body/classes/SystemMapper.html",[0,0.257,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.461,29,0.877,30,0.001,31,0.631,32,0.164,33,0.541,34,1.29,35,1.353,95,0.143,99,1.264,101,0.012,103,0.001,104,0.001,154,1.619,155,2.528,236,1.634,349,1.239,413,4.142,556,3.231,1194,2.604,1421,4.705,2302,5.296,4386,4.826,4619,3.915,5504,3.078,5589,3.782,5767,3.86,5962,7.003,7347,4.596,8548,7.083,8886,5.116,9150,6.627,11291,8.529,11441,8.452,11522,5.634,11523,5.634,11524,5.634,11525,5.774,11569,5.202,11572,5.036,11574,5.202,11577,5.202,11580,4.649,11584,5.116,12341,5.036,12344,4.764,12345,5.296,12352,5.934,12354,5.774,12356,5.774,12358,5.934,12362,5.934,12364,5.934,12366,5.934,12368,5.774,12370,5.934,12371,5.202,12689,9.144,16331,5.774,17595,8.785,17596,8.413,17600,8.413,17604,6.627,19396,7.003,19406,6.627,19407,6.345,19461,8.785,19462,7.575,19463,10.042,19464,9.284,19465,7.575,19466,7.575,19467,10.042,19468,7.575,19469,7.575,19470,10.042,19471,7.575,19472,7.575,19473,7.575,19474,7.575]],["title/modules/SystemModule.html",[201,1.804,1356,4.761]],["body/modules/SystemModule.html",[0,0.292,3,0.02,4,0.02,5,0.01,30,0.001,95,0.165,101,0.014,103,0.001,104,0.001,201,3.17,203,3.091,204,3.321,205,3.418,206,3.404,207,3.389,208,4.384,209,4.501,218,4.335,219,3.348,220,3.269,225,4.299,226,1.229,227,3.538,599,6.251,616,10.398,622,9.654,1356,9.895,12012,6.732,13345,11.759,13389,7.945,14797,7.518,15512,10.21,19475,8.594,19476,8.594,19477,8.594,19478,8.594,19479,8.594,19480,7.945,19481,8.594]],["title/classes/SystemOidcMapper.html",[0,0.231,19482,5.958]],["body/classes/SystemOidcMapper.html",[0,0.267,2,0.881,3,0.018,4,0.018,5,0.009,7,0.119,8,1.235,27,0.47,29,0.894,30,0.001,31,0.643,32,0.157,33,0.551,35,1.379,47,0.81,48,4.89,95,0.131,99,1.313,101,0.013,103,0.001,104,0.001,154,2.454,155,3.437,236,1.28,349,1.258,413,4.173,556,3.067,1959,5.083,5589,3.93,7347,4.775,8548,7.149,12343,9.236,12371,5.406,12417,6,12419,5.854,12421,6,12423,6,12424,6,12426,6,12428,6,12429,5.725,12430,5.725,12431,5.725,12432,5.854,13356,10.616,16364,7.277,17595,9.01,17596,8.628,17600,8.628,17604,6.886,19407,6.594,19464,9.522,19482,9.01,19483,12.178,19484,7.871,19485,10.299,19486,7.871,19487,7.871,19488,10.299,19489,7.871,19490,7.871,19491,10.299,19492,7.871,19493,7.871,19494,7.871,19495,7.871]],["title/injectables/SystemOidcService.html",[539,0.901,13345,5.705]],["body/injectables/SystemOidcService.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,8,1.265,12,4.844,26,2.617,27,0.479,29,0.822,30,0.001,31,0.591,32,0.144,33,0.506,34,1.798,35,1.268,36,2.629,40,5.104,95,0.166,99,1.364,100,2.746,101,0.013,103,0.001,104,0.001,177,1.496,226,1.169,227,3.366,236,1.33,262,2.87,291,5.946,340,3.929,345,2.602,349,1.09,379,1.022,437,1.512,529,2.313,539,1.397,541,1.957,608,2.433,622,9.528,3072,4.817,8548,4.424,13345,8.843,13356,6.404,13811,7.152,15067,9.679,19455,6.404,19482,7.152,19496,12.355,19497,8.175,19498,8.175,19499,8.175,19500,8.175,19501,8.175,19502,8.175,19503,7.558,19504,11.691,19505,8.175,19506,7.152,19507,7.558,19508,8.175]],["title/injectables/SystemRepo.html",[539,0.901,622,4.953]],["body/injectables/SystemRepo.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.105,8,1.132,10,3.836,12,4.332,18,4.778,26,2,27,0.524,29,0.942,30,0.001,31,0.678,32,0.18,33,0.581,34,1.177,35,1.5,36,2.72,40,3.342,49,3.724,95,0.147,99,1.153,101,0.011,103,0.001,104,0.001,154,1.477,155,3.151,180,1.692,226,0.988,236,1.536,262,2.977,349,1.111,382,3.487,437,0.894,479,5.049,486,2.079,521,2.737,529,1.955,539,1.25,541,1.654,622,6.867,679,7.51,685,3.995,686,4.457,687,5.442,711,4.242,712,4.293,713,4.242,714,4.293,715,4.925,716,4.242,717,4.293,718,3.836,722,5.268,756,4.527,992,3.301,993,3.262,994,3.262,995,3.45,1072,4.595,1073,4.242,1150,2.749,1242,6.192,1869,4.346,5256,7.15,5504,3.836,5950,4.832,8548,5.11,15067,9.054,19455,9.054,19509,6.911,19510,8.729,19511,6.911,19512,8.729,19513,6.911,19514,6.911,19515,8.26,19516,6.911,19517,6.911,19518,6.911,19519,6.39,19520,6.911,19521,6.911,19522,6.911,19523,6.911,19524,9.441]],["title/classes/SystemResponseMapper.html",[0,0.231,19381,5.958]],["body/classes/SystemResponseMapper.html",[0,0.244,2,0.804,3,0.017,4,0.017,5,0.009,7,0.109,8,1.162,27,0.449,29,0.854,30,0.001,31,0.614,32,0.16,33,0.526,34,1.224,35,1.318,95,0.155,101,0.012,103,0.001,104,0.001,236,1.784,349,1.133,413,4.098,437,1.519,556,1.809,777,4.263,819,2.52,1421,4.461,2523,5.804,3072,5.359,4486,4.219,4619,3.712,5504,2.918,5589,3.586,5767,3.66,7347,4.358,8755,5.627,8886,4.851,9998,5.342,10377,4.059,11206,6.641,11291,8.731,11441,4.638,11569,4.933,11572,4.776,11574,4.933,11577,4.933,11580,4.408,11584,4.851,11840,5.342,12341,4.776,12371,4.933,12689,9.346,13791,5.118,14373,6.284,15771,6.641,15773,6.641,15774,6.641,15775,6.641,15776,6.641,15777,6.641,15778,6.641,15779,6.641,15780,6.641,15781,6.641,15782,6.641,15783,6.641,15784,10.818,16331,5.475,17142,9.837,17145,10.435,17146,6.641,17154,6.641,17155,6.017,17156,5.804,17157,6.017,19377,8.96,19378,6.641,19381,8.478,19406,6.284,19407,6.017,19525,11.742,19526,9.691,19527,9.691,19528,9.691,19529,9.691,19530,9.691,19531,9.691,19532,7.182,19533,7.182,19534,9.691,19535,7.182,19536,9.691,19537,7.182,19538,6.641]],["title/classes/SystemScope.html",[0,0.231,19515,5.958]],["body/classes/SystemScope.html",[0,0.259,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,8,1.208,27,0.545,29,0.785,30,0.001,31,0.565,32,0.171,33,0.484,35,1.502,95,0.128,99,1.271,101,0.013,103,0.001,104,0.001,112,0.8,119,2.299,180,1.806,310,3.302,349,1.167,382,3.773,480,2.115,486,2.292,519,2.36,593,4.184,603,2.581,2288,6.706,5504,5.524,6058,6.808,6059,6.808,6060,6.808,6065,6.808,6066,6.808,6067,5.232,6068,5.145,6069,5.232,6070,5.232,6079,5.145,6080,6.808,6081,5.232,6082,5.145,6083,5.232,6084,5.145,6085,7.631,8548,4.123,10292,6.156,10310,9.883,11441,4.92,12342,5.541,12343,5.326,14286,7.043,14287,7.043,19425,11.116,19426,11.116,19427,11.116,19515,11.64,19539,12.023,19540,7.618]],["title/injectables/SystemService.html",[539,0.901,15512,4.953]],["body/injectables/SystemService.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.085,8,0.973,12,3.725,18,4.108,26,2.226,27,0.457,29,0.869,30,0.001,31,0.625,32,0.177,33,0.536,34,1.383,35,1.262,36,2.622,40,3.925,59,1.733,95,0.152,99,0.931,101,0.009,103,0,104,0,177,1.486,226,0.798,227,2.297,236,1.557,262,2.865,291,4.058,340,2.681,349,1.242,379,1.015,437,1.238,529,1.578,539,1.074,541,1.335,599,4.058,600,3.465,603,2.243,608,2.981,622,8.475,1194,2.791,3072,5.488,5767,4.136,8548,6.799,10377,6.584,11291,7.424,11441,3.603,11840,7.117,11843,7.505,12012,4.371,12341,5.397,12344,5.105,12345,5.675,12672,8.232,12674,4.674,13791,5.784,13811,4.881,14399,8.847,15512,5.904,16331,4.253,17155,4.674,17156,7.732,17157,8.016,19408,7.505,19409,7.505,19410,7.505,19455,8.232,19461,4.881,19503,5.158,19506,4.881,19507,5.158,19519,7.505,19541,5.579,19542,8.117,19543,8.117,19544,5.579,19545,5.579,19546,8.117,19547,5.579,19548,8.117,19549,5.579,19550,8.117,19551,5.579,19552,5.579,19553,5.579,19554,8.117,19555,7.505,19556,5.579,19557,8.117,19558,5.579,19559,5.579,19560,5.579,19561,5.579,19562,5.579,19563,5.579,19564,8.117,19565,8.117,19566,8.117,19567,8.117,19568,8.117,19569,8.117,19570,8.117,19571,5.579,19572,5.579,19573,5.158,19574,8.117,19575,5.579,19576,9.569,19577,5.579,19578,5.579,19579,5.579,19580,5.579,19581,5.579,19582,5.579]],["title/injectables/SystemUc.html",[539,0.901,19356,5.705]],["body/injectables/SystemUc.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,8,1.224,12,4.684,26,2.566,27,0.467,29,0.888,30,0.001,31,0.639,32,0.166,33,0.547,34,1.739,35,1.226,36,2.578,40,4.936,59,2.412,95,0.16,99,1.295,101,0.013,103,0.001,104,0.001,145,3.363,177,1.421,226,1.11,236,1.263,262,2.83,291,5.648,340,3.731,345,2.471,349,1.054,379,0.971,437,1.004,480,2.156,486,2.336,529,2.197,539,1.351,541,1.859,608,2.629,3072,4.658,8548,4.202,10377,7.111,11291,8.054,15512,9.395,16331,5.919,16935,7.179,19356,8.551,19412,9.437,19452,11.199,19455,6.083,19480,7.179,19506,6.793,19510,9.437,19512,9.437,19573,7.179,19583,7.765,19584,7.765,19585,12.113,19586,7.765,19587,7.765,19588,7.179,19589,7.765,19590,7.765]],["title/classes/TargetInfoMapper.html",[0,0.231,15152,5.958]],["body/classes/TargetInfoMapper.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,29,0.746,30,0.001,31,0.653,32,0.131,33,0.459,34,1.631,35,1.15,95,0.148,99,1.597,100,3.915,101,0.016,103,0.001,104,0.001,236,1.558,349,0.989,413,3.87,437,1.238,778,6.47,2677,4.323,4370,8.022,6916,9.727,15123,10.568,15152,10.198,18374,8.377,18376,8.377,19591,11.657,19592,11.657,19593,9.576,19594,9.576,19595,9.576]],["title/classes/TargetInfoResponse.html",[0,0.231,15123,5.503]],["body/classes/TargetInfoResponse.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.498,29,0.693,30,0.001,31,0.769,32,0.166,33,0.427,34,2.314,47,0.9,95,0.113,101,0.015,103,0.001,104,0.001,112,0.885,138,2.026,150,2.027,153,2.765,154,2.724,245,3.189,253,4.357,379,1.393,404,3.631,769,4.503,816,4.083,1982,3.539,2100,6.971,2677,5.755,2855,5.829,2856,5.934,2857,5.934,4364,7.784,15123,10.606,18381,7.784,18382,8.227,19596,12.747]],["title/entities/Task.html",[154,1.456,2624,3.042]],["body/entities/Task.html",[0,0.164,3,0.007,4,0.007,5,0.003,7,0.168,26,1.724,27,0.471,30,0.001,31,0.35,32,0.167,33,0.531,34,0.825,47,0.719,55,1.042,83,2.871,95,0.143,96,0.795,101,0.013,103,0,104,0,105,0.523,112,0.699,119,2.298,138,2.09,143,2.633,144,3.231,145,3.073,153,1.421,154,1.035,155,0.965,160,4.169,172,3.605,173,0.855,174,1.926,175,1.279,178,1.201,180,0.518,181,0.774,182,0.941,226,0.413,236,1.712,239,2.677,347,3.425,349,1.312,437,1.741,474,1.235,480,1.735,486,1.88,517,1.109,519,2.264,528,1.506,529,1.37,556,2.05,578,1.755,593,1.071,603,2.405,604,1.968,644,3.336,654,1.859,662,3.48,696,1.91,708,3.037,760,1.605,822,1.665,910,2.022,1150,1.15,1158,1.382,1276,0.904,1391,1.894,1559,1.272,1654,1.373,1663,1.224,1676,2.21,1759,2.906,1858,3.888,1864,3.632,1886,4.292,1924,1.699,1982,1.15,2381,1.843,2608,4.857,2611,3.989,2615,1.578,2620,3.086,2621,1.699,2622,3.303,2623,2.022,2624,4.831,2634,2.933,2638,5.331,2821,3.581,3074,1.634,3224,3.23,3227,3.751,3304,4.396,3392,1.843,3680,5.76,3682,2.423,3734,4.036,3753,5.412,3757,3.272,3758,5.69,3759,4.788,3760,5.767,3761,6.274,3762,3.272,3773,5.907,4057,1.699,4206,1.643,4218,1.819,4263,2.423,4282,1.266,4918,1.819,4919,1.868,5039,2.223,5066,2.939,6536,4.155,6564,2.53,6569,2.674,6575,1.796,6578,2.939,6589,3.046,6590,1.62,6602,2.266,6606,2.061,6608,1.953,6609,1.868,6610,1.796,6611,1.735,6627,1.843,6815,2.53,6824,1.796,6825,1.923,6898,3.795,6921,3.382,6931,1.868,6936,2.151,7708,2.674,8004,5.609,8160,2.104,9688,1.843,11135,2.022,11906,1.986,11926,1.986,12060,2.337,12296,2.337,12316,5.437,12317,2.337,12335,5.437,12336,2.337,12447,4.546,12450,3.451,12451,4.648,12452,4.546,12453,2.53,12455,2.53,12456,2.423,12457,2.53,12458,2.53,12459,2.53,12460,2.53,12461,2.53,12462,5.467,12463,5.05,12464,4.896,12465,2.53,12466,4.238,12467,2.423,12468,4.238,12469,2.53,12470,2.53,12471,2.423,12472,7.703,12473,2.53,12474,2.205,12475,2.337,12476,4.238,12477,6.395,12478,3.914,12479,6.395,12480,2.53,12481,2.53,12482,2.53,12483,4.238,12484,2.53,12485,2.53,12486,2.53,12487,2.53,12488,2.53,12489,2.53,12490,2.53,12491,2.53,12492,2.53,12493,2.53,12494,2.53,12495,2.53,12496,4.238,12497,2.53,12498,2.53,12499,2.205,12500,2.53,12501,2.53,12502,2.53,12503,2.53,12504,2.53,12505,2.53,12506,4.238,12507,2.53,12508,2.53,12509,4.238,12510,2.53,12511,4.238,12512,2.266,12513,2.423,12514,2.53,12515,6.395,12516,5.467,12517,4.058,12518,2.337,12519,5.467,12520,2.53,12521,5.467,12522,2.423,12523,4.238,12524,2.53,12525,2.53,12526,2.53,12527,5.467,12528,2.53,12529,4.238,12530,2.423,12531,2.53,12532,2.53,12533,6.395,12534,2.53,12535,2.53,12536,2.53,12537,2.53,12538,2.53,12539,2.53,12540,2.53,12541,4.238,12542,2.53,12543,2.53,12544,4.238,12545,2.53,12546,2.53,12547,2.53,12548,2.53,12549,2.423,12550,2.53,12551,6.395,12552,2.53,12553,2.53,12554,2.53,12555,2.53,12556,2.53,12557,2.53,12558,2.53,12559,2.53,12560,2.53,12561,2.53,19597,2.892,19598,2.892,19599,2.892,19600,2.892,19601,2.892,19602,2.892,19603,2.892,19604,2.892,19605,2.892,19606,2.892,19607,2.892,19608,2.892,19609,2.892,19610,2.892,19611,2.892]],["title/modules/TaskApiModule.html",[201,1.804,18587,5.503]],["body/modules/TaskApiModule.html",[0,0.268,3,0.018,4,0.018,5,0.009,30,0.001,95,0.168,101,0.013,103,0.001,104,0.001,201,3.044,203,2.836,204,3.048,205,3.136,206,3.123,207,3.11,208,4.209,209,2.965,218,4.101,219,3.072,220,3,222,4.898,223,4.246,225,4.067,226,1.128,227,3.247,259,3,1689,7.079,1741,7.871,1742,8.498,1746,9.07,2469,3.58,2702,3.723,2981,4.785,6405,9.436,6409,7.291,13880,9.649,18587,11.568,19079,10.053,19090,10.868,19612,7.886,19613,7.886,19614,7.886,19615,10.868,19616,10.868,19617,7.886,19618,10.053,19619,7.886,19620,7.886]],["title/entities/TaskBoardElement.html",[154,1.456,2635,5.503]],["body/entities/TaskBoardElement.html",[0,0.305,3,0.021,4,0.021,5,0.011,7,0.136,27,0.368,30,0.001,32,0.123,95,0.155,96,3.355,101,0.015,103,0.001,104,0.001,112,0.89,138,1.633,143,2.494,144,4.023,154,2.394,155,2.996,173,2.655,180,1.609,181,2.403,403,4.983,993,4.238,1221,6.875,1676,4.097,1770,4.899,2503,5.073,2604,8.776,2624,5.713,2625,5.576,2626,7.983,2628,7.521,2635,9.053,2677,5.773,2972,6.843,3009,9.385,3544,6.064,4440,6.53,5039,4.119,5040,7.854,6501,6.276,6951,7.033,6952,7.338,6953,6.843,6954,6.53,12289,9.8,14150,8.3,19621,11.202,19622,8.977]],["title/controllers/TaskController.html",[259,2.591,19618,5.958]],["body/controllers/TaskController.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.069,8,0.838,10,3.45,27,0.476,29,0.904,30,0.001,31,0.65,32,0.159,33,0.557,35,1.395,36,2.777,56,3.38,70,3.489,95,0.161,100,2.852,101,0.008,103,0,104,0,138,2.047,143,1.556,145,2.358,150,1.04,177,1.279,223,1.88,226,0.653,236,0.743,247,1.999,259,1.737,261,2.168,262,2.982,270,6.687,271,3.322,285,2.991,294,6.944,310,4.123,324,3.537,333,3.593,334,2.949,337,2.36,338,2.413,340,2.194,343,2.432,345,1.453,349,1.199,437,1.641,480,1.268,486,1.374,602,3.69,603,1.911,608,2.595,631,2.343,811,3.783,819,3.795,831,8.492,1541,3.69,1542,3.396,1543,3.995,1559,4.185,2624,3.794,2879,8.092,2900,2.58,2901,2.451,2936,6.862,2963,2.949,2981,2.77,2982,2.557,3717,4.106,5103,2.629,6215,3.577,6453,3.69,6462,7.97,6468,4.221,6679,7.693,8004,6.062,12260,3.136,14153,3.825,14159,3.825,15067,6.652,15073,4.221,17778,3.825,17779,4.221,17793,3.995,17795,3.995,17905,6.115,19086,10.932,19615,7.114,19616,7.114,19618,6.115,19623,4.566,19624,7.851,19625,8.492,19626,6.989,19627,7.851,19628,4.566,19629,4.566,19630,4.566,19631,6.989,19632,4.566,19633,4.566,19634,4.566,19635,6.989,19636,4.566,19637,4.566,19638,4.566,19639,4.566,19640,6.989,19641,4.566,19642,4.566,19643,6.989,19644,4.566,19645,4.566,19646,6.989,19647,4.566,19648,3.995,19649,4.566,19650,4.566,19651,3.825,19652,3.69,19653,4.566,19654,4.566,19655,4.566,19656,6.989,19657,4.566,19658,4.566,19659,4.566,19660,4.566,19661,4.566,19662,9.514,19663,4.566,19664,4.566,19665,6.989,19666,10.255,19667,4.566,19668,4.566,19669,4.566,19670,4.566,19671,4.566,19672,4.566]],["title/classes/TaskCopyApiParams.html",[0,0.231,6462,5.705]],["body/classes/TaskCopyApiParams.html",[0,0.368,2,0.954,3,0.02,4,0.02,5,0.01,7,0.129,27,0.444,30,0.001,32,0.148,33,0.602,34,2.137,47,0.886,95,0.137,100,3.641,101,0.014,103,0.001,104,0.001,112,0.861,138,1.972,148,2.704,149,4.535,150,1.941,153,2.945,249,4.823,253,5.308,803,4.865,1390,9.83,1858,5.695,1864,4.015,2418,6.368,2624,5.916,2634,5.088,2856,6.683,2857,6.683,3304,6.265,5066,7.233,6223,10.977,6462,9.081,7101,8.492,10768,9.484,14163,7.878,14164,7.878,19673,9.987,19674,8.521]],["title/injectables/TaskCopyService.html",[539,0.901,2942,5.335]],["body/injectables/TaskCopyService.html",[0,0.181,3,0.012,4,0.012,5,0.006,7,0.081,8,0.942,26,1.664,27,0.449,29,0.854,30,0.001,31,0.642,32,0.173,33,0.526,35,1.236,36,1.672,47,0.377,95,0.15,99,0.89,101,0.009,103,0,104,0,153,1.213,177,1.707,226,0.763,227,2.196,236,0.868,239,2.973,262,2.722,271,4.024,347,4.201,349,0.963,379,0.982,437,1.534,528,2.778,539,1.04,541,1.277,556,2.889,603,2.603,608,2.644,654,1.587,844,4.323,1150,2.122,1163,4.941,1203,1.703,1655,3.201,1746,8.018,1864,4.248,2622,5.795,2624,5.944,2634,2.504,2931,4.179,2936,6.348,2942,6.154,2945,8.625,2951,9.29,2961,11.205,2963,7.407,2979,4.179,2980,3.968,2981,3.237,2982,2.987,2994,4.667,2995,4.179,2996,4.469,3031,4.469,3538,3.871,3539,2.177,4771,4.667,5487,3.495,6358,9.934,6359,4.932,6363,7.263,6372,9.51,6381,6.873,6386,10.137,6388,8.158,6399,6.154,6434,4.469,6726,4.311,6744,4.469,6751,4.932,6921,2.887,10574,4.932,12447,3.88,12452,3.88,19675,11.469,19676,9.325,19677,7.856,19678,4.667,19679,5.335,19680,7.856,19681,11.859,19682,5.335,19683,10.964,19684,5.335,19685,7.856,19686,12.421,19687,5.335,19688,7.856,19689,5.335,19690,5.335,19691,5.335,19692,5.335,19693,5.335,19694,5.335,19695,5.335,19696,5.335,19697,5.335,19698,5.335,19699,5.335,19700,5.335,19701,5.335,19702,4.932,19703,5.335,19704,4.932,19705,5.335,19706,5.335,19707,5.335,19708,5.335]],["title/injectables/TaskCopyUC.html",[539,0.901,19615,5.705]],["body/injectables/TaskCopyUC.html",[0,0.143,3,0.01,4,0.01,5,0.005,7,0.064,8,0.788,26,2.518,27,0.476,29,0.881,30,0.001,31,0.634,32,0.159,33,0.543,35,1.359,36,2.327,39,1.134,47,0.855,95,0.143,99,0.703,101,0.007,102,2.119,103,0,104,0,119,0.858,131,3.923,177,1.917,226,0.603,227,1.736,236,1.314,239,2.822,262,2.695,284,1.302,285,2.762,347,2.407,349,1.082,379,0.822,437,1.537,475,2.164,519,3.388,529,2.58,539,0.87,541,1.009,556,3.239,560,1.736,562,2.896,579,2.246,603,2.735,608,2.414,643,1.874,760,2.341,928,4.445,929,2.503,986,1.426,1021,1.649,1113,4.9,1150,1.677,1158,2.014,1174,2.264,1229,2.762,1239,2.588,1454,3.714,1600,1.586,1612,2.558,1615,2.558,1663,1.784,1666,2.652,1695,4.82,1741,6.355,1742,7.165,1746,7.647,1858,3.14,1864,3.662,2017,1.846,2018,2.065,2019,1.99,2020,2.687,2418,2.477,2468,2.503,2469,1.914,2619,2.246,2622,5.226,2624,4.886,2634,1.979,2936,5.311,2942,8.569,2945,7.955,2951,9.485,2961,9.163,2963,2.723,2981,2.558,2982,2.361,3030,3.689,3031,3.532,3032,3.899,3546,6.327,3609,2.948,4019,4.134,4644,3.214,4691,2.212,5066,3.988,6283,2.341,6422,6.766,6464,8.432,6592,3.407,6599,3.136,6713,3.532,6726,5.311,6728,3.899,6764,3.689,6765,7.64,6771,3.689,6777,3.689,6778,3.689,6779,2.723,8691,3.689,12324,3.303,13155,3.407,14112,7.746,14176,7.467,14177,3.899,14179,3.899,14180,3.689,14183,3.899,14199,5.506,17125,3.532,17841,3.899,18884,6.077,18930,3.689,19291,6.327,19615,5.506,19683,10.988,19709,11.885,19710,6.573,19711,6.573,19712,6.573,19713,8.077,19714,6.573,19715,8.077,19716,4.217,19717,6.573,19718,4.217,19719,6.573,19720,4.217,19721,4.217,19722,6.573,19723,4.217,19724,6.573,19725,9.887,19726,4.217,19727,4.217,19728,6.573,19729,4.217,19730,6.573,19731,4.217,19732,3.407,19733,3.899,19734,3.899,19735,4.217,19736,3.689,19737,4.217,19738,4.217,19739,4.217,19740,3.532,19741,3.899,19742,4.217,19743,4.217,19744,4.217,19745,6.573,19746,4.217,19747,4.217,19748,3.899,19749,4.217,19750,4.217,19751,4.217,19752,4.217,19753,4.217,19754,4.217]],["title/classes/TaskCreateParams.html",[0,0.231,19755,5.958]],["body/classes/TaskCreateParams.html",[0,0.317,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,27,0.509,30,0.001,31,0.598,32,0.182,33,0.639,34,1.956,47,0.915,83,4.161,95,0.146,99,1.135,101,0.011,103,0.001,104,0.001,112,0.742,133,4.015,138,2.261,142,4.492,143,2.557,144,3.078,145,2.594,148,2.16,149,4.729,150,1.551,153,3.056,245,2.45,247,2.979,248,5.022,249,5.029,253,5.622,802,6.797,803,4.353,1203,2.983,1276,2.92,1858,5.096,1864,3.46,2624,5.793,2634,4.385,2711,6.12,2856,6.116,2857,6.116,3224,3.518,3227,5.475,3680,5.279,3734,6.889,5066,6.472,7105,7.826,7116,5.5,7118,7.122,8248,5.734,8697,5.5,12449,7.935,15649,6.292,19673,10.666,19755,8.173,19756,6.806,19757,8.638,19758,6.806,19759,6.292,19760,6.806,19761,8.638,19762,6.806,19763,6.806,19764,6.292]],["title/classes/TaskFactory.html",[0,0.231,19113,5.958]],["body/classes/TaskFactory.html",[0,0.15,2,0.494,3,0.01,4,0.01,5,0.005,7,0.067,8,0.817,27,0.535,29,1.001,30,0.001,31,0.697,32,0.179,33,0.588,34,1.417,35,1.416,47,0.481,55,2.394,59,3.138,95,0.135,99,0.737,101,0.007,103,0,104,0,112,0.541,120,2.997,133,2.382,140,2.473,143,1.517,145,2.596,153,1.89,154,2.159,155,2.273,177,1.247,180,1.221,236,1.353,239,2.449,271,4.982,319,3.075,349,1.043,379,0.852,382,3.8,413,2.098,437,1.486,447,7.138,448,4.375,449,5.282,452,3.849,453,5.282,454,5.597,455,3.849,456,3.849,457,3.849,458,3.781,459,4.268,460,4.699,461,6.321,462,5.606,463,6.96,464,2.518,469,2.495,470,3.849,471,2.518,472,4.941,473,5.101,474,3.993,475,4.797,476,3.815,477,2.495,478,2.352,479,3.998,480,3.189,481,2.43,482,2.39,483,2.495,484,4.867,485,2.518,486,3.546,487,4.616,488,2.495,489,7.267,490,4.073,491,6.491,492,2.518,493,4.125,494,2.495,495,2.518,496,2.495,497,2.518,498,2.495,499,2.813,500,2.621,501,2.495,502,5.924,503,2.518,504,2.495,505,3.849,506,3.6,507,3.849,508,2.518,509,2.41,510,2.39,511,1.973,512,2.495,513,2.495,514,2.495,515,2.518,516,2.518,517,1.693,518,2.495,519,1.368,520,2.518,521,2.698,522,2.495,523,2.518,525,2.568,526,2.621,527,5.609,603,2.144,648,3.146,649,3.366,654,2.473,760,2.451,929,2.621,1655,2.649,1762,3.568,2624,3.043,3734,5.371,6803,3.459,6804,3.568,6808,6.515,6813,3.459,6921,3.687,8004,5.298,10202,6.298,10203,4.082,12450,3.146,12499,7.126,12512,7.323,12513,7.831,19113,7.275,19119,4.082,19765,4.416,19766,4.416,19767,6.812,19768,4.416,19769,4.416,19770,4.416,19771,6.812,19772,4.416]],["title/classes/TaskListResponse.html",[0,0.231,19651,5.705]],["body/classes/TaskListResponse.html",[0,0.304,2,0.718,3,0.015,4,0.015,5,0.008,7,0.097,27,0.482,29,0.5,30,0.001,31,0.627,32,0.182,33,0.565,34,1.761,47,0.917,55,2.945,56,5.902,59,2.786,70,6.094,83,3.437,95,0.142,99,1.07,100,2.155,101,0.015,103,0.001,104,0.001,112,0.712,119,1.306,133,2.243,138,2.036,145,1.781,149,4.643,150,1.462,153,2.35,180,1.607,245,3.449,247,2.808,284,3.638,347,3.787,348,3.203,376,4.503,377,4.693,379,1.122,381,2.155,382,3.378,404,2.618,406,4.143,408,4.143,556,1.616,810,7.689,811,6.606,812,5.115,814,3.224,816,4.744,817,3.083,818,3.592,819,2.251,820,4.485,821,5.791,822,5.164,823,4.202,824,3.417,825,4.485,826,4.485,828,4.035,829,3.561,1220,3.592,1600,2.412,1858,4.939,1886,7.101,1924,3.768,1982,2.551,2158,3.659,2193,2.595,2624,4.619,2720,7.041,3227,3.292,3734,4.143,3735,3.985,3748,5.026,6218,5.026,6219,4.406,6220,4.265,12463,5.184,12464,5.026,17526,8.355,19651,7.513,19652,10.329,19773,5.931,19774,6.415,19775,6.415,19776,7.247,19777,5.931,19778,5.931,19779,5.931]],["title/classes/TaskMapper.html",[0,0.231,19648,5.958]],["body/classes/TaskMapper.html",[0,0.231,2,0.763,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,27,0.437,29,0.831,30,0.001,31,0.697,32,0.157,33,0.512,34,1.161,35,1.283,95,0.135,99,1.137,100,4.178,101,0.011,103,0.001,104,0.001,145,1.893,153,2.126,236,1.522,271,3.659,347,3.426,349,1.103,376,2.969,377,3.094,413,4.053,437,1.609,778,5.192,785,3.404,1858,5.1,1886,4.682,2193,2.758,2624,4.179,3224,3.524,3227,4.8,3518,8.183,3734,6.041,5066,5.675,5140,6.303,6487,8.648,6488,8.648,8160,8.358,9288,8.183,12448,8.547,12449,8.547,12464,5.341,12471,5.711,12499,5.197,17526,7.558,17690,8.648,19648,8.183,19652,9.285,19702,8.648,19755,10.053,19780,6.817,19781,9.353,19782,9.353,19783,9.353,19784,6.817,19785,9.353,19786,10.053,19787,6.817,19788,9.353,19789,6.817,19790,5.964,19791,6.817,19792,6.817,19793,6.817,19794,9.353,19795,6.817,19796,6.817,19797,6.817,19798,6.817,19799,6.817,19800,6.817,19801,6.817,19802,6.817,19803,6.817,19804,6.817,19805,6.817,19806,6.817,19807,6.817,19808,6.817,19809,9.353,19810,6.817,19811,6.817,19812,6.817,19813,10.624,19814,9.353,19815,9.353,19816,9.353]],["title/modules/TaskModule.html",[201,1.804,13880,5.065]],["body/modules/TaskModule.html",[0,0.262,3,0.018,4,0.018,5,0.009,30,0.001,95,0.159,101,0.013,103,0.001,104,0.001,201,3.012,203,2.777,204,2.983,205,3.07,206,3.057,207,3.045,208,4.165,209,4.276,218,4.044,219,3.008,220,2.937,225,4.011,226,1.104,227,3.178,560,3.178,1163,4.855,1741,7.824,1742,8.448,1745,9.831,1746,9.016,2942,10.829,2981,4.684,2982,4.323,3530,9.592,3538,3.804,3539,3.15,5052,10.537,6405,9.38,13880,10.681,19282,11.171,19817,7.72,19818,7.72,19819,7.72,19820,7.72,19821,7.72]],["title/injectables/TaskRepo.html",[539,0.901,1746,4.761]],["body/injectables/TaskRepo.html",[0,0.124,3,0.009,4,0.009,5,0.004,7,0.111,8,0.702,10,2.379,12,2.687,18,2.963,26,2.714,27,0.476,29,0.886,30,0.001,31,0.637,32,0.174,33,0.546,34,0.621,35,1.397,36,2.657,39,0.98,40,2.831,53,2.65,56,1.762,58,2.353,59,3.055,72,1.654,83,1.798,95,0.131,96,1.001,98,2.163,101,0.006,103,0,104,0,119,1.494,120,4.728,143,1.872,153,0.828,154,0.779,155,1.954,173,1.078,180,1.049,226,0.521,236,1.927,262,2.905,310,2.538,319,3.795,333,3.106,349,1.068,382,2.536,437,1.657,479,4.356,480,1.012,486,1.096,490,4.427,539,0.775,541,0.872,556,2.117,593,2.169,603,1.975,608,2.477,679,6.071,685,2.478,686,2.764,687,3.714,711,2.236,712,2.263,713,2.236,714,2.263,715,2.597,716,2.236,717,2.263,718,2.023,749,2.387,759,2.387,767,2.503,817,1.751,971,3.222,1391,2.387,1655,2.186,1746,4.094,1858,3.506,1864,2.169,2029,2.71,2031,4.75,2288,4.989,2365,2.387,2439,1.784,2624,5.452,2634,3.945,3073,5.356,3227,3.005,3304,1.819,3573,9.042,3635,2.503,3680,2.059,4451,2.322,4455,2.503,4689,3.893,4691,3.85,4778,4.666,4779,5.413,4914,2.236,5091,3.309,5103,5.302,5504,3.415,5948,3.405,6283,4.666,6679,5.525,6845,2.778,6849,2.778,6968,7.902,6969,7.302,6998,2.65,6999,2.65,7872,2.71,8004,2.322,9068,3.053,9098,3.369,9102,5.122,11726,2.263,12499,2.778,17758,3.369,18957,4.463,19822,3.644,19823,5.855,19824,7.34,19825,7.34,19826,6.786,19827,5.855,19828,5.855,19829,3.644,19830,3.644,19831,3.644,19832,5.413,19833,7.34,19834,3.644,19835,3.644,19836,3.369,19837,3.644,19838,5.855,19839,3.644,19840,5.855,19841,3.644,19842,3.644,19843,9.402,19844,3.644,19845,3.644,19846,3.644,19847,3.644,19848,3.644,19849,3.369,19850,3.369,19851,3.369,19852,3.369,19853,9.208,19854,3.644,19855,3.644,19856,3.644,19857,3.644,19858,3.644,19859,3.644,19860,3.644,19861,3.644,19862,3.644,19863,3.644,19864,3.644,19865,3.644,19866,3.644,19867,2.945,19868,3.644,19869,3.644,19870,3.644,19871,3.644,19872,3.644,19873,3.644,19874,3.644,19875,3.644,19876,3.644,19877,3.644,19878,3.644,19879,3.644,19880,3.644,19881,3.644,19882,3.644,19883,3.644,19884,3.644,19885,9.834,19886,7.34,19887,3.188,19888,3.188,19889,3.188,19890,3.644,19891,7.34,19892,3.644,19893,3.644,19894,3.644,19895,3.644,19896,3.644,19897,3.644,19898,3.644,19899,3.644,19900,3.644,19901,3.644,19902,5.855,19903,3.644,19904,3.644,19905,3.644,19906,3.644,19907,3.644,19908,3.644,19909,3.188,19910,3.644,19911,5.855,19912,3.644,19913,3.644,19914,3.644,19915,3.188,19916,3.644,19917,3.188,19918,3.644,19919,3.369,19920,2.945,19921,3.644,19922,3.188,19923,3.644,19924,3.644,19925,3.369,19926,3.644,19927,3.369,19928,3.644,19929,3.644]],["title/classes/TaskResponse.html",[0,0.231,19652,5.503]],["body/classes/TaskResponse.html",[0,0.279,2,0.634,3,0.013,4,0.013,5,0.007,7,0.086,27,0.546,29,0.441,30,0.001,31,0.656,32,0.187,33,0.622,34,1.914,47,0.964,55,2.077,56,3.969,70,4.098,83,3.799,95,0.134,99,0.945,100,2.757,101,0.014,103,0,104,0,112,0.652,119,1.671,133,2.87,138,2.407,145,1.573,149,4.872,150,1.291,153,2.746,180,1.015,245,3.544,247,2.48,284,2.535,347,4.115,348,4.098,376,4.893,377,5.099,379,1.027,381,2.757,404,2.312,406,3.659,408,3.659,480,2.279,486,2.47,769,2.867,810,5.038,811,3.066,812,3.231,828,3.563,829,3.145,1209,3.145,1220,4.597,1600,3.087,1858,5.366,1886,7.716,1924,3.328,1982,2.253,2158,4.682,2193,3.321,2624,5.019,2717,5.849,2720,6.656,3227,4.954,3734,6.234,3735,5.996,3748,4.438,6218,6.431,6219,5.638,6220,5.458,12463,7.8,12464,7.562,17526,8.553,19651,4.746,19652,10,19773,5.238,19776,7.8,19777,5.238,19778,5.238,19779,5.238,19930,5.665,19931,5.665,19932,5.665,19933,5.665,19934,5.665,19935,5.665,19936,5.665,19937,5.665,19938,5.665,19939,5.665,19940,5.665,19941,5.665,19942,5.665,19943,5.665,19944,5.665]],["title/injectables/TaskRule.html",[539,0.901,1708,5.503]],["body/injectables/TaskRule.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.096,8,1.064,27,0.456,29,0.866,30,0.001,31,0.623,32,0.16,33,0.534,35,1.233,95,0.154,101,0.01,103,0.001,104,0.001,119,2.473,131,4.389,143,1.408,145,1.756,154,2.86,177,1.878,226,0.904,239,3.095,349,1.255,379,1.11,437,1.647,539,1.175,541,1.514,603,2.441,604,2.57,643,2.811,662,3.821,1276,1.977,1559,3.906,1606,6.021,1609,7.365,1610,6.828,1624,4.344,1634,7.547,1655,3.795,1663,2.676,1672,5.387,1700,9.281,1704,10.084,1708,7.175,1813,5.734,1817,5.515,1824,4.205,2624,5.924,3304,3.158,3349,5.903,3350,4.272,3353,5.816,3356,4.272,3357,5.997,6857,5.533,6858,5.533,6859,5.298,6860,7.767,6921,3.423,14268,8.209,17749,7.767,17751,8.209,19945,6.324,19946,10.286,19947,6.324,19948,8.879,19949,6.324,19950,6.324,19951,6.324,19952,6.324,19953,8.879,19954,6.324,19955,6.324,19956,6.324,19957,8.879,19958,6.324]],["title/classes/TaskScope.html",[0,0.231,19843,5.958]],["body/classes/TaskScope.html",[0,0.146,2,0.482,3,0.01,4,0.01,5,0.005,7,0.065,8,0.8,26,2.872,27,0.537,29,0.986,30,0.001,31,0.71,32,0.178,33,0.608,35,1.537,39,2.201,83,3.591,95,0.117,96,1.182,101,0.007,103,0,104,0,112,0.53,119,2.515,143,1.821,173,1.272,180,1.196,236,0.7,310,4.776,349,1.293,382,3.011,437,1.192,480,2.771,486,1.294,519,1.333,593,3.415,603,2.544,1655,2.581,1864,2.473,2288,6.76,2439,2.107,2624,1.922,2634,3.839,3227,4.731,3597,6.611,3734,6.445,3758,5.719,5504,4.856,6058,4.509,6059,4.509,6060,4.509,6065,4.509,6066,4.509,6067,2.955,6068,2.906,6069,2.955,6070,2.955,6079,2.906,6080,4.509,6081,2.955,6082,2.906,6083,2.955,6084,2.906,6085,8.073,6283,6.634,6808,3.37,6845,5.089,6921,5.401,6989,3.477,8004,4.254,10292,3.477,10301,3.764,10304,3.978,10308,3.764,10310,7.157,10311,6.172,14284,6.172,14285,6.172,14288,3.764,19843,11.818,19887,5.841,19888,5.841,19889,8.066,19909,8.066,19959,12.667,19960,6.676,19961,6.676,19962,6.676,19963,6.676,19964,6.676,19965,6.676,19966,6.676,19967,6.676,19968,6.676,19969,6.676,19970,6.676,19971,4.302,19972,6.676,19973,4.302,19974,6.676,19975,6.676,19976,4.302,19977,6.676,19978,6.676,19979,4.302,19980,6.676,19981,4.302,19982,6.676,19983,4.302,19984,6.676,19985,4.302,19986,6.676,19987,4.302,19988,6.676,19989,4.302,19990,4.302,19991,4.302,19992,4.302,19993,4.302,19994,4.302]],["title/injectables/TaskService.html",[539,0.901,5052,5.191]],["body/injectables/TaskService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,10,3.8,12,4.292,26,2.821,27,0.493,29,0.938,30,0.001,31,0.674,32,0.174,33,0.578,35,1.38,36,2.76,59,2.906,95,0.153,98,4.047,99,1.137,101,0.011,103,0.001,104,0.001,119,1.904,120,4.115,177,1.955,226,0.975,227,2.807,262,2.97,349,0.966,379,1.17,437,1.21,490,4.074,539,1.238,541,1.632,603,2.498,608,2.649,1163,4.287,1746,8.696,1858,5.489,2295,4.959,2300,5.341,2624,5.88,3538,3.359,3539,2.782,3680,3.852,5052,7.13,6283,5.192,6365,9.077,6968,8.188,6969,6.972,12499,5.197,19097,6.303,19282,10.293,19291,5.341,19326,6.303,19678,5.964,19736,5.964,19826,9.872,19836,6.303,19909,5.964,19995,6.817,19996,9.353,19997,6.817,19998,9.353,19999,6.817,20000,9.353,20001,6.817,20002,9.353,20003,6.817,20004,6.817,20005,6.817,20006,6.817,20007,6.817,20008,6.817,20009,6.817,20010,6.817]],["title/classes/TaskStatusMapper.html",[0,0.231,19790,5.958]],["body/classes/TaskStatusMapper.html",[0,0.329,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,8,1.408,27,0.397,29,0.755,30,0.001,31,0.543,32,0.132,33,0.465,35,1.164,95,0.149,99,1.617,100,3.944,101,0.016,103,0.001,104,0.001,236,1.576,347,3.549,349,1.001,413,3.89,437,1.253,778,6.517,3748,7.592,3752,10.272,3753,8.731,19776,10.209,19790,10.272,20011,11.742,20012,9.691,20013,9.691,20014,9.691,20015,9.691]],["title/classes/TaskStatusResponse.html",[0,0.231,19776,5.503]],["body/classes/TaskStatusResponse.html",[0,0.272,2,0.897,3,0.019,4,0.019,5,0.01,7,0.121,27,0.543,29,0.624,30,0.001,31,0.449,32,0.181,33,0.384,55,2.804,95,0.102,101,0.013,103,0.001,104,0.001,112,0.827,119,2.652,138,2.37,150,1.825,245,3.663,379,1.303,769,4.054,3756,7.407,3757,8.585,3758,8.886,3759,8.326,3760,8.326,3761,9.057,3762,8.585,3763,7.407,3770,6.712,3771,7.407,3772,6.712,3773,6.474,3774,7.407,3775,7.407,19673,11.267,19776,10.271,20016,8.012,20017,8.012,20018,8.012,20019,8.012,20020,8.012,20021,8.012]],["title/injectables/TaskUC.html",[539,0.901,19616,5.705]],["body/injectables/TaskUC.html",[0,0.106,3,0.007,4,0.007,5,0.004,7,0.047,8,0.619,10,2.099,26,2.742,27,0.454,29,0.843,30,0.001,31,0.606,32,0.148,33,0.519,35,1.3,36,2.621,39,2.825,59,0.971,83,2.609,95,0.108,98,3.067,99,0.521,101,0.005,103,0,104,0,119,1.729,143,0.696,145,2.13,154,0.668,177,1.555,226,0.447,227,1.287,236,1.708,239,2.937,262,2.864,310,1.355,347,4.23,349,1.212,358,1.375,379,0.646,437,1.768,480,1.435,510,1.692,528,3.995,529,0.884,539,0.684,541,0.748,560,1.287,603,2.518,608,2.984,643,2.296,754,2.383,811,4.953,819,2.692,928,1.72,1242,1.8,1454,1.766,1559,3.375,1609,4.222,1612,1.896,1615,3.135,1616,3.436,1624,3.549,1625,4.327,1663,1.323,1685,2.227,1695,5.119,1741,5.876,1742,6.344,1746,6.398,1793,5.155,1795,4.048,1815,3.436,1864,3.147,2031,3.732,2334,1.783,2342,2.89,2381,1.992,2469,1.419,2473,4.618,2622,1.652,2624,4.327,3074,2.92,3227,4.36,3414,3.25,3753,3.436,3759,5.026,4321,1.896,4451,1.992,4455,2.147,4778,5.622,5052,7.383,5091,3.732,5103,3.803,6164,2.048,6283,3.666,6296,2.078,6679,7.316,6845,5.849,6963,4.52,7041,4.048,8004,3.292,8160,2.274,8190,7.433,9044,8.804,10139,2.325,11786,1.992,14199,6.427,14316,4.52,15067,4.048,17125,2.619,18957,2.383,19291,8.227,19616,4.329,19624,4.777,19627,4.777,19678,2.735,19704,4.777,19736,5.778,19849,4.777,19850,4.777,19851,4.777,19852,4.777,19887,4.52,19888,2.735,19889,4.52,20022,3.126,20023,5.167,20024,5.167,20025,7.673,20026,5.167,20027,5.167,20028,3.126,20029,5.167,20030,3.126,20031,3.126,20032,5.167,20033,3.126,20034,5.167,20035,3.126,20036,5.167,20037,3.126,20038,5.167,20039,3.126,20040,3.126,20041,5.167,20042,8.496,20043,3.126,20044,5.167,20045,3.126,20046,5.167,20047,3.126,20048,3.126,20049,6.605,20050,5.167,20051,6.605,20052,6.605,20053,9.152,20054,5.167,20055,9.152,20056,5.167,20057,5.167,20058,7.673,20059,3.126,20060,9.152,20061,6.605,20062,7.673,20063,6.605,20064,4.777,20065,3.126,20066,3.126,20067,3.126,20068,3.126,20069,3.126,20070,3.126,20071,3.126,20072,3.126,20073,7.673,20074,5.167,20075,3.126,20076,7.673,20077,5.167,20078,5.167,20079,5.167,20080,3.126,20081,5.167,20082,3.126,20083,3.126,20084,7.673,20085,3.126,20086,3.126,20087,3.126,20088,3.126,20089,3.126,20090,3.126,20091,3.126,20092,3.126,20093,3.126,20094,3.126,20095,3.126,20096,5.167,20097,5.167,20098,3.126,20099,3.126,20100,5.167,20101,5.167,20102,3.126,20103,3.126]],["title/classes/TaskUpdateParams.html",[0,0.231,19786,5.958]],["body/classes/TaskUpdateParams.html",[0,0.317,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,27,0.509,30,0.001,31,0.598,32,0.182,33,0.639,34,1.956,47,0.915,83,4.161,95,0.146,99,1.135,101,0.011,103,0.001,104,0.001,112,0.742,133,4.015,138,2.261,142,4.492,143,2.557,144,3.078,145,2.594,148,2.16,149,4.729,150,1.551,153,3.056,245,2.45,247,2.979,248,5.022,249,5.029,253,5.622,802,6.797,803,4.353,1203,2.983,1276,2.92,1858,5.096,1864,3.46,2624,5.793,2634,4.385,2711,6.12,2856,6.116,2857,6.116,3224,3.518,3227,5.475,3680,5.279,3734,6.889,5066,6.472,7105,7.826,7116,5.5,7118,7.122,8248,5.734,9503,5.701,12448,7.935,19673,10.666,19757,8.638,19759,6.292,19761,8.638,19764,6.292,19786,8.173,20104,6.806,20105,6.806,20106,6.806,20107,6.806,20108,6.806,20109,6.806]],["title/classes/TaskUrlParams.html",[0,0.231,19086,5.705]],["body/classes/TaskUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,2624,5.284,3814,5.762,19086,9.909,19291,9.949,20110,9.809,20111,9.809]],["title/classes/TaskWithStatusVo.html",[0,0.231,8160,4.953]],["body/classes/TaskWithStatusVo.html",[0,0.18,2,0.362,3,0.008,4,0.008,5,0.004,7,0.174,26,1.833,27,0.277,29,0.252,30,0.001,31,0.298,32,0.153,33,0.155,34,0.905,47,0.694,55,1.143,83,2.657,95,0.148,96,0.888,101,0.014,103,0,104,0,105,0.573,112,0.739,119,2.283,143,2.437,144,3.065,145,3.18,153,0.735,154,1.136,172,3.395,173,0.956,174,2.113,175,1.43,178,1.343,180,0.58,181,0.865,182,1.052,226,0.462,236,1.67,239,2.717,347,4.108,349,1.337,379,0.404,437,1.763,474,1.381,517,1.24,519,2.427,528,1.684,529,1.503,556,1.973,578,1.962,593,1.198,603,2.412,604,2.159,644,3.087,654,0.962,662,3.601,696,2.096,708,3.254,760,1.795,822,1.862,910,2.261,1150,1.286,1158,1.545,1276,1.011,1391,2.118,1559,1.423,1654,1.536,1663,1.368,1676,2.425,1759,3.188,1858,3.742,1864,3.205,1886,4.646,1924,1.9,1982,1.286,2381,2.06,2608,3.993,2611,2.9,2615,1.765,2620,3.386,2621,1.9,2622,2.809,2623,2.261,2624,5.364,2634,1.518,2638,5.668,2821,3.807,3074,1.827,3224,2.747,3227,2.727,3304,4.645,3392,2.06,3680,5.555,3682,2.709,3734,2.088,3753,6.826,3757,3.589,3758,6.05,3759,5.131,3760,6.094,3761,6.629,3762,3.589,3773,6.33,4057,1.9,4206,1.097,4218,2.034,4282,1.416,4918,2.034,4919,2.088,5039,2.438,5066,1.962,6536,4.497,6575,2.009,6578,3.224,6589,3.342,6590,1.811,6602,2.533,6606,2.304,6608,2.184,6609,2.088,6610,2.009,6611,1.94,6627,2.06,6824,2.009,6825,2.15,6898,2.533,6921,1.75,6931,2.088,6936,2.405,8004,4.991,8160,3.865,9688,2.06,11135,2.261,11906,2.221,11926,2.221,12060,2.613,12296,2.613,12316,5.826,12317,2.613,12335,5.826,12336,2.613,12447,2.352,12450,3.787,12451,2.405,12452,2.352,12453,2.829,12455,2.829,12456,2.709,12457,2.829,12458,2.829,12459,2.829,12460,2.829,12461,4.649,12462,5.918,12463,5.466,12464,5.299,12465,2.829,12466,2.829,12467,2.709,12468,2.829,12469,2.829,12470,2.829,12471,2.709,12472,8.139,12473,2.829,12474,2.465,12475,2.613,12476,4.649,12477,6.853,12478,4.294,12479,6.853,12480,2.829,12481,2.829,12482,2.829,12483,4.649,12484,2.829,12485,2.829,12486,2.829,12487,2.829,12488,2.829,12489,2.829,12490,2.829,12491,2.829,12492,2.829,12493,2.829,12494,2.829,12495,2.829,12496,4.649,12497,2.829,12498,2.829,12499,2.465,12500,2.829,12501,2.829,12502,2.829,12503,2.829,12504,2.829,12505,2.829,12506,4.649,12507,2.829,12508,2.829,12509,4.649,12510,2.829,12511,4.649,12512,2.533,12513,2.709,12514,2.829,12515,6.853,12516,5.918,12517,4.452,12518,2.613,12519,5.918,12520,2.829,12521,5.918,12522,2.709,12523,4.649,12524,2.829,12525,2.829,12526,2.829,12527,5.918,12528,2.829,12529,4.649,12530,2.709,12531,2.829,12532,2.829,12533,6.853,12534,2.829,12535,2.829,12536,2.829,12537,2.829,12538,2.829,12539,2.829,12540,2.829,12541,4.649,12542,2.829,12543,2.829,12544,4.649,12545,2.829,12546,2.829,12547,2.829,12548,2.829,12549,2.709,12550,2.829,12551,6.853,12552,2.829,12553,2.829,12554,2.829,12555,2.829,12556,2.829,12557,2.829,12558,2.829,12559,2.829,12560,2.829,12561,2.829,20112,5.314,20113,3.234]],["title/classes/TeamDto.html",[0,0.231,4562,4.853]],["body/classes/TeamDto.html",[0,0.363,2,0.934,3,0.019,4,0.019,5,0.01,7,0.127,26,2.501,27,0.51,29,0.65,30,0.001,31,0.697,32,0.17,33,0.4,34,2.011,39,2.245,47,0.909,95,0.106,99,1.392,100,3.593,101,0.018,103,0.001,104,0.001,112,0.849,153,1.897,181,3.159,191,4.516,192,5.316,201,2.833,379,1.044,381,2.803,404,3.405,405,4.592,1663,4.526,1982,3.319,2306,6.815,4206,2.831,4282,3.652,4283,4.953,4284,6.206,4562,9.173,4630,9,4696,6.206,11319,7.3,11320,7.3,11948,7.112,12564,8.587,12573,6.537,15370,10.061,16315,9.357,17391,8.96,20114,7.715,20115,9.357,20116,8.96,20117,8.643,20118,10.696,20119,8.344,20120,8.344,20121,7.715]],["title/entities/TeamEntity.html",[154,1.456,6914,4.132]],["body/entities/TeamEntity.html",[0,0.326,3,0.017,4,0.017,5,0.008,7,0.107,27,0.393,30,0.001,31,0.654,32,0.131,39,1.905,47,0.769,62,6.397,72,3.214,95,0.155,96,2.637,101,0.019,103,0.001,104,0.001,105,1.036,112,0.762,138,1.746,143,2.137,154,2.052,155,2.363,172,3.477,173,2.094,174,3.818,175,3.131,178,2.942,180,1.269,181,2.569,182,2.303,191,5.893,236,1.152,239,3.003,276,5.349,349,1.125,480,3.023,517,4.175,603,1.422,644,5.741,654,2.855,1669,4.998,1982,2.816,2068,5.151,2500,5.628,2608,3.267,3544,4.783,4206,2.402,4266,5.046,4272,5.238,4282,3.1,4283,6.464,4286,8.531,5039,5.599,6588,4.346,6590,3.965,6611,4.249,6914,5.824,6952,4.639,10134,5.151,10135,5.151,11326,5.151,11327,5.398,11948,4.708,12562,7.52,12563,5.932,12564,6.982,12565,9.168,12566,5.548,12567,7.757,12568,5.932,12569,5.932,12570,5.932,12571,5.932,12572,5.932,12573,5.548,12574,5.932,12575,5.932,20122,7.081,20123,7.081]],["title/classes/TeamFactory.html",[0,0.231,20124,6.296]],["body/classes/TeamFactory.html",[0,0.162,2,0.534,3,0.011,4,0.011,5,0.006,7,0.072,8,0.866,27,0.534,29,1.024,30,0.001,31,0.717,32,0.182,33,0.607,34,1.485,35,1.448,39,2.345,47,0.738,55,2.459,59,3.247,95,0.123,99,0.795,101,0.008,103,0,104,0,112,0.573,120,3.177,133,2.525,140,2.669,153,1.982,154,2.234,155,2.41,177,1.322,180,1.294,271,4.95,276,4.444,319,3.26,349,0.901,379,0.596,382,3.862,413,2.224,437,1.128,447,7.235,448,4.508,449,5.496,452,4.081,453,5.496,454,5.721,455,4.081,456,4.081,457,4.081,458,4.008,459,4.474,460,4.927,461,6.476,462,5.801,463,7.06,464,2.718,469,2.693,470,4.081,471,2.718,472,5.141,473,5.308,474,4.155,475,4.992,476,4.044,477,2.693,478,2.539,479,4.12,480,3.267,481,2.623,482,2.579,483,2.693,484,5.064,485,2.718,486,3.54,487,4.839,488,2.693,489,7.234,490,4.173,491,6.65,492,2.718,493,4.324,494,2.693,495,2.718,496,2.693,497,2.718,498,2.693,499,3.037,500,2.829,501,2.693,502,6.105,503,2.718,504,2.693,505,4.081,506,3.817,507,4.081,508,2.718,509,2.601,510,2.579,511,2.129,512,2.693,513,2.693,514,2.693,515,2.718,516,2.718,517,1.827,518,2.693,519,1.476,520,2.718,521,2.86,522,2.693,523,2.718,525,2.772,527,4.333,4307,3.993,4564,2.96,6914,2.892,12562,3.734,12564,6.341,12565,6.931,15366,6.05,20124,8.061,20125,4.766,20126,6.677,20127,7.221,20128,6.677,20129,4.766,20130,7.221,20131,4.766,20132,4.17,20133,4.766,20134,4.766,20135,4.766,20136,4.766,20137,4.766]],["title/injectables/TeamMapper.html",[539,0.901,4667,5.705]],["body/injectables/TeamMapper.html",[0,0.295,3,0.02,4,0.02,5,0.01,7,0.132,8,1.315,27,0.356,29,0.676,30,0.001,31,0.615,32,0.119,33,0.417,34,1.48,35,1.044,39,2.337,95,0.152,99,1.449,100,3.686,101,0.014,103,0.001,104,0.001,153,1.975,154,2.701,226,1.242,236,1.785,333,3.676,349,1.133,437,1.124,539,1.452,541,2.079,662,3.782,4206,2.947,4562,9.004,4564,6.816,4595,8.867,4630,7.672,4667,9.193,4696,6.461,6914,8.075,12564,7.981,12565,7.819,15366,7.277,15370,9.72,20138,8.687,20139,10.973,20140,10.973,20141,8.687,20142,10.145,20143,8.687,20144,8.687,20145,8.031,20146,8.687,20147,8.687,20148,8.687,20149,8.687]],["title/entities/TeamNews.html",[154,1.456,6955,5.191]],["body/entities/TeamNews.html",[0,0.344,3,0.012,4,0.021,5,0.006,7,0.172,9,3.623,26,2.146,27,0.212,30,0.001,31,0.43,32,0.138,34,0.881,47,0.87,83,2.357,95,0.153,96,2.515,101,0.018,103,0,104,0,105,0.558,112,0.859,138,0.94,143,2.525,144,3.736,154,2.313,155,1.725,172,3.748,173,1.529,174,3.053,175,2.286,180,1.815,181,2.711,182,1.682,236,1.489,239,2.483,349,0.534,355,5.758,358,4.027,381,1.737,403,5.082,413,1.592,459,4.698,521,3.626,563,4.556,643,2.298,644,5.175,654,3.219,655,3.858,834,2.406,992,4.373,993,4.782,994,4.322,995,4.571,996,4.996,1203,2.923,1221,4.711,1600,1.944,1654,3.645,1660,2.599,1676,3.503,1752,3.387,1770,2.821,1864,2.843,2193,3.704,2503,5.173,2608,4.224,2621,3.037,2677,5.813,2722,2.653,3390,3.551,3392,3.294,3393,3.615,3395,3.684,3396,3.615,3397,3.846,3411,3.173,3544,3.492,3569,3.294,4206,1.754,4298,3.941,4299,3.761,4440,3.761,5039,4.201,5119,3.761,5687,6.659,6283,2.87,6501,3.615,6588,3.173,6590,2.895,6611,3.102,6824,3.211,6911,3.846,6912,4.178,6914,5.554,6915,4.178,6916,6.809,6917,5.912,6918,4.178,6919,8.884,6920,5.104,6921,4.955,6922,5.709,6923,5.709,6924,6.731,6925,7.548,6926,4.178,6927,5.47,6928,4.178,6929,3.941,6930,3.941,6931,4.957,6932,4.178,6933,3.941,6934,3.941,6935,4.178,6936,3.846,6937,4.178,6938,3.069,6939,3.173,6940,3.941,6941,4.178,6942,4.178,6943,7.172,6944,4.178,6945,7.398,6946,4.178,6947,4.178,6948,5.851,6949,3.941,6950,6.401,6951,4.051,6952,5.028,6953,3.941,6954,3.761,6955,5.851,6956,6.203,20150,5.17]],["title/controllers/TeamNewsController.html",[259,2.591,15188,5.958]],["body/controllers/TeamNewsController.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.207,27,0.311,29,0.592,30,0.001,31,0.426,32,0.104,33,0.365,35,0.913,36,2.142,72,3.451,95,0.166,100,2.554,101,0.013,103,0.001,104,0.001,138,1.383,150,1.732,177,1.392,223,3.13,226,1.087,236,1.237,239,2.31,247,3.328,259,2.892,261,3.61,262,2.473,270,5.882,274,6.772,294,6.281,310,4.892,333,4.26,337,3.93,338,4.019,343,4.05,345,2.42,349,0.785,437,1.46,608,1.753,819,3.533,831,8.399,2702,3.589,2879,6.594,2901,4.082,3717,4.466,4321,4.613,4564,7.762,5504,4.586,5948,5.854,6679,7.208,6925,5.742,10765,9.708,11791,6.144,11948,5.055,12806,6.369,15075,9.308,15084,6.144,15085,6.652,15086,9.12,15088,6.144,15090,7.03,15095,6.652,15096,6.652,15097,7.03,15098,7.03,15099,7.03,15100,7.03,15188,8.807,20151,10.067,20152,7.603,20153,11.286,20154,7.603,20155,10.51,20156,10.067,20157,7.603,20158,7.603,20159,7.03,20160,7.603,20161,7.603,20162,7.603]],["title/classes/TeamPermissionsBody.html",[0,0.231,4638,5.503]],["body/classes/TeamPermissionsBody.html",[0,0.372,2,0.97,3,0.02,4,0.02,5,0.01,7,0.131,10,4.882,27,0.533,30,0.001,32,0.178,95,0.139,101,0.014,103,0.001,104,0.001,112,0.87,119,2.828,138,2.369,147,7.141,148,2.751,150,1.975,245,3.488,685,5.085,1615,7.291,1616,7.99,4630,9.3,4638,8.855,7400,9.927,18706,9.16,20163,12.298,20164,8.668,20165,8.668,20166,8.668,20167,8.668,20168,8.668,20169,8.668]],["title/classes/TeamPermissionsDto.html",[0,0.231,4573,5.335]],["body/classes/TeamPermissionsDto.html",[0,0.29,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,10,4.849,27,0.543,29,0.665,30,0.001,31,0.478,32,0.181,33,0.669,101,0.014,103,0.001,104,0.001,112,0.862,119,2.821,181,2.905,379,1.068,381,2.868,685,5.05,1615,7.24,1616,7.935,4573,10.156,4576,11.778,4630,9.412,10079,7.47,10080,7.47,10081,7.47,10082,7.47,10083,7.47,10084,7.47,10085,7.47,10086,7.47,18706,9.097,20170,7.895,20171,10.855,20172,7.895,20173,7.895,20174,7.895,20175,7.895,20176,8.539,20177,8.539]],["title/injectables/TeamPermissionsMapper.html",[539,0.901,4668,5.705]],["body/injectables/TeamPermissionsMapper.html",[0,0.299,3,0.021,4,0.021,5,0.011,7,0.134,8,1.328,10,3.584,27,0.361,29,0.687,30,0.001,31,0.494,32,0.121,33,0.423,35,1.06,95,0.154,100,3.721,101,0.015,103,0.001,104,0.001,153,2.005,226,1.261,236,1.435,324,6.761,333,3.732,349,1.144,539,1.466,541,2.111,662,3.809,685,3.732,1615,5.351,1616,5.864,4486,6.508,4573,9.954,4577,6.91,4595,8.953,4630,7.746,4638,10.268,4653,7.716,4668,9.281,4671,9.692,4697,11.748,4732,8.154,18706,6.723,20142,10.243,20178,8.82,20179,11.079,20180,11.079,20181,8.82,20182,8.82,20183,8.82,20184,8.82,20185,8.82,20186,8.82,20187,8.82]],["title/classes/TeamRoleDto.html",[0,0.231,4636,5.705]],["body/classes/TeamRoleDto.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.48,30,0.001,32,0.16,47,0.926,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,2.133,148,3.068,150,2.203,245,3.309,803,5.15,3908,8.668,4630,8.823,4636,9.822,4696,9.386,5875,8.528,20163,11.668,20188,9.668,20189,9.668,20190,9.668]],["title/classes/TeamRolePermissionsDto.html",[0,0.231,4597,5.503]],["body/classes/TeamRolePermissionsDto.html",[0,0.301,2,0.994,3,0.021,4,0.021,5,0.011,7,0.135,27,0.537,29,0.691,30,0.001,31,0.497,32,0.179,33,0.426,47,0.945,101,0.015,103,0.001,104,0.001,112,0.883,119,2.264,181,2.977,276,5.69,379,1.11,381,2.982,1660,6.107,3908,8.345,3913,8.208,4542,9.039,4597,10.599,4600,10.629,4602,6.63,8527,8.208,8528,8.208,10018,6.604,10048,6.955,20170,8.208,20172,8.208,20173,10.286,20174,8.208,20175,8.208,20191,13.383,20192,8.878,20193,8.878,20194,8.878]],["title/injectables/TeamRule.html",[539,0.901,1709,5.705]],["body/injectables/TeamRule.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,8,1.244,27,0.473,29,0.899,30,0.001,31,0.647,32,0.167,33,0.554,35,1.247,95,0.155,101,0.013,103,0.001,104,0.001,119,2.49,131,4.325,145,2.211,154,2.831,177,1.458,226,1.139,239,3.116,345,2.535,349,1.072,379,0.996,437,1.03,528,4.147,539,1.374,541,1.907,604,3.236,662,4.09,1276,2.489,1606,6.621,1634,8.08,1655,4.779,1672,7.697,1709,8.695,1813,6.703,1817,6.447,3349,6.901,3350,5.38,3353,6.799,3356,5.38,3358,5.924,6914,8.15,12565,7.396,20145,7.363,20195,7.964,20196,7.964,20197,7.964,20198,7.964,20199,10.379,20200,7.964,20201,7.964]],["title/injectables/TeamService.html",[539,0.901,20202,5.958]],["body/injectables/TeamService.html",[0,0.281,3,0.019,4,0.019,5,0.01,7,0.125,8,1.275,26,2.832,27,0.482,29,0.916,30,0.001,31,0.659,32,0.161,33,0.564,35,1.278,36,2.641,39,3.163,95,0.149,99,1.38,101,0.014,103,0.001,104,0.001,177,1.515,226,1.183,227,3.407,262,2.88,345,2.634,349,1.099,379,1.035,437,1.376,539,1.408,541,1.981,608,2.711,662,4.133,1747,9.026,6914,5.021,11948,7.819,12653,9.837,20202,9.308,20203,8.276,20204,10.64,20205,10.64,20206,8.276,20207,8.276,20208,10.64,20209,8.276,20210,10.64,20211,8.276,20212,8.276,20213,8.276,20214,8.276,20215,8.276,20216,8.276,20217,8.276]],["title/classes/TeamUrlParams.html",[0,0.231,20155,5.958]],["body/classes/TeamUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,803,4.827,3814,5.762,3908,8.722,4564,7.347,20155,10.348,20218,9.809,20219,9.809]],["title/classes/TeamUserDto.html",[0,0.231,15370,5.503]],["body/classes/TeamUserDto.html",[0,0.369,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,26,2.299,27,0.514,29,0.665,30,0.001,31,0.608,32,0.172,33,0.41,34,1.455,39,3.21,47,0.95,95,0.108,99,1.424,100,2.868,101,0.018,103,0.001,104,0.001,112,0.862,181,3.194,191,4.621,192,5.44,201,2.262,379,1.068,381,2.868,404,3.485,405,4.699,1663,3.613,1982,3.396,2306,5.44,4206,4.048,4282,3.738,4283,5.069,4284,6.351,4562,7.735,4630,9.064,4696,8.876,11319,7.47,11320,7.47,11948,5.678,12564,6.211,12573,6.69,15370,10.708,16315,7.47,17391,7.153,20114,7.895,20115,7.47,20116,7.153,20117,6.9,20121,7.895,20220,10.855,20221,8.539,20222,8.539]],["title/classes/TeamUserEntity.html",[0,0.231,12565,4.853]],["body/classes/TeamUserEntity.html",[0,0.303,2,0.715,3,0.015,4,0.015,5,0.008,7,0.097,27,0.523,29,0.803,30,0.001,31,0.659,32,0.167,33,0.495,35,1.074,39,2.774,47,0.631,62,3.75,72,2.898,95,0.149,96,2.455,101,0.018,103,0.001,104,0.001,105,0.964,112,0.71,138,1.876,143,1.422,154,1.91,172,2.854,173,1.888,174,3.555,175,2.823,178,2.652,180,1.144,181,2.76,182,2.077,191,5.581,236,1.039,239,3.099,276,5.515,349,1.065,379,0.798,381,2.144,480,3.265,517,3.954,519,2.769,603,2.071,644,5.92,654,3.323,686,4.219,1669,3.324,1982,2.539,2068,4.644,2500,5.33,2608,2.946,3544,4.312,4206,3.498,4272,4.877,4282,2.795,4283,6.121,4286,8.079,5039,5.396,6588,3.919,6590,3.575,6611,3.831,6818,6.966,6914,3.874,6952,4.182,9633,5.586,10134,4.644,10135,4.644,11326,4.644,11327,4.867,11948,4.245,12562,7.002,12563,5.349,12564,6.501,12565,8.916,12566,5.002,12567,9.028,12568,5.349,12569,5.349,12570,5.349,12571,5.349,12572,5.349,12573,5.002,12574,5.349,12575,5.349,20223,6.385,20224,6.385,20225,6.385,20226,6.385,20227,6.385,20228,6.385,20229,6.385,20230,6.385,20231,6.385,20232,6.385,20233,6.385]],["title/classes/TeamUserFactory.html",[0,0.231,20132,5.958]],["body/classes/TeamUserFactory.html",[0,0.154,2,0.509,3,0.011,4,0.011,5,0.005,7,0.069,8,0.835,27,0.53,29,1.015,30,0.001,31,0.701,32,0.181,33,0.601,34,1.442,35,1.428,39,2.905,47,0.818,55,2.418,59,3.18,95,0.137,99,0.758,101,0.007,103,0,104,0,112,0.553,120,3.064,133,2.436,140,2.545,153,1.925,154,2.187,155,2.324,177,1.275,180,1.248,236,0.739,239,2.178,271,4.897,276,5.158,319,3.145,349,0.875,379,0.568,382,3.824,413,2.145,437,1.5,447,7.175,448,4.425,449,5.363,452,3.936,453,5.363,454,5.644,455,3.936,456,3.936,457,3.936,458,3.866,459,4.345,460,4.785,461,5.942,462,5.68,463,6.998,464,2.592,469,2.568,470,3.936,471,2.592,472,5.017,473,5.179,474,4.054,475,4.871,476,3.9,477,2.568,478,2.421,479,4.044,480,3.219,481,2.501,482,2.46,483,2.568,484,4.942,485,2.592,486,3.488,487,4.7,488,2.568,489,7.162,490,4.111,491,6.552,492,2.592,493,4.2,494,2.568,495,2.592,496,2.568,497,2.592,498,2.568,499,2.896,500,2.698,501,2.568,502,5.993,503,2.592,504,2.568,505,3.936,506,3.681,507,3.936,508,2.592,509,2.48,510,2.46,511,2.031,512,2.568,513,2.568,514,2.568,515,2.592,516,2.592,517,1.743,518,2.568,519,1.408,520,2.592,521,2.759,522,2.568,523,2.592,525,2.643,527,4.179,648,3.239,654,3.448,2079,6.44,3078,4.228,4307,3.808,6803,3.561,6813,5.457,12565,4.963,19115,7.408,20126,6.44,20128,6.44,20132,7.408,20234,4.545,20235,4.545,20236,6.965,20237,4.545,20238,4.545,20239,4.545,20240,4.202,20241,4.545,20242,4.545,20243,4.545,20244,4.202,20245,4.545]],["title/modules/TeamsApiModule.html",[201,1.804,18588,5.503]],["body/modules/TeamsApiModule.html",[0,0.332,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,201,3.36,203,3.519,204,3.782,205,3.892,206,3.875,207,3.859,208,4.326,209,4.441,218,4.697,219,3.812,220,3.722,222,6.078,223,4.029,225,4.658,226,1.399,18588,11.072,20246,9.785,20247,9.785,20248,11.478,20249,9.785,20250,9.785]],["title/modules/TeamsModule.html",[201,1.804,20248,5.705]],["body/modules/TeamsModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.158,101,0.015,103,0.001,104,0.001,201,3.301,203,3.38,204,3.631,205,3.737,206,3.722,207,3.706,208,4.565,209,4.686,218,4.583,219,3.661,220,3.575,226,1.343,227,3.869,560,3.869,1747,9.321,20202,12.424,20248,11.716,20251,9.397,20252,9.397,20253,9.397,20254,9.397]],["title/injectables/TeamsRepo.html",[539,0.901,1747,4.677]],["body/injectables/TeamsRepo.html",[0,0.205,3,0.014,4,0.014,5,0.007,7,0.092,8,1.03,10,3.492,12,3.944,13,6.251,18,4.349,26,2.609,27,0.516,29,0.932,30,0.001,31,0.67,32,0.168,33,0.574,34,1.464,35,1.438,36,2.764,39,2.691,40,4.156,42,6.251,49,2.382,55,1.3,62,3.548,95,0.138,96,1.659,97,2.618,99,1.007,101,0.01,103,0,104,0,112,0.682,145,2.386,154,1.291,155,2.868,180,1.54,226,0.863,236,0.982,239,1.972,262,2.933,276,5.236,333,2.556,349,1.19,382,3.289,437,1.112,479,4.923,480,2.386,486,2.586,539,1.137,541,1.446,603,2.01,608,2.839,679,7.234,685,3.637,686,4.057,687,5.063,692,7.519,711,3.707,712,3.751,713,3.707,714,3.751,716,3.707,717,3.751,718,3.352,724,4.492,928,4.729,998,5.805,1669,4.475,1747,5.903,3078,4.291,3635,4.148,3891,4.731,4564,5.338,4689,7.247,6914,6.07,11948,7.958,12565,6.124,15366,5.06,17629,9.25,17635,7.946,17639,5.584,19240,5.584,20255,6.04,20256,7.519,20257,6.04,20258,7.519,20259,6.04,20260,6.04,20261,6.04,20262,6.04,20263,6.04,20264,6.04,20265,6.04,20266,6.04,20267,6.04,20268,6.04,20269,6.04,20270,6.04]],["title/classes/TestApiClient.html",[0,0.231,1445,5.958]],["body/classes/TestApiClient.html",[0,0.123,2,0.406,3,0.008,4,0.008,5,0.004,7,0.055,8,0.699,10,2.37,27,0.511,29,0.936,30,0.001,31,0.673,32,0.169,33,0.577,35,1.421,36,1.241,47,0.987,51,2.839,55,1.575,59,3.049,87,2.932,94,4.47,95,0.106,99,0.605,101,0.006,103,0,104,0,105,0.391,112,0.463,119,1.187,128,2.35,133,3.608,137,3.669,153,0.825,177,2.027,226,0.519,236,1.364,261,1.722,262,1.603,271,1.419,284,3.42,324,5.221,334,3.768,349,1.222,360,6.91,379,0.454,429,2.585,437,1.706,480,2.551,486,2.764,529,1.651,531,5.104,593,1.343,603,2.683,608,0.836,662,3.994,696,2.301,708,1.507,749,3.822,819,3.444,986,1.226,1082,4.57,1150,1.443,1220,7.052,1413,6.124,1430,7.335,1431,11.643,1432,3.354,1433,4.866,1434,9.538,1435,5.104,1436,3.354,1437,3.354,1438,2.638,1439,3.173,1440,3.354,1441,3.039,1442,3.354,1443,3.354,1444,3.173,1445,6.402,1446,3.354,1447,2.311,1448,3.354,1449,5.394,1450,4.157,1451,5.104,1452,4.887,1453,4.714,1454,3.297,1455,7.138,1456,9.538,1457,6.766,1458,5.394,1459,5.394,1460,5.394,1461,3.354,1462,9.073,1463,3.354,1464,5.394,1465,10.507,1466,8.494,1467,10.507,1468,3.354,1469,5.394,1470,8.494,1471,3.354,1472,7.751,1473,5.394,1474,3.354,1475,6.13,1476,5.394,1477,3.354,1478,5.394,1479,5.394,1480,3.354,1481,3.354,1482,3.354,1483,3.354,1484,5.394,1485,3.354,1486,3.173,1487,5.394,1488,5.578,1489,7.751,1490,3.354,1491,5.394,1492,3.354,1493,8.494,1494,5.394,1495,5.394,1496,3.354,1497,5.394,1498,5.394,1499,3.354,1500,3.354,1501,5.394,1502,7.751,1503,2.311,1504,3.354,1505,5.394,1506,3.354,1507,3.354,1508,3.354,1509,3.354,1510,3.354,1511,3.354,1512,3.354,1513,3.354,2900,3.297,4019,3.669,20271,5.834,20272,5.834,20273,5.834,20274,5.834,20275,5.834,20276,3.627,20277,3.627,20278,3.627,20279,3.627,20280,3.627,20281,9.187,20282,3.627,20283,3.627,20284,3.627,20285,3.627,20286,3.627,20287,3.627,20288,3.627,20289,3.627,20290,3.627,20291,3.627]],["title/classes/TestBootstrapConsole.html",[0,0.231,20292,6.296]],["body/classes/TestBootstrapConsole.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,8,1.317,27,0.357,30,0.001,35,1.046,36,2.562,47,0.614,95,0.165,101,0.018,103,0.001,104,0.001,180,1.969,207,3.433,225,3.433,262,1.908,349,1.135,437,1.421,521,3.448,608,2.007,685,5.351,929,5.167,992,4.158,993,4.109,994,4.109,995,4.346,996,4.75,1891,6.332,1892,6.203,2591,6.82,3443,5.788,3451,5.979,3453,6.911,3454,5.167,3456,6.82,7862,6.82,18563,9.613,20292,10.159,20293,10.988,20294,10.988,20295,8.705,20296,12.041,20297,8.705,20298,8.049,20299,8.705,20300,6.636,20301,8.049,20302,8.705,20303,8.705,20304,10.988,20305,8.049,20306,8.705,20307,8.705,20308,10.988,20309,8.705,20310,7.616,20311,6.475,20312,8.705,20313,8.705]],["title/classes/TestHelper.html",[0,0.231,20314,6.296]],["body/classes/TestHelper.html",[0,0.286,2,0.942,3,0.02,4,0.02,5,0.014,7,0.128,27,0.44,30,0.001,31,0.602,47,0.759,95,0.15,101,0.014,103,0.001,104,0.001,105,0.908,112,0.854,284,2.599,349,1.111,413,4.065,437,1.707,480,2.986,486,3.235,662,3.381,1147,7.454,1149,5.512,2820,4.068,3539,3.434,6236,5.499,6340,7.821,6341,6.258,6342,5.996,6343,6.258,6344,8.815,9881,5.594,10320,8.197,10321,10.926,18968,7.361,20314,9.942,20315,11.852,20316,11.852,20317,11.852,20318,8.414,20319,8.414,20320,8.414,20321,8.414,20322,8.414,20323,8.414,20324,8.414,20325,8.414,20326,8.414]],["title/injectables/TimeoutInterceptor.html",[539,0.901,13060,5.958]],["body/injectables/TimeoutInterceptor.html",[0,0.267,3,0.018,4,0.018,5,0.009,7,0.119,8,1.233,27,0.421,29,0.801,30,0.001,31,0.576,32,0.141,33,0.494,35,0.944,55,2.468,95,0.154,101,0.013,103,0.001,104,0.001,131,2.943,141,4.913,153,1.786,177,1.438,226,1.123,236,1.673,259,3.913,274,6.172,345,2.5,349,1.185,379,0.982,437,1.33,521,4.542,539,1.361,541,1.88,604,3.192,961,5.146,962,6.154,963,5.988,986,2.656,1175,6.839,1276,2.455,2113,7.482,2182,8.742,3956,8.53,6511,8.312,8225,8.999,8227,8.999,8228,10.645,8229,10.645,8231,8.999,8449,5.988,9706,6.948,11669,8.312,11819,9.51,13060,8.999,13423,8.999,17468,10.603,17476,7.263,17478,7.263,17778,8.617,20327,7.856,20328,10.286,20329,9.51,20330,7.856,20331,7.856,20332,7.856,20333,10.286,20334,11.469,20335,10.286,20336,7.856,20337,10.286,20338,7.856,20339,7.856,20340,7.856,20341,7.856]],["title/classes/TimestampsResponse.html",[0,0.231,3658,3.96]],["body/classes/TimestampsResponse.html",[0,0.306,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.525,29,0.702,30,0.001,31,0.505,32,0.175,33,0.587,83,4.125,95,0.114,101,0.015,103,0.001,104,0.001,112,0.892,138,2.226,149,4.655,150,2.055,245,3.455,376,5.739,379,1.405,406,5.824,769,4.563,3658,7.662,3675,9.389,9960,10.044,10022,7.287,20342,9.018,20343,9.018,20344,9.018,20345,9.018,20346,9.018,20347,9.018]],["title/injectables/ToggleUserLoginMigrationUc.html",[539,0.901,20348,5.705]],["body/injectables/ToggleUserLoginMigrationUc.html",[0,0.219,3,0.015,4,0.015,5,0.008,7,0.098,8,1.077,27,0.424,29,0.806,30,0.001,31,0.58,32,0.142,33,0.497,35,1.08,36,2.385,39,2.418,47,0.967,95,0.162,99,1.074,101,0.011,103,0.001,104,0.001,119,2.108,128,5.153,131,3.367,177,2.052,226,0.92,236,1.685,239,2.877,262,2.677,349,0.665,379,1.124,437,1.34,529,2.93,539,1.19,541,1.541,560,2.65,593,2.384,603,2.252,608,2.719,643,2.86,654,3.08,986,2.176,1271,2.953,1274,2.036,1606,4.864,1612,3.905,1695,6.628,1793,3.905,1799,6.404,1897,7.05,1899,6.784,1901,3.604,1902,5.033,2250,5.14,2458,6.685,2469,2.921,2473,4.499,2482,4.787,4206,4.339,4507,5.008,4509,5.201,4512,5.201,4513,8.706,4520,5.804,4522,6.963,4524,7.041,4525,4.906,4526,5.042,4527,5.391,4529,7.041,4531,8.676,4532,6.685,4539,4.906,4540,5.391,11855,8.772,14123,5.201,16716,5.391,17522,5.63,18989,7.263,20348,7.529,20349,11.211,20350,7.863,20351,6.436,20352,6.436,20353,8.988,20354,6.436,20355,5.63,20356,6.436,20357,6.436]],["title/injectables/TokenGenerator.html",[539,0.901,18841,5.503]],["body/injectables/TokenGenerator.html",[0,0.335,3,0.023,4,0.023,5,0.012,7,0.149,8,1.422,27,0.404,30,0.001,35,1.184,95,0.161,101,0.016,103,0.001,104,0.001,124,5.963,226,1.409,349,1.018,437,1.275,539,1.57,541,2.36,11518,9.938,12266,9.97,12268,6.554,12269,6.457,16735,9.113,18841,9.586,20358,11.863,20359,13.207,20360,9.857,20361,9.857]],["title/classes/TokenRequestMapper.html",[0,0.231,15540,5.958]],["body/classes/TokenRequestMapper.html",[0,0.283,2,0.932,3,0.019,4,0.019,5,0.01,7,0.126,8,1.281,27,0.438,29,0.832,30,0.001,31,0.598,32,0.146,33,0.513,35,1.283,47,0.986,95,0.15,101,0.014,103,0.001,104,0.001,105,0.899,121,5.455,236,1.738,349,1.103,413,4.054,819,2.922,946,5.773,1322,10.053,1324,6.729,1326,5.934,1327,6.729,1328,7.285,1329,7.285,1333,7.699,1336,7.699,1337,6.976,1338,6.194,1433,5.537,5589,5.888,5977,6.729,11447,9.049,11580,7.636,15540,9.345,15543,10.053,15600,11.502,15606,7.699,16243,6.729,20362,11.794,20363,11.794,20364,10.682,20365,8.327,20366,8.327,20367,10.682,20368,8.327,20369,8.327,20370,8.327,20371,8.327]],["title/classes/TooManyPseudonymsLoggableException.html",[0,0.231,20372,6.296]],["body/classes/TooManyPseudonymsLoggableException.html",[0,0.238,2,0.785,3,0.016,4,0.016,5,0.008,7,0.106,8,1.143,27,0.535,29,0.546,30,0.001,31,0.393,32,0.185,33,0.52,35,1.145,47,0.885,55,1.508,95,0.147,101,0.012,103,0.001,104,0.001,112,0.757,138,2.211,177,2.473,180,1.708,182,2.279,226,1.002,284,2.164,292,5.481,340,3.368,345,2.23,347,2.566,349,0.724,379,0.876,382,3.784,816,5.334,819,2.459,946,5.025,984,3.022,986,3.93,1021,4.547,1201,8.125,1202,6.177,1203,3.711,1204,6.9,1208,4.525,1209,3.889,1210,4.525,1211,4.525,1212,4.525,1213,4.525,1214,4.525,1215,4.204,1216,3.997,1222,4.407,1223,5.49,1271,4.97,1272,5.558,1276,2.979,1277,5.728,8368,5.598,8369,5.815,8819,4.407,8826,4.075,8827,4.251,9003,6.237,9009,7.201,9010,5.663,10782,5.87,10783,5.87,20372,8.812,20373,10.831,20374,10.135,20375,10.831,20376,7.007,20377,7.007,20378,7.007,20379,9.531]],["title/modules/ToolApiModule.html",[201,1.804,18589,5.503]],["body/modules/ToolApiModule.html",[0,0.186,3,0.013,4,0.013,5,0.007,30,0.001,95,0.176,101,0.009,103,0,104,0,131,3.545,201,2.507,203,1.968,204,2.115,205,2.177,206,2.167,207,2.158,208,3.466,209,2.058,214,5.37,218,3.183,219,2.132,220,2.082,222,3.399,223,3.295,225,3.157,226,0.782,227,2.253,564,3.901,643,2.432,654,3.097,1274,1.731,1586,3.065,1689,6.315,1765,8.608,1767,8.608,1882,2.284,1901,3.065,2469,2.484,2486,3.138,2982,3.065,3531,7.189,3541,2.77,3543,4.287,4615,8.418,5079,3.151,5375,8.418,5380,7.374,6114,9.695,6123,8.608,6139,4.287,6140,3.359,8588,9.352,8638,9.695,8917,8.822,8926,4.585,9188,9.695,9301,9.352,9471,9.695,13861,8.247,18226,9.695,18243,9.695,18300,9.695,18589,11.619,20380,5.473,20381,5.473,20382,5.473,20383,9.695,20384,9.695,20385,8.279,20386,8.279,20387,8.279,20388,8.279,20389,8.279,20390,8.279,20391,9.464,20392,4.422,20393,5.473,20394,9.464,20395,8.004,20396,5.06,20397,5.473,20398,5.473,20399,5.473]],["title/modules/ToolConfigModule.html",[201,1.804,8917,5.191]],["body/modules/ToolConfigModule.html",[0,0.347,3,0.024,4,0.024,5,0.012,30,0.001,95,0.154,101,0.017,103,0.001,104,0.001,201,3.213,203,3.68,208,3.748,209,3.848,226,1.463,636,5.951,1112,7.292,1586,5.73,1909,4.722,2486,3.393,8598,9.857,8917,9.247,12580,8.573,20400,10.233,20401,10.233]],["title/classes/ToolConfiguration.html",[0,0.231,12580,5.705]],["body/classes/ToolConfiguration.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.365,30,0.001,32,0.122,47,0.859,55,2.62,95,0.113,101,0.02,103,0.001,104,0.001,105,0.962,112,0.886,119,2.821,413,3.749,437,1.153,480,2.476,486,3.356,1586,6.247,2017,3.903,2018,4.366,2019,4.21,3878,4.994,8596,9.28,8598,9.724,8872,10.651,8905,10.651,11589,6.023,12576,11.256,12577,11.256,12578,11.256,12579,8.245,12580,9.346,12581,10.314,12582,10.314,12583,10.314,12584,10.314,12585,9.346,20402,8.918]],["title/controllers/ToolConfigurationController.html",[259,2.591,20386,5.958]],["body/controllers/ToolConfigurationController.html",[0,0.167,3,0.011,4,0.011,5,0.006,7,0.074,8,0.886,27,0.404,29,0.769,30,0.001,31,0.553,32,0.174,33,0.474,35,1.186,36,2.527,95,0.146,100,1.65,101,0.008,103,0,104,0,131,4.324,138,1.796,150,1.119,153,2.245,177,0.899,223,2.022,226,0.702,259,1.868,261,2.332,262,2.791,270,6.307,271,4.982,274,5.926,294,6.474,319,4.459,333,4.481,335,6.354,337,2.539,338,2.596,343,2.616,345,1.563,346,5.862,349,1.02,437,1.536,564,3.911,608,2.276,654,3.433,662,4.005,1073,7.597,1715,2.069,2017,5.199,2355,7.289,2484,4.806,2486,3.938,2565,4.375,2702,2.319,2901,2.637,3717,5.801,4486,6.977,5799,8.273,5801,7.981,5871,7.528,6131,8.009,6192,8.64,7155,3.744,8603,7.438,8617,6.463,8638,7.438,8643,8.209,8644,8.209,10390,9.131,11786,6.292,13643,4.541,13952,7.175,13954,6.458,13955,6.458,15276,8.64,17012,7.876,18165,8.273,18167,7.981,18179,7.737,18356,7.737,20386,6.463,20392,8.557,20403,8.879,20404,8.879,20405,4.912,20406,7.387,20407,7.387,20408,4.541,20409,4.912,20410,4.912,20411,7.387,20412,4.912,20413,4.912,20414,4.912,20415,6.83,20416,7.387,20417,7.387,20418,7.387,20419,4.912,20420,4.912,20421,7.387,20422,7.387,20423,4.912,20424,4.297,20425,4.912,20426,4.912,20427,3.848,20428,4.541,20429,4.912,20430,4.541,20431,4.912,20432,4.912,20433,4.297,20434,4.297,20435,4.912,20436,4.912,20437,4.541,20438,4.912,20439,4.912,20440,4.115,20441,4.912]],["title/classes/ToolConfigurationMapper.html",[0,0.231,20424,5.958]],["body/classes/ToolConfigurationMapper.html",[0,0.227,2,0.749,3,0.016,4,0.016,5,0.008,7,0.101,8,1.107,27,0.467,29,0.963,30,0.001,31,0.693,32,0.156,33,0.547,35,1.37,95,0.145,101,0.011,103,0.001,104,0.001,236,1.855,349,1.178,413,4.162,437,1.639,564,2.055,785,3.341,1715,2.819,1836,3.565,2484,5.43,2486,3.506,2565,6.538,2702,3.159,3669,4.45,4486,7.587,5056,4.998,5799,8.859,5801,9.666,5805,6.457,5806,5.219,5807,4.868,8602,7.463,8603,10.618,8625,5.607,8635,7.737,8674,7.463,8882,6.581,8961,7.04,9301,5.408,9325,8.08,18165,8.859,18167,9.666,20424,8.08,20442,11.06,20443,6.693,20444,10.575,20445,10.575,20446,10.575,20447,10.575,20448,6.693,20449,6.693,20450,9.235,20451,6.693,20452,6.693,20453,10.575,20454,6.693,20455,6.693,20456,6.693,20457,6.693,20458,9.235,20459,8.539,20460,6.693,20461,6.693,20462,6.693,20463,6.693,20464,6.693,20465,6.693]],["title/controllers/ToolContextController.html",[259,2.591,20388,5.958]],["body/controllers/ToolContextController.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.801,10,1.75,27,0.409,29,0.777,30,0.001,31,0.559,32,0.175,33,0.479,34,1.993,35,1.462,36,2.544,95,0.152,100,1.447,101,0.007,103,0,104,0,131,3.455,138,1.816,141,3.192,150,0.981,153,2.402,177,1.223,223,1.773,226,0.616,236,0.701,239,1.878,259,1.638,261,2.045,262,2.804,270,6.321,271,4.836,273,5.093,274,6.836,280,2.958,282,4.15,283,5.024,284,2.064,285,4.377,294,6.489,301,4.443,305,3.848,319,4.165,324,5.92,330,6.336,333,4.225,335,6.339,336,4.15,337,2.226,338,2.276,340,2.07,343,2.294,345,1.371,346,5.927,347,1.577,348,2.15,349,0.953,437,1.575,564,3.592,603,0.865,608,2.302,631,2.21,819,3.998,1216,2.456,1274,1.363,1715,1.814,1837,6.959,2143,4.761,2250,1.765,2251,3.017,2306,5.216,2486,1.428,2702,2.033,2899,3.069,2900,3.776,2901,2.312,3717,6.475,3803,4.86,4019,2.709,4803,2.584,5763,6.144,5827,7.728,5830,2.709,5871,9.113,5887,9.234,5942,3.069,5975,3.768,5982,7.162,5986,3.768,5996,9.454,6008,3.283,6017,3.608,6086,7.162,6089,7.162,6106,7.858,6114,6.858,6117,7.569,6119,7.569,6120,7.569,6121,7.569,6131,4.257,6150,3.982,6154,3.982,7155,5.093,8824,3.48,13953,5.845,13954,6.71,13955,7.685,17012,7.858,20388,5.845,20392,8.538,20427,3.374,20433,5.845,20434,5.845,20440,7.728,20459,3.982,20466,4.307,20467,4.307,20468,4.307,20469,3.768,20470,4.307,20471,3.768,20472,4.307,20473,4.307,20474,4.307,20475,4.307,20476,4.307,20477,4.307,20478,4.307,20479,4.307,20480,6.682,20481,4.307,20482,4.307,20483,4.307,20484,4.307,20485,4.307,20486,4.307,20487,4.307,20488,4.307,20489,4.307,20490,5.845,20491,6.858,20492,4.307,20493,6.682,20494,4.307,20495,4.307,20496,4.307,20497,4.307,20498,3.768,20499,4.307,20500,4.307,20501,4.307,20502,3.982,20503,4.307,20504,4.307,20505,4.307,20506,4.307,20507,4.307,20508,4.307,20509,4.307,20510,4.307]],["title/controllers/ToolController.html",[259,2.591,20390,5.958]],["body/controllers/ToolController.html",[0,0.127,3,0.009,4,0.009,5,0.004,7,0.057,8,0.715,10,1.515,27,0.407,29,0.774,30,0.001,31,0.557,32,0.173,33,0.477,34,1.846,35,1.377,36,2.642,95,0.157,99,0.622,100,1.252,101,0.006,103,0,104,0,138,1.807,141,4.068,150,0.849,153,2.661,177,1.559,223,1.535,226,0.533,236,0.606,239,2.564,247,1.632,259,1.418,261,1.77,262,2.798,270,6.143,271,4.579,273,4.546,274,3.578,280,2.561,282,5.29,283,5.717,284,2.631,285,5.579,292,3.018,294,6.306,301,3.965,305,4.904,310,4.306,316,3.202,319,2.692,324,3.772,330,6.398,333,3.604,335,6.259,336,4.63,337,1.927,338,1.971,340,1.792,343,1.986,346,5.897,347,2.184,348,2.977,349,0.962,379,0.466,437,1.606,481,3.282,490,2.115,560,1.535,564,2.615,603,1.711,608,2.147,631,1.913,817,2.866,819,3.486,831,5.955,1216,2.126,1274,1.179,1715,1.57,2143,4.25,2250,1.528,2251,2.692,2288,4.424,2306,5.426,2484,4.735,2486,3.705,2565,6.292,2702,1.76,2899,2.657,2900,3.37,2901,2.002,3717,5.472,3803,2.712,3980,3.618,4486,5.836,5176,2.657,5781,2.657,6131,5.935,6679,5.11,6681,6.292,6683,2.237,6969,3.618,7386,6.102,8602,4.819,8648,5.544,8695,7.135,8808,10.59,8809,6.244,8816,3.447,8824,4.819,8860,3.447,9081,4.546,9188,4.996,9202,5.217,9204,7.135,9228,7.135,9230,6.023,9233,7.135,9235,5.217,9290,8.757,9301,3.013,9347,7.135,9357,6.521,9358,6.521,9362,6.521,9471,6.244,9473,6.891,9474,6.891,11060,3.262,11061,3.262,12801,3.262,12806,4.996,13952,4.819,13954,5.421,13955,7.226,17012,6.928,20390,5.217,20427,2.921,20469,3.262,20471,5.217,20490,5.217,20491,4.996,20498,3.262,20511,3.728,20512,3.728,20513,5.964,20514,3.728,20515,9.935,20516,3.728,20517,3.728,20518,3.728,20519,3.728,20520,3.447,20521,6.672,20522,3.728,20523,3.728,20524,3.728,20525,3.728,20526,3.447,20527,3.728,20528,3.728,20529,3.728,20530,3.728,20531,3.728,20532,3.728,20533,3.728,20534,3.728,20535,3.728,20536,3.728,20537,3.728,20538,3.728,20539,3.728,20540,3.728,20541,3.728,20542,3.728,20543,3.728,20544,3.728,20545,3.728,20546,5.964,20547,5.514,20548,3.728,20549,3.728,20550,3.728,20551,3.728,20552,3.728,20553,3.728,20554,3.728,20555,3.728,20556,9.315,20557,3.728,20558,3.728,20559,3.728,20560,3.728,20561,3.728,20562,3.728,20563,3.728,20564,3.728,20565,3.728,20566,3.728,20567,3.728,20568,3.728,20569,3.262,20570,3.728,20571,3.728]],["title/controllers/ToolLaunchController.html",[259,2.591,20385,5.958]],["body/controllers/ToolLaunchController.html",[0,0.257,3,0.018,4,0.018,5,0.009,7,0.115,8,1.202,27,0.31,29,0.589,30,0.001,31,0.423,32,0.154,33,0.363,34,1.288,35,0.908,36,2.134,95,0.166,100,2.539,101,0.012,103,0.001,104,0.001,131,3.757,138,1.375,141,5.726,150,1.723,153,2.725,177,1.384,223,3.113,226,1.081,259,2.876,261,3.59,262,2.466,270,5.869,271,4.403,294,6.025,333,4.244,335,6.018,337,3.908,338,3.996,343,4.027,345,2.406,346,4.488,349,0.781,437,1.297,564,3.079,608,1.743,631,3.88,819,3.519,1586,5.616,1600,2.843,2486,4.251,2577,8.186,2589,7.97,2702,3.569,2901,4.059,3717,4.441,6131,7.171,10791,6.333,13954,7.295,13955,7.295,17012,7.46,20383,9.428,20385,8.774,20396,9.273,20427,5.923,20428,6.99,20440,6.333,20572,7.56,20573,10.406,20574,7.56,20575,10.487,20576,7.56,20577,7.56,20578,7.56,20579,7.56,20580,7.56,20581,8.774,20582,8.774,20583,7.56,20584,9.273,20585,9.428,20586,6.333,20587,7.56,20588,7.56,20589,7.56,20590,7.56]],["title/classes/ToolLaunchData.html",[0,0.231,2567,5.191]],["body/classes/ToolLaunchData.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.532,29,0.671,30,0.001,31,0.482,32,0.188,33,0.413,47,0.77,95,0.138,101,0.014,103,0.001,104,0.001,112,1.032,119,2.221,172,2.75,181,2.921,284,3.371,379,1.077,381,2.893,1586,7.436,2133,6.77,2486,2.855,2495,6.137,2504,3.847,2505,6.137,2547,9.682,2567,9.908,2589,8.968,4344,5.167,7201,7.112,7236,6.021,7237,6.406,16898,7.962,20591,12.278,20592,10.914,20593,8.612,20594,8.612,20595,11.077,20596,8.612,20597,8.612,20598,8.612]],["title/classes/ToolLaunchMapper.html",[0,0.231,20586,5.705]],["body/classes/ToolLaunchMapper.html",[0,0.24,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,8,1.148,27,0.477,29,0.908,30,0.001,31,0.653,32,0.159,33,0.559,35,1.4,95,0.138,101,0.012,103,0.001,104,0.001,236,1.148,349,1.204,413,4.198,437,1.692,591,5.411,785,3.523,819,3.36,984,4.688,1194,3.292,1551,5.362,1586,6.824,1600,2.653,1867,3.433,2491,6.976,2494,6.695,2559,8.15,2577,9.141,2587,9.509,2595,6.524,7201,5.684,7275,4.557,7358,6.468,7362,6.577,7376,5.528,8798,5.911,9243,6.173,20585,9.765,20586,8.022,20595,11.619,20599,12.187,20600,7.056,20601,9.576,20602,9.576,20603,9.576,20604,9.576,20605,9.576,20606,7.056,20607,9.576,20608,7.056,20609,7.056,20610,9.576,20611,7.056,20612,7.056,20613,9.576,20614,7.056,20615,7.056,20616,7.056,20617,7.056,20618,7.056,20619,9.576,20620,9.576,20621,9.576,20622,7.056,20623,9.576,20624,7.056,20625,11.657,20626,7.056,20627,7.056]],["title/modules/ToolLaunchModule.html",[201,1.804,20628,5.705]],["body/modules/ToolLaunchModule.html",[0,0.216,3,0.015,4,0.015,5,0.008,30,0.001,95,0.171,101,0.01,103,0.001,104,0.001,131,2.384,201,2.727,203,2.289,204,2.46,205,2.531,206,2.521,207,2.51,208,3.771,209,3.871,218,3.547,219,2.48,220,2.421,225,3.517,226,0.91,363,3.564,560,2.62,564,3.161,654,2.652,1586,3.564,1764,5.93,1767,9.055,1768,4.629,1830,10.651,1844,10.651,1860,5.143,1890,10.651,1894,10.651,1901,3.564,2364,4.371,2486,3.413,2524,10.199,3070,5.143,3529,9.538,3531,7.562,3541,3.221,4550,6.024,4614,6.633,4623,4.986,5079,3.665,5375,8.855,5380,7.757,5522,4.851,5881,9.28,5882,9.538,13861,8.675,14571,10.651,15452,10.199,19920,5.143,20628,12.063,20629,6.364,20630,6.364,20631,6.364,20632,6.364,20633,11.224,20634,11.256,20635,6.364,20636,6.364,20637,6.364,20638,6.364,20639,6.364]],["title/classes/ToolLaunchParams.html",[0,0.231,20575,5.958]],["body/classes/ToolLaunchParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.131,34,1.991,47,0.825,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,131,4.379,138,1.75,142,4.573,143,2.603,144,3.851,145,3.246,148,3.053,150,2.192,153,2.187,245,3.065,564,3.59,803,4.771,1586,6.547,2486,3.876,3232,7.052,3814,5.652,20575,10.228,20640,10.809,20641,9.621,20642,9.621]],["title/classes/ToolLaunchRequest.html",[0,0.231,2577,4.953]],["body/classes/ToolLaunchRequest.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,27,0.534,29,0.678,30,0.001,31,0.488,32,0.178,33,0.578,47,0.893,95,0.11,101,0.014,103,0.001,104,0.001,112,0.873,119,2.236,141,4.158,181,2.941,379,1.089,381,2.924,591,7.146,1194,4.139,1551,6.743,1586,7.457,2551,10.087,2577,9.485,2589,8.99,6263,4.674,7201,7.147,7204,5.475,7236,6.086,7237,6.475,16664,7.035,17432,7.293,20591,12.312,20643,8.705,20644,10.988,20645,8.705,20646,8.705,20647,8.705,20648,8.049,20649,8.049]],["title/classes/ToolLaunchRequestResponse.html",[0,0.231,20585,5.705]],["body/classes/ToolLaunchRequestResponse.html",[0,0.242,2,0.797,3,0.017,4,0.017,5,0.008,7,0.108,27,0.501,29,0.554,30,0.001,31,0.399,32,0.167,33,0.618,47,0.826,95,0.122,101,0.012,103,0.001,104,0.001,112,0.765,119,1.961,138,2.128,141,6.019,142,4.577,143,2.145,145,3.248,150,1.622,153,2.659,181,2.578,236,1.567,245,3.205,379,0.89,381,2.391,480,2.675,556,1.793,591,6.907,816,5.368,834,3.02,1194,4.202,1551,6.845,1586,7.056,1600,2.677,1922,5.214,2430,7.863,2486,4.178,2551,10.24,2589,9.186,2603,6.228,2900,5.444,6263,3.822,7127,7.785,7201,6.481,7204,4.477,7236,4.977,7237,5.295,11791,7.785,16664,5.753,17432,5.964,20582,8.428,20585,10.24,20640,11.65,20648,6.582,20649,6.582,20650,7.119,20651,9.633,20652,7.119,20653,8.906,20654,7.119,20655,9.633,20656,7.119]],["title/injectables/ToolLaunchService.html",[539,0.901,20633,5.705]],["body/injectables/ToolLaunchService.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.078,8,0.913,26,2.547,27,0.463,29,0.839,30,0.001,31,0.604,32,0.164,33,0.517,35,1.211,36,2.145,39,2.448,47,0.642,95,0.165,99,0.854,101,0.008,103,0,104,0,112,0.605,131,1.917,177,2.068,226,0.732,236,1.64,262,2.475,284,1.581,347,2.79,349,0.94,379,0.953,437,1.617,519,2.36,529,2.575,539,1.008,541,1.225,556,1.919,564,3.309,603,2.654,608,2.324,631,2.626,654,2.266,986,1.73,1158,2.445,1586,6.552,1600,1.924,1836,6.981,1837,6.828,1839,4.484,1867,2.49,1909,2.361,2486,2.526,2491,5.051,2524,10.072,2565,6.458,2567,8.612,2577,7.332,2585,5.051,2589,5.065,4550,7.279,5381,9.167,5397,5.428,5405,4.287,5807,6.619,6032,4.009,6033,3.578,6124,7.511,6140,4.675,6166,7.181,6171,4.009,7763,7.043,8687,4.477,8689,3.722,11672,7.961,12588,7.961,15452,10.072,18306,4.732,20586,4.287,20633,6.382,20634,11.116,20657,11.701,20658,5.118,20659,7.618,20660,7.618,20661,9.1,20662,9.1,20663,7.618,20664,7.618,20665,5.118,20666,7.618,20667,5.118,20668,5.118,20669,5.118,20670,5.118,20671,5.118,20672,4.477,20673,5.118,20674,5.118,20675,5.118,20676,5.118,20677,5.118,20678,5.118,20679,7.043,20680,5.118,20681,5.118,20682,5.118,20683,5.118,20684,7.618,20685,5.118,20686,4.732,20687,5.118]],["title/injectables/ToolLaunchUc.html",[539,0.901,20383,5.705]],["body/injectables/ToolLaunchUc.html",[0,0.261,3,0.018,4,0.018,5,0.009,7,0.117,8,1.216,26,2.783,27,0.415,29,0.79,30,0.001,31,0.568,32,0.139,33,0.487,35,0.924,36,2.158,39,2.069,95,0.169,99,1.283,101,0.013,103,0.001,104,0.001,131,4.52,177,2.078,226,1.099,262,2.487,349,0.794,379,1.269,437,1.561,539,1.343,541,1.841,560,3.166,564,3.114,603,2.28,608,2.616,643,4.508,1586,6.356,1600,2.892,1606,5.49,1612,4.666,1837,6.437,1839,3.79,2469,3.491,2567,8.652,2577,7.378,2982,4.306,3232,6.758,5883,8.483,6123,9.77,6139,6.025,6140,4.72,6148,6.728,6152,6.025,20383,8.497,20573,9.378,20633,10.792,20679,9.378,20688,11.35,20689,7.69,20690,7.69,20691,7.69,20692,10.143,20693,7.69,20694,7.11,20695,7.69,20696,7.69]],["title/modules/ToolModule.html",[201,1.804,1765,5.065]],["body/modules/ToolModule.html",[0,0.251,3,0.017,4,0.017,5,0.009,30,0.001,95,0.168,101,0.012,103,0.001,104,0.001,131,2.77,201,2.948,203,2.659,204,2.857,205,2.941,206,2.928,207,2.916,208,4.077,209,4.185,218,3.93,219,2.88,220,2.813,225,3.897,226,1.057,493,3.667,560,3.044,564,3.417,654,2.199,1663,3.129,1676,3.374,1680,5.792,1764,6.57,1765,10.567,1770,4.035,2334,4.217,2425,4.001,2486,4.105,2589,4.916,3529,10.759,5079,4.257,5375,7.188,5381,10.759,5881,10.468,5882,10.759,6171,5.792,8917,9.711,8926,6.194,20628,11.505,20697,7.394,20698,7.394,20699,7.394,20700,7.394,20701,7.394]],["title/injectables/ToolPermissionHelper.html",[539,0.901,6123,5.065]],["body/injectables/ToolPermissionHelper.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.089,8,1.008,26,2.585,27,0.403,29,0.766,30,0.001,31,0.551,32,0.134,33,0.472,35,1.01,36,2.287,39,2.891,95,0.164,99,0.977,101,0.01,103,0,104,0,105,0.632,131,4.943,141,2.797,177,2.083,201,1.551,226,0.837,236,0.952,239,2.256,262,2.596,285,3.835,358,2.576,379,1.051,437,1.472,454,2.78,529,1.657,539,1.113,541,1.402,560,3.461,564,2.581,603,2.286,608,2.623,639,2.748,643,4.776,654,3.196,662,3.725,834,1.836,928,3.222,1542,4.355,1606,6.604,1663,2.478,1695,6.45,1750,6.875,1764,3.893,1768,4.259,1784,4.172,1789,4.587,1792,5.122,1793,5.1,1836,6.5,1837,6.407,1839,4.142,1849,8.242,1850,7.816,1860,4.731,1864,3.98,1866,3.682,1870,7.354,1871,4.172,1874,5.122,1882,3.508,1897,6.759,1899,6.441,1901,3.279,1902,4.707,1903,5.413,2381,3.73,2455,4.259,2456,7.381,2469,2.658,2470,6.114,2473,4.093,2626,4.172,2702,5.073,3095,4.355,3798,4.259,4145,3.835,4803,3.513,5521,4.093,6123,6.252,6145,5.413,8641,9.092,8642,8.603,8650,5.413,8652,5.122,11786,3.73,14112,4.587,18968,5.122,19920,4.731,20702,10.746,20703,9.834,20704,9.834,20705,5.855,20706,5.855,20707,5.855,20708,6.585,20709,9.092,20710,9.092,20711,5.855,20712,5.855,20713,9.834,20714,8.406,20715,7.771,20716,5.855,20717,5.855,20718,5.855]],["title/classes/ToolReference.html",[0,0.231,6024,5.191]],["body/classes/ToolReference.html",[0,0.288,2,0.948,3,0.02,4,0.02,5,0.01,7,0.128,27,0.542,29,0.659,30,0.001,31,0.474,32,0.181,33,0.57,47,0.933,95,0.107,101,0.014,103,0.001,104,0.001,112,0.857,119,2.197,347,4.354,379,1.059,564,4.126,1867,4.12,1924,4.974,3412,7.408,5397,8.47,5763,7.814,5767,6.057,5787,5.395,5806,6.717,5822,5.546,6024,10.078,6042,9.605,6043,7.828,6044,7.828,6045,7.408,6046,9.958,6047,7.828,20719,13.437,20720,10.797,20721,10.797,20722,8.467,20723,8.467,20724,8.467,20725,8.467,20726,7.828,20727,7.828,20728,8.467]],["title/controllers/ToolReferenceController.html",[259,2.591,20389,5.958]],["body/controllers/ToolReferenceController.html",[0,0.211,3,0.015,4,0.015,5,0.007,7,0.094,8,1.052,27,0.359,29,0.683,30,0.001,31,0.491,32,0.165,33,0.421,35,1.054,36,2.349,95,0.157,100,2.088,101,0.01,103,0,104,0,131,3.808,138,1.596,150,1.416,153,2.747,177,1.138,223,2.56,226,0.889,236,1.011,239,2.91,259,2.365,261,2.952,262,2.648,270,6.08,271,4.727,274,6.625,294,6.242,316,5.928,330,7.583,333,4.301,335,6.099,337,3.213,338,3.286,343,3.311,345,1.979,346,5.207,349,0.906,437,1.506,564,3.813,608,2.022,631,3.19,1676,5.039,1715,2.618,2486,3.861,2565,5.441,2606,7.599,2702,2.935,2901,3.338,3717,5.153,3980,6.699,5176,6.251,5763,5.911,5827,9.25,5871,8.417,6017,5.208,6024,8.417,6026,9.764,6029,5.748,6039,5.748,8824,8.922,13954,7.393,13955,7.393,17012,7.56,20384,8.515,20389,7.674,20392,8.214,20408,5.748,20415,8.11,20427,4.87,20433,5.439,20434,5.439,20440,5.208,20520,8.11,20521,8.65,20729,6.217,20730,6.217,20731,8.893,20732,9.398,20733,6.217,20734,6.217,20735,6.217,20736,6.217,20737,6.217,20738,6.217,20739,6.217,20740,6.217,20741,6.217,20742,9.659,20743,6.217,20744,6.217,20745,6.217,20746,6.217,20747,6.217,20748,6.217,20749,6.217,20750,6.217]],["title/classes/ToolReferenceListResponse.html",[0,0.231,20742,5.958]],["body/classes/ToolReferenceListResponse.html",[0,0.318,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.471,29,0.728,30,0.001,31,0.524,32,0.17,33,0.449,95,0.146,101,0.015,103,0.001,104,0.001,112,0.912,138,1.701,150,2.131,245,3.013,284,4.113,379,1.17,556,2.356,564,3.819,809,6.539,812,6.554,814,4.701,829,5.191,1676,5.676,2486,3.101,5763,7.233,5802,9.002,6026,11.096,18239,10.881,20742,10.052,20751,9.353]],["title/classes/ToolReferenceMapper.html",[0,0.231,20752,5.958]],["body/classes/ToolReferenceMapper.html",[0,0.301,2,0.994,3,0.021,4,0.021,5,0.011,7,0.135,8,1.334,27,0.364,29,0.691,30,0.001,31,0.497,32,0.121,33,0.426,35,1.067,95,0.154,101,0.015,103,0.001,104,0.001,236,1.444,347,4.665,349,0.917,413,3.742,437,1.148,564,3.731,1715,3.739,1837,6.969,1839,4.375,1867,4.32,2565,6.595,5397,9.076,5763,6.469,5767,4.524,5806,5.017,6024,10.201,6032,6.955,6034,7.767,6042,7.174,6046,7.438,8674,7.174,8961,6.768,9324,8.208,20442,10.286,20752,9.733,20753,8.878,20754,12.15,20755,8.878,20756,8.878]],["title/classes/ToolReferenceResponse.html",[0,0.231,6026,5.503]],["body/classes/ToolReferenceResponse.html",[0,0.23,2,0.757,3,0.016,4,0.016,5,0.008,7,0.102,27,0.508,29,0.526,30,0.001,31,0.595,32,0.17,33,0.51,34,1.584,47,0.876,95,0.118,101,0.011,103,0.001,104,0.001,112,0.738,119,1.893,131,3.483,138,2.184,142,5.2,143,2.883,144,4.087,145,3.758,149,3.538,150,1.54,153,3.022,236,1.513,245,3.148,347,4.397,379,0.845,564,3.902,574,6.917,834,2.119,1194,3.197,1924,3.971,2017,2.959,2486,4.356,2859,4.149,2860,4.582,3748,5.296,5763,7.391,5767,5.417,5787,4.307,5806,6.007,5822,4.428,5831,9.3,6026,10.025,6042,8.59,6046,8.905,7127,7.515,7386,6.091,9718,6.626,11791,7.515,18238,10.647,18239,11.119,20726,6.25,20727,6.25,20757,6.76,20758,9.299,20759,9.299,20760,6.76,20761,6.76,20762,6.76,20763,9.299,20764,6.76,20765,8.598,20766,6.76,20767,6.76,20768,6.76,20769,6.76,20770,6.76,20771,6.76]],["title/injectables/ToolReferenceService.html",[539,0.901,5885,5.705]],["body/injectables/ToolReferenceService.html",[0,0.24,3,0.016,4,0.016,5,0.008,7,0.107,8,1.148,26,2.469,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,35,0.848,36,2.038,95,0.172,99,1.177,101,0.012,103,0.001,104,0.001,131,2.643,177,2.231,226,1.009,262,2.382,347,3.507,349,0.729,379,1.198,437,1.576,539,1.267,541,1.689,564,4.016,603,2.448,608,2.506,631,3.621,654,2.848,1715,2.972,1775,6.524,1836,6.209,1837,6.254,1839,4.719,1867,3.433,2565,6.193,3232,5.362,5381,10.07,5397,6.824,5763,6.321,5883,8.301,5885,8.022,6024,8.886,6033,4.933,6045,6.173,6124,8.547,6140,5.877,6143,5.133,6152,5.528,6166,7.713,6171,5.528,6172,5.702,8647,5.528,8648,9.561,8675,6.524,8676,6.524,8677,6.524,8689,5.133,20686,6.524,20731,8.378,20752,6.173,20772,10.87,20773,7.056,20774,9.576,20775,7.056,20776,7.056]],["title/injectables/ToolReferenceUc.html",[539,0.901,20384,5.705]],["body/injectables/ToolReferenceUc.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.085,8,0.973,26,2.9,27,0.457,29,0.869,30,0.001,31,0.625,32,0.159,33,0.536,34,0.95,35,1.262,36,2.782,39,3.235,47,0.573,95,0.152,99,0.931,101,0.009,103,0,104,0,131,3.041,177,1.752,226,0.798,236,0.908,262,2.892,349,1.153,379,1.015,437,1.651,539,1.074,541,1.335,560,2.297,564,3.578,579,2.972,593,3.892,603,2.524,608,2.772,643,3.608,1150,2.219,1174,2.995,1606,4.393,1612,3.385,1715,2.35,1837,7.104,1866,6.608,1867,2.714,2256,3.213,2469,2.532,2982,3.124,3232,5.884,4803,6.305,5763,6.776,5766,6.883,5830,6.608,5883,7.525,5885,10.074,6024,10.144,6032,6.359,6106,4.15,6123,8.944,6139,4.371,6152,4.371,6157,4.253,6165,5.158,20384,6.8,20502,5.158,20694,5.158,20731,7.101,20732,8.847,20777,11.652,20778,5.579,20779,8.117,20780,9.569,20781,5.579,20782,8.117,20783,5.579,20784,8.117,20785,5.579,20786,5.579,20787,5.579,20788,5.579,20789,5.579,20790,5.579,20791,5.579,20792,5.579,20793,5.579,20794,8.117,20795,5.579,20796,8.117,20797,8.117,20798,5.579]],["title/controllers/ToolSchoolController.html",[259,2.591,20387,5.958]],["body/controllers/ToolSchoolController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.807,10,1.767,27,0.411,29,0.781,30,0.001,31,0.562,32,0.173,33,0.481,34,1.947,35,1.41,36,2.551,95,0.155,100,1.461,101,0.007,103,0,104,0,138,1.824,141,4.429,150,0.991,153,2.515,177,1.697,223,1.79,226,0.622,239,1.89,259,1.654,261,2.065,262,2.809,270,6.333,271,4.59,273,5.132,274,5.564,280,2.987,282,4.181,283,6.156,284,2.864,285,6.074,292,4.168,294,6.501,301,4.476,305,5.34,310,2.918,319,3.039,324,5.937,330,6.369,333,3.924,335,6.364,336,4.181,337,2.248,338,2.299,340,2.09,343,2.316,346,5.953,347,1.593,348,3.361,349,0.958,379,0.544,437,1.55,564,3.681,603,1.863,608,2.312,631,2.232,654,2.002,819,3.254,1216,2.48,1274,1.376,1715,1.832,1836,6.889,2143,4.797,2250,1.783,2251,3.039,2306,5.248,2486,2.232,2702,2.053,2899,3.099,2900,3.804,2901,2.335,3717,6.231,3803,3.163,4019,2.735,4206,1.475,4486,5.447,5905,3.315,5942,3.099,6008,3.315,6131,4.289,7321,6.589,8607,6.608,9347,5.64,13937,4.021,13952,5.44,13954,4.897,13955,7.715,17012,7.889,18055,4.021,18179,9.391,18188,9.267,18226,5.64,18232,9.678,18233,3.805,18237,8.572,18243,5.64,18252,5.64,18266,8.112,18300,6.9,18302,7.615,18303,7.615,18304,7.615,18305,7.615,20387,5.89,20392,8.572,20427,3.407,20437,8.573,20469,3.805,20471,5.89,20490,5.89,20491,5.64,20498,3.805,20526,4.021,20547,4.021,20584,6.224,20799,4.349,20800,8.237,20801,4.349,20802,4.349,20803,4.349,20804,4.349,20805,4.349,20806,4.349,20807,4.349,20808,4.349,20809,4.349,20810,4.349,20811,4.349,20812,8.237,20813,4.349,20814,4.349,20815,4.349,20816,4.349,20817,4.349,20818,4.349,20819,4.349,20820,4.349,20821,4.349,20822,4.349,20823,4.349,20824,4.349,20825,4.349,20826,4.349,20827,4.349,20828,6.732,20829,4.349,20830,4.349,20831,6.732,20832,4.349,20833,4.349,20834,4.349,20835,4.349,20836,4.349]],["title/classes/ToolStatusOutdatedLoggableException.html",[0,0.231,20672,5.958]],["body/classes/ToolStatusOutdatedLoggableException.html",[0,0.287,2,0.946,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,26,2.845,27,0.442,29,0.658,30,0.001,31,0.473,32,0.147,33,0.405,35,1.015,39,3.195,95,0.151,99,1.409,101,0.014,103,0.001,104,0.001,177,1.974,180,1.932,182,2.749,191,4.573,226,1.208,239,1.939,284,2.61,345,2.689,347,4.581,349,0.873,379,1.057,603,1.697,1021,3.305,1271,5.449,1272,6.094,1274,2.673,1276,3.37,1277,6.164,1586,6.65,2486,2.801,2618,6.838,8368,6.138,8369,6.375,8819,5.314,8821,6.021,8826,4.913,8827,5.126,8857,6.826,9012,6.146,10779,6.828,18480,6.828,20581,7.392,20582,7.392,20672,9.433,20837,11.875,20838,11.875,20839,8.449]],["title/classes/ToolStatusResponseMapper.html",[0,0.231,6030,5.705]],["body/classes/ToolStatusResponseMapper.html",[0,0.321,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,8,1.385,27,0.387,29,0.735,30,0.001,31,0.529,32,0.129,33,0.453,35,1.134,95,0.147,101,0.019,103,0.001,104,0.001,131,3.536,347,4.574,349,0.975,413,3.846,437,1.221,564,2.899,777,5.604,778,6.414,834,2.96,984,4.072,3752,10.11,5397,9.274,5405,7.909,5406,8.728,5905,7.196,6030,9.681,18238,10.463,18261,8.728,20840,11.556,20841,9.441,20842,9.441,20843,9.441,20844,9.441,20845,9.441,20846,9.441]],["title/interfaces/ToolVersion.html",[105,0.735,5399,4]],["body/interfaces/ToolVersion.html",[3,0.025,4,0.025,5,0.013,7,0.159,8,1.477,27,0.43,30,0.001,35,1.261,55,2.65,101,0.017,103,0.001,104,0.001,105,1.133,107,2.52,5399,7.235,5769,10.278,20847,12.317,20848,10.5,20849,10.5]],["title/classes/UnauthorizedLoggableException.html",[0,0.231,1549,5.705]],["body/classes/UnauthorizedLoggableException.html",[0,0.299,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,8,1.328,27,0.454,29,0.687,30,0.001,31,0.494,32,0.151,33,0.423,35,1.06,47,0.943,48,6.033,51,5.894,59,2.74,95,0.154,101,0.015,103,0.001,104,0.001,177,2.028,180,1.985,182,2.869,183,7.127,193,6.415,226,1.261,284,2.724,345,2.807,349,0.911,379,1.103,437,1.141,603,1.772,1021,4.334,1271,5.558,1276,3.463,1277,6.261,1549,9.281,1815,8.054,8368,6.567,8819,5.547,8821,6.285,8826,5.129,8827,5.351,10782,7.389,10783,7.389,18480,7.127,20850,12.113,20851,8.82,20852,8.154]],["title/classes/UnknownQueryTypeLoggableException.html",[0,0.231,20853,6.296]],["body/classes/UnknownQueryTypeLoggableException.html",[0,0.373,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.315,27,0.449,29,0.676,30,0.001,31,0.487,32,0.182,33,0.417,35,1.044,47,0.849,95,0.139,101,0.014,103,0.001,104,0.001,177,1.59,180,1.966,182,2.826,226,1.242,284,2.683,310,5.477,345,2.765,349,0.897,379,1.086,1021,3.398,1150,3.455,1158,5.746,1271,6.107,1272,6.173,1274,2.748,1276,3.43,1277,6.227,3021,6.19,6900,5.396,8368,6.217,8369,6.458,8819,5.463,8826,5.051,8827,5.27,8835,7.02,8836,7.02,12236,7.277,20853,10.145,20854,12.029,20855,8.687,20856,12.029,20857,8.687,20858,8.687]],["title/classes/UpdateElementContentBodyParams.html",[0,0.231,8252,4.528]],["body/classes/UpdateElementContentBodyParams.html",[0,0.453,2,0.634,3,0.013,4,0.013,5,0.007,7,0.086,9,2.674,27,0.232,30,0.001,31,0.629,32,0.186,47,0.873,83,1.74,95,0.142,99,0.945,101,0.022,103,0,104,0,112,0.652,138,1.03,143,1.261,148,1.798,149,3.672,150,1.291,153,2.194,172,1.809,180,2.013,245,3.624,248,5.042,249,4.739,284,2.981,305,3.262,480,3.119,556,2.068,802,5.23,803,3.35,834,1.776,847,2.706,1194,1.948,1203,1.809,1579,3.294,1880,3.992,2193,4.545,2439,2.774,2820,2.739,2821,2.492,2860,2.792,3216,3.363,3218,3.363,3221,3.328,3224,4.989,3227,2.907,3232,3.173,3705,3.519,3726,3.519,3727,6.816,4101,5.594,5621,6.15,5623,6.234,5625,6.15,5627,6.234,5629,6.234,5674,3.711,5711,6.418,5712,6.418,5713,6.418,5714,6.418,5715,6.418,5903,3.563,5904,6.766,7046,3.767,7106,3.61,8238,8.161,8239,5.638,8240,3.891,8243,5.377,8244,7.037,8245,7.037,8246,3.891,8247,7.037,8248,3.477,8249,3.827,8250,7.037,8251,7.037,8252,5.458,8253,5.458,8254,3.767,8255,5.458,8256,3.891,8257,3.891,8258,3.891,8259,3.891,8260,3.891,8700,4.956,20859,5.665,20860,5.665]],["title/classes/UpdateFlagParams.html",[0,0.231,12783,5.958]],["body/classes/UpdateFlagParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,95,0.167,101,0.016,103,0.001,104,0.001,112,0.939,119,2.407,138,1.784,147,6.35,148,3.113,150,2.235,153,2.23,239,2.251,245,3.101,301,7.864,816,4.501,4507,5.284,10742,8.879,10774,8.798,12783,10.348,20861,10.936,20862,9.809,20863,9.809,20864,9.809]],["title/classes/UpdateMatchParams.html",[0,0.231,12775,5.958]],["body/classes/UpdateMatchParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,39,3.402,47,0.83,95,0.167,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,148,3.083,150,2.213,153,2.208,239,2.902,245,3.083,301,7.818,803,4.799,816,4.457,1447,7.492,1676,5.366,4507,5.253,12775,10.287,20861,10.872,20865,9.714,20866,9.714,20867,9.714]],["title/classes/UpdateNewsParams.html",[0,0.231,15081,5.705]],["body/classes/UpdateNewsParams.html",[0,0.415,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.472,30,0.001,32,0.158,33,0.497,47,0.863,83,3.183,95,0.155,99,1.326,100,3.482,101,0.013,103,0.001,104,0.001,112,0.971,138,2.098,148,2.522,149,4.65,150,1.811,153,2.779,154,2.779,247,3.479,248,4.813,249,4.945,472,5.479,753,8.12,802,6.604,1203,4.048,1579,6.028,2193,5.129,2279,6.362,2768,6.153,3224,4.108,6219,7.119,6920,7.669,6925,7.658,7100,6.954,7106,6.604,7107,8.683,7108,7.901,7118,7.901,7119,7.349,15081,8.683,20868,12.224,20869,10.365,20870,10.365,20871,9.068,20872,7.949,20873,7.949,20874,7.949,20875,7.949,20876,7.949,20877,7.949]],["title/classes/UpdateSubmissionItemBodyParams.html",[0,0.231,3700,5.958]],["body/classes/UpdateSubmissionItemBodyParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.131,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,119,2.666,138,1.75,142,4.573,143,2.603,147,6.276,148,3.053,150,2.192,153,2.187,245,3.065,2821,5.763,3229,8.144,3700,10.228,7122,9.159,7124,8.895,7125,8.417,7126,10.228,7127,9.447,7128,8.895,20878,11.691]],["title/entities/User.html",[154,1.456,239,1.562]],["body/entities/User.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.191,27,0.538,30,0.001,32,0.178,33,0.654,34,0.745,47,0.968,83,3.608,95,0.127,96,1.201,101,0.014,103,0,104,0,105,0.73,112,0.88,119,1.682,138,2.39,143,3.002,144,4.14,154,1.988,155,1.459,160,7.168,168,2.494,170,3.425,172,4.221,173,1.293,174,2.689,175,1.933,178,1.816,180,0.784,181,1.17,182,1.422,236,1.513,239,1.551,276,3.954,349,0.452,437,1.069,480,1.214,486,1.315,529,1.237,644,4.589,651,4.803,652,4.803,653,5.197,654,3.297,655,5.054,662,1.375,822,2.518,834,1.371,984,3.565,1276,1.367,1654,2.076,1660,4.154,1661,3.825,2608,4.639,2611,3.689,2615,3.689,3060,1.904,3078,5.717,4057,2.568,4199,6.502,4200,7.089,4206,2.293,4211,6.324,4263,6.924,4294,3.425,4295,3.252,5039,3.102,6564,3.825,6578,4.102,6588,2.684,6610,2.716,6611,2.623,6938,2.595,6939,2.684,7368,5.153,9623,2.907,9624,3.18,9625,2.907,9626,3.18,9627,3.333,9628,3.533,9960,7.089,10022,3.533,10026,3.663,11813,6.679,11814,6.679,11815,6.679,12052,5.663,12172,3.663,12173,3.533,12174,3.663,12175,3.533,12177,3.663,12181,5.663,12182,3.533,12195,6.387,12221,3.425,12222,3.252,12566,3.425,12594,5.463,12595,4.043,12596,7.285,12597,7.089,12598,6.917,12599,7.285,12600,6.25,12601,6.25,12602,6.25,12603,6.924,12604,3.663,12605,4.043,12606,3.663,12607,4.043,12608,3.663,12609,4.043,12610,3.663,12611,4.043,12612,3.663,12613,4.043,12614,4.043,12615,6.25,20879,4.372,20880,4.372,20881,4.372,20882,4.372,20883,4.372,20884,4.372,20885,4.372,20886,4.372,20887,4.372,20888,4.372,20889,4.372,20890,4.372,20891,4.372,20892,4.372,20893,4.372,20894,4.372,20895,4.372,20896,4.372,20897,4.372]],["title/classes/UserAlreadyAssignedToImportUserError.html",[0,0.231,20898,6.296]],["body/classes/UserAlreadyAssignedToImportUserError.html",[0,0.268,2,0.885,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.542,30,0.001,32,0.185,33,0.495,35,0.949,47,0.812,55,1.7,95,0.155,101,0.013,103,0.001,104,0.001,112,0.82,138,2.302,177,2.505,180,1.85,182,2.57,239,2.369,347,2.894,379,1.438,382,3.916,590,7.059,816,5.596,819,2.773,946,5.337,984,3.408,986,4.123,1021,4.499,1201,8.323,1202,6.56,1203,3.894,1204,7.328,1208,5.103,1209,4.386,1210,5.103,1211,5.103,1212,5.103,1213,5.103,1214,5.103,1215,4.741,1217,6.19,1222,4.97,1676,3.606,3390,5.427,3460,8.65,3980,4.794,4145,5.176,9688,5.034,13830,6.913,20898,9.546,20899,10.326,20900,10.326,20901,7.902,20902,7.902,20903,10.326]],["title/interfaces/UserAndAccountParams.html",[105,0.735,656,5.705]],["body/interfaces/UserAndAccountParams.html",[0,0.233,3,0.016,4,0.016,5,0.008,26,1.993,30,0.001,47,0.852,48,4.467,49,3.711,51,4.577,94,6.65,95,0.153,99,1.147,101,0.016,103,0.001,104,0.001,105,1.157,107,1.65,180,1.686,239,3.09,271,4.994,349,1.247,413,3.719,437,1.705,445,5.556,524,3.922,603,1.89,640,9.661,641,6.015,642,6.015,643,5.125,644,4.293,645,5.001,646,4.899,647,6.015,648,8.217,649,5.241,650,10.077,651,4.494,652,4.494,653,4.863,654,2.798,655,4.729,656,10.695,657,5.76,658,6.015,659,8.231,660,6.015,661,6.015,662,3.372,663,6.015,664,8.984,665,8.231,666,8.231,667,5.76,668,9.383,669,9.383,670,6.015,671,8.231,672,8.231,673,5.76,674,6.015,675,8.231,676,6.704,677,5.76]],["title/classes/UserAndAccountTestFactory.html",[0,0.231,657,5.705]],["body/classes/UserAndAccountTestFactory.html",[0,0.19,2,0.627,3,0.013,4,0.013,5,0.007,7,0.085,8,0.976,26,1.725,27,0.458,29,0.871,30,0.001,31,0.626,32,0.169,33,0.537,35,1.344,47,0.789,48,3.866,49,3.211,51,3.961,94,6.479,95,0.142,99,0.935,101,0.013,103,0,104,0,105,1.035,120,4.219,180,1.004,239,3.055,271,5.167,349,1.155,413,4.13,437,1.627,445,4.527,480,2.923,486,3.167,524,3.195,603,2.344,640,8.035,641,10.208,642,4.901,643,5.678,644,3.716,645,4.075,646,3.992,647,4.901,648,7.502,649,4.27,650,9.429,651,3.889,652,3.889,653,4.208,654,2.422,655,4.092,656,11.305,657,6.821,658,7.123,659,7.123,660,7.123,661,4.901,662,3.016,663,8.391,664,10.536,665,7.123,666,7.123,667,4.693,668,8.391,669,8.391,670,8.391,671,7.123,672,7.123,673,4.693,674,8.391,675,7.123,676,5.802,677,4.693,20904,8.142,20905,8.142,20906,5.602,20907,5.602,20908,5.602,20909,5.602,20910,5.602,20911,5.602,20912,5.602,20913,5.602]],["title/modules/UserApiModule.html",[201,1.804,18590,5.503]],["body/modules/UserApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.295,203,3.364,204,3.615,205,3.72,206,3.704,207,3.689,208,4.555,209,3.517,218,4.57,219,3.644,220,3.558,222,5.809,223,4.731,225,4.532,226,1.337,259,3.558,2702,4.415,3531,8.42,12800,10.954,18590,11.206,20914,9.353,20915,9.353,20916,9.353,20917,9.353,20918,10.881,20919,9.353]],["title/interfaces/UserBoardRoles.html",[105,0.735,3077,5.191]],["body/interfaces/UserBoardRoles.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.119,26,2.674,30,0.001,32,0.173,33,0.583,34,1.336,39,3.271,47,0.914,95,0.13,101,0.021,102,3.941,103,0.001,104,0.001,105,1.109,107,1.881,112,0.816,133,2.742,180,1.841,302,6.336,349,1.061,517,3.006,556,2.588,643,3.484,651,5.808,652,5.808,834,3.221,1597,5.974,1601,4.347,1666,4.931,1684,4.87,1753,5.385,2439,3.839,2459,7.472,2460,9.873,2470,5.703,2779,6.142,3059,6.859,3060,4.474,3067,9.826,3068,8.301,3069,8.987,3070,6.336,3071,6.859,3072,3.578,3073,7.3,3074,5.805,3075,6.859,3076,6.859,3077,9.269,3078,6.071,3079,6.568,3080,6.336,3081,8.987,3082,6.859]],["title/controllers/UserController.html",[259,2.591,20918,5.958]],["body/controllers/UserController.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.119,8,1.23,27,0.42,29,0.799,30,0.001,31,0.575,32,0.14,33,0.492,35,1.233,36,2.585,95,0.164,100,2.628,101,0.013,103,0.001,104,0.001,138,1.866,150,1.783,177,1.432,223,3.222,226,1.119,236,1.273,239,2.626,259,2.977,261,3.716,262,2.836,270,6.459,271,4.478,294,6.63,324,5.192,334,5.053,337,4.044,338,4.136,343,4.168,345,2.491,349,1.06,437,1.571,608,2.365,631,4.016,1559,3.442,1660,5.157,2364,5.374,2702,3.694,2711,5.126,2901,4.201,3078,3.907,4197,10.178,12800,9.25,17489,6.846,17493,6.555,19339,10.014,20918,8.976,20920,7.825,20921,11.447,20922,7.825,20923,10.26,20924,7.825,20925,7.825,20926,10.26,20927,7.825,20928,7.825,20929,6.846,20930,7.825,20931,7.825,20932,9.486,20933,7.825,20934,7.825,20935,7.825,20936,7.825]],["title/classes/UserDO.html",[0,0.231,7141,3.599]],["body/classes/UserDO.html",[0,0.201,2,0.662,3,0.014,4,0.014,5,0.007,7,0.09,26,2.095,27,0.569,29,0.461,30,0.001,31,0.331,32,0.19,33,0.681,34,1.442,47,0.98,83,3.844,95,0.137,101,0.01,103,0,104,0,112,0.672,119,1.723,180,1.517,276,2.515,376,4.308,377,4.489,379,0.74,382,1.785,406,3.82,408,3.82,651,4.724,652,4.724,653,5.112,655,4.971,984,3.652,1601,2.503,1655,3.549,1676,2.699,1683,6.278,2439,2.896,3078,4.938,4199,6.914,4200,7.539,4206,3.355,4211,6.22,4283,3.511,4295,4.4,4411,5.469,5777,4.303,6938,3.511,7141,6.039,7147,6.68,7217,4.634,7248,4.509,7251,6.634,7252,4.634,7260,5.175,9623,3.933,9625,3.933,9627,4.509,11813,7.992,11814,7.992,11815,7.992,12195,6.793,12222,4.4,12596,7.748,12597,7.539,12598,7.356,12599,7.748,12603,8.285,12604,4.955,12606,4.955,12608,4.955,12610,4.955,12612,4.955,20937,5.915,20938,8.468,20939,5.915,20940,5.915,20941,5.915,20942,5.915,20943,5.915,20944,5.915,20945,5.915,20946,5.915,20947,5.915,20948,5.915,20949,5.915,20950,5.915,20951,5.915,20952,5.915,20953,5.915,20954,5.915,20955,5.915,20956,5.915,20957,5.915,20958,5.915,20959,5.915,20960,5.915,20961,5.915,20962,5.915,20963,5.915,20964,5.915,20965,5.915,20966,5.915,20967,5.915,20968,5.915,20969,5.915,20970,5.915,20971,5.915,20972,5.915,20973,5.915,20974,5.915,20975,5.915,20976,5.915,20977,5.915]],["title/injectables/UserDORepo.html",[539,0.901,20978,5.705]],["body/injectables/UserDORepo.html",[0,0.117,3,0.008,4,0.008,5,0.004,7,0.052,8,0.669,10,2.864,12,2.56,18,2.823,26,2.365,27,0.519,29,0.978,30,0.001,31,0.71,32,0.172,33,0.603,34,1.63,35,1.509,36,2.559,40,2.698,47,0.822,48,4.99,55,0.739,56,1.66,58,2.217,59,1.066,95,0.142,96,0.943,99,0.573,101,0.006,103,0,104,0,112,0.273,119,1.136,133,1.951,145,1.549,154,1.735,155,1.145,173,1.015,180,1,226,0.491,227,1.413,236,1.557,239,2.759,262,2.879,276,3.797,291,2.497,310,1.488,340,1.65,349,1.153,376,1.495,377,1.558,381,1.153,382,3.575,437,1.555,448,2.287,480,0.953,486,1.033,490,2.499,519,1.063,529,0.971,539,0.738,541,0.822,556,1.405,593,2.611,603,2.416,608,2.206,644,1.566,651,2.665,652,2.665,653,2.884,654,1.021,655,4.488,680,3.901,686,2.634,687,4.519,696,1.354,718,1.905,767,2.357,811,3.019,817,3.901,971,1.889,1150,1.365,1601,2.983,1938,1.958,2031,3.153,2237,8.463,2239,3.976,2240,3.976,2241,3.976,2242,3.976,2243,3.901,2244,3.901,2245,3.976,2246,3.901,2247,3.976,2254,2.446,2256,4.674,2257,2.446,2259,2.446,2261,2.248,2262,3.901,2263,2.446,2265,2.446,2267,3.976,2271,3.976,2273,3.768,2274,3.901,2276,2.446,2278,2.059,2279,2.107,2280,2.446,2282,2.446,2284,3.901,2285,2.446,2288,3.312,2302,2.4,2303,2.553,2312,3.003,3078,4.053,3272,3.173,3355,2.318,4199,3.901,4206,1.164,4211,3.509,4386,2.187,4396,3.003,4400,2.875,4401,2.875,4449,2.774,4451,2.187,4455,2.357,4603,2.446,4689,5.938,4691,2.927,5504,2.864,5921,4.674,5930,2.497,5931,2.497,5932,2.497,5933,2.497,5934,2.497,5935,2.497,5936,2.497,5937,2.497,5938,2.497,5950,2.4,6679,2.059,6744,2.875,6969,4.925,6979,7.5,6998,2.497,6999,2.497,7141,6.513,7147,5.483,7148,2.774,7150,2.774,7153,3.003,8548,3.019,8664,3.173,9044,4.253,9068,2.875,9072,3.003,9074,3.003,9088,3.173,9102,4.881,9231,6.359,9465,3.173,9467,3.173,9468,3.173,9469,5.158,9470,3.173,10377,3.153,11119,2.875,11813,2.774,11814,2.774,11815,2.774,12195,3.832,12594,7.732,12596,4.371,12597,4.253,12598,4.15,12599,4.371,12603,2.875,13791,2.446,13827,4.674,14028,4.881,14032,4.881,14050,3.173,14057,3.173,14061,3.173,14732,3.173,16468,3.173,18220,2.774,18222,3.003,18223,3.003,20256,4.881,20258,4.881,20978,4.674,20979,10.084,20980,5.579,20981,5.158,20982,5.579,20983,3.432,20984,3.432,20985,7.505,20986,3.432,20987,3.432,20988,5.158,20989,3.432,20990,3.432,20991,3.432,20992,3.432,20993,3.432,20994,3.432,20995,3.173,20996,4.881,20997,3.432,20998,3.432,20999,3.432,21000,3.432,21001,3.432,21002,3.432,21003,3.173,21004,3.432,21005,3.432,21006,3.432,21007,3.173,21008,6.517,21009,3.432,21010,3.173,21011,3.432,21012,5.579,21013,3.432,21014,3.432,21015,3.432,21016,3.173,21017,3.432,21018,3.173,21019,3.173,21020,3.173,21021,3.173,21022,3.432,21023,3.432,21024,3.432,21025,3.432,21026,3.173,21027,3.173,21028,3.173,21029,3.173,21030,3.173,21031,3.432,21032,3.432,21033,3.432,21034,3.432,21035,3.432,21036,3.432,21037,3.432,21038,3.432,21039,3.432,21040,3.432,21041,3.432,21042,3.432,21043,3.432,21044,3.432]],["title/interfaces/UserData.html",[105,0.735,9752,5.335]],["body/interfaces/UserData.html",[0,0.134,3,0.009,4,0.009,5,0.005,7,0.06,26,1.862,30,0.001,31,0.349,32,0.139,34,1.062,36,2.48,47,0.938,51,5.189,55,0.849,72,1.79,95,0.156,99,0.658,101,0.006,103,0,104,0,105,1.033,107,0.946,112,0.495,119,0.803,177,1.864,203,1.418,226,0.564,236,1.656,239,0.905,262,2.554,284,3.415,349,1.228,358,1.735,379,0.493,437,1.747,475,2.024,528,2.053,529,2.487,539,0.825,560,2.568,564,2.699,593,2.31,603,2.524,608,3.077,696,2.46,928,5.27,970,4.251,1716,2.393,1836,4.683,1837,4.512,1839,3.812,1849,5.225,1858,2.979,1864,4.216,1866,2.48,1871,4.444,1878,2.933,1879,2.933,2097,8.354,2170,2.209,2333,2.317,2362,2.366,2565,6.309,3540,4.028,3541,1.996,4206,1.338,4357,4.928,4481,2.664,4482,2.757,4483,2.341,4602,4.221,4603,2.81,4767,4.544,4778,4.88,5256,2.622,5521,2.757,5766,5.067,5805,4.36,5869,2.664,5883,4.995,5943,4.444,6033,2.757,6106,5.753,6124,5.143,6140,4.747,6143,2.869,6157,4.754,6166,4.747,6540,3.663,6543,4.865,6544,2.757,6647,2.869,6696,3.09,7141,5.061,7147,4.212,7340,3.874,7873,2.547,8607,2.81,8667,3.006,8689,2.869,8857,4.797,8882,6.265,9000,2.81,9003,6.965,9009,5.143,9038,3.006,9712,3.006,9713,3.187,9714,3.187,9715,3.187,9716,3.187,9717,3.187,9718,2.81,9719,3.187,9732,5.313,9734,3.187,9737,3.187,9739,3.187,9741,3.187,9742,7.104,9744,3.187,9746,3.187,9748,3.187,9750,3.187,9752,8.662,9753,3.187,9755,3.187,9757,3.187,9759,3.006,9760,3.187,9761,4.886,9762,6.887,9763,4.886,9764,5.04,9765,5.04,9766,7.738,9767,5.04,9768,3.187,9769,5.04,9770,3.187,9771,3.187,9772,5.04,9773,3.187,9774,3.187,9775,5.04,9776,3.187,9777,3.187,9778,3.187,9779,3.187,9780,3.187,9781,3.187,9782,3.187,9783,3.187,9784,3.187,9785,3.187,9786,6.251,9787,3.187,9788,3.187,9789,3.187,9790,3.187,9791,3.187,9792,3.187,9793,3.187,9794,3.187,9795,3.187,9796,3.187,9797,3.187,9798,5.04,9799,3.187,9800,3.09,9801,3.187,9802,4.147,9803,2.622,9804,3.09,9805,3.09,9806,3.187,9807,5.04,9808,3.187,9809,5.04,9810,3.187,9811,3.09,9812,3.187,9813,3.187,9814,3.187,9815,3.187,9816,3.187,9817,3.187,9818,3.187,9819,3.09,9820,3.09]],["title/classes/UserDataResponse.html",[0,0.231,19170,5.705]],["body/classes/UserDataResponse.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.524,29,0.699,30,0.001,31,0.503,32,0.175,33,0.431,39,3.54,47,0.947,95,0.114,101,0.015,103,0.001,104,0.001,112,0.89,138,2.221,150,2.045,191,4.859,245,3.569,379,1.401,651,6.286,652,6.286,769,4.543,9623,5.969,9625,5.969,19170,11.024,21045,13.159,21046,8.977,21047,8.977,21048,8.977,21049,8.977,21050,8.977]],["title/classes/UserDoFactory.html",[0,0.231,21051,6.296]],["body/classes/UserDoFactory.html",[0,0.166,2,0.548,3,0.011,4,0.011,5,0.006,7,0.074,8,0.883,26,1.561,27,0.532,29,1.021,30,0.001,31,0.713,32,0.184,33,0.603,34,1.509,35,1.486,47,0.52,49,1.93,55,2.481,59,3.285,95,0.134,99,0.816,101,0.008,103,0,104,0,112,0.585,120,4.337,133,2.576,140,2.74,153,2.014,154,1.894,155,2.458,177,1.349,180,1.32,236,0.796,239,1.123,271,4.913,319,3.326,349,0.761,379,0.612,382,3.883,413,2.269,437,0.953,447,7.083,448,4.554,449,5.57,452,4.163,453,5.57,454,5.633,455,4.163,456,4.163,457,4.163,458,4.089,459,4.546,460,5.006,461,6.528,462,5.869,463,7.034,464,2.791,469,2.765,470,4.163,471,2.791,472,5.21,473,5.379,474,4.211,475,5.059,476,4.125,477,2.765,478,2.607,479,4.162,480,3.294,481,2.693,482,2.648,483,2.765,484,5.133,485,2.791,486,3.569,487,4.917,488,2.765,489,7.192,490,4.207,491,6.704,492,2.791,493,3.654,494,2.765,495,2.791,496,2.765,497,2.791,498,2.765,501,2.765,502,6.167,503,2.791,504,2.765,505,4.163,506,3.894,507,4.163,508,2.791,509,2.67,510,2.648,511,2.186,512,2.765,513,2.765,514,2.765,515,2.791,516,2.791,517,1.876,518,2.765,519,1.516,520,2.791,521,2.918,522,2.765,523,2.791,524,2.791,525,2.846,527,2.936,651,2.338,652,2.338,653,2.529,1601,2.071,3078,4.423,4206,1.66,4314,6.313,4316,3.559,4602,4.02,7141,2.586,7148,3.954,7813,4.281,12842,4.281,21051,8.191,21052,4.894,21053,7.367,21054,7.367,21055,4.894,21056,4.894,21057,4.524,21058,4.524]],["title/classes/UserDto.html",[0,0.231,21059,5.705]],["body/classes/UserDto.html",[0,0.235,2,0.775,3,0.016,4,0.016,5,0.008,7,0.105,26,2.564,27,0.564,29,0.539,30,0.001,31,0.388,32,0.188,33,0.669,34,1.833,47,0.959,83,3.551,95,0.088,99,1.155,101,0.011,103,0.001,104,0.001,112,0.751,119,1.924,154,1.48,239,2.169,379,0.866,404,2.825,480,2.624,486,2.844,511,3.093,528,3.604,651,5.141,652,5.141,653,5.563,655,5.41,984,4.077,3112,4.603,3113,4.471,4199,7.525,4200,8.204,4206,3.651,4211,6.769,4283,4.109,4295,5.149,4786,5.594,6938,4.109,9623,4.603,9625,4.603,9627,5.277,11330,8.739,12596,8.432,12597,8.204,12598,8.005,12599,8.432,12604,5.8,12606,5.8,12608,5.8,12610,5.8,12612,5.8,12659,5.423,13144,6.056,14943,6.401,18453,6.401,21059,10.142,21060,6.923,21061,9.951,21062,6.923,21063,6.923,21064,6.923,21065,6.923,21066,6.923,21067,6.923,21068,6.923,21069,6.923,21070,6.923,21071,6.923,21072,6.923,21073,6.923,21074,6.923,21075,6.923,21076,6.923,21077,6.923,21078,6.923,21079,6.056,21080,6.923,21081,6.923]],["title/classes/UserFactory.html",[0,0.231,648,4.853]],["body/classes/UserFactory.html",[0,0.136,2,0.449,3,0.009,4,0.009,5,0.005,7,0.061,8,0.758,27,0.53,29,1.015,30,0.001,31,0.735,32,0.18,33,0.605,34,1.332,35,1.375,47,0.446,55,2.31,59,3,95,0.136,99,0.669,101,0.007,103,0,104,0,112,0.502,120,2.78,133,2.21,140,2.246,153,1.778,154,2.064,155,2.109,177,1.157,180,1.132,239,1.794,271,4.934,276,5.239,319,2.853,349,1.059,379,0.502,382,3.718,413,1.946,437,1.571,447,7.008,448,4.204,449,5.015,452,3.571,453,5.015,454,5.434,455,3.571,456,3.571,457,3.571,458,3.508,459,4.013,460,4.419,461,6.12,462,5.359,463,6.826,464,2.288,469,2.266,470,3.571,471,2.288,472,4.69,473,4.842,474,3.791,475,4.554,476,3.539,477,2.266,478,2.136,479,3.842,480,3.317,481,2.207,482,2.171,483,2.266,484,4.62,485,2.288,486,3.594,487,4.341,488,2.266,489,7.196,490,3.944,491,6.285,492,2.288,493,3.879,494,2.266,495,2.288,496,2.266,497,2.288,498,2.266,499,2.555,500,2.381,501,2.266,502,5.693,503,2.288,504,2.266,505,3.571,506,3.34,507,3.571,508,2.288,509,2.189,510,2.171,511,1.792,512,2.266,513,2.266,514,2.266,515,2.288,516,2.288,517,1.538,518,2.266,519,1.242,520,2.288,521,2.503,522,2.266,523,2.288,525,2.332,526,2.381,527,5.793,643,5.207,645,2.917,646,2.858,648,5.573,651,1.916,652,1.916,653,2.073,654,1.193,664,8.592,667,5.294,673,5.294,677,5.294,1660,5.395,2078,5.843,3078,5.12,4602,4.842,6803,3.142,6804,3.241,6813,3.142,9802,2.667,9803,2.667,12024,3.057,12594,3.241,12842,3.509,20240,3.708,20244,8.204,21057,3.708,21058,3.708,21082,4.011,21083,6.32,21084,6.32,21085,6.32,21086,6.32,21087,4.011,21088,4.011,21089,4.011,21090,6.32,21091,4.011,21092,6.32,21093,4.011,21094,6.32,21095,6.32,21096,6.32,21097,4.011,21098,4.011,21099,7.82,21100,4.011]],["title/classes/UserForGroupNotFoundLoggable.html",[0,0.231,16441,5.958]],["body/classes/UserForGroupNotFoundLoggable.html",[0,0.304,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,8,1.341,27,0.458,29,0.697,30,0.001,31,0.502,32,0.122,33,0.43,35,1.076,95,0.142,100,3.009,101,0.015,103,0.001,104,0.001,177,1.64,239,2.055,284,2.767,345,2.851,349,0.925,379,1.12,970,6.178,1021,3.504,1150,3.562,1271,5.598,1272,6.26,1274,2.834,1276,3.497,1277,6.296,1454,5.062,3021,6.383,4602,4.888,7094,5.564,8368,6.305,8369,6.549,8509,10.01,8522,5.956,11000,8.527,11248,6.515,16441,9.787,18338,8.281,18339,8.281,18340,8.281,21101,12.199,21102,8.957,21103,8.957,21104,8.957]],["title/interfaces/UserGroup.html",[105,0.735,9763,5.335]],["body/interfaces/UserGroup.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.059,26,1.855,30,0.001,31,0.535,32,0.145,34,1.057,36,2.475,47,0.937,51,4.261,55,1.657,72,1.778,95,0.155,99,0.653,101,0.006,103,0,104,0,105,1.03,107,0.94,112,0.493,119,0.797,177,1.858,203,1.409,226,0.56,236,1.651,239,0.899,262,2.549,284,3.407,349,1.226,358,1.723,379,0.49,437,1.745,475,2.01,528,2.039,529,2.478,539,0.821,560,2.554,564,2.689,593,2.297,603,2.521,608,3.074,696,2.446,928,5.252,970,4.235,1716,2.376,1836,4.665,1837,4.494,1839,3.795,1849,5.201,1858,2.963,1864,4.206,1866,2.463,1871,4.42,1878,2.913,1879,2.913,2097,6.861,2170,2.193,2333,2.301,2362,2.35,2565,6.301,3540,4.006,3541,1.982,4206,1.329,4357,4.906,4481,2.646,4482,2.739,4483,2.325,4602,4.202,4603,2.791,4767,4.523,4778,4.861,5256,2.604,5521,2.739,5766,5.044,5805,4.337,5869,2.646,5883,4.973,5943,4.42,6033,2.739,6106,5.728,6124,5.12,6140,4.726,6143,2.849,6157,4.728,6166,4.726,6540,3.644,6543,4.843,6544,2.739,6647,2.849,6696,3.069,7141,5.045,7147,4.19,7340,3.853,7873,2.53,8607,2.791,8667,2.986,8689,2.849,8857,4.779,8882,6.241,9000,2.791,9003,6.953,9009,5.12,9038,2.986,9712,2.986,9713,3.165,9714,3.165,9715,3.165,9716,3.165,9717,3.165,9718,2.791,9719,3.165,9732,5.289,9734,3.165,9737,3.165,9739,3.165,9741,3.165,9742,7.077,9744,3.165,9746,3.165,9748,3.165,9750,3.165,9752,8.332,9753,3.165,9755,3.165,9757,3.165,9759,2.986,9760,3.165,9761,4.859,9762,6.861,9763,6.033,9764,7.713,9765,7.713,9766,7.713,9767,5.012,9768,3.165,9769,5.012,9770,3.165,9771,3.165,9772,5.012,9773,3.165,9774,3.165,9775,5.012,9776,3.165,9777,3.165,9778,3.165,9779,3.165,9780,3.165,9781,3.165,9782,3.165,9783,3.165,9784,3.165,9785,3.165,9786,6.223,9787,3.165,9788,3.165,9789,3.165,9790,3.165,9791,3.165,9792,3.165,9793,3.165,9794,3.165,9795,3.165,9796,3.165,9797,3.165,9798,5.012,9799,3.165,9800,3.069,9801,3.165,9802,4.124,9803,2.604,9804,3.069,9805,3.069,9806,3.165,9807,5.012,9808,3.165,9809,5.012,9810,3.165,9811,3.069,9812,3.165,9813,3.165,9814,3.165,9815,3.165,9816,3.165,9817,3.165,9818,3.165,9819,3.069,9820,3.069]],["title/interfaces/UserGroups.html",[105,0.735,9762,5.335]],["body/interfaces/UserGroups.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.867,30,0.001,31,0.351,32,0.146,34,1.066,36,2.484,47,0.918,51,4.289,55,0.853,72,1.799,95,0.156,99,0.661,101,0.007,103,0,104,0,105,1.036,107,0.951,112,0.497,119,0.807,120,2.754,177,1.868,203,1.425,226,0.567,236,1.66,239,0.909,262,2.558,284,3.678,349,1.23,358,1.744,379,0.496,437,1.748,475,2.034,528,2.064,529,2.494,539,0.829,560,2.578,564,2.707,593,2.319,603,2.527,608,3.079,696,2.469,928,5.282,970,4.263,1716,2.405,1836,4.696,1837,4.524,1839,3.824,1849,5.242,1858,2.991,1864,4.222,1866,2.493,1871,4.461,1878,2.948,1879,2.948,2097,6.906,2170,2.219,2333,2.328,2362,2.378,2565,6.315,3540,4.043,3541,2.006,4206,1.344,4357,4.944,4481,2.677,4482,2.771,4483,2.353,4602,4.234,4603,2.824,4767,4.558,4778,4.893,5256,2.635,5521,2.771,5766,5.083,5805,4.377,5869,2.677,5883,5.011,5943,4.461,6033,2.771,6106,5.772,6124,5.16,6140,4.763,6143,2.883,6157,4.772,6166,4.763,6540,3.678,6543,4.88,6544,2.771,6647,2.883,6696,3.105,7141,5.073,7147,4.229,7340,3.889,7873,2.56,8607,2.824,8667,3.021,8689,2.883,8857,4.811,8882,6.282,9000,2.824,9003,6.974,9009,5.16,9038,3.021,9712,3.021,9713,3.203,9714,3.203,9715,3.203,9716,3.203,9717,3.203,9718,2.824,9719,3.203,9732,5.33,9734,3.203,9737,3.203,9739,3.203,9741,3.203,9742,7.124,9744,3.203,9746,3.203,9748,3.203,9750,3.203,9752,8.37,9753,3.203,9755,3.203,9757,3.203,9759,3.021,9760,3.203,9761,4.905,9762,7.52,9763,4.905,9764,5.059,9765,5.059,9766,7.757,9767,5.059,9768,3.203,9769,5.059,9770,3.203,9771,3.203,9772,5.059,9773,3.203,9774,3.203,9775,5.059,9776,3.203,9777,3.203,9778,3.203,9779,3.203,9780,3.203,9781,3.203,9782,3.203,9783,3.203,9784,3.203,9785,3.203,9786,6.271,9787,3.203,9788,3.203,9789,3.203,9790,3.203,9791,3.203,9792,3.203,9793,3.203,9794,3.203,9795,3.203,9796,3.203,9797,3.203,9798,5.059,9799,3.203,9800,3.105,9801,3.203,9802,4.163,9803,2.635,9804,3.105,9805,3.105,9806,3.203,9807,5.059,9808,3.203,9809,5.059,9810,3.203,9811,3.105,9812,3.203,9813,3.203,9814,3.203,9815,3.203,9816,3.203,9817,3.203,9818,3.203,9819,3.105,9820,3.105]],["title/classes/UserInfoMapper.html",[0,0.231,15153,5.958]],["body/classes/UserInfoMapper.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,8,1.395,27,0.391,29,0.744,30,0.001,31,0.535,32,0.131,33,0.458,34,1.627,35,1.148,95,0.148,99,1.593,100,3.91,101,0.016,103,0.001,104,0.001,236,1.554,239,3.074,349,0.987,413,3.866,437,1.236,528,4.974,651,4.563,652,4.563,778,6.461,785,4.769,3112,6.352,3113,6.169,15124,10.56,15153,10.183,17491,10.183,18374,8.357,18376,8.357,21105,11.64]],["title/classes/UserInfoResponse.html",[0,0.231,15124,5.503]],["body/classes/UserInfoResponse.html",[0,0.283,2,0.932,3,0.019,4,0.019,5,0.01,7,0.126,27,0.51,29,0.648,30,0.001,31,0.721,32,0.17,33,0.617,34,2.28,47,0.929,95,0.106,101,0.014,103,0.001,104,0.001,112,0.848,138,2.145,149,4.486,150,1.897,153,2.828,154,2.283,239,3.02,245,2.801,253,4.077,359,6.409,379,1.336,404,3.398,651,6.145,652,6.145,769,4.214,1209,5.929,2100,6.523,2855,5.455,2856,5.69,2857,5.69,4361,7.699,7053,9.345,9623,5.537,9625,5.537,15124,10.396,18381,7.285,21106,12.865,21107,8.327,21108,7.699]],["title/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.231,18989,5.503]],["body/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.281,2,0.927,3,0.019,4,0.019,5,0.01,7,0.125,8,1.275,26,2.629,27,0.436,29,0.644,30,0.001,31,0.464,32,0.145,33,0.397,35,0.994,52,5.929,83,3.611,95,0.149,99,1.38,101,0.014,103,0.001,104,0.001,128,5.294,177,1.948,180,1.907,182,2.692,226,1.183,284,2.556,345,2.634,349,0.855,379,1.035,590,7.618,603,1.662,654,2.461,1021,3.237,1271,5.396,1272,6.035,1274,2.618,1276,3.326,1277,6.116,1285,5.344,4507,5.253,5643,7.304,8368,6.078,8369,6.313,8819,5.205,8821,5.897,8826,4.812,8827,5.021,10424,6.483,12220,8.221,13997,6.483,18480,6.687,18989,8.598,19867,6.687,21109,9.851,21110,11.759,21111,7.651,21112,9.724,21113,8.276,21114,8.276]],["title/modules/UserLoginMigrationApiModule.html",[201,1.804,18591,5.503]],["body/modules/UserLoginMigrationApiModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,30,0.001,52,3.324,95,0.172,101,0.011,103,0.001,104,0.001,122,4.7,128,4.668,201,2.859,203,2.503,204,2.689,205,2.768,206,2.756,207,2.745,208,3.953,209,2.617,214,5.807,218,3.773,219,2.711,220,2.647,222,4.322,223,3.905,225,3.741,226,0.995,239,1.597,631,3.571,654,2.07,1274,2.202,1315,8.198,1354,9.805,1689,6.829,1901,3.897,2469,3.159,2702,3.285,4506,10.485,4507,3.109,5380,7.974,10507,5.452,13926,9.54,15537,5.452,15696,9.805,16552,10.485,17511,10.485,18591,11.595,18612,5.83,18981,10.485,20348,10.485,21115,6.959,21116,6.959,21117,6.959,21118,10.114,21119,9.441,21120,9.441,21121,9.486,21122,9.486,21123,6.959]],["title/controllers/UserLoginMigrationController.html",[259,2.591,21120,5.958]],["body/controllers/UserLoginMigrationController.html",[0,0.109,3,0.007,4,0.007,5,0.004,7,0.049,8,0.633,27,0.401,29,0.763,30,0.001,31,0.549,32,0.186,33,0.47,35,1.177,36,2.515,47,0.475,52,6.444,55,1.136,95,0.142,99,0.535,100,1.078,101,0.005,103,0,104,0,128,5.568,138,1.782,150,0.731,153,2.923,177,1.577,223,1.321,226,0.459,236,0.522,239,3.125,259,1.22,261,1.523,262,2.781,270,6.257,271,3.625,278,2.203,292,5.179,294,6.098,310,2.288,324,5.366,330,3.626,333,2.234,335,3.167,337,1.658,338,1.696,343,1.709,346,1.904,347,1.933,349,1.012,379,0.401,437,1.529,482,1.736,517,2.024,556,1.964,569,3.762,590,6.281,603,1.731,608,2.258,631,1.646,654,2.318,817,2.537,819,2.735,986,1.085,1216,1.83,1239,3.24,1285,5.034,1391,3.458,1413,4.627,2431,5.106,2677,2.383,2702,1.514,2899,2.286,2900,1.813,2901,1.722,3072,2.409,3717,5.061,4019,2.018,4506,5.635,4507,4.572,4510,4.618,4520,6.326,4522,5.756,4524,6.107,4525,5.942,4691,4.089,5496,2.101,6828,3.84,7155,5.942,9688,4.966,11022,4.422,12772,4.881,13746,3.84,13953,7.538,13954,7.444,13955,5.67,13959,8.27,13964,4.793,14510,2.966,14971,4.618,15395,4.266,15615,6.82,17012,7.286,17511,5.635,17513,4.618,18356,6.107,18429,6.53,18430,6.53,18432,6.82,18477,4.422,18981,5.635,18984,4.618,18989,6.299,19380,2.966,19867,8.822,20348,5.635,20350,5.885,20430,2.966,20491,8.573,20929,2.807,21118,5.436,21120,4.618,21124,9.462,21125,2.966,21126,5.279,21127,6.219,21128,6.219,21129,6.726,21130,3.208,21131,3.208,21132,9.462,21133,5.279,21134,5.279,21135,3.208,21136,3.208,21137,3.208,21138,5.279,21139,3.208,21140,3.208,21141,3.208,21142,9.268,21143,3.208,21144,3.208,21145,3.208,21146,6.53,21147,3.208,21148,3.208,21149,3.208,21150,3.208,21151,3.208,21152,3.208,21153,3.208,21154,3.208,21155,3.208,21156,3.208,21157,5.279,21158,6.53,21159,3.208,21160,5.279,21161,3.208,21162,3.208,21163,6.82,21164,3.208,21165,3.208,21166,3.208,21167,4.881,21168,3.208,21169,3.208,21170,3.208,21171,3.208,21172,3.208,21173,3.208,21174,6.726,21175,5.279,21176,2.807,21177,6.299,21178,9.233,21179,6.82,21180,3.208,21181,3.208,21182,3.208,21183,3.208,21184,3.208,21185,3.208,21186,3.208,21187,3.208,21188,3.208,21189,5.279,21190,3.208,21191,6.726,21192,3.208,21193,3.208,21194,3.208,21195,3.208,21196,3.208,21197,3.208,21198,6.726,21199,3.208,21200,3.208,21201,3.208,21202,3.208,21203,3.208,21204,3.208,21205,3.208,21206,3.208,21207,3.208,21208,3.208,21209,3.208,21210,3.208,21211,3.208]],["title/classes/UserLoginMigrationDO.html",[0,0.231,4520,4.398]],["body/classes/UserLoginMigrationDO.html",[0,0.261,2,0.861,3,0.018,4,0.018,5,0.009,7,0.117,26,2.783,27,0.553,29,0.599,30,0.001,31,0.431,32,0.184,33,0.659,34,1.728,47,0.543,83,4.094,95,0.129,101,0.013,103,0.001,104,0.001,112,0.805,128,5.434,180,1.818,181,2.715,379,0.962,381,2.583,382,2.32,1600,2.892,1683,7.018,4206,3.85,4283,4.565,4284,5.72,4520,8.101,5777,5.594,5782,5.862,7248,5.862,18405,8.442,18433,8.652,21112,8.892,21212,13.49,21213,7.69,21214,9.172,21215,8.892,21216,8.892,21217,10.143,21218,7.69,21219,7.69,21220,7.69,21221,7.69,21222,7.69,21223,7.69,21224,7.11,21225,7.11,21226,7.11,21227,7.11,21228,6.728,21229,6.728,21230,6.728,21231,6.728,21232,6.728,21233,6.728,21234,6.728,21235,6.728]],["title/entities/UserLoginMigrationEntity.html",[154,1.456,12197,5.065]],["body/entities/UserLoginMigrationEntity.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.105,27,0.523,30,0.001,32,0.178,33,0.624,83,3.994,95,0.146,96,1.895,101,0.016,103,0.001,104,0.001,112,0.749,128,5.24,138,2.324,143,2.897,144,4.21,145,2.618,154,2.016,155,2.302,160,6.128,172,3.986,173,2.04,174,3.75,175,3.051,177,1.263,178,2.866,180,1.236,181,1.846,182,2.244,556,2.706,644,5.27,654,3.196,1447,4.396,2616,7.388,5039,4.93,6610,4.285,6611,4.139,6818,6.37,8548,6.916,11135,4.823,12197,7.014,16565,8.682,16566,8.682,18154,6.379,18433,8.19,21112,8.417,21214,8.682,21216,8.417,21228,6.036,21229,6.036,21230,6.036,21231,6.036,21232,6.036,21233,6.036,21234,6.036,21235,6.036,21236,13.01,21237,6.899,21238,6.899,21239,6.899,21240,6.899,21241,6.899,21242,6.899,21243,6.899,21244,6.899,21245,6.899,21246,8.719,21247,6.899,21248,6.899,21249,6.899,21250,6.899,21251,6.899,21252,6.899]],["title/classes/UserLoginMigrationError.html",[0,0.231,21253,5.958]],["body/classes/UserLoginMigrationError.html",[0,0.261,2,0.861,3,0.018,4,0.018,5,0.009,7,0.117,8,1.216,27,0.538,29,0.599,30,0.001,31,0.431,32,0.186,33,0.545,35,0.924,47,0.801,52,5.422,55,1.655,59,2.389,95,0.129,101,0.013,103,0.001,104,0.001,112,0.805,128,4.861,138,2.282,177,2.493,180,1.818,182,2.502,226,1.099,239,1.764,340,3.696,347,2.817,379,0.962,382,3.887,595,6.379,816,5.537,819,2.699,946,5.266,984,5.205,986,4.08,1021,4.44,1201,8.279,1202,7.155,1203,3.853,1204,7.231,1208,4.967,1209,4.269,1210,4.967,1211,4.967,1212,4.967,1213,4.967,1214,4.967,1215,4.614,1216,4.386,1222,4.837,4507,4.531,6900,4.777,7094,4.777,8825,6.442,13736,5.72,13771,8.497,18359,6.728,21109,8.497,21253,8.874,21254,7.69]],["title/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.231,4524,5.335]],["body/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.278,2,0.917,3,0.019,4,0.019,5,0.01,7,0.124,8,1.267,26,2.619,27,0.433,29,0.638,30,0.001,31,0.459,32,0.144,33,0.393,35,0.984,52,5.906,83,3.593,95,0.148,99,1.366,101,0.013,103,0.001,104,0.001,128,5.371,177,1.935,180,1.894,182,2.665,226,1.171,239,1.879,284,2.53,345,2.607,349,0.846,379,1.024,603,1.645,1021,3.204,1271,5.37,1272,6.005,1274,2.591,1276,3.304,1277,6.093,4507,5.228,4524,8.28,5643,7.269,8368,6.048,8369,6.282,8826,4.763,8827,4.97,12220,8.181,13997,6.417,14971,7.166,18429,10.358,18430,10.358,18431,7.573,18432,10.817,18433,9.425,21109,9.803,21111,7.573,21255,8.191,21256,8.191,21257,8.191,21258,8.191,21259,8.191]],["title/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.231,20355,5.958]],["body/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.285,2,0.938,3,0.02,4,0.02,5,0.01,7,0.127,8,1.286,26,2.84,27,0.439,29,0.652,30,0.001,31,0.469,32,0.115,33,0.402,35,1.007,39,3.182,52,5.957,95,0.136,99,1.398,101,0.014,103,0.001,104,0.001,119,2.407,128,5.4,177,2.165,191,4.535,239,1.922,284,2.588,321,6.095,347,3.069,349,0.865,379,1.341,603,2.376,654,3.19,1021,3.278,1271,5.428,1272,6.07,1274,2.651,1276,3.352,1277,6.145,4507,5.284,8368,6.114,8369,6.35,10424,6.564,10779,6.771,11855,9.275,12220,8.718,13425,7.33,13997,6.564,20355,9.382,21260,10.936,21261,8.379,21262,8.379,21263,8.379,21264,8.379]],["title/classes/UserLoginMigrationMandatoryParams.html",[0,0.231,21163,5.958]],["body/classes/UserLoginMigrationMandatoryParams.html",[0,0.404,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,27,0.406,30,0.001,32,0.135,52,5.683,95,0.151,101,0.016,103,0.001,104,0.001,112,0.945,119,2.422,128,5.328,138,1.802,147,6.388,148,3.143,150,2.257,245,3.12,4507,5.315,7400,7.551,11855,9.486,21163,10.409,21265,11,21266,9.906,21267,9.906]],["title/classes/UserLoginMigrationMapper.html",[0,0.231,21176,5.958]],["body/classes/UserLoginMigrationMapper.html",[0,0.284,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,8,1.284,27,0.439,29,0.834,30,0.001,31,0.6,32,0.146,33,0.514,34,1.424,35,1.287,39,2.249,47,0.59,95,0.15,99,1.395,101,0.014,103,0.001,104,0.001,128,5.308,236,1.36,310,4.642,349,1.106,413,4.058,437,1.385,785,4.175,819,3.758,1601,3.538,2297,6.374,2702,3.947,4507,5.279,4520,8.047,18405,6.219,18433,6.374,21112,6.551,21146,10.438,21176,9.37,21177,10.069,21178,10.409,21214,6.757,21215,6.551,21216,6.551,21268,11.817,21269,7.731,21270,10.71,21271,10.71,21272,10.71,21273,8.362,21274,8.362,21275,10.71,21276,8.362,21277,8.362,21278,8.362,21279,8.362,21280,8.362,21281,8.362,21282,8.362,21283,8.362]],["title/modules/UserLoginMigrationModule.html",[201,1.804,13926,5.191]],["body/modules/UserLoginMigrationModule.html",[0,0.238,3,0.016,4,0.016,5,0.008,30,0.001,95,0.166,101,0.012,103,0.001,104,0.001,128,3.844,201,2.871,203,2.525,204,2.713,205,2.792,206,2.78,207,2.769,208,3.97,209,4.076,213,8.941,214,5.822,218,3.795,219,2.735,220,2.67,225,3.763,226,1.004,227,2.89,560,2.89,654,2.088,1274,2.221,1356,8.773,1372,5.351,1375,4.908,1901,3.931,3531,7.794,3541,3.552,4507,3.136,4513,9.706,4514,10.131,4515,11.007,5380,7.995,13926,10.957,14929,11.41,14933,9.83,15513,10.671,18612,5.88,21284,7.02,21285,7.02,21286,7.02,21287,7.02,21288,7.02]],["title/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.231,4525,5.191]],["body/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.282,2,0.93,3,0.019,4,0.019,5,0.01,7,0.126,8,1.279,26,2.834,27,0.437,29,0.647,30,0.001,31,0.465,32,0.146,33,0.399,35,0.998,52,5.938,59,2.582,95,0.149,99,1.386,101,0.014,103,0.001,104,0.001,128,5.389,177,1.953,180,1.912,182,2.703,226,1.188,239,1.907,284,2.567,345,2.645,349,0.858,379,1.039,603,1.669,654,2.472,1021,3.251,1271,5.406,1272,6.046,1274,2.629,1276,3.334,1277,6.126,2619,6.276,4206,3.997,4283,4.932,4507,5.264,4525,8.132,4691,4.359,5570,5.613,8368,6.09,8369,6.325,8819,5.226,8821,5.921,8826,4.832,8827,5.042,12220,8.691,13997,6.51,15442,10.893,18479,7.683,18480,6.715,21109,9.87,21289,8.31]],["title/interfaces/UserLoginMigrationQuery.html",[105,0.735,21177,5.503]],["body/interfaces/UserLoginMigrationQuery.html",[3,0.024,4,0.024,5,0.012,7,0.158,30,0.001,32,0.142,33,0.587,39,3.615,47,0.919,52,4.964,101,0.017,103,0.001,104,0.001,105,1.121,107,2.493,112,0.972,128,4.931,4507,4.642,9355,9.091,21177,9.893,21290,10.392]],["title/injectables/UserLoginMigrationRepo.html",[539,0.901,14933,5.335]],["body/injectables/UserLoginMigrationRepo.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,8,0.863,10,2.926,12,3.305,18,3.645,26,2.678,27,0.538,29,1.015,30,0.001,31,0.73,32,0.178,33,0.626,34,1.654,35,1.552,36,2.561,40,2.296,95,0.145,96,1.978,97,2.058,99,0.792,101,0.008,103,0,104,0,112,0.377,128,4.204,133,2.518,154,2.075,173,1.405,177,1.318,180,1.291,226,0.679,236,1.172,262,2.857,349,1.135,379,0.594,381,1.595,382,3.86,437,1.256,448,3.566,519,1.471,539,0.953,541,1.137,556,1.196,593,2.667,603,2.361,608,1.095,644,2.167,654,2.142,680,5.035,686,3.4,687,5.281,718,2.636,1274,1.502,1601,3.681,1938,2.709,2237,9.025,2239,5.132,2240,5.132,2241,5.132,2242,5.132,2243,5.035,2244,5.035,2245,5.132,2246,5.035,2247,5.132,2248,3.454,2249,5.591,2250,3.98,2251,4.383,2253,5.238,2254,3.384,2256,5.591,2257,3.384,2259,3.384,2261,3.111,2262,5.035,2263,3.384,2265,3.384,2267,5.132,2271,5.132,2273,4.865,2274,5.035,2276,3.384,2278,2.85,2279,2.915,2280,3.384,2282,3.384,2284,3.32,2285,3.384,2291,3.208,4206,2.951,4386,3.026,4520,8.165,4522,4.473,5930,3.454,5931,3.454,5932,3.454,5933,3.454,5934,3.454,5935,3.454,5936,3.454,5937,3.454,5938,3.454,5946,3.62,8548,2.57,9080,4.391,9090,3.62,12197,8.743,12198,3.838,12199,3.838,14039,4.391,14066,6.659,14933,5.642,16565,3.838,16566,3.838,18201,6.659,18211,6.659,18220,3.838,18222,4.155,18223,4.155,18405,3.532,18433,5.49,21112,5.642,21214,5.82,21215,3.721,21216,5.642,21246,10.551,21291,9.709,21292,4.749,21293,4.749,21294,4.749,21295,4.749,21296,4.749,21297,4.749,21298,4.749,21299,4.749,21300,4.749,21301,4.749,21302,4.749,21303,4.749,21304,4.749,21305,4.749,21306,4.749,21307,7.202,21308,7.202,21309,4.749,21310,4.749,21311,4.749,21312,4.749,21313,4.749]],["title/classes/UserLoginMigrationResponse.html",[0,0.231,21178,5.503]],["body/classes/UserLoginMigrationResponse.html",[0,0.224,2,0.739,3,0.015,4,0.015,5,0.008,7,0.1,27,0.527,29,0.514,30,0.001,31,0.37,32,0.176,33,0.627,34,2.151,47,0.869,52,6.441,83,4.24,95,0.084,101,0.011,103,0.001,104,0.001,112,0.727,128,5.608,138,2.297,142,3.58,149,4.529,150,1.505,153,2.8,181,2.449,245,3.122,379,0.826,381,2.218,404,2.695,405,3.635,816,4.199,1209,6.293,1285,5.91,1961,7.395,2677,4.132,3072,5.174,3229,6.878,4507,5.839,7990,8.006,10402,7.395,18405,7.81,18429,7.666,18430,7.666,18433,8.005,21112,8.227,21178,9.621,21214,8.486,21215,8.227,21216,8.227,21224,6.106,21225,6.106,21226,6.106,21227,6.106,21228,5.778,21229,5.778,21230,5.778,21231,5.778,21232,5.778,21233,5.778,21234,5.778,21235,5.778,21314,12.085,21315,6.106,21316,9.151,21317,6.605,21318,6.605,21319,6.605,21320,6.605,21321,6.605,21322,6.605]],["title/injectables/UserLoginMigrationRevertService.html",[539,0.901,4515,5.503]],["body/injectables/UserLoginMigrationRevertService.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,27,0.447,29,0.85,30,0.001,31,0.611,32,0.149,33,0.524,35,1.035,36,2.322,52,5.723,95,0.16,99,1.437,101,0.014,103,0.001,104,0.001,128,5.433,177,1.998,226,1.231,239,1.976,262,2.625,379,1.365,539,1.444,541,2.062,603,2.192,608,2.516,654,2.561,1897,7.922,1899,7.848,1901,4.823,4507,5.352,4512,6.959,4513,9.463,4515,8.819,4520,8.135,4522,5.349,12196,6.137,13328,7.215,16453,7.534,21323,10.482,21324,8.612,21325,10.914,21326,8.612,21327,10.914,21328,8.612,21329,8.612,21330,8.612]],["title/injectables/UserLoginMigrationRule.html",[539,0.901,1710,5.705]],["body/injectables/UserLoginMigrationRule.html",[0,0.267,3,0.018,4,0.018,5,0.009,7,0.119,8,1.233,27,0.47,29,0.893,30,0.001,31,0.642,32,0.166,33,0.55,35,1.236,95,0.16,101,0.013,103,0.001,104,0.001,119,2.638,128,4.901,131,4.296,154,2.822,177,1.438,226,1.123,239,3.108,345,2.5,349,1.062,379,0.982,437,1.33,539,1.361,541,1.88,604,3.192,662,4.075,1276,2.455,1606,6.586,1634,8.049,1655,4.713,1672,7.383,1710,8.617,1813,6.643,1817,6.389,1824,5.223,3349,6.839,3350,5.306,3353,6.738,3355,5.306,3356,5.306,3357,6.948,3358,5.843,4520,8.65,6054,5.598,18263,7.263,21331,12.168,21332,7.856,21333,7.856,21334,7.856,21335,7.856]],["title/classes/UserLoginMigrationSearchListResponse.html",[0,0.231,21179,5.958]],["body/classes/UserLoginMigrationSearchListResponse.html",[0,0.262,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,27,0.514,29,0.601,30,0.001,31,0.432,32,0.184,33,0.603,52,4.858,55,3.018,56,6.236,59,3.16,70,6.439,95,0.144,101,0.013,103,0.001,104,0.001,112,0.807,128,5.059,138,2.198,150,1.759,180,1.822,239,1.771,245,2.666,247,3.379,284,3.879,379,0.965,382,3.647,556,1.945,808,7.246,809,5.397,810,8.07,811,6.98,812,5.8,814,3.88,816,5.218,817,3.71,818,4.323,819,2.709,820,5.397,821,6.567,822,5.856,823,5.057,824,4.112,825,5.397,826,5.397,828,4.855,829,4.285,4507,4.543,9348,7.137,9349,7.137,16239,7.137,21178,10.625,21179,8.896,21314,9.402]],["title/classes/UserLoginMigrationSearchParams.html",[0,0.231,21146,5.705]],["body/classes/UserLoginMigrationSearchParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,33,0.568,39,3.416,47,0.835,52,5.65,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,128,5.311,138,1.784,148,3.113,149,4.499,150,2.235,248,4.936,249,4.785,4507,5.284,9350,8.581,9353,8.581,21146,9.909,21265,10.936,21336,9.809]],["title/injectables/UserLoginMigrationService.html",[539,0.901,4513,4.853]],["body/injectables/UserLoginMigrationService.html",[0,0.231,3,0.008,4,0.008,5,0.004,7,0.05,8,0.643,26,2.261,27,0.471,29,0.895,30,0.001,31,0.644,32,0.157,33,0.551,35,1.352,36,2.646,39,0.879,47,0.878,48,1.552,55,1.466,59,2.117,83,2.871,95,0.135,99,0.545,101,0.005,102,1.643,103,0,104,0,119,2.38,128,5.277,143,0.728,177,1.593,226,0.467,227,1.345,236,1.902,262,2.918,333,3.336,349,1.162,355,2.055,358,2.358,379,0.67,437,1.647,519,1.012,529,2.645,539,0.709,541,0.782,556,2.894,591,1.847,593,3.818,603,2.386,608,2.99,654,2.027,986,1.812,1150,1.3,1158,1.561,1375,2.285,1755,3.681,1897,4.958,1899,4.463,1901,1.83,1902,5.978,2017,1.43,2018,1.6,2019,1.543,2334,3.057,3072,1.491,3541,1.654,3561,2.859,3878,1.83,4206,3.967,4507,5.224,4510,4.689,4513,3.819,4514,7.345,4520,8.377,4522,7.963,4525,2.491,4527,5.708,4529,5.338,4532,5.068,4533,4.689,4691,1.714,4767,5.492,5643,2.03,6808,2.56,7141,4.166,9731,2.641,11291,5.241,11855,5.863,12196,2.329,12654,3.021,13086,5.506,13328,2.738,13664,2.738,13939,5.961,14011,7.127,14012,7.127,14013,7.859,14115,3.021,14123,4.331,14125,8.046,14131,3.021,14137,2.738,14138,7.288,14933,7.736,14938,2.641,14939,4.955,15512,7.183,16453,2.859,17156,2.641,17513,4.689,18023,3.819,18400,3.021,18405,2.431,18446,6.3,18447,3.021,18465,4.955,18984,4.689,19455,2.56,19555,3.021,19588,3.021,20350,4.689,21215,4.199,21216,2.56,21323,10.23,21337,5.36,21338,5.36,21339,5.36,21340,5.36,21341,5.36,21342,5.36,21343,5.36,21344,3.268,21345,5.36,21346,3.268,21347,5.36,21348,3.268,21349,5.36,21350,3.268,21351,5.36,21352,3.268,21353,5.36,21354,3.268,21355,5.36,21356,3.268,21357,4.955,21358,3.021,21359,5.36,21360,3.268,21361,5.36,21362,3.268,21363,5.36,21364,3.268,21365,5.36,21366,5.36,21367,5.36,21368,5.36,21369,6.814,21370,2.641,21371,3.268,21372,5.36,21373,5.36,21374,5.36,21375,3.268,21376,5.36,21377,3.268,21378,5.36,21379,3.268,21380,3.268,21381,3.268,21382,5.36,21383,3.268,21384,3.268,21385,3.268,21386,5.36,21387,3.268,21388,3.268,21389,3.268,21390,5.36,21391,4.955,21392,3.268]],["title/classes/UserLoginMigrationStartLoggable.html",[0,0.231,17518,5.705]],["body/classes/UserLoginMigrationStartLoggable.html",[0,0.294,2,0.97,3,0.02,4,0.02,5,0.01,7,0.131,8,1.314,26,2.861,27,0.449,29,0.675,30,0.001,31,0.486,32,0.118,33,0.416,35,1.041,39,3.233,52,6.031,95,0.139,99,1.446,101,0.014,103,0.001,104,0.001,128,5.358,177,2.006,191,4.691,284,2.677,321,6.305,345,2.759,349,0.895,379,1.084,603,1.741,654,3.259,1021,3.391,1271,5.514,1272,6.167,1274,2.742,1276,3.425,1277,6.222,1285,5.598,4507,5.368,8368,6.211,8369,6.451,10779,7.004,12220,8.828,13997,6.79,17518,9.18,18368,8.014,18369,8.014,21260,11.11,21393,8.668]],["title/injectables/UserLoginMigrationUc.html",[539,0.901,21118,5.503]],["body/injectables/UserLoginMigrationUc.html",[0,0.128,3,0.009,4,0.009,5,0.004,7,0.057,8,0.721,26,2.571,27,0.409,29,0.777,30,0.001,31,0.559,32,0.136,33,0.479,34,0.642,35,1.125,36,2.314,39,2.926,47,0.948,52,2.872,59,2.662,95,0.158,99,0.628,100,1.265,101,0.006,103,0,104,0,122,2.544,128,5.064,177,1.991,226,0.539,236,1.769,239,2.148,262,2.619,284,2.892,292,1.906,310,3.252,330,4.13,347,1.38,349,0.775,379,0.752,437,1.355,519,1.167,529,2.824,539,0.796,541,0.902,556,1.89,560,1.551,579,2.006,593,2.779,603,2.358,604,1.53,608,2.65,643,1.674,654,3.115,696,1.486,708,1.565,757,2.802,817,4.499,946,3.975,984,1.625,986,2.896,1021,2.936,1150,1.498,1174,2.022,1202,3.429,1229,3.939,1274,1.192,1357,7.79,1609,3.309,1610,2.312,1625,2.467,1663,2.544,1695,5.536,1772,4.284,1793,2.285,1902,5.243,2193,2.432,2250,3.076,2251,3.868,2432,2.684,2468,2.236,2469,1.71,2473,2.633,2820,4.142,3539,2.454,4206,3.385,4481,2.544,4482,2.633,4483,2.236,4507,4.679,4509,3.044,4513,7.463,4514,7.79,4520,4.846,4522,6.199,4526,2.951,4528,3.482,4644,2.871,4701,7.075,8522,2.504,8531,3.781,10111,2.802,10791,3.155,11248,2.74,11427,7.984,11447,4.373,11580,5.258,11655,6.105,13076,3.295,13102,6.546,13135,7.566,13394,5.26,13842,5.559,13964,5.347,14444,3.482,14938,3.044,15395,4.859,15455,4.859,15511,8.205,15513,7.819,15537,2.951,15538,3.295,15552,3.044,15570,3.155,15624,3.482,15630,3.295,15631,3.295,15791,5.559,15962,2.951,16243,3.044,16322,3.482,16325,5.559,16330,3.482,16344,3.295,16345,8.731,16346,3.482,16347,5.559,16348,5.559,16350,3.482,16351,3.482,16445,3.482,16528,3.482,16541,4.71,16564,5.26,16565,6.923,16566,8.464,16567,7.495,16573,3.295,18383,3.295,18405,9.027,21118,4.859,21127,5.559,21128,5.559,21177,6.923,21253,5.26,21394,10.474,21395,5.559,21396,7.504,21397,3.767,21398,3.767,21399,6.013,21400,3.767,21401,6.013,21402,3.767,21403,5.559,21404,3.767,21405,3.767,21406,3.767,21407,3.767,21408,3.767,21409,7.504,21410,3.767,21411,3.767,21412,3.767,21413,3.767,21414,3.767,21415,8.567,21416,3.767,21417,3.767,21418,6.013,21419,3.482,21420,3.482,21421,3.767,21422,6.013,21423,6.013,21424,6.013,21425,3.767,21426,3.767,21427,3.767,21428,3.767,21429,3.767,21430,3.767,21431,3.767,21432,9.362,21433,3.767,21434,6.013,21435,3.767]],["title/classes/UserMapper.html",[0,0.231,21436,5.958]],["body/classes/UserMapper.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,8,1.36,27,0.375,29,0.713,30,0.001,31,0.513,32,0.125,33,0.44,34,1.561,35,1.101,95,0.144,99,1.528,101,0.015,103,0.001,104,0.001,154,1.958,236,1.49,239,2.955,276,4.823,349,0.946,413,3.795,651,4.376,652,4.376,653,4.735,655,4.605,4199,6.405,4206,3.108,4211,5.762,4386,5.837,4396,8.015,7150,7.403,11119,7.675,12596,7.177,12597,6.983,12598,6.814,12599,7.177,17596,9.504,17600,9.504,18220,7.403,21019,8.47,21020,8.47,21021,8.47,21026,8.47,21027,8.47,21028,8.47,21029,8.47,21030,8.47,21059,10.789,21061,8.47,21436,9.925,21437,9.161,21438,9.161,21439,9.161,21440,9.161]],["title/classes/UserMatchListResponse.html",[0,0.231,12797,5.705]],["body/classes/UserMatchListResponse.html",[0,0.352,2,0.722,3,0.015,4,0.015,5,0.008,7,0.098,27,0.483,29,0.502,30,0.001,31,0.504,32,0.182,33,0.566,34,1.098,39,1.734,47,0.792,55,2.947,56,5.911,59,2.796,70,6.103,95,0.15,101,0.015,103,0.001,104,0.001,112,0.714,128,2.596,138,2.04,143,1.435,148,2.046,149,3.423,150,1.469,153,2.779,180,1.612,181,1.725,191,3.489,192,4.107,239,2.878,245,3.289,247,2.822,276,2.74,284,3.645,319,2.91,361,5.857,379,0.806,382,3.385,517,2.471,556,1.624,564,1.979,593,2.387,651,4.298,652,4.298,803,3.672,810,7.7,811,6.616,812,5.132,814,3.24,816,4.756,817,3.098,818,3.61,819,2.262,820,4.507,821,5.811,822,5.181,823,4.222,824,3.433,825,4.507,826,4.507,828,4.054,829,3.578,834,2.821,1447,7.147,1841,4.222,3072,2.942,3073,4.107,3074,3.642,3078,3.218,3247,4.054,4507,4.02,5071,4.107,5536,4.107,9623,4.286,9624,4.689,9625,4.286,9626,4.689,10743,4.427,10761,4.593,10762,5.459,12020,4.914,12021,4.354,12038,7.538,12061,5.4,12797,7.538,12847,10.026,12849,7.901,12852,5.4,12853,5.4,12854,5.4,12855,5.4,12919,9.068,21441,8.319,21442,5.96,21443,6.446,21444,6.446,21445,5.639]],["title/classes/UserMatchMapper.html",[0,0.231,12789,5.705]],["body/classes/UserMatchMapper.html",[0,0.245,2,0.808,3,0.017,4,0.017,5,0.009,7,0.109,8,1.166,27,0.398,29,0.757,30,0.001,31,0.616,32,0.133,33,0.467,35,1.169,39,1.943,59,2.244,95,0.156,99,1.205,100,3.267,101,0.012,103,0.001,104,0.001,143,1.608,236,1.175,239,2.818,310,4.216,321,5.252,340,3.47,349,1.307,413,3.897,437,1.637,486,2.172,528,3.76,529,2.043,593,4.073,651,3.449,652,3.449,778,5.399,785,3.605,1242,6.333,1869,4.541,3073,4.601,3074,4.08,3112,4.801,3113,4.663,4507,4.913,4602,5.308,4603,5.146,5504,3.952,10743,4.96,10776,9.858,12020,7.414,12021,6.57,12022,10.624,12067,9.51,12659,5.657,12789,8.148,12791,6.317,12847,9.219,12849,8.384,12872,5.657,12874,6.049,12926,5.657,17491,8.509,17614,8.993,17619,6.676,17620,6.676,17621,6.676,21446,10.999,21447,7.221,21448,9.727,21449,7.221,21450,7.221,21451,7.221,21452,7.221,21453,9.727,21454,7.221,21455,7.221,21456,7.221,21457,7.221,21458,9.727,21459,7.221,21460,7.221,21461,7.221,21462,7.221,21463,7.221]],["title/classes/UserMatchResponse.html",[0,0.231,12847,5.335]],["body/classes/UserMatchResponse.html",[0,0.344,2,0.692,3,0.014,4,0.014,5,0.007,7,0.094,27,0.508,29,0.481,30,0.001,31,0.567,32,0.18,33,0.486,34,1.488,39,2.725,47,0.894,55,2.18,56,4.223,70,4.361,95,0.147,101,0.014,103,0,104,0,112,0.694,128,3.518,138,2.193,143,1.945,148,1.961,149,3.322,150,1.408,153,2.741,180,1.107,181,2.338,191,3.344,192,3.937,239,3.083,245,3.25,247,2.705,276,2.627,284,2.698,319,3.943,361,6.564,379,0.773,381,2.075,517,3.349,564,2.682,593,2.288,651,5.549,652,5.549,803,3.564,810,5.361,811,3.344,812,3.524,816,5.053,828,3.886,829,3.43,834,3.452,1209,3.43,1447,8.067,1841,5.721,3072,3.986,3073,5.565,3074,4.935,3078,4.361,3247,5.493,3814,3.629,4507,5.656,5071,5.565,5536,5.565,9623,4.108,9624,4.494,9625,4.108,9626,4.494,10743,6.958,10761,6.224,10762,6.681,12020,7.722,12021,6.843,12038,7.317,12061,5.176,12797,5.176,12847,9.919,12849,8.855,12852,5.176,12853,5.176,12854,5.176,12855,5.176,12919,10.163,21441,11.706,21442,5.713,21445,7.641,21464,6.179,21465,6.179,21466,6.179,21467,6.179,21468,6.179,21469,6.179,21470,6.179]],["title/interfaces/UserMetdata.html",[105,0.735,9761,5.335]],["body/interfaces/UserMetdata.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.867,30,0.001,31,0.351,32,0.146,34,1.066,36,2.484,47,0.918,51,4.289,55,0.853,72,1.799,95,0.156,99,0.661,101,0.007,103,0,104,0,105,1.036,107,0.951,112,0.497,119,0.807,120,2.754,177,1.868,203,1.425,226,0.567,236,1.66,239,0.909,262,2.558,284,3.678,349,1.23,358,1.744,379,0.496,437,1.748,475,2.034,528,2.064,529,2.494,539,0.829,560,2.578,564,2.707,593,2.319,603,2.527,608,3.079,696,2.469,928,5.282,970,4.263,1716,2.405,1836,4.696,1837,4.524,1839,3.824,1849,5.242,1858,2.991,1864,4.222,1866,2.493,1871,4.461,1878,2.948,1879,2.948,2097,6.906,2170,2.219,2333,2.328,2362,2.378,2565,6.315,3540,4.043,3541,2.006,4206,1.344,4357,4.944,4481,2.677,4482,2.771,4483,2.353,4602,4.234,4603,2.824,4767,4.558,4778,4.893,5256,2.635,5521,2.771,5766,5.083,5805,4.377,5869,2.677,5883,5.011,5943,4.461,6033,2.771,6106,5.772,6124,5.16,6140,4.763,6143,2.883,6157,4.772,6166,4.763,6540,3.678,6543,4.88,6544,2.771,6647,2.883,6696,3.105,7141,5.073,7147,4.229,7340,3.889,7873,2.56,8607,2.824,8667,3.021,8689,2.883,8857,4.811,8882,6.282,9000,2.824,9003,6.974,9009,5.16,9038,3.021,9712,3.021,9713,3.203,9714,3.203,9715,3.203,9716,3.203,9717,3.203,9718,2.824,9719,3.203,9732,5.33,9734,3.203,9737,3.203,9739,3.203,9741,3.203,9742,7.124,9744,3.203,9746,3.203,9748,3.203,9750,3.203,9752,8.37,9753,3.203,9755,3.203,9757,3.203,9759,3.021,9760,3.203,9761,6.079,9762,6.906,9763,4.905,9764,5.059,9765,5.059,9766,7.757,9767,5.059,9768,3.203,9769,5.059,9770,3.203,9771,3.203,9772,5.059,9773,3.203,9774,3.203,9775,5.059,9776,3.203,9777,3.203,9778,3.203,9779,3.203,9780,3.203,9781,3.203,9782,3.203,9783,3.203,9784,3.203,9785,3.203,9786,6.271,9787,3.203,9788,3.203,9789,3.203,9790,3.203,9791,3.203,9792,3.203,9793,3.203,9794,3.203,9795,3.203,9796,3.203,9797,3.203,9798,5.059,9799,3.203,9800,3.105,9801,3.203,9802,4.163,9803,2.635,9804,3.105,9805,3.105,9806,3.203,9807,5.059,9808,3.203,9809,5.059,9810,3.203,9811,3.105,9812,3.203,9813,3.203,9814,3.203,9815,3.203,9816,3.203,9817,3.203,9818,3.203,9819,3.105,9820,3.105]],["title/controllers/UserMigrationController.html",[259,2.591,21119,5.958]],["body/controllers/UserMigrationController.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,8,1.289,27,0.345,29,0.655,30,0.001,31,0.471,32,0.115,33,0.404,35,1.011,36,2.288,52,5.137,95,0.167,100,2.826,101,0.014,102,4.229,103,0.001,104,0.001,128,4.774,138,1.53,150,1.917,177,1.968,223,3.464,226,1.203,239,1.93,259,3.201,261,3.995,262,2.597,310,3.647,337,4.349,345,2.678,349,0.869,437,1.391,603,1.69,608,1.94,631,4.318,819,3.773,2193,4.794,2702,3.972,4507,4.804,12793,7.361,16243,6.799,16541,8.424,16552,9.928,16556,9.008,16561,10.926,20929,7.361,21118,8.69,21119,9.408,21124,9.942,21125,7.779,21471,10.753,21472,8.414,21473,10.753,21474,8.414,21475,10.753,21476,8.414,21477,8.414,21478,8.414,21479,8.414,21480,8.414,21481,8.414,21482,8.414,21483,8.414]],["title/classes/UserMigrationIsNotEnabled.html",[0,0.231,21484,6.296]],["body/classes/UserMigrationIsNotEnabled.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,8,1.395,27,0.391,30,0.001,35,1.148,52,5.997,95,0.121,101,0.016,103,0.001,104,0.001,239,2.192,349,0.987,654,2.841,993,4.509,1021,3.737,1271,5.761,1272,6.442,1274,3.022,1276,3.638,1277,6.439,4507,5.2,6779,6.169,8368,6.489,8369,6.74,10774,7.105,12940,6.561,21484,10.762,21485,11.64,21486,9.553,21487,9.553,21488,9.553]],["title/classes/UserMigrationMapper.html",[0,0.231,16241,5.958]],["body/classes/UserMigrationMapper.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,35,1.15,95,0.148,100,3.216,101,0.016,103,0.001,104,0.001,128,3.857,236,1.558,349,0.989,413,3.87,437,1.238,785,4.781,819,4.09,2057,6.184,3541,4.846,13964,9.319,14950,10.198,14951,10.198,16233,8.377,16237,11.23,16241,10.198,21269,8.853,21489,11.657,21490,9.576,21491,9.576]],["title/classes/UserMigrationResponse.html",[0,0.231,16237,5.705]],["body/classes/UserMigrationResponse.html",[0,0.34,2,1.12,3,0.023,4,0.023,5,0.012,7,0.152,27,0.49,29,0.779,30,0.001,31,0.56,32,0.164,33,0.48,47,0.845,101,0.016,103,0.001,104,0.001,112,0.95,181,3.203,379,1.251,381,3.36,2057,8.271,2073,8.381,16237,11.366,21315,9.249,21492,12.807,21493,10.004,21494,10.004,21495,10.004]],["title/injectables/UserMigrationService.html",[539,0.901,15513,5.335]],["body/injectables/UserMigrationService.html",[0,0.11,3,0.008,4,0.008,5,0.004,7,0.049,8,0.638,26,1.662,27,0.485,29,0.8,30,0.001,31,0.576,32,0.159,33,0.493,35,1.235,36,2.331,47,0.992,52,1.548,55,0.698,59,1.654,66,7.075,83,0.995,85,5.066,94,4.532,95,0.15,99,0.541,101,0.005,102,1.629,103,0,104,0,112,0.423,128,4.952,143,0.722,177,2.311,226,0.463,236,1.928,239,0.744,262,2.633,349,1.132,379,0.666,437,1.62,480,1.881,486,2.36,529,1.917,539,0.705,541,0.776,579,1.727,593,1.201,603,2.69,608,2.588,617,7.501,654,2.333,886,2.62,986,1.8,1021,1.268,1150,2.118,1174,1.74,1194,2.329,1242,3.902,1274,1.026,1391,2.123,1540,2.411,1663,2.253,1869,2.039,1896,2.62,1897,4.934,1899,3.488,1901,1.815,1902,2.982,1909,1.496,1959,4.376,1984,2.411,2017,1.419,2018,1.587,2019,1.53,2057,4.376,2193,3.768,2233,2.997,2250,2.777,2251,3.542,2256,3.066,2618,1.867,2619,1.727,3072,1.479,3368,3.657,3539,2.173,3541,1.64,3878,1.815,4507,5.368,4641,2.62,4701,3.596,4767,5.781,4902,2.54,5500,1.849,5570,2.19,5643,2.013,6239,4.505,7094,2.013,7102,4.737,7141,6.264,7148,2.62,7433,3.349,7996,2.54,8522,6.833,8531,3.349,10111,2.411,11291,6.193,11840,2.411,11956,3.96,12323,3.873,12585,2.716,12618,5.928,13075,4.171,13095,4.923,13387,2.62,13664,2.716,13671,2.716,13791,2.31,13964,7.999,14118,4.658,14937,2.836,14938,2.62,14947,8.611,15512,7.158,15513,4.171,15525,7.002,15557,4.923,15575,6.264,15595,6.264,15596,2.997,16112,2.471,16202,4.923,16541,7.709,16544,5.676,16545,5.676,16558,2.997,16564,5.928,16565,2.62,16566,2.62,16567,6.863,16573,2.836,18393,6.264,18397,6.264,18405,9.234,21215,6.145,21323,10.511,21358,4.923,21391,2.997,21395,4.923,21403,4.923,21496,7.845,21497,5.324,21498,5.324,21499,5.324,21500,7.845,21501,5.324,21502,3.242,21503,3.242,21504,3.242,21505,3.242,21506,5.324,21507,3.242,21508,5.324,21509,7.845,21510,3.242,21511,3.242,21512,3.242,21513,5.324,21514,3.242,21515,3.242,21516,8.665,21517,3.242,21518,6.776,21519,3.242,21520,3.242,21521,3.242,21522,3.242,21523,3.242,21524,3.242,21525,3.242,21526,6.776,21527,5.324,21528,3.242,21529,3.242,21530,3.242,21531,3.242,21532,3.242,21533,3.242,21534,3.242,21535,3.242,21536,3.242,21537,3.242,21538,3.242,21539,6.776,21540,3.242,21541,3.242,21542,3.242,21543,3.242,21544,3.242,21545,3.242,21546,3.242,21547,3.242,21548,3.242,21549,3.242,21550,3.242,21551,3.242,21552,5.324,21553,3.242,21554,3.242,21555,3.242,21556,3.242,21557,5.324,21558,3.242,21559,3.242,21560,3.242,21561,3.242,21562,3.242,21563,3.242,21564,3.242,21565,3.242,21566,3.242,21567,3.242,21568,3.242,21569,3.242,21570,3.242,21571,3.242,21572,3.242,21573,3.242]],["title/modules/UserModule.html",[201,1.804,3531,4.23]],["body/modules/UserModule.html",[0,0.27,3,0.019,4,0.019,5,0.009,30,0.001,95,0.17,101,0.013,103,0.001,104,0.001,201,3.055,203,2.859,204,3.072,205,3.161,206,3.148,207,3.135,208,4.225,209,4.337,213,9.264,214,6.032,217,8.33,218,4.122,219,3.097,220,3.024,225,4.088,226,1.136,227,3.272,654,2.364,1274,2.515,1355,9.67,1372,6.059,1901,4.451,3531,8.864,4676,7.349,4767,8.155,5380,8.283,20978,10.891,21574,7.949,21575,7.949,21576,7.949,21577,7.949,21578,7.949,21579,7.349,21580,7.349,21581,7.949]],["title/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.231,15539,5.958]],["body/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.249,2,0.82,3,0.017,4,0.017,5,0.009,7,0.111,8,1.177,26,2.507,27,0.52,29,0.57,30,0.001,31,0.41,32,0.169,33,0.352,35,0.88,47,0.953,48,5.621,59,2.276,95,0.14,99,1.222,101,0.012,103,0.001,104,0.001,112,0.78,177,2.492,180,1.76,182,2.383,193,5.329,239,1.681,284,2.263,292,5.607,349,0.757,379,1.228,382,3.572,480,2.727,486,2.955,603,2.225,654,2.179,986,2.477,1021,4.334,1271,5.084,1272,5.686,1274,2.318,1276,3.07,1277,5.833,3021,5.221,3868,5.585,4691,3.843,5496,4.799,5500,5.602,6779,4.731,6900,4.551,8368,5.726,8369,5.948,8522,7.367,8525,6.409,8531,7.445,8535,5.449,8819,4.608,8821,5.221,8822,6.409,8826,4.26,8827,4.445,11248,7.144,11444,9.248,11446,6.409,15457,8.592,15458,8.592,15459,8.228,15493,6.774,15494,6.137,15539,8.592,15564,6.409,21582,11.079,21583,11.079,21584,7.326,21585,7.326,21586,7.326,21587,7.326,21588,7.326,21589,7.326]],["title/classes/UserParams.html",[0,0.231,650,5.503]],["body/classes/UserParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,39,3.409,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,135,6.546,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,239,2.706,245,3.092,650,9.53,803,4.813,3814,5.734,21590,9.761,21591,9.761]],["title/injectables/UserRepo.html",[217,4.086,539,0.901]],["body/injectables/UserRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.708,10,2.398,12,2.708,18,2.987,26,2.198,27,0.486,29,0.889,30,0.001,31,0.639,32,0.156,33,0.548,34,1.259,35,1.401,36,2.731,39,1.588,40,2.854,47,0.785,48,4.015,49,1.452,55,0.792,56,1.78,59,1.834,70,1.838,72,2.679,95,0.132,96,1.621,97,1.595,98,2.185,99,0.614,101,0.006,103,0,104,0,141,2.819,143,1.314,145,1.639,154,0.787,155,1.97,173,1.088,180,1.058,201,1.563,217,3.541,226,0.526,236,0.96,239,2.381,262,2.896,276,3.594,340,1.769,349,1.072,361,4.777,382,2.551,437,1.66,479,4.369,480,1.022,486,2.223,490,3.503,519,1.14,521,2.927,529,1.041,539,0.781,541,0.881,574,2.738,593,2.186,603,1.484,608,2.486,644,3.858,651,1.758,652,1.758,653,3.051,654,2.515,655,2.967,679,6.096,681,6.832,683,5.457,685,2.498,686,2.786,687,3.739,696,3.65,708,1.529,711,2.259,712,2.286,713,2.259,714,2.286,716,2.259,717,2.286,718,2.043,722,2.806,732,3.22,811,1.992,818,2.061,970,1.78,971,4.066,978,6.149,992,3.53,993,3.488,994,3.488,995,3.689,996,2.008,997,2.528,1000,2.806,1150,2.347,1242,5.329,1306,2.233,1663,1.557,1665,2.411,1869,3.712,2031,3.335,2278,3.541,3060,4.031,3078,3.689,3390,4.054,4206,2.002,4449,2.974,4451,2.345,4455,4.054,4689,6.153,4691,1.931,5256,5.621,5487,4.84,5948,4.916,6679,2.208,6744,3.083,6849,2.806,6968,5.266,6969,5.129,6979,4.39,6998,2.677,6999,2.677,7041,4.624,8975,4.499,9960,2.806,10377,3.335,10463,6.465,11060,3.22,11061,3.22,11993,3.403,12028,9.036,12029,2.623,12056,3.22,12067,6.832,12872,2.883,12926,2.883,13014,3.403,13025,3.083,13026,3.403,13028,3.403,13033,3.22,13034,3.403,13791,2.623,13827,4.945,20256,5.164,20258,5.164,20981,5.457,20988,5.457,21007,3.403,21010,3.403,21016,3.403,21018,3.403,21592,3.681,21593,5.457,21594,5.457,21595,7.389,21596,5.457,21597,3.681,21598,5.457,21599,3.681,21600,3.681,21601,3.681,21602,3.681,21603,3.681,21604,3.681,21605,3.681,21606,3.681,21607,3.681,21608,3.681,21609,3.681,21610,3.681,21611,3.681,21612,5.457,21613,3.681,21614,3.681,21615,5.902,21616,5.902,21617,5.902,21618,3.681,21619,3.681,21620,7.389,21621,3.681,21622,3.681,21623,3.681,21624,5.902,21625,3.681,21626,3.681,21627,3.083,21628,5.902,21629,3.681,21630,3.681,21631,5.902,21632,3.681,21633,3.681,21634,5.902,21635,5.902,21636,5.902,21637,5.902,21638,5.902,21639,5.902,21640,5.902,21641,7.389,21642,3.681,21643,3.681,21644,3.681,21645,3.681,21646,3.681,21647,3.681,21648,5.457,21649,3.681]],["title/injectables/UserRule.html",[539,0.901,1711,5.705]],["body/injectables/UserRule.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.251,27,0.475,29,0.902,30,0.001,31,0.649,32,0.168,33,0.556,35,1.253,95,0.156,101,0.013,103,0.001,104,0.001,119,2.497,131,4.341,154,2.876,177,1.47,226,1.148,239,3.254,345,2.555,349,1.078,379,1.004,437,1.499,539,1.381,541,1.922,604,3.262,662,4.099,1276,2.509,1606,6.641,1634,8.097,1655,4.817,1672,7.445,1711,8.74,1813,6.738,1817,6.48,1824,5.338,3349,6.937,3350,5.422,3353,6.834,3356,5.422,3357,7.047,3358,5.971,21650,8.028,21651,8.028,21652,8.028,21653,8.028,21654,10.433]],["title/classes/UserScope.html",[0,0.231,20996,5.958]],["body/classes/UserScope.html",[0,0.208,2,0.686,3,0.014,4,0.014,5,0.007,7,0.093,8,1.041,26,2.325,27,0.534,29,0.963,30,0.001,31,0.693,32,0.178,33,0.593,35,1.486,59,3.599,83,4.237,95,0.11,99,1.023,101,0.01,103,0,104,0,112,0.69,119,2.448,145,1.702,180,1.557,227,2.524,239,1.407,310,2.657,349,1.196,382,3.495,480,1.702,486,1.845,519,1.899,556,2.918,603,2.416,654,1.824,2288,5.988,2775,6.19,4206,3.422,5504,5.222,6058,5.868,6059,5.868,6060,5.868,6065,5.868,6066,5.868,6067,4.211,6068,4.142,6069,4.211,6070,4.211,6079,4.142,6080,5.868,6081,4.211,6082,4.142,6083,4.211,6084,4.142,6085,7.824,6542,7.189,6989,4.955,10296,7.6,10305,7.6,12235,9.704,12597,7.69,12598,6.461,14288,5.364,18450,10.709,20996,11.643,21003,8.032,21655,6.132,21656,8.687,21657,8.687,21658,6.132,21659,8.687,21660,6.132,21661,8.687,21662,6.132,21663,8.687,21664,6.132,21665,8.687,21666,6.132,21667,8.687]],["title/injectables/UserService.html",[539,0.901,4767,4]],["body/injectables/UserService.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.752,12,2.877,18,3.173,26,2.692,27,0.51,29,0.969,30,0.001,31,0.697,32,0.17,33,0.597,34,1.068,35,1.477,36,2.895,39,2.374,40,3.032,47,0.868,48,4.191,59,1.234,66,4.049,94,1.932,95,0.163,99,0.662,101,0.007,102,1.996,103,0,104,0,107,0.953,119,1.581,133,2.193,143,1.965,157,2.601,177,1.759,217,6.127,226,0.568,227,1.635,236,0.646,239,2.82,262,3.032,285,2.601,310,1.721,349,1.252,358,1.747,379,0.784,437,1.671,490,3.129,519,1.942,529,1.124,539,0.83,541,0.951,584,7.004,598,2.287,603,2.226,608,2.63,617,8.151,653,2.053,655,1.996,817,3.013,886,3.209,935,3.671,1372,3.027,1540,2.954,1657,3.474,1660,3.152,1829,4.912,2170,2.224,2246,4.384,2262,4.384,2334,2.265,2618,4.474,3060,3.384,3112,2.64,3113,4.049,3355,2.682,4199,2.776,4200,8.151,4572,5.537,4583,3.027,4682,8.151,4704,3.327,4767,3.683,5767,3.195,6969,5.354,7129,2.954,7141,6.497,7144,4.664,7147,4.235,7153,3.474,9633,5.486,12244,3.209,14028,5.486,14032,5.486,16333,3.671,16472,5.797,17403,3.474,20932,5.797,20978,8.957,20985,8.159,20995,3.671,21008,3.671,21059,6.509,21079,3.474,21436,3.474,21579,3.671,21580,3.671,21593,5.797,21594,5.797,21596,5.797,21598,5.797,21648,5.797,21668,3.971,21669,6.27,21670,6.27,21671,6.27,21672,6.27,21673,5.797,21674,3.971,21675,6.27,21676,3.971,21677,3.971,21678,3.971,21679,3.971,21680,3.971,21681,6.27,21682,3.971,21683,6.27,21684,3.971,21685,6.27,21686,3.971,21687,6.27,21688,3.971,21689,5.797,21690,3.971,21691,5.797,21692,8.825,21693,3.971,21694,6.27,21695,3.971,21696,6.27,21697,3.971,21698,3.971,21699,3.971,21700,3.971,21701,3.971,21702,3.971,21703,3.971,21704,3.971,21705,3.971,21706,3.971,21707,3.971,21708,3.971,21709,6.27,21710,3.971,21711,3.971,21712,3.971,21713,3.971,21714,3.971,21715,6.27,21716,3.971,21717,3.971,21718,3.971,21719,3.971,21720,3.971,21721,3.671,21722,3.971,21723,3.671,21724,3.971]],["title/injectables/UserUc.html",[539,0.901,12800,5.503]],["body/injectables/UserUc.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.112,8,1.186,26,2.757,27,0.487,29,0.926,30,0.001,31,0.666,32,0.162,33,0.57,35,1.338,36,2.53,39,2.662,95,0.162,99,1.236,101,0.012,103,0.001,104,0.001,107,1.777,143,2.203,157,4.852,177,1.811,217,7.648,226,1.059,227,3.05,236,1.205,239,2.728,262,2.793,271,4.358,345,2.358,349,1.022,379,0.926,437,1.441,519,3.065,529,2.096,539,1.309,541,1.773,584,8.525,598,4.265,603,2.388,608,2.568,785,3.698,986,3.345,1657,6.48,1660,4.973,1829,7.751,2618,4.265,4197,9.96,4200,9.063,12244,5.986,12800,7.995,17403,6.48,21079,6.48,21673,9.147,21689,9.147,21691,9.147,21721,6.848,21723,6.848,21725,7.407,21726,9.894,21727,7.407,21728,9.894,21729,7.407,21730,7.407,21731,7.407,21732,7.407,21733,7.407,21734,7.407,21735,7.407]],["title/classes/UsersList.html",[0,0.231,6605,5.705]],["body/classes/UsersList.html",[0,0.21,2,0.859,3,0.009,4,0.009,5,0.005,7,0.161,26,2.248,27,0.314,30,0.001,31,0.43,32,0.145,34,1.621,39,2.064,47,0.894,62,2.288,83,3.109,95,0.153,96,1.07,101,0.013,103,0,104,0,105,0.42,112,0.49,119,1.257,143,2.451,144,3.135,145,1.081,153,1.744,154,1.32,168,3.521,172,3.514,173,1.152,174,2.456,175,1.722,178,1.618,180,0.698,181,1.042,182,1.267,236,1.791,239,2.323,253,1.907,316,2.091,348,3.083,349,1.339,379,0.487,404,1.589,413,1.901,437,1.677,473,2.125,486,2.308,490,1.381,519,1.913,528,2.028,529,1.747,556,2.551,565,3.665,603,1.753,644,3.984,651,4.17,652,4.17,654,1.836,662,3.652,708,1.618,725,3.262,834,2.405,910,2.723,1158,2.949,1203,1.243,1276,1.217,1600,1.464,1654,2.932,1663,2.613,1669,2.028,1757,2.589,1864,3.233,1962,2.143,1982,3.472,2608,4.672,2611,5.526,2615,4.186,2623,2.723,2625,2.419,3060,3.802,3112,2.589,3113,2.515,3284,2.363,3392,2.481,3689,2.775,3735,2.419,3759,4.044,3760,4.044,4057,2.288,4206,1.321,4207,5.363,4222,3.262,4256,5.58,4282,2.703,4357,4.887,4778,2.162,4914,2.39,5039,2.833,6442,2.896,6503,2.775,6535,3.407,6536,6.328,6537,5.182,6538,5.466,6539,4.105,6540,4.506,6541,2.675,6542,5.466,6543,4.825,6544,4.317,6545,5.58,6547,3.407,6549,3.407,6552,3.407,6553,2.515,6555,3.407,6557,6.711,6560,3.407,6562,3.407,6571,3.407,6575,2.419,6576,3.407,6577,3.407,6578,3.746,6579,4.4,6580,3.407,6581,5.706,6582,3.407,6583,4.491,6584,3.147,6585,3.627,6586,2.589,6587,4.044,6588,2.39,6589,3.883,6590,2.181,6591,4.989,6592,4.989,6593,3.407,6594,3.147,6595,2.775,6596,3.407,6597,3.407,6598,3.262,6599,2.896,6600,3.407,6601,3.407,6602,3.051,6603,3.407,6604,3.789,6605,10.5,6606,5.466,6607,3.147,6608,4.17,6609,2.515,6610,2.419,6611,2.337,6612,3.147,6613,3.407,6614,3.407,6615,5.401,6616,5.401,6617,5.401,6618,7.054,6619,4.989,6620,4.706,6621,5.401,6622,4.592,6623,4.706,6624,2.896,6625,3.407,6626,3.407,6627,2.481,6628,4.105,6629,3.407,6630,3.407,6631,3.407,6632,5.401,6633,3.407,6634,3.407,6635,3.407,6636,3.407,6637,3.407,6638,3.407,6639,3.407,6640,6.199,6641,6.711,6642,3.407,6643,3.407,6644,3.407,6645,3.407,6646,3.407,6647,2.833,6648,3.407,6649,3.407,6650,3.407,6651,3.407,6652,3.407,6653,2.63,6654,3.407,6655,3.262,6656,3.407,6657,6.711,6658,5.401,6659,3.407,6660,3.407,6661,3.147,6662,3.147,6663,2.675,6664,3.407,6665,6.199,6666,3.407,6667,3.407,6668,3.407,6669,3.407,21736,3.894,21737,3.894,21738,3.894]],["title/classes/ValidationError.html",[0,0.231,283,4.18]],["body/classes/ValidationError.html",[0,0.264,2,0.871,3,0.018,4,0.018,5,0.009,7,0.118,8,1.225,27,0.54,29,0.606,30,0.001,31,0.436,32,0.186,33,0.548,35,0.935,47,0.912,55,1.674,59,2.417,95,0.13,101,0.013,103,0.001,104,0.001,112,0.812,138,2.29,177,2.498,180,1.832,182,2.531,226,1.112,283,6.273,347,2.849,379,0.973,382,3.899,816,5.562,819,2.73,946,5.296,984,5.228,986,4.257,1021,5.056,1201,8.298,1202,7.513,1203,3.87,1204,7.272,1208,5.024,1209,4.318,1210,5.024,1211,5.024,1212,5.024,1213,5.024,1214,5.024,1215,4.668,1216,4.437,1217,6.095,1218,6.517,1221,4.775,1222,4.893,1223,6.095,1628,6.095,21739,7.78,21740,7.78,21741,7.78]],["title/classes/ValidationErrorDetailResponse.html",[0,0.231,1233,5.958]],["body/classes/ValidationErrorDetailResponse.html",[0,0.346,2,1.14,3,0.024,4,0.024,5,0.012,27,0.417,29,0.793,30,0.001,31,0.57,32,0.139,33,0.489,47,0.976,101,0.017,103,0.001,104,0.001,177,1.864,379,1.273,986,4.089,1218,8.529,1229,8.452,1233,10.581,12055,8.996,21742,12.095,21743,10.181,21744,10.181,21745,10.181]],["title/modules/ValidationModule.html",[201,1.804,6495,5.705]],["body/modules/ValidationModule.html",[0,0.347,3,0.024,4,0.024,5,0.012,30,0.001,95,0.164,101,0.017,103,0.001,104,0.001,201,3.209,203,3.671,208,3.738,226,1.459,636,5.936,6495,10.147,6508,11.199,8449,7.781,8453,7.781,10946,10.597,21746,10.207,21747,10.207,21748,10.207]],["title/entities/VideoConference.html",[154,1.456,6604,4.18]],["body/entities/VideoConference.html",[0,0.355,3,0.019,4,0.019,5,0.01,7,0.186,27,0.476,30,0.001,32,0.168,47,0.738,95,0.133,96,2.214,101,0.02,103,0.001,104,0.001,112,0.922,119,2.363,138,2.112,154,2.236,155,2.69,170,6.314,172,4.167,173,2.384,174,4.16,175,3.564,177,1.475,178,3.348,180,1.444,181,2.157,182,2.622,490,4.358,834,2.527,2677,5.548,3397,5.995,4778,5.806,5153,6.513,6604,6.42,6924,7.294,6950,5.635,8081,4.514,8083,5.28,8102,5.536,8103,5.536,8104,5.863,11657,8.194,15131,6.314,15287,9.384,21749,11.362,21750,7.452,21751,9.14,21752,8.06,21753,8.06,21754,8.06,21755,7.051,21756,7.452,21757,7.452,21758,6.513,21759,6.752,21760,6.513,21761,6.314,21762,9.151,21763,7.452,21764,7.452,21765,7.452,21766,7.452,21767,7.452]],["title/classes/VideoConference-1.html",[0,0.192,708,2.352,6604,3.475]],["body/classes/VideoConference-1.html",[0,0.301,2,0.994,3,0.021,4,0.021,5,0.011,7,0.135,27,0.522,29,0.691,30,0.001,31,0.497,32,0.174,33,0.583,95,0.154,99,1.481,100,2.982,101,0.015,103,0.001,104,0.001,112,0.883,238,6.996,379,1.11,643,5.948,1936,6.779,1946,6.207,1952,5.327,2124,10.201,3909,9.32,6604,8.05,8081,4.972,8083,5.816,8094,6.604,8096,7.174,21768,11.475,21769,8.878,21770,11.125,21771,8.878,21772,9.261,21773,8.878,21774,8.208,21775,8.208,21776,8.878,21777,8.878,21778,8.208]],["title/modules/VideoConferenceApiModule.html",[201,1.804,18592,5.503]],["body/modules/VideoConferenceApiModule.html",[0,0.281,3,0.019,4,0.019,5,0.01,30,0.001,95,0.167,101,0.014,103,0.001,104,0.001,201,3.115,203,2.976,204,3.198,205,3.291,206,3.278,207,3.264,208,4.307,209,3.112,218,4.231,219,3.224,220,3.148,222,5.14,223,4.38,225,4.196,226,1.183,259,3.148,1689,7.171,1936,4.277,2469,3.756,2702,3.907,3531,8.163,3541,4.188,8081,4.634,8083,5.421,18592,11.524,18615,6.687,21779,8.276,21780,8.276,21781,8.276,21782,11.01,21783,11.01,21784,11.01,21785,11.01,21786,11.01,21787,9.851,21788,8.276]],["title/classes/VideoConferenceBaseResponse.html",[0,0.231,8084,5.335]],["body/classes/VideoConferenceBaseResponse.html",[0,0.381,2,1.395,3,0.018,4,0.018,5,0.009,7,0.114,27,0.49,29,0.586,30,0.001,31,0.422,32,0.164,33,0.539,47,0.793,95,0.127,99,1.256,101,0.019,102,6.016,103,0.001,104,0.001,112,0.794,119,2.286,180,1.793,236,1.947,238,6.469,347,4.115,358,5.266,379,0.942,490,2.671,643,5.692,819,4.2,982,4.864,1194,2.589,1924,4.424,1936,6.439,2333,7.031,6263,4.044,8079,7.838,8080,9.76,8081,7.598,8082,6.589,8083,8.161,8084,10.238,8085,9.377,8087,5.741,8090,9.078,8093,6.31,8094,5.602,8095,6.31,8096,6.087,8097,6.589,8098,8.085,8099,8.753,8100,6.31,8101,5.367,8102,5.173,8103,5.173,8104,5.478,8105,6.31,21789,10.005,21790,7.532,21791,7.532]],["title/classes/VideoConferenceConfiguration.html",[0,0.231,21792,5.958]],["body/classes/VideoConferenceConfiguration.html",[0,0.289,2,0.954,3,0.02,4,0.02,5,0.01,7,0.129,27,0.444,30,0.001,32,0.148,47,0.961,95,0.151,101,0.014,103,0.001,104,0.001,105,0.92,112,0.861,119,2.206,413,4.078,480,3.01,486,3.587,1113,6.577,1127,8.492,1936,6.162,1952,7.946,2017,3.73,2018,4.172,2019,4.022,2134,8.76,2135,9.484,2137,9.634,3878,4.772,4902,8.492,6604,7.317,8081,6.676,11589,5.756,12616,10.43,12618,9.484,18615,9.634,21792,9.484,21793,10.84,21794,10.84,21795,10.84,21796,8.521,21797,10.84,21798,10.022,21799,8.521]],["title/controllers/VideoConferenceController.html",[259,2.591,21787,5.705]],["body/controllers/VideoConferenceController.html",[0,0.129,3,0.02,4,0.009,5,0.005,7,0.058,8,0.726,27,0.353,29,0.85,30,0.001,31,0.482,32,0.149,33,0.413,35,1.439,36,2.322,95,0.146,100,2.535,101,0.006,103,0,104,0,105,0.41,138,1.566,141,4.112,142,4.268,150,0.865,153,3.155,177,1.576,223,1.564,226,0.543,236,1.63,239,2.503,259,1.445,261,1.804,262,2.625,270,5.955,271,2.952,284,3.37,285,7.147,294,6.113,319,2.733,324,3.063,333,3.978,335,5.641,336,7.895,337,1.963,338,2.008,343,2.023,346,5.11,347,4.693,349,0.625,358,4.8,379,0.475,437,1.454,529,1.075,556,3.173,603,1.729,608,1.984,643,4.849,685,2.561,824,5.008,986,1.284,1216,2.167,1223,6.744,1239,7.075,1285,5.559,1553,2.656,1936,4.859,2032,6.862,2076,8.571,2113,8.56,2128,6.766,2143,6.134,2150,5.296,2170,4.82,2306,3.857,2656,8.817,2702,1.793,2768,3.593,2901,2.039,3021,7.775,4019,2.389,6683,2.279,8081,7.553,8083,8.513,8087,6.562,8825,7.211,10337,6.403,10792,2.896,10793,7.959,11056,7.959,13070,3.323,18554,8.571,21751,6.403,21783,6.322,21784,6.322,21785,6.322,21786,6.322,21787,5.071,21800,8.692,21801,3.799,21802,3.799,21803,3.512,21804,11.978,21805,10.639,21806,3.799,21807,9.262,21808,3.799,21809,7.959,21810,3.799,21811,3.512,21812,3.799,21813,3.799,21814,3.799,21815,3.799,21816,3.799,21817,3.799,21818,6.053,21819,3.799,21820,3.799,21821,3.799,21822,6.956,21823,3.799,21824,6.053,21825,3.799,21826,3.182,21827,3.182,21828,3.07,21829,4.614,21830,4.614,21831,6.322,21832,6.322,21833,3.512,21834,3.799,21835,3.799,21836,3.512,21837,3.799,21838,6.053,21839,3.799,21840,8.608,21841,8.608,21842,3.799,21843,3.799,21844,3.799,21845,3.799,21846,3.799,21847,3.799,21848,3.799,21849,3.799,21850,3.799,21851,3.799,21852,3.799]],["title/classes/VideoConferenceCreateParams.html",[0,0.231,21822,5.503]],["body/classes/VideoConferenceCreateParams.html",[0,0.343,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,27,0.493,30,0.001,32,0.164,33,0.639,47,0.712,95,0.143,101,0.013,103,0.001,104,0.001,105,0.824,112,0.801,118,6.43,119,2.616,138,2.188,145,2.119,147,6.459,148,2.422,149,4.76,150,1.739,153,1.735,220,3.839,249,5.062,486,3.402,1021,3.948,1194,4.136,1209,4.236,1285,6.518,1715,4.251,1936,6.467,1959,7.303,2145,6.123,3060,4.396,3539,4.119,8081,7.342,8101,8.057,8102,7.766,8103,7.766,8243,6.611,8697,6.167,8704,7.056,16579,9.331,20521,7.907,21822,8.156,21853,11.569,21854,11.308,21855,11.308,21856,7.632,21857,7.632,21858,10.092,21859,8.829,21860,10.092,21861,10.092,21862,10.092,21863,7.632,21864,7.632,21865,7.632,21866,6.394,21867,6.677,21868,6.677,21869,6.677,21870,7.632]],["title/injectables/VideoConferenceCreateUc.html",[539,0.901,21783,5.705]],["body/injectables/VideoConferenceCreateUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,26,2.484,27,0.464,29,0.882,30,0.001,31,0.657,32,0.155,33,0.543,35,1.298,36,2.409,47,0.799,95,0.153,99,0.859,100,1.73,101,0.008,103,0,104,0,105,0.556,177,1.672,226,0.736,236,1.245,239,1.756,262,2.697,276,3.254,349,0.532,379,0.957,437,1.465,490,4.562,519,1.596,529,1.457,539,1.013,541,1.233,556,2.301,560,2.12,579,4.077,603,2.657,608,2.887,685,3.239,750,4.762,760,2.859,824,2.743,928,2.834,945,3.161,1174,4.109,1444,8.846,1793,3.125,1826,4.035,1864,1.908,1935,5.693,1936,6.06,1940,5.454,1952,3.09,1953,4.162,1958,4.506,1998,9.907,2021,8.422,2036,4.162,2064,4.506,2098,8.465,2124,5.835,2126,8.632,2256,2.966,2381,3.281,2468,3.057,3541,2.606,3980,3.125,4206,1.747,4701,6.17,4767,6.888,5504,5.089,6604,3.161,6914,3.125,7141,4.045,8081,6.566,12239,8.732,14112,4.035,14281,4.762,16112,3.926,18554,9.547,21751,9.316,21761,4.035,21783,6.412,21871,9.823,21872,5.151,21873,7.654,21874,9.134,21875,7.654,21876,7.654,21877,4.315,21878,9.475,21879,5.151,21880,7.654,21881,5.151,21882,7.654,21883,5.151,21884,5.151,21885,9.453,21886,5.151,21887,7.654,21888,5.151,21889,7.654,21890,5.151,21891,4.315,21892,5.151,21893,5.151,21894,7.652,21895,5.151,21896,4.506,21897,4.506,21898,5.151,21899,4.762,21900,7.652,21901,4.762,21902,4.506,21903,5.151,21904,5.151,21905,9.134,21906,5.151,21907,5.151,21908,5.151,21909,5.151,21910,5.151,21911,5.151,21912,4.506,21913,5.151,21914,5.151,21915,4.762]],["title/classes/VideoConferenceDO.html",[0,0.231,21916,5.335]],["body/classes/VideoConferenceDO.html",[0,0.364,2,0.938,3,0.02,4,0.02,5,0.01,7,0.127,27,0.528,29,0.652,30,0.001,31,0.469,32,0.176,33,0.568,34,1.827,47,0.835,95,0.136,101,0.018,103,0.001,104,0.001,112,0.852,119,2.407,180,1.922,379,1.048,382,2.528,490,4.194,1601,3.546,1683,7.251,2677,5.34,5153,6.771,5777,6.095,6924,7.021,6950,5.858,7248,6.387,7251,8.402,7252,6.564,8081,4.692,8101,5.971,8102,5.755,8103,5.755,8104,6.095,15131,6.564,18555,9.266,21758,6.771,21759,7.019,21760,6.771,21761,6.564,21912,7.33,21916,10.098,21917,11.917,21918,7.747,21919,10.725,21920,10.446,21921,8.379,21922,8.379,21923,7.747,21924,7.747,21925,7.33,21926,7.747,21927,7.747,21928,7.747]],["title/controllers/VideoConferenceDeprecatedController.html",[259,2.591,21929,5.958]],["body/controllers/VideoConferenceDeprecatedController.html",[0,0.15,3,0.022,4,0.01,5,0.005,7,0.067,8,0.815,10,1.79,27,0.34,29,0.83,30,0.001,31,0.465,32,0.184,33,0.398,35,1.335,36,2.269,47,0.831,95,0.155,100,3.136,101,0.007,102,4.174,103,0,104,0,105,0.475,138,1.511,142,4.171,150,1.004,153,3.041,177,0.807,223,1.814,226,0.63,239,2.447,259,3.159,261,2.092,262,2.581,270,5.89,271,3.249,278,4.671,282,6.623,284,3.294,285,6.985,287,6.985,294,6.047,319,3.07,324,3.441,333,1.864,335,5.602,336,7.605,337,2.277,338,2.329,343,2.347,345,1.402,346,4.929,347,4.406,349,0.858,358,2.992,437,1.208,608,2.326,643,4.739,685,2.878,1158,5.309,1239,7.045,1285,4.392,1553,3.08,1936,4.826,1946,3.08,1952,2.644,2076,5.184,2113,6.792,2128,5.609,2143,6.654,2150,5.949,2170,4.65,2333,3.995,2334,3.879,2468,6.597,2618,6.4,2656,8.617,2702,2.08,2900,2.49,2901,2.365,3021,7.598,3669,2.93,4914,2.704,5504,5.172,6604,5.097,8079,6.506,8081,7.198,8083,7.88,8084,3.452,8101,3.14,8102,3.026,8103,3.026,8442,8.128,9656,10.287,18555,9.425,21772,3.359,21787,5.697,21800,8.633,21803,4.074,21807,9.859,21809,7.678,21811,4.074,21822,7.545,21829,6.33,21830,5.184,21833,4.074,21866,3.691,21867,3.855,21868,3.855,21869,3.855,21929,5.949,21930,4.406,21931,8.305,21932,4.406,21933,4.406,21934,4.406,21935,4.406,21936,4.406,21937,4.406,21938,4.406,21939,4.406,21940,3.855,21941,4.406,21942,6.287,21943,4.406,21944,4.074,21945,4.406,21946,4.406,21947,4.406,21948,8.305,21949,8.305,21950,4.406,21951,6.8,21952,4.406,21953,3.691,21954,4.406,21955,4.074,21956,4.074,21957,4.074,21958,4.406,21959,4.406,21960,4.406,21961,4.406,21962,4.406,21963,4.406,21964,4.406]],["title/injectables/VideoConferenceEndUc.html",[539,0.901,21784,5.705]],["body/injectables/VideoConferenceEndUc.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.105,8,1.132,26,2.448,27,0.387,29,0.735,30,0.001,31,0.529,32,0.129,33,0.453,35,0.83,36,2.009,39,1.859,47,0.666,95,0.165,99,1.153,100,2.321,101,0.011,103,0.001,104,0.001,177,1.968,226,0.988,236,1.749,238,3.98,239,2.166,262,2.356,349,0.714,379,1.181,437,1.683,528,3.598,529,1.955,539,1.25,541,1.654,560,2.845,603,2.16,608,2.879,643,3.071,760,3.836,928,3.803,1793,4.193,1826,5.414,1864,2.56,1909,3.189,1935,7.998,1936,5.558,1940,4.925,1946,4.832,1952,4.147,1953,5.585,2021,8.596,2036,5.585,2124,8.809,2126,9.52,2128,6.377,2468,4.102,3541,3.497,4701,4.668,4767,7.51,5504,4.695,6604,7.093,6914,4.193,7141,4.99,8081,6.022,12239,7.629,14112,5.414,16112,5.268,18554,8.809,18614,5.585,21772,5.268,21784,7.909,21827,5.79,21828,5.585,21871,9.009,21877,5.79,21878,10.331,21885,6.046,21891,5.79,21894,7.909,21896,6.046,21897,6.046,21900,7.909,21902,6.046,21915,6.39,21965,6.911,21966,6.911,21967,9.441,21968,6.911,21969,6.046,21970,5.79,21971,6.046,21972,6.911,21973,6.911,21974,6.911,21975,6.39,21976,6.39]],["title/classes/VideoConferenceInfo.html",[0,0.231,21829,5.191]],["body/classes/VideoConferenceInfo.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.522,29,0.693,30,0.001,31,0.498,32,0.174,33,0.427,47,0.628,95,0.154,100,2.989,101,0.015,103,0.001,104,0.001,105,0.96,112,0.885,138,2.026,170,6.971,172,2.841,180,1.996,379,1.113,382,3.67,490,4.313,1936,5.758,1952,5.339,2098,6.971,2677,5.03,3909,9.333,6604,8.218,6924,6.613,8081,6.811,8083,5.829,8104,6.472,11937,7.784,15287,7.19,21751,9.046,21768,9.746,21829,10.005,21977,8.898,21978,8.898,21979,8.898,21980,8.898,21981,8.898,21982,8.898]],["title/classes/VideoConferenceInfoResponse.html",[0,0.231,21831,5.705]],["body/classes/VideoConferenceInfoResponse.html",[0,0.288,2,0.95,3,0.02,4,0.02,5,0.01,7,0.129,27,0.487,29,0.661,30,0.001,31,0.475,32,0.163,33,0.407,95,0.151,101,0.014,103,0.001,104,0.001,112,0.858,138,1.966,150,1.933,153,2.705,238,7.451,245,3.12,379,1.061,490,4.588,816,3.893,834,2.66,1936,6.475,2100,6.647,2859,5.208,2860,5.327,8080,9.815,8081,7.755,8083,8.665,8085,8.47,8087,6.468,8090,10.863,8093,7.108,8094,6.311,8095,7.108,8104,6.172,8105,7.108,21108,9.995,21831,10.84,21983,9.968,21984,8.485,21985,7.845]],["title/injectables/VideoConferenceInfoUc.html",[539,0.901,21785,5.705]],["body/injectables/VideoConferenceInfoUc.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.003,26,2.27,27,0.401,29,0.763,30,0.001,31,0.549,32,0.134,33,0.47,35,1.006,36,2.281,95,0.161,99,0.971,100,1.955,101,0.01,103,0,104,0,105,0.628,119,1.185,177,1.794,226,0.832,236,1.743,238,4.82,239,1.921,262,2.591,349,0.865,379,1.047,437,1.642,490,4.502,529,1.647,539,1.108,541,1.393,560,2.397,579,4.459,603,2.375,608,2.926,643,3.72,760,3.231,819,3.761,928,3.203,1174,4.494,1793,3.532,1826,4.56,1864,2.156,1909,2.686,1935,7.29,1936,5.54,1940,4.148,1952,3.493,1953,4.704,2021,8.445,2036,6.764,2098,4.56,2124,8.17,2126,9.012,2131,7.739,2468,3.455,3541,2.946,4701,6.621,4767,7.156,5504,4.613,6914,3.532,7141,4.424,8081,6.002,12239,6.764,14112,4.56,16112,4.437,18554,9.286,18614,4.704,21751,7.29,21761,4.56,21772,4.437,21785,7.012,21827,4.877,21828,4.704,21829,8.17,21866,7.012,21871,8.979,21877,4.877,21878,9.844,21885,5.093,21891,4.877,21894,8.211,21896,5.093,21897,5.093,21899,5.382,21900,8.979,21901,5.382,21902,7.323,21916,6.558,21920,8.211,21953,4.877,21969,5.093,21970,4.877,21971,5.093,21976,7.739,21986,5.821,21987,8.371,21988,5.821,21989,8.371,21990,5.821,21991,8.371,21992,5.821,21993,5.821,21994,5.821,21995,5.382,21996,5.382,21997,5.821,21998,5.821,21999,5.821,22000,5.821,22001,5.821,22002,5.382,22003,5.821]],["title/classes/VideoConferenceJoin.html",[0,0.231,21830,5.191]],["body/classes/VideoConferenceJoin.html",[0,0.303,2,1.001,3,0.021,4,0.021,5,0.011,7,0.136,27,0.523,29,0.696,30,0.001,31,0.501,32,0.174,33,0.429,47,0.788,95,0.142,99,1.491,100,3.002,101,0.015,103,0.001,104,0.001,112,0.887,238,7.017,379,1.118,643,5.958,1194,4.189,1936,6.793,3909,9.358,6263,4.798,8081,7.507,8083,5.854,8094,6.648,8096,7.222,21768,11.497,21772,9.29,21774,8.263,21775,8.263,21778,8.263,21830,10.018,22004,8.937,22005,11.171,22006,8.937,22007,8.937,22008,8.937]],["title/classes/VideoConferenceJoinResponse.html",[0,0.231,21832,5.705]],["body/classes/VideoConferenceJoinResponse.html",[0,0.32,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.473,29,0.733,30,0.001,31,0.528,32,0.158,33,0.452,47,0.814,95,0.119,101,0.016,103,0.001,104,0.001,112,0.916,138,1.713,150,2.146,153,2.141,245,3.026,379,1.178,816,4.322,1194,4.587,1936,6.449,2076,8.796,2093,8.708,6263,5.056,8080,9.774,8081,7.472,8083,7.559,8085,9.04,8087,7.18,8100,7.89,21832,11.178,22009,11.54]],["title/injectables/VideoConferenceJoinUc.html",[539,0.901,21786,5.705]],["body/injectables/VideoConferenceJoinUc.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,26,2.434,27,0.383,29,0.728,30,0.001,31,0.524,32,0.128,33,0.449,35,0.819,36,1.99,47,0.481,95,0.164,99,1.137,100,2.29,101,0.011,103,0.001,104,0.001,177,1.955,226,0.975,236,1.737,238,3.926,239,1.564,262,2.34,276,3.977,349,0.704,379,1.17,437,1.609,529,1.929,539,1.238,541,1.632,560,2.807,603,2.145,608,2.776,643,3.03,1113,4.136,1194,3.215,1936,5.519,1940,4.858,1952,4.09,1953,5.509,2021,5.071,2055,5.964,2075,9.341,2076,8.139,2126,9.481,2468,5.552,3113,4.403,3541,3.45,4701,6.318,4767,7.483,5504,4.338,6604,4.184,7141,4.944,7490,5.071,8081,6.435,16112,5.197,18554,8.759,18614,5.509,21772,5.197,21786,7.836,21827,5.711,21828,5.509,21830,9.178,21871,8.945,21877,5.711,21878,10.293,21891,5.711,21894,8.945,21900,7.836,21916,7.328,21953,5.711,21969,5.964,21970,5.711,21971,5.964,21996,9.872,22002,6.303,22010,6.817,22011,6.817,22012,9.353,22013,6.817,22014,6.817,22015,6.817,22016,6.817,22017,6.817,22018,6.817,22019,9.353,22020,6.817,22021,9.353,22022,6.817,22023,6.817,22024,6.817,22025,6.817,22026,6.817,22027,6.817]],["title/classes/VideoConferenceMapper.html",[0,0.231,21826,5.705]],["body/classes/VideoConferenceMapper.html",[0,0.24,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,8,1.148,27,0.477,29,0.908,30,0.001,31,0.653,32,0.159,33,0.559,35,1.4,95,0.159,99,1.177,101,0.016,103,0.001,104,0.001,105,0.761,236,1.768,238,5.514,271,2.76,349,1.204,413,4.198,437,1.239,490,2.502,643,3.136,785,3.523,1194,2.426,1553,4.933,1936,6.299,1952,4.234,1959,4.557,2021,5.248,2036,5.702,2038,6.524,8081,3.952,8090,8.784,8101,5.028,8102,4.847,8103,4.847,21751,8.085,21772,8.886,21822,9.42,21826,8.022,21829,9.29,21830,9.29,21831,9.765,21832,9.765,21836,6.524,21866,5.911,21867,6.173,21868,6.173,21869,6.173,21953,5.911,21955,6.524,21956,6.524,21957,6.524,21970,5.911,21975,6.524,21983,5.911,21985,6.524,21995,6.524,22028,12.187,22029,7.056,22030,9.576,22031,9.576,22032,9.576,22033,9.576,22034,9.576,22035,7.056,22036,9.576,22037,7.056,22038,9.576,22039,7.056,22040,9.576,22041,7.056,22042,6.524,22043,7.056,22044,7.056,22045,7.056,22046,7.056,22047,7.056,22048,7.056,22049,7.056,22050,7.056,22051,7.056,22052,7.056]],["title/modules/VideoConferenceModule.html",[201,1.804,21782,5.705]],["body/modules/VideoConferenceModule.html",[0,0.205,3,0.014,4,0.014,5,0.007,30,0.001,80,7.519,95,0.175,101,0.01,102,3.036,103,0,104,0,105,0.652,201,2.65,203,2.172,204,2.334,205,2.402,206,2.392,207,2.382,208,3.992,209,4.098,214,5.554,218,3.418,219,2.353,220,2.297,223,3.538,225,3.39,226,0.863,227,2.487,259,2.297,340,2.902,560,2.487,636,4.998,654,1.796,959,3.478,1112,6.124,1274,1.911,1663,4.233,1689,6.531,1734,8.903,1747,8.221,1770,5.459,1772,7.129,1901,3.382,1909,2.787,1936,3.122,1952,3.624,2126,10.117,2138,10.027,2140,7.519,2469,2.741,2702,2.851,3531,7.955,3541,3.056,3543,4.731,3930,10.027,3936,5.714,5380,7.626,5390,5.06,8081,4.813,8083,6.554,10226,4.222,10508,4.881,10509,4.881,12619,7.946,13861,8.529,14121,4.492,18615,4.881,21782,11.961,21792,5.284,21798,5.584,21878,10.725,21929,9.535,21942,11.386,22053,6.04,22054,6.04,22055,6.04,22056,6.04,22057,10.471,22058,6.04,22059,6.04,22060,6.04,22061,6.04,22062,6.04,22063,6.04,22064,6.04,22065,6.04,22066,8.594]],["title/classes/VideoConferenceOptions.html",[0,0.231,21751,5.065]],["body/classes/VideoConferenceOptions.html",[0,0.353,2,0.895,3,0.019,4,0.019,5,0.01,7,0.186,27,0.502,29,0.623,30,0.001,31,0.448,32,0.174,33,0.384,47,0.564,95,0.132,96,2.197,101,0.02,103,0.001,104,0.001,112,0.919,119,2.65,154,2.224,172,3.912,173,2.365,174,4.138,175,3.536,177,1.464,178,3.322,180,1.433,181,2.14,182,2.601,379,1,490,4.102,834,2.507,2677,4.698,3397,5.947,4778,5.776,5153,8.409,6604,4.908,6924,6.177,6950,5.59,8081,4.478,8083,5.238,8102,7.945,8103,7.945,8104,5.816,11657,8.152,15131,6.264,15287,8.409,21749,11.744,21750,7.393,21751,9.685,21755,10.12,21756,7.393,21757,7.393,21758,6.461,21759,6.699,21760,6.461,21761,6.264,21762,9.103,21763,7.393,21764,7.393,21765,7.393,21766,7.393,21767,7.393,22067,10.406,22068,7.996,22069,7.996]],["title/classes/VideoConferenceOptionsDO.html",[0,0.231,21920,5.705]],["body/classes/VideoConferenceOptionsDO.html",[0,0.371,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.516,29,0.671,30,0.001,31,0.482,32,0.172,33,0.413,47,0.608,95,0.138,101,0.018,103,0.001,104,0.001,112,0.867,119,2.703,180,1.543,379,1.077,490,3.87,1683,6.346,2677,3.888,5153,8.819,6924,5.112,6950,6.021,7248,6.565,7251,6.747,7252,6.747,8081,4.823,8101,8.537,8102,8.229,8103,8.229,8104,6.264,15131,6.747,18555,8.55,21758,6.959,21759,7.215,21760,6.959,21761,6.747,21912,7.534,21916,8.55,21917,12.017,21918,7.962,21920,11.125,21923,7.962,21924,7.962,21925,7.534,21926,7.962,21927,7.962,21928,7.962,22070,10.914,22071,8.612,22072,8.612]],["title/classes/VideoConferenceOptionsResponse.html",[0,0.231,21983,5.705]],["body/classes/VideoConferenceOptionsResponse.html",[0,0.277,2,0.913,3,0.019,4,0.019,5,0.01,7,0.124,27,0.506,29,0.635,30,0.001,31,0.457,32,0.169,33,0.391,95,0.103,101,0.013,103,0.001,104,0.001,112,0.837,119,2.665,138,2.124,143,2.347,145,3.428,150,1.859,153,2.655,245,3.237,379,1.02,816,5.359,1936,6.607,2064,10.801,2076,8.036,2117,11.414,2430,7.855,8080,10.014,8081,7.158,8085,8.259,8087,6.219,8101,8.323,8102,8.022,8103,8.022,13059,8.831,21758,6.593,21760,6.593,21925,7.137,21983,10.709,22073,8.158,22074,10.542,22075,12.346,22076,10.542,22077,8.158,22078,8.158,22079,10.542,22080,8.158,22081,8.158,22082,8.158]],["title/injectables/VideoConferenceRepo.html",[539,0.901,22057,5.958]],["body/injectables/VideoConferenceRepo.html",[0,0.169,3,0.012,4,0.012,5,0.006,7,0.075,8,0.895,10,3.032,12,3.424,18,3.776,26,2.526,27,0.539,29,1.015,30,0.001,31,0.73,32,0.178,33,0.626,34,1.694,35,1.566,36,2.595,40,2.407,47,0.632,95,0.142,96,1.368,99,0.83,101,0.008,103,0,104,0,112,0.395,133,2.61,154,2.277,173,1.472,180,1.337,226,0.712,236,1.214,262,2.881,349,1.1,381,1.672,382,3.897,437,1.158,448,4.888,490,2.646,519,1.542,539,0.988,541,1.192,603,2.395,608,1.148,680,5.217,686,3.523,687,5.39,718,2.763,1601,3.788,1938,2.839,2237,9.097,2239,5.318,2240,5.318,2241,5.318,2242,5.318,2243,5.217,2244,5.217,2245,5.318,2246,5.217,2247,5.318,2254,3.547,2256,5.725,2257,3.547,2259,3.547,2261,3.261,2262,5.217,2263,3.547,2265,3.547,2267,5.318,2271,5.318,2273,5.041,2274,5.217,2276,3.547,2278,2.987,2279,3.055,2280,3.547,2282,3.547,2284,3.481,2285,3.547,2303,3.703,2677,4.041,4057,4.384,4386,3.172,4914,3.055,5930,3.621,5931,3.621,5932,3.621,5933,3.621,5934,3.621,5935,3.621,5936,3.621,5937,5.428,5938,5.428,6604,7.116,6924,5.313,8101,3.547,8102,5.125,8103,5.125,9090,3.795,9656,6.03,14720,4.171,15287,4.023,18555,9.084,21755,4.355,21762,9.783,21916,9.084,22057,6.529,22083,8.951,22084,4.978,22085,7.462,22086,7.462,22087,4.978,22088,4.978,22089,4.978,22090,4.978,22091,4.978,22092,4.978,22093,7.462,22094,7.462,22095,7.462,22096,7.462,22097,4.978,22098,4.978,22099,4.978,22100,4.978,22101,4.603,22102,4.978,22103,4.978,22104,4.978,22105,4.978,22106,4.978,22107,4.978,22108,4.978,22109,4.978,22110,4.978]],["title/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.231,21940,5.958]],["body/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.466,29,0.886,30,0.001,31,0.638,32,0.156,33,0.546,35,1.367,95,0.153,101,0.013,102,6.486,103,0.001,104,0.001,236,1.852,238,6.554,349,1.176,358,4.479,413,4.159,490,2.743,643,5.059,777,4.591,1194,2.659,1553,5.408,1936,6.252,1946,5.408,1952,4.641,2333,5.981,2334,5.807,6022,6.767,6604,7.423,8079,9.475,8081,4.331,8083,5.067,8084,9.475,8098,9.774,17675,7.151,18251,7.151,21826,6.48,21828,6.25,21829,9.22,21830,9.22,21940,8.908,21944,7.151,22042,7.151,22111,12.095,22112,10.182,22113,10.182,22114,10.182,22115,10.182,22116,10.182,22117,10.182,22118,10.182,22119,11.382,22120,11.382,22121,7.735,22122,7.735]],["title/classes/VideoConferenceScopeParams.html",[0,0.231,21805,5.958]],["body/classes/VideoConferenceScopeParams.html",[0,0.38,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,27,0.458,30,0.001,32,0.153,47,0.79,95,0.155,99,1.494,101,0.015,103,0.001,104,0.001,112,0.888,138,2.035,142,4.998,143,2.716,144,3.685,145,3.547,148,2.842,150,2.041,245,3.199,803,4.565,834,3.507,847,4.279,1936,6.305,2860,5.513,5504,4.956,5831,9.787,8081,6.831,9656,9.858,18555,10.507,21805,9.787,21853,11.279,22123,8.957,22124,8.957,22125,8.957,22126,8.957,22127,8.957,22128,8.957]],["title/classes/VisibilitySettingsResponse.html",[0,0.231,4079,5.705]],["body/classes/VisibilitySettingsResponse.html",[0,0.33,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.482,29,0.756,30,0.001,31,0.544,32,0.161,33,0.607,47,0.83,95,0.123,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,149,4.811,150,2.213,379,1.471,769,4.916,4079,11.275,22129,12.646,22130,9.714,22131,13.459,22132,9.714,22133,9.714,22134,9.714]],["title/dependencies.html",[204,3.171,22135,4.953]],["body/dependencies.html",[0,0.249,4,0.011,5,0.009,10,1.981,30,0.001,32,0.067,34,0.831,36,1.881,56,2.358,96,2.428,97,2.113,103,0,104,0,118,3.106,141,3.509,148,2.805,150,1.111,155,1.627,173,1.442,204,1.884,226,0.697,262,1.937,324,2.467,524,2.781,560,2.007,570,2.993,598,2.808,646,3.474,653,2.52,751,3.717,819,1.711,872,4.266,959,2.808,961,3.194,965,3.349,1108,4.266,1156,3.409,1157,3.149,1237,2.781,1368,4.266,1370,3.627,1378,3.627,1413,2.894,1447,4.681,1546,3.546,1579,2.835,1615,2.958,1716,5.363,1818,8.53,1920,5.136,1952,2.925,1962,2.683,2018,2.387,2019,3.468,2020,3.106,2109,3.349,2268,3.82,2343,3.349,2585,2.706,3453,3.066,3454,2.894,3538,2.403,3539,4.015,3880,5.6,3890,4.266,3891,5.755,3892,8.27,4546,3.94,5079,2.808,5119,5.344,5167,3.94,5168,3.94,5496,3.194,5500,2.781,5903,3.066,6203,4.508,6497,3.82,6499,4.085,6595,3.474,6683,6.334,6922,3.627,7842,4.508,7873,3.149,8030,6.154,8422,5.755,8449,3.717,8797,3.94,8879,4.508,9832,4.266,9905,4.508,10009,8.205,10411,4.508,10665,3.474,10762,2.958,11518,4.085,11519,4.085,11628,3.349,11655,3.474,12863,3.82,13171,7.709,13242,3.627,13434,3.717,13782,4.508,14579,4.508,14880,4.085,14881,4.085,14882,4.508,15014,3.94,15368,4.266,15677,4.266,15678,4.508,16749,4.508,17429,4.266,17932,4.508,17933,4.508,18563,4.266,22136,4.876,22137,7.347,22138,4.876,22139,10.556,22140,4.876,22141,4.876,22142,8.84,22143,7.347,22144,4.876,22145,4.876,22146,4.876,22147,4.876,22148,7.347,22149,4.876,22150,9.84,22151,7.347,22152,9.84,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,4.876,22166,4.876,22167,4.876,22168,4.876,22169,4.876,22170,4.876,22171,4.876,22172,4.876,22173,4.876,22174,4.876,22175,7.347,22176,4.876,22177,4.876,22178,4.876,22179,7.347,22180,4.876,22181,4.876,22182,7.347,22183,4.876,22184,4.876,22185,4.876,22186,4.876,22187,7.347,22188,7.347,22189,4.876,22190,4.876,22191,4.876,22192,4.876,22193,4.876,22194,4.876,22195,4.876,22196,4.876,22197,4.876,22198,4.876,22199,4.876,22200,4.876,22201,4.876,22202,4.876,22203,4.876,22204,4.876,22205,4.876,22206,4.876,22207,7.347,22208,4.876,22209,4.876,22210,4.876,22211,4.876,22212,4.876,22213,4.876,22214,4.876,22215,4.876,22216,4.876,22217,4.266,22218,4.876,22219,4.876,22220,8.173,22221,4.876,22222,4.876,22223,4.876,22224,4.876,22225,8.84,22226,4.876,22227,4.876,22228,7.347,22229,4.876,22230,4.876,22231,4.876,22232,4.876,22233,4.876,22234,4.876,22235,4.876,22236,4.876,22237,4.876,22238,4.876,22239,4.876,22240,7.347,22241,4.508,22242,4.876,22243,4.876,22244,7.347,22245,4.876,22246,4.876,22247,4.876,22248,4.876,22249,4.876,22250,4.876,22251,4.876,22252,4.876,22253,4.876,22254,4.876,22255,4.876,22256,4.876,22257,4.876,22258,4.876,22259,7.347,22260,4.876,22261,4.876,22262,4.876,22263,4.508,22264,4.876,22265,4.876,22266,4.876,22267,4.876,22268,4.876,22269,4.876,22270,4.876,22271,4.508,22272,4.876,22273,4.876,22274,4.876,22275,4.876,22276,4.876,22277,4.876,22278,4.876,22279,6.792,22280,4.508,22281,4.876,22282,4.876,22283,4.876,22284,4.876,22285,4.876,22286,4.876,22287,4.876,22288,4.876,22289,4.876,22290,4.876]],["title/index.html",[7,0.086,1285,3.656,22291,4.953]],["body/index.html",[30,0.001,31,0.482,34,1.03,55,2.155,102,3.04,103,0,104,0.001,131,2.266,141,4.11,153,1.375,204,2.338,236,0.984,261,4.755,292,3.061,355,5.411,358,2.661,359,3.629,360,7.051,361,3.418,458,3.357,475,3.104,486,1.82,511,3.844,517,2.319,563,3.59,564,2.642,685,4.237,749,3.962,754,4.611,759,3.962,824,3.222,845,5.067,929,3.59,930,4.739,932,10.321,945,3.712,946,4.646,986,2.909,1021,2.366,1202,3.45,1203,1.931,1220,4.818,1239,5.28,1455,6.258,1579,3.517,1615,3.67,1666,3.804,1716,6.992,1731,3.854,1750,4.229,1770,3.301,1776,8.814,1962,4.734,2017,2.648,2019,2.855,2031,3.418,2344,6.221,2362,6.544,2363,5.481,2364,5.909,2369,4.154,2381,5.481,2430,3.629,2431,3.962,2744,6.297,3072,2.76,3246,4.022,3454,6.84,3457,7.144,3689,4.31,3853,6.558,3854,8.53,3928,4.611,4145,3.962,4549,4.888,4691,3.173,5079,3.483,5230,5.411,5336,5.067,5461,5.344,5508,4.4,5522,4.611,5753,4.888,6131,3.854,6219,4.154,6317,5.636,6400,4.888,6503,4.31,6504,4.499,6683,6.544,6779,5.556,6925,4.907,6930,4.611,7523,4.499,7890,4.154,8826,3.517,8971,6.558,9594,5.292,9655,4.739,10387,8.314,10769,4.888,11384,4.31,11626,4.086,11769,4.739,11774,6.258,11786,5.481,11820,5.292,12054,6.558,13075,7.844,13650,8.091,13851,4.499,14121,4.499,14182,6.74,14320,4.888,14967,4.888,15356,4.611,15372,5.067,15716,5.067,15717,4.888,16873,4.739,16879,6.952,17096,4.31,18342,5.292,20521,4.739,21627,5.067,21859,5.292,22292,7.207,22293,4.611,22294,5.292,22295,5.067,22296,5.292,22297,4.888,22298,7.207,22299,6.952,22300,5.292,22301,5.292,22302,5.292,22303,7.954,22304,7.207,22305,5.592,22306,5.592,22307,5.592,22308,5.067,22309,7.633,22310,5.292,22311,7.954,22312,5.067,22313,5.067,22314,7.954,22315,5.292,22316,4.611,22317,5.067,22318,5.292,22319,5.292,22320,4.888,22321,5.592,22322,5.292,22323,5.592,22324,5.067,22325,4.739,22326,5.292,22327,7.954,22328,7.954,22329,8.76,22330,10.081,22331,5.292,22332,5.592,22333,7.954,22334,5.292,22335,5.592,22336,5.592,22337,5.592,22338,7.954,22339,7.954,22340,5.592,22341,5.592,22342,5.592,22343,5.067,22344,5.592,22345,4.888,22346,5.592,22347,6.952,22348,7.207,22349,5.592,22350,5.067,22351,5.592,22352,5.292,22353,5.592,22354,5.067]],["title/license.html",[1285,3.656,12109,4.211,22291,4.953]],["body/license.html",[0,0.041,4,0.029,5,0.003,8,0.146,27,0.05,30,0,53,2.839,55,0.483,56,1.086,72,3.487,74,0.981,76,1.123,77,0.774,79,1.965,83,0.373,87,0.61,95,0.015,103,0,104,0,105,0.616,107,0.752,131,0.455,133,3.39,137,1.412,142,1.527,154,0.48,172,0.388,220,0.462,236,1.006,238,0.699,239,1.952,274,1.879,284,0.967,292,0.615,301,0.807,315,1.123,316,3.32,319,1.014,324,0.615,347,0.445,348,0.606,349,0.125,358,4.265,359,0.729,362,1.123,472,0.642,475,2.003,490,0.431,493,1.936,500,0.721,502,0.674,510,2.478,511,1.744,519,0.376,521,0.481,535,0.883,560,0.925,562,0.834,567,1.062,577,1.062,578,2.368,590,0.745,603,0.244,636,3.01,643,3.113,654,0.361,662,3.405,708,1.902,710,2.151,757,1.67,759,4.051,760,2.166,762,1.062,763,9.155,824,0.647,930,1.759,946,5.331,989,2.166,994,0.573,1003,1.57,1147,0.764,1202,0.693,1228,1.67,1236,4.848,1239,3.796,1242,2.247,1306,0.737,1307,3.85,1324,3.7,1396,3.619,1447,1.431,1453,7.063,1454,2.205,1541,1.815,1559,0.988,1579,2.27,1631,0.754,1632,1.062,1660,3.52,1665,5.032,1666,3.255,1717,0.951,1750,4.897,1752,0.795,1756,0.834,1761,1.6,1762,2.531,1763,1.123,1770,1.225,1922,0.657,1961,0.981,1962,4.049,2002,8.121,2030,1.965,2031,1.269,2113,2.839,2128,0.82,2145,2.368,2170,1.258,2193,0.491,2256,1.293,2343,2.151,2344,3.995,2355,4.516,2358,4.613,2381,3.298,2397,2.076,2398,1.712,2418,6.031,2430,4.788,2431,0.795,2432,1.6,2661,3.85,2663,7.833,2711,2.557,2968,1.017,3060,3.205,3072,2.089,3110,0.951,3160,0.774,3246,5.306,3247,1.412,3268,1.6,3393,3.201,3503,4.613,3538,0.598,3562,1.759,3609,3.991,3831,0.951,3850,0.981,3852,1.542,3854,0.774,3856,1.759,3920,0.981,3980,1.9,4142,1.062,4144,2.74,4145,3.391,4148,1.123,4199,1.57,4278,1.017,4545,0.883,4549,4.613,4551,1.062,4633,1.017,4691,1.178,4692,1.017,4693,1.542,4700,1.881,4918,1.412,5056,6.098,5071,1.431,5079,0.699,5105,2.557,5106,1.517,5148,1.759,5342,0.981,5461,1.395,5499,1.062,5504,0.493,5508,2.278,5514,2.388,5698,3.145,6131,0.774,6219,2.151,6226,2.896,6258,2.032,6442,2.33,6499,1.017,6598,1.017,6683,1.347,6779,0.784,6807,0.903,6828,2.278,6899,3.587,6927,0.865,6954,1.633,7108,0.926,7114,0.883,7126,1.062,7127,3.154,7523,2.33,7553,3.201,7563,0.926,7990,1.062,7991,1.881,8051,2.903,8248,0.745,8325,4.998,8968,0.883,8971,2.975,9425,2.454,9674,2.975,9680,2.896,9688,3.298,9705,2.454,9718,2.232,10123,0.82,10139,2.33,10382,0.926,10402,4.998,10769,6.208,10792,1.712,10844,0.82,10952,0.951,10960,1.965,10967,1.815,11362,1.712,11364,1.062,11615,0.926,11621,0.883,11628,2.681,11629,0.903,11648,0.981,11693,1.123,11726,4.772,11738,1.062,11774,2.278,11786,1.996,11796,0.903,11810,4.006,11817,2.076,11856,1.123,11877,5.084,12054,0.926,12109,9.995,12236,1.017,12549,1.017,12731,0.951,13076,4.994,13394,1.062,13416,1.062,13425,4.006,13426,1.123,13487,2.076,13559,6.438,13650,0.981,13746,0.883,13844,1.062,13908,0.981,13912,0.981,13930,2.232,14429,4.994,14539,9.194,14574,1.123,14581,2.839,14965,0.981,14970,1.123,15027,3.27,15116,2.076,15285,1.123,15353,3.27,15356,2.388,15716,1.017,15719,7.126,16612,1.017,16629,1.123,17163,4.528,17172,1.062,17276,7.103,18341,2.896,18426,1.062,18565,1.123,18647,1.062,18688,0.951,18693,1.881,18706,1.712,18957,2.388,19367,2.896,19917,1.965,19920,3.7,19922,1.062,19927,6.476,20115,1.062,20117,8.079,20159,2.076,20311,0.903,20374,1.815,20569,4.528,20653,2.076,20871,5.787,21132,8.282,21158,1.017,22302,1.062,22304,9.934,22309,4.351,22316,7.128,22317,9.152,22318,2.74,22347,2.531,22350,1.881,22355,8.958,22356,8.74,22357,1.214,22358,1.214,22359,3.132,22360,10.727,22361,8.492,22362,4.579,22363,1.214,22364,1.214,22365,2.246,22366,4.579,22367,3.132,22368,3.132,22369,1.214,22370,1.214,22371,2.246,22372,4.233,22373,5.277,22374,2.246,22375,2.246,22376,7.631,22377,6.185,22378,1.214,22379,1.123,22380,5.176,22381,1.123,22382,7.359,22383,11.802,22384,3.132,22385,1.214,22386,1.214,22387,3.903,22388,6.615,22389,1.214,22390,6.615,22391,1.214,22392,4.579,22393,0.981,22394,1.017,22395,3.608,22396,1.123,22397,8.506,22398,0.981,22399,1.123,22400,7.004,22401,7.359,22402,4.579,22403,7.682,22404,1.214,22405,2.246,22406,1.214,22407,1.214,22408,2.896,22409,1.214,22410,1.214,22411,1.214,22412,1.214,22413,1.214,22414,3.608,22415,1.123,22416,1.062,22417,1.123,22418,3.132,22419,1.214,22420,1.214,22421,1.214,22422,2.246,22423,1.214,22424,1.214,22425,2.624,22426,1.123,22427,2.246,22428,2.246,22429,3.132,22430,6.685,22431,4.579,22432,4.786,22433,3.132,22434,2.246,22435,1.214,22436,1.214,22437,1.214,22438,3.132,22439,1.214,22440,1.214,22441,2.246,22442,1.214,22443,1.214,22444,1.214,22445,3.903,22446,2.246,22447,10.274,22448,3.132,22449,6.615,22450,3.414,22451,1.214,22452,2.246,22453,3.132,22454,6.615,22455,7.004,22456,1.123,22457,3.903,22458,2.246,22459,3.903,22460,1.214,22461,3.132,22462,0.981,22463,10.392,22464,2.246,22465,1.123,22466,6.185,22467,1.214,22468,3.132,22469,4.336,22470,8.506,22471,3.132,22472,2.246,22473,7.359,22474,5.176,22475,1.214,22476,2.246,22477,7.98,22478,2.246,22479,1.214,22480,1.214,22481,2.896,22482,1.214,22483,1.214,22484,1.062,22485,3.132,22486,3.903,22487,1.123,22488,1.214,22489,1.214,22490,1.062,22491,2.896,22492,3.132,22493,1.214,22494,4.579,22495,1.123,22496,2.896,22497,1.214,22498,1.123,22499,1.214,22500,1.214,22501,1.214,22502,2.896,22503,1.017,22504,6.438,22505,2.246,22506,1.062,22507,1.214,22508,1.214,22509,2.246,22510,1.214,22511,1.965,22512,4.006,22513,1.214,22514,5.708,22515,3.608,22516,1.214,22517,4.579,22518,1.214,22519,1.214,22520,1.214,22521,1.214,22522,1.214,22523,3.132,22524,1.214,22525,2.246,22526,1.214,22527,1.214,22528,1.214,22529,1.123,22530,1.214,22531,1.214,22532,3.132,22533,0.951,22534,1.214,22535,0.981,22536,1.214,22537,1.214,22538,1.214,22539,4.579,22540,1.214,22541,1.214,22542,3.132,22543,1.214,22544,1.214,22545,3.903,22546,1.214,22547,2.246,22548,1.214,22549,1.214,22550,1.214,22551,1.214,22552,1.214,22553,1.214,22554,2.246,22555,1.214,22556,1.214,22557,1.214,22558,2.246,22559,1.214,22560,1.214,22561,1.214,22562,1.214,22563,1.214,22564,2.076,22565,6.116,22566,1.214,22567,5.176,22568,1.214,22569,1.214,22570,3.132,22571,3.903,22572,3.903,22573,3.903,22574,1.214,22575,4.579,22576,4.006,22577,1.123,22578,3.132,22579,1.214,22580,2.246,22581,1.214,22582,1.965,22583,2.246,22584,3.608,22585,3.903,22586,1.214,22587,3.132,22588,4.579,22589,1.214,22590,1.214,22591,2.896,22592,2.246,22593,1.123,22594,1.214,22595,1.123,22596,1.214,22597,1.214,22598,2.896,22599,1.214,22600,1.214,22601,2.246,22602,1.214,22603,1.214,22604,1.214,22605,3.132,22606,1.214,22607,3.132,22608,2.246,22609,5.176,22610,3.132,22611,2.246,22612,2.246,22613,2.246,22614,3.414,22615,1.965,22616,1.214,22617,1.214,22618,1.214,22619,5.176,22620,2.246,22621,1.214,22622,1.214,22623,1.214,22624,2.246,22625,1.214,22626,2.246,22627,1.214,22628,1.214,22629,4.998,22630,1.214,22631,6.803,22632,1.214,22633,1.214,22634,1.214,22635,1.214,22636,2.246,22637,1.214,22638,4.006,22639,3.903,22640,2.246,22641,1.214,22642,1.214,22643,1.214,22644,1.214,22645,1.214,22646,2.246,22647,1.214,22648,1.214,22649,1.062,22650,1.214,22651,2.246,22652,2.246,22653,1.214,22654,1.214,22655,1.214,22656,1.214,22657,1.214,22658,1.214,22659,1.214,22660,1.214,22661,1.123,22662,1.214,22663,1.214,22664,1.214,22665,1.214,22666,4.579,22667,1.214,22668,1.214,22669,3.903,22670,1.214,22671,1.214,22672,1.214,22673,1.214,22674,1.214,22675,1.214,22676,1.214,22677,5.708,22678,2.896,22679,1.214,22680,3.903,22681,1.214,22682,1.214,22683,3.132,22684,1.214,22685,1.214,22686,3.132,22687,1.214,22688,2.246,22689,1.214,22690,1.214,22691,1.214,22692,1.214,22693,1.214,22694,1.062,22695,2.076,22696,1.214,22697,1.062,22698,2.246,22699,2.076,22700,1.214,22701,3.903,22702,1.214,22703,2.896,22704,1.214,22705,2.076,22706,3.132,22707,2.246,22708,1.214,22709,3.132,22710,5.708,22711,1.214,22712,2.246,22713,1.214,22714,2.076,22715,1.214,22716,1.214,22717,1.214,22718,3.903,22719,3.132,22720,1.214,22721,1.214,22722,1.214,22723,1.214,22724,1.214,22725,1.214,22726,2.246,22727,2.246,22728,2.246,22729,3.132,22730,1.214,22731,2.246,22732,1.123,22733,3.132,22734,1.214,22735,2.076,22736,2.246,22737,1.214,22738,1.214,22739,2.246,22740,9.998,22741,3.132,22742,1.214,22743,4.579,22744,7.004,22745,3.132,22746,1.214,22747,1.214,22748,3.903,22749,1.214,22750,3.132,22751,1.214,22752,1.214,22753,1.214,22754,1.214,22755,1.214,22756,1.214,22757,1.214,22758,1.214,22759,3.903,22760,1.214,22761,1.214,22762,3.132,22763,1.214,22764,2.246,22765,3.132,22766,1.062,22767,2.246,22768,1.214,22769,1.214,22770,1.214,22771,1.214,22772,2.246,22773,3.132,22774,1.123,22775,1.214,22776,1.214,22777,1.214,22778,1.123,22779,1.214,22780,1.214,22781,1.214,22782,3.132,22783,2.246,22784,1.123,22785,1.214,22786,1.214,22787,3.903,22788,1.214,22789,3.132,22790,1.214,22791,1.214,22792,1.214,22793,1.214,22794,1.214,22795,3.132,22796,2.246,22797,2.246,22798,1.214,22799,2.246,22800,5.708,22801,2.246,22802,3.132,22803,3.903,22804,1.123,22805,1.123,22806,2.246,22807,1.214,22808,3.132,22809,1.214,22810,1.214,22811,1.214,22812,1.214,22813,1.214,22814,3.132,22815,2.246,22816,1.214,22817,1.214,22818,1.214,22819,1.214,22820,2.246,22821,2.246,22822,1.214,22823,2.076,22824,1.214,22825,1.123,22826,1.123,22827,1.214,22828,3.132,22829,1.214,22830,1.214,22831,1.214,22832,2.246,22833,3.132,22834,1.214,22835,1.214,22836,1.214,22837,1.214,22838,2.246,22839,1.214,22840,1.214,22841,1.214,22842,1.214,22843,1.214,22844,1.214,22845,1.214,22846,1.214,22847,1.214,22848,1.214,22849,1.214,22850,1.214,22851,1.214,22852,3.903,22853,1.214,22854,1.214,22855,2.246,22856,1.214,22857,1.123,22858,1.214,22859,1.214,22860,1.214,22861,1.214,22862,1.214,22863,1.214,22864,1.123,22865,1.214,22866,1.214,22867,1.214,22868,1.214,22869,2.246,22870,1.214,22871,1.214,22872,1.214,22873,1.214,22874,1.062,22875,2.246,22876,1.214,22877,1.214,22878,1.214,22879,1.123,22880,1.123,22881,1.017,22882,1.214,22883,2.246,22884,1.123,22885,2.076,22886,1.214,22887,1.214,22888,3.132,22889,2.076,22890,1.214,22891,2.076,22892,2.246,22893,2.246,22894,1.123,22895,1.062,22896,1.214,22897,1.214,22898,1.123,22899,1.214,22900,1.214,22901,1.214,22902,2.246,22903,1.214,22904,3.132,22905,1.214,22906,1.214,22907,1.214,22908,1.214,22909,1.214,22910,1.214,22911,1.214,22912,1.214,22913,1.214,22914,1.214,22915,1.214,22916,1.017,22917,1.214,22918,1.214,22919,1.214,22920,1.214,22921,1.214,22922,1.214,22923,1.214,22924,1.214,22925,1.214,22926,1.214,22927,1.214,22928,1.214,22929,1.062,22930,1.123,22931,2.246,22932,2.076,22933,1.214,22934,1.214,22935,1.214,22936,1.214,22937,1.214,22938,1.214,22939,1.214,22940,1.214,22941,1.214,22942,1.017,22943,1.214,22944,1.123,22945,0.981,22946,1.214,22947,1.214,22948,1.123,22949,1.214]],["title/modules.html",[203,3.362]],["body/modules.html",[30,0,103,0,104,0,202,3.861,203,1.718,213,3.404,214,2.217,616,3.743,1100,4.002,1311,3.743,1315,3.129,1353,3.861,1354,3.743,1355,3.553,1356,3.34,1689,2.607,1694,3.861,1734,3.553,1765,3.553,1767,3.553,2343,9.989,2355,7.665,2686,3.861,3528,3.642,3529,3.743,3530,3.553,3531,2.967,3930,4.002,4419,4.002,4609,4.002,4614,3.553,4661,3.861,5375,3.475,5380,3.044,5881,3.642,5882,3.743,6405,3.475,6489,3.176,6493,3.861,6494,4.002,6495,4.002,7925,4.002,8335,3.475,8916,3.743,8917,3.642,10428,4.002,10439,4.002,10493,4.18,10497,3.861,10502,3.743,10659,3.404,10660,3.34,10669,4.002,10672,3.553,10726,4.18,10729,3.34,10829,4.18,10840,4.18,11024,3.861,11028,3.861,11402,4.002,11411,4.18,12670,3.743,12671,3.861,12931,3.861,13309,4.002,13857,3.861,13861,3.404,13862,3.553,13880,3.553,13922,3.861,13926,3.642,14141,3.861,14700,4.002,14764,3.743,14778,3.743,14792,4.002,14799,4.002,14820,3.861,14824,3.743,14881,10.463,15181,3.861,15692,3.861,15696,3.743,15874,3.861,15878,4.002,16690,4.18,16693,4.002,16997,3.861,17395,3.861,17579,3.861,18568,4.18,18582,4.002,18585,3.743,18586,3.861,18587,3.861,18588,3.861,18589,3.861,18590,3.861,18591,3.861,18592,3.861,18663,4.002,18942,4.002,20248,4.002,20628,4.002,21782,4.002,22950,14.544,22951,14.544,22952,13.482]],["title/properties.html",[112,0.651,22135,4.953]],["body/properties.html",[30,0.001,103,0.001,104,0.001,112,0.829,153,2.374,1715,4.399,1716,6.337,1962,5.748,2426,9.657,4564,6.488,7873,6.746,12109,7.769,17096,7.443,20300,7.962,22714,9.657,22948,9.657,22953,10.743,22954,9.657,22955,8.751,22956,10.446,22957,10.446,22958,10.446,22959,10.446]],["title/todo.html",[1285,3.656,1663,2.396,22291,4.953]],["body/todo.html",[0,0.191,5,0.007,30,0.001,31,0.457,32,0.111,34,1.39,36,1.195,47,0.397,72,2.55,99,0.937,100,2.74,103,0,104,0,107,1.348,112,0.446,131,3.056,133,1.965,141,3.897,142,2.198,154,2.639,155,1.875,201,2.966,209,2.112,220,3.104,225,2.216,239,1.872,259,2.137,261,2.668,262,2.105,290,4.086,305,3.235,355,3.533,358,4.638,360,5.38,379,0.703,454,2.668,472,2.969,486,3.172,490,3.406,493,2.786,511,5.002,573,3.795,574,7.145,595,3.533,639,2.637,824,2.992,929,7.153,933,5.532,945,5.896,978,4.086,986,2.758,989,3.118,993,3.851,1077,4.282,1194,1.931,1220,5.904,1221,3.448,1229,3.68,1237,4.653,1413,3.335,1438,5.934,1455,5.934,1559,2.471,1663,2.377,1685,7.978,1715,4.44,1716,4.95,1753,3.859,1759,3.371,1770,6.976,1938,4.653,1962,3.092,2017,2.459,2019,3.851,2029,4.179,2033,3.795,2109,3.859,2250,2.303,2334,3.204,2343,3.859,2359,8.048,2362,4.895,2363,7.866,2425,3.04,2702,2.652,3245,3.795,3247,3.533,3284,4.95,3457,3.68,3609,3.928,3956,4.179,4019,5.131,4145,3.68,4321,3.408,4483,3.335,4550,3.795,4596,9.048,4619,2.904,4691,5.039,4692,6.835,4693,3.859,4918,3.533,5071,3.579,5105,3.68,5526,4.54,6181,4.915,6219,5.603,6258,5.83,6497,6.391,6503,5.814,6506,3.928,6507,4.915,6510,4.706,6599,7.145,6921,3.04,6925,3.204,6952,3.68,7094,3.489,7871,4.401,7872,4.179,7873,7.231,7874,7.323,8325,4.54,8383,4.282,8390,5.704,8392,4.179,9688,3.579,9840,6.835,10009,6.845,10373,4.706,10883,5.194,10952,4.401,11621,4.086,11626,3.795,11628,3.859,11629,4.179,11647,4.086,11726,3.489,11774,5.934,12324,6.391,12940,3.859,13156,4.706,13830,4.915,13908,4.54,15027,4.706,15717,4.54,16823,4.915,16873,4.401,17096,4.003,17862,5.194,18688,7.526,19001,5.194,19734,5.194,20300,4.282,20311,4.179,20581,4.915,21167,5.194,22135,4.915,22263,5.194,22293,6.219,22310,4.915,22313,4.706,22354,4.706,22393,4.54,22498,5.194,22503,4.706,22529,5.194,22649,4.915,22929,7.137,22945,4.54,22960,5.618,22961,5.194,22962,4.706,22963,4.915,22964,5.194,22965,5.618,22966,5.618,22967,5.618,22968,4.706,22969,5.618,22970,5.618,22971,5.618,22972,4.706,22973,5.618,22974,5.618,22975,5.194,22976,5.618,22977,5.618,22978,5.618,22979,5.618,22980,5.618,22981,4.706,22982,4.915,22983,5.618,22984,5.618,22985,5.618,22986,5.618,22987,5.194,22988,5.618,22989,5.194,22990,5.618,22991,5.618,22992,5.618,22993,5.618,22994,5.618,22995,5.618,22996,4.915,22997,5.618,22998,5.618,22999,5.618,23000,5.618,23001,5.194,23002,5.618,23003,5.618,23004,5.618,23005,5.618,23006,5.618,23007,5.618,23008,5.618,23009,5.618,23010,9.607,23011,5.618,23012,5.618,23013,5.618,23014,5.618,23015,5.618,23016,5.618,23017,4.706,23018,8.159,23019,5.618,23020,5.618]],["title/additional-documentation/nestjs-application.html",[817,2.328,1236,2.846,3454,2.876,3854,3.087]],["body/additional-documentation/nestjs-application.html",[5,0.012,18,1.89,30,0.001,31,0.418,33,0.287,72,1.695,78,6.297,87,1.877,95,0.047,103,0,104,0,107,0.896,128,1.505,133,2.089,141,1.784,142,1.461,172,1.193,180,0.669,201,2.258,203,2.148,219,2.327,253,1.829,271,1.461,284,3.224,292,3.776,305,2.151,358,4.919,361,2.111,413,2.298,454,4.427,486,1.124,493,2.962,511,4.165,535,2.717,560,1.538,569,4.256,574,5.551,576,3.268,579,1.989,600,3.71,645,2.717,751,4.553,754,4.553,759,3.912,760,3.315,817,2.87,824,4.966,929,5.534,930,7.304,933,3.439,945,3.666,946,4.614,989,3.315,992,4.073,995,2.982,1128,7.298,1141,3.268,1157,5.506,1202,3.406,1220,4.774,1236,2.194,1237,2.13,1239,4.58,1285,5.506,1391,2.447,1426,3.473,1438,5.428,1452,3.129,1453,3.018,1454,5.619,1542,2.778,1666,2.349,1685,2.662,1716,3.624,1750,2.611,1752,2.447,1753,4.102,1759,3.584,1761,2.662,1770,2.038,1841,2.447,1892,2.662,1962,5.472,2017,1.635,2018,1.829,2019,4.025,2113,4.344,2166,5.225,2193,1.511,2256,3.439,2268,7.79,2334,2.13,2355,2.292,2362,3.584,2363,7.82,2364,2.565,2365,2.447,2381,2.38,2430,4.478,2432,2.662,2589,2.484,2711,3.912,2768,5.061,2774,2.447,2822,2.241,3072,1.705,3246,2.484,3247,3.756,3452,5.125,3453,6.253,3454,6.807,3457,4.888,3538,5.51,3539,1.524,3546,2.926,3851,3.018,3852,2.565,3854,7.462,3880,2.847,4691,3.133,5056,2.021,5105,2.447,5342,3.018,5503,3.268,5519,3.971,5589,1.865,6220,2.484,6258,1.945,6301,2.523,6317,2.447,6318,2.484,6394,5.522,6442,2.778,6500,3.453,6539,3.971,6595,2.662,6683,2.241,6779,2.412,7111,2.38,7869,6.518,7873,6.021,7887,5.003,7890,5.856,8032,4.826,8051,6.342,8348,3.453,8826,2.172,8968,4.344,9674,4.553,10089,4.679,10373,3.129,10377,4.818,10382,2.847,10424,2.926,10693,4.442,10694,4.553,10762,2.266,11362,2.847,11384,4.256,11538,3.129,11615,2.847,11626,2.523,11627,4.256,11647,5.428,11649,2.717,11656,2.926,11697,3.268,11726,5.296,11786,2.38,11824,3.268,11850,9.193,11854,3.453,11855,2.778,11962,3.129,11992,3.268,12341,2.484,12863,2.926,13057,3.018,13155,3.018,13393,3.268,13650,3.018,13851,2.778,13910,3.018,13912,3.018,14489,6.9,14965,8.035,15014,6.03,15356,2.847,15372,3.129,15717,3.018,15719,3.129,16612,3.129,16823,8.157,18023,2.662,20300,6.499,20310,3.268,20311,6.935,20710,3.453,20765,5.522,21158,3.129,21370,4.826,22220,3.453,22271,3.453,22279,3.453,22280,3.453,22292,3.129,22293,9.357,22294,5.225,22295,3.129,22297,3.018,22300,3.268,22308,6.252,22309,10.096,22329,3.268,22416,3.268,22462,3.018,22495,5.522,22502,3.453,22503,6.252,22504,5.225,22614,3.268,22629,3.018,22638,5.225,22697,3.268,22735,3.453,22778,3.453,22784,3.453,22895,5.225,22916,3.129,22952,3.453,22968,9.368,22981,5.003,22982,5.225,22996,5.225,23001,8.62,23021,3.735,23022,3.735,23023,7.81,23024,3.735,23025,3.735,23026,3.735,23027,3.735,23028,3.735,23029,5.973,23030,3.735,23031,6.529,23032,3.735,23033,3.735,23034,3.735,23035,3.735,23036,3.735,23037,3.735,23038,3.735,23039,3.735,23040,3.735,23041,3.735,23042,3.735,23043,3.735,23044,3.735,23045,3.735,23046,8.62,23047,3.453,23048,3.453,23049,3.453,23050,3.453,23051,3.453,23052,3.453,23053,3.453,23054,3.453,23055,3.735,23056,3.453,23057,3.735,23058,3.735,23059,3.735,23060,5.973,23061,3.268,23062,3.453,23063,3.268,23064,3.268,23065,3.735,23066,9.323,23067,3.453,23068,3.735,23069,3.735,23070,9.943,23071,3.735,23072,3.735,23073,3.735,23074,3.735,23075,5.973,23076,8.526,23077,3.735,23078,5.973,23079,3.735,23080,5.973,23081,5.973,23082,3.735,23083,3.735,23084,8.526,23085,3.735,23086,3.735,23087,3.735,23088,3.735,23089,5.973,23090,3.735,23091,3.735,23092,3.735,23093,3.735,23094,5.973,23095,3.735,23096,3.735,23097,3.735,23098,3.453,23099,3.735,23100,3.735,23101,3.735,23102,5.973,23103,3.735,23104,3.735,23105,3.735,23106,3.735,23107,3.735,23108,3.735,23109,3.735,23110,5.973,23111,7.463,23112,3.735,23113,3.735,23114,7.463,23115,5.973,23116,3.735,23117,3.735,23118,3.735,23119,3.735,23120,3.735,23121,3.735,23122,3.735,23123,3.735,23124,5.973,23125,3.735,23126,5.973,23127,5.973,23128,3.453,23129,3.735,23130,6.9,23131,3.735,23132,3.735,23133,3.735,23134,3.453,23135,3.453,23136,3.735,23137,3.735,23138,3.735,23139,3.735,23140,3.735,23141,3.735,23142,3.735,23143,3.735]],["title/additional-documentation/nestjs-application/software-architecture.html",[817,2.328,1236,2.846,22299,3.915,22361,4.059]],["body/additional-documentation/nestjs-application/software-architecture.html",[0,0.325,2,0.698,5,0.005,7,0.06,8,0.472,27,0.392,30,0.001,72,4.62,95,0.05,101,0.014,103,0,104,0,105,1.193,107,2.73,155,2.079,201,3.417,203,4.564,204,1.523,208,2.831,209,1.482,223,3.183,225,2.458,236,0.641,239,0.904,259,1.499,316,3.345,348,1.967,353,2.706,355,2.478,357,3.003,358,2.741,454,2.959,459,4.509,474,1.683,482,2.132,500,2.339,535,2.866,539,0.521,541,0.943,560,1.622,562,5.309,564,2.939,579,3.319,662,2.431,685,1.667,749,2.581,753,3.087,759,5.064,760,4.291,763,2.706,946,5.128,989,3.459,1003,4.357,1117,2.447,1147,2.478,1220,6.526,1221,2.418,1239,2.418,1454,2.226,1542,7.119,1600,2.907,1663,1.667,1665,2.581,1666,5.526,1715,5.472,1750,6.143,1752,2.581,1756,4.28,1757,6.364,1758,3.087,1759,2.364,1761,2.808,1932,2.755,1962,4.254,2031,3.521,2033,4.209,2128,4.209,2145,5.331,2158,3.554,2334,3.554,2344,6.08,2354,3.301,2355,2.418,2358,3.184,2363,2.51,2364,2.706,2381,3.97,2398,3.003,2429,3.643,2430,6.107,2431,4.082,2432,2.808,2585,3.459,2606,2.478,2702,1.86,2711,2.581,3072,4.865,3246,2.62,3247,4.862,3454,2.339,3548,4.635,3562,3.087,3609,4.357,3832,4.28,3850,3.184,3852,6.035,3854,3.97,3980,2.39,4019,2.478,4145,6.667,4199,2.755,4486,2.314,4545,2.866,4596,5.036,4633,3.301,5105,5.756,5332,3.643,5461,4.801,5508,2.866,5514,3.003,5525,3.301,5633,5.761,6218,3.087,6220,4.143,6230,3.643,6258,2.051,6501,2.755,6900,2.447,6901,4.533,7094,2.447,7195,3.184,7563,4.75,7874,3.003,8051,2.931,8383,3.003,8392,4.635,8971,3.003,9674,3.003,9688,4.925,9706,7.466,9870,3.003,9998,2.931,10123,2.661,10226,2.755,10377,3.521,10402,3.184,10792,3.003,10953,5.761,10967,3.184,11625,2.581,11626,4.209,11726,3.871,11755,8.019,11774,4.533,11775,5.22,11796,4.635,12323,6.391,12324,3.087,12630,3.301,12731,4.882,12863,3.087,13059,6.476,13155,3.184,13851,4.635,13903,3.087,13908,5.036,13910,3.184,14120,5.761,14182,6.056,14429,3.447,14539,3.447,14880,6.476,14881,3.301,15374,3.643,15962,3.087,16618,3.447,17096,6.821,17939,5.452,18688,4.882,18693,3.301,18957,3.003,19538,3.643,19732,3.184,19867,3.184,19915,3.447,20116,3.301,20374,3.184,20708,10.179,20871,3.447,21158,3.301,21445,3.447,22293,3.003,22299,8.225,22301,5.452,22312,3.301,22313,3.301,22316,3.003,22325,4.882,22347,5.036,22350,3.301,22361,5.22,22393,3.184,22394,8.019,22425,3.301,22426,7.147,22432,3.643,22447,3.447,22450,5.452,22462,3.184,22469,3.301,22481,3.643,22484,3.447,22506,3.447,22512,6.763,22533,3.087,22564,3.643,22576,3.447,22584,3.643,22614,3.447,22615,3.447,22638,5.452,22774,7.147,22825,3.643,22864,3.643,22879,3.643,22881,6.476,22930,5.761,22942,3.301,22955,3.301,22962,6.476,22972,8.019,23064,3.447,23144,3.94,23145,3.94,23146,9.572,23147,3.94,23148,3.94,23149,3.94,23150,3.94,23151,3.94,23152,8.787,23153,3.94,23154,3.643,23155,3.94,23156,3.94,23157,7.73,23158,3.94,23159,3.94,23160,7.147,23161,3.94,23162,3.94,23163,3.94,23164,3.447,23165,3.643,23166,3.94,23167,3.301,23168,3.94,23169,7.73,23170,8.374,23171,5.22,23172,3.94,23173,3.94,23174,7.687,23175,3.94,23176,6.232,23177,3.447,23178,3.94,23179,6.232,23180,3.94,23181,3.94,23182,3.94,23183,3.94,23184,3.94,23185,3.94,23186,3.94,23187,3.643,23188,3.94,23189,3.94,23190,3.643,23191,3.94,23192,6.232,23193,3.643,23194,3.94,23195,3.94,23196,3.94,23197,8.124,23198,3.94,23199,3.643,23200,3.94,23201,3.94,23202,3.94,23203,3.643,23204,3.94,23205,3.94,23206,6.232,23207,3.94,23208,3.94,23209,3.94,23210,3.447,23211,3.94,23212,3.643,23213,3.94,23214,3.94,23215,3.94,23216,3.94,23217,3.643,23218,3.94,23219,3.94,23220,3.94,23221,3.94,23222,3.94,23223,5.761,23224,3.94,23225,3.94,23226,6.232,23227,6.232,23228,7.73,23229,7.73,23230,6.232,23231,6.232,23232,3.643,23233,3.94,23234,3.94,23235,3.301,23236,6.232,23237,3.94,23238,3.94,23239,3.94,23240,3.94,23241,3.447,23242,3.94,23243,3.94,23244,3.94,23245,3.94,23246,3.94,23247,6.232,23248,3.94,23249,3.643,23250,3.94]],["title/additional-documentation/nestjs-application/file-structure.html",[5,0.006,817,2.328,1236,2.846,5330,3.796]],["body/additional-documentation/nestjs-application/file-structure.html",[0,0.375,2,0.372,3,0.008,5,0.013,9,2.564,27,0.386,30,0.001,31,0.557,32,0.074,34,0.566,36,1.156,72,3.984,95,0.069,100,3.34,101,0.016,103,0,104,0,105,0.358,107,1.303,112,0.547,128,1.338,133,1.9,138,1.448,142,1.299,148,2.187,154,2.126,155,3.145,172,1.061,201,3.334,203,4.068,204,1.284,207,1.31,208,1.99,209,3.543,217,1.993,223,2.837,225,2.143,236,1.121,239,1.581,259,3.947,262,1.51,270,2.66,271,1.299,274,1.993,284,2.459,294,2.73,316,5.57,324,1.681,345,1.057,349,0.712,353,2.282,355,2.089,358,5.49,359,1.993,361,1.877,379,0.415,437,1.03,454,1.577,459,4.505,474,1.419,484,1.73,486,0.999,493,3.948,511,1.484,535,3.951,539,0.719,560,4.976,562,4.733,563,3.224,577,2.906,591,1.877,608,1.252,631,4.505,639,2.549,645,2.416,654,2.05,685,3.369,743,5.022,754,2.532,757,2.471,759,3.558,760,1.844,819,1.166,824,1.769,929,3.224,945,5.783,946,2.521,978,5.013,989,3.015,995,1.659,1078,5.399,1099,4.256,1220,5.569,1221,4.23,1228,5.921,1229,2.176,1236,4.048,1237,1.895,1242,5.055,1391,2.176,1413,1.972,1454,1.877,1455,5.013,1559,3.032,1600,2.591,1654,1.577,1665,2.176,1666,3.416,1667,2.684,1681,4.752,1689,1.813,1694,5.569,1695,2.871,1701,6.433,1715,2.903,1716,7.003,1717,2.602,1731,3.461,1750,2.322,1753,2.282,1909,1.533,1938,1.895,1962,1.828,2033,3.669,2128,3.669,2145,2.015,2158,3.098,2193,2.198,2344,1.895,2363,4.391,2365,5.215,2370,2.783,2371,2.906,2425,3.73,2430,5.267,2432,2.367,2585,1.844,2606,2.089,2702,1.568,2711,4.514,2820,1.606,2900,1.877,3022,2.532,3247,3.416,3306,2.684,3368,2.282,3414,2.089,3454,6.374,3609,2.322,3689,3.871,3717,1.951,3831,4.256,3832,2.282,3833,2.471,3852,3.731,3853,4.141,3854,2.116,3980,2.015,4019,2.089,4142,2.906,4145,2.176,4441,2.783,4483,1.972,4486,3.191,4596,4.39,4619,1.717,4644,2.532,4691,1.742,4693,2.282,5071,5.072,5206,2.145,5330,2.602,5461,4.281,5508,2.416,5520,2.532,6131,2.116,6164,2.176,6182,3.071,6219,2.282,6220,2.209,6227,2.367,6258,3.588,6497,5.399,6506,3.798,6511,2.684,6539,4.582,6925,3.931,7098,4.39,7111,3.461,7155,2.532,7275,2.145,7563,2.532,7815,2.532,7890,4.733,8119,2.416,8224,6.372,8333,2.532,8383,2.532,8393,2.783,8483,6.854,8971,2.532,9630,3.071,9635,3.071,9674,2.532,9688,3.461,9705,2.602,9706,7.008,9707,5.569,9708,2.684,9709,2.783,9710,2.783,9823,2.906,9840,4.551,9841,2.602,9998,2.471,10009,2.367,10741,2.783,10791,2.783,10910,2.783,11329,2.684,11361,5.022,11362,2.532,11754,2.783,11755,5.773,11786,4.391,11796,5.126,11810,2.906,11849,6.029,12053,4.551,12054,2.532,12323,5.013,12863,6.877,13145,2.906,13210,3.071,13903,4.256,14967,2.684,15030,3.071,15092,3.071,15093,3.071,15094,3.071,15095,2.906,15133,2.906,15356,2.532,15394,6.029,15962,2.602,16873,2.602,17096,2.367,17582,4.752,18688,7.382,18930,2.906,19740,4.551,19832,3.071,20708,7.382,22299,4.39,22308,2.783,22324,2.783,22325,5.399,22334,2.906,22343,5.773,22345,2.684,22347,6.433,22352,2.906,22354,2.783,22396,3.071,22398,2.684,22469,2.783,22484,2.906,22490,2.906,22491,3.071,22511,2.906,22515,3.071,22535,2.684,22591,3.071,22629,2.684,22697,2.906,22804,6.372,22874,2.906,22881,2.783,22898,3.071,22916,2.783,22944,3.071,22945,4.39,22955,2.783,22962,6.669,22963,6.029,22972,2.783,23017,5.773,23023,4.551,23062,3.071,23063,6.029,23064,2.906,23067,3.071,23164,2.906,23170,2.906,23171,2.783,23174,2.906,23232,3.071,23251,7.36,23252,4.752,23253,6.372,23254,3.071,23255,3.322,23256,5.432,23257,3.322,23258,9.423,23259,7.961,23260,3.322,23261,3.322,23262,3.322,23263,5.432,23264,7.961,23265,3.322,23266,3.322,23267,3.322,23268,3.322,23269,5.432,23270,2.906,23271,3.322,23272,3.322,23273,3.322,23274,3.322,23275,3.322,23276,3.322,23277,3.322,23278,3.322,23279,3.322,23280,3.322,23281,3.322,23282,3.322,23283,3.322,23284,3.071,23285,3.322,23286,3.322,23287,3.322,23288,3.322,23289,3.322,23290,3.322,23291,3.322,23292,3.322,23293,3.322,23294,3.322,23295,3.322,23296,3.322,23297,3.071,23298,3.322,23299,3.071,23300,5.022,23301,3.322,23302,3.322,23303,3.322,23304,3.322,23305,3.322,23306,3.322,23307,3.322,23308,3.322,23309,3.322,23310,3.322,23311,3.322,23312,3.322,23313,3.322,23314,3.322,23315,3.322,23316,3.322,23317,3.322,23318,3.322,23319,3.322,23320,3.071,23321,3.322,23322,3.322,23323,3.322,23324,3.322,23325,3.322,23326,3.071,23327,3.322,23328,3.322,23329,3.322,23330,3.322,23331,3.322,23332,3.322,23333,6.372,23334,2.906,23335,5.432,23336,3.322,23337,3.322,23338,3.322,23339,3.322,23340,3.322,23341,3.322]],["title/additional-documentation/nestjs-application/api-design.html",[817,2.328,1220,2.713,1236,2.846,22955,4.059]],["body/additional-documentation/nestjs-application/api-design.html",[30,0.001,103,0.001,104,0.001,22694,9.827]],["title/additional-documentation/nestjs-application/logging.html",[817,2.721,1236,3.326,6504,4.211]],["body/additional-documentation/nestjs-application/logging.html",[0,0.349,3,0.018,8,0.942,26,1.664,30,0.001,39,3.085,95,0.1,101,0.017,103,0.001,104,0.001,105,0.848,131,2.943,177,1.438,191,4.251,201,2.081,236,1.278,284,3.758,345,3.274,349,0.811,358,4.525,462,4.36,475,4.031,517,3.012,528,4.09,572,8.058,591,4.439,639,3.687,662,2.47,685,3.324,945,4.821,986,3.478,1021,4.941,1229,6.738,1271,5.584,1272,5.278,1274,2.485,1276,3.215,1277,3.871,2250,5.645,2251,3.547,2344,4.48,2355,4.821,2369,5.395,2430,7.301,4019,4.94,4321,4.766,4483,4.663,4649,6.872,4693,7.877,5504,3.192,5519,5.223,5526,6.348,6400,6.348,6504,9.051,6901,5.714,6954,5.714,8390,9.231,8391,7.263,8422,6.154,10967,6.348,11613,5.988,11755,6.581,12055,5.843,12091,8.999,12092,6.872,12324,6.154,12630,6.581,13910,6.348,14453,6.581,19062,6.872,20521,8.058,22533,6.154,22577,7.263,22629,6.348,22945,6.348,23342,7.856,23343,7.856,23344,7.856,23345,10.286,23346,7.856,23347,7.856,23348,7.856,23349,7.856,23350,7.856,23351,7.856,23352,7.856,23353,7.856,23354,7.856,23355,7.856,23356,7.263,23357,7.263,23358,7.856]],["title/additional-documentation/nestjs-application/exception-handling.html",[817,2.328,1236,2.846,4483,2.876,6503,3.452]],["body/additional-documentation/nestjs-application/exception-handling.html",[0,0.308,9,3.082,30,0.001,31,0.366,32,0.162,47,0.796,48,5.357,51,4.417,72,4.121,101,0.015,103,0.001,104,0.001,105,0.705,141,3.119,172,2.899,177,1.662,180,1.17,182,2.124,183,5.277,193,4.749,201,1.73,236,1.835,283,5.572,284,3.224,345,2.078,348,4.533,349,0.674,355,4.107,358,4.592,437,0.845,459,4.659,463,3.534,472,3.451,476,3.657,486,3.14,511,4.056,529,2.953,535,4.749,579,3.478,603,1.312,662,2.053,685,2.763,757,4.857,819,3.186,946,4.843,986,4.51,1021,4.801,1147,4.107,1174,3.506,1202,3.724,1203,2.085,1219,6.037,1220,5.084,1221,6.406,1227,6.604,1229,8.04,1236,5.333,1237,5.953,1239,4.008,1245,4.217,1271,5.632,1276,2.838,1277,3.218,1541,5.277,1549,5.47,1557,6.037,1666,4.107,1815,4.342,2158,3.724,2360,5.47,2362,3.918,2369,4.485,2430,7.364,3022,4.977,3246,4.342,3268,4.653,3454,6.195,3539,2.665,3831,5.115,3850,9.581,3851,5.277,3856,8.177,4019,6.564,4483,7.837,4644,4.977,4693,4.485,5528,5.47,6503,4.653,6504,6.753,6510,5.47,8059,5.47,8368,3.375,8383,7.956,8390,4.565,8442,4.977,8448,6.037,8450,5.47,8826,3.797,8827,3.962,9688,5.784,9841,5.115,10893,6.037,12055,4.857,13912,5.277,15027,5.47,20852,6.037,22292,5.47,22372,6.037,22533,5.115,22699,12.055,23171,5.47,23235,5.47,23284,6.037,23359,6.037,23360,6.53,23361,9.079,23362,6.53,23363,6.53,23364,6.53,23365,6.53,23366,6.53,23367,6.53,23368,6.53,23369,6.53,23370,6.53,23371,6.53,23372,6.53,23373,6.53,23374,6.53,23375,6.037,23376,6.53,23377,6.53,23378,6.53,23379,6.53,23380,6.037,23381,6.53]],["title/additional-documentation/nestjs-application/domain-object-validation.html",[133,1.481,817,2.035,1221,2.599,1236,2.487,1715,1.783]],["body/additional-documentation/nestjs-application/domain-object-validation.html",[0,0.306,30,0.001,103,0.001,104,0.001,105,1.211,119,1.831,133,4.605,253,5.493,358,3.958,454,4.272,472,4.755,479,3.37,493,4.463,578,5.459,662,2.829,760,6.227,1221,5.522,1616,5.982,1666,5.659,1715,5.546,1756,6.18,1864,3.332,2033,6.077,2333,6.59,2354,7.537,2362,6.731,2369,7.705,2425,4.869,2430,5.398,2624,5.012,2821,3.958,3074,5.084,3460,7.537,5501,7.871,5508,6.544,6164,5.894,8051,6.692,8249,6.077,9706,6.077,9972,6.692,10382,8.551,11627,6.411,12323,6.544,13903,7.049,18957,6.858,22320,7.271,22430,9.398,22462,7.271,22593,8.319,22874,7.871,22884,10.372,23165,8.319,23333,12.836,23382,8.997,23383,8.997,23384,8.997,23385,8.997,23386,11.218,23387,8.997,23388,8.997,23389,8.997,23390,8.997,23391,11.218,23392,8.997]],["title/additional-documentation/nestjs-application/testing.html",[817,2.721,1236,3.326,11384,4.034]],["body/additional-documentation/nestjs-application/testing.html",[0,0.18,27,0.164,29,0.412,30,0.001,31,0.297,32,0.107,35,0.481,36,1.662,51,1.126,72,4.379,79,3.504,94,1.126,95,0.029,96,0.636,100,0.777,103,0,104,0,131,0.867,153,0.91,154,0.856,155,1.767,168,2.284,201,2.349,204,2.439,208,1.939,219,0.901,220,0.88,223,1.649,225,0.912,236,0.376,238,3.049,239,0.919,253,1.133,259,0.88,262,2.395,280,1.589,284,3.078,292,1.171,316,3.389,349,0.807,353,1.589,355,2.519,357,1.763,358,4.719,359,1.388,363,1.295,437,1.387,459,1.187,474,4.378,475,3.239,478,4.161,480,1.753,486,1.205,487,1.284,493,4.398,500,1.373,517,2.735,535,1.683,560,2.599,562,2.751,564,1.626,569,1.648,574,4.695,579,1.232,590,1.42,591,3.567,608,2.297,636,2.329,639,1.086,685,3.306,708,0.961,751,3.053,757,1.721,821,1.494,929,7.622,930,1.812,933,2.306,946,4.114,978,1.683,986,3.465,989,3.504,994,1.092,995,1.155,1000,1.763,1112,1.648,1174,2.15,1194,1.377,1220,4.965,1228,1.721,1229,1.515,1237,1.319,1239,1.42,1241,3.504,1242,4.499,1285,1.494,1389,4.498,1392,2.139,1435,2.024,1454,1.307,1455,1.683,1542,2.979,1559,3.437,1615,1.404,1616,2.663,1665,1.515,1666,1.455,1668,1.763,1680,1.812,1750,3.702,1753,2.751,1756,1.589,1757,1.538,1759,5.789,1760,3.504,1762,4.279,1864,1.483,1938,1.319,1962,2.204,2029,1.721,2031,1.307,2032,2.519,2109,1.589,2113,1.683,2166,2.024,2249,3.049,2295,4.591,2306,2.552,2333,1.359,2334,3.6,2344,4.781,2355,3.25,2362,2.403,2363,8.147,2365,1.515,2370,1.938,2373,2.024,2398,1.763,2418,1.359,2425,4.536,2430,5.789,2431,5.118,2432,4.498,2486,0.767,2585,1.284,2606,1.455,2617,1.683,2663,3.355,2900,1.307,2982,2.243,3060,1.008,3072,1.056,3074,1.307,3078,1.155,3110,4.945,3246,1.538,3268,1.648,3284,2.43,3393,1.617,3454,2.377,3457,6.879,3546,1.812,3609,1.617,3832,2.751,3852,1.589,3853,1.763,3854,1.474,3956,2.979,4144,2.024,4145,2.623,4545,4.591,4619,2.07,4644,3.053,4691,1.213,4693,3.637,4699,1.812,5071,1.474,5098,1.474,5105,1.515,5230,3.33,5330,5.589,5336,1.938,5461,2.488,5508,2.913,5519,1.538,5520,1.763,5522,1.763,5523,1.869,5524,1.763,5530,1.763,5555,1.938,5698,2.751,5753,1.869,6164,1.515,6177,1.938,6220,2.663,6296,1.538,6501,1.617,6503,2.854,6539,1.538,6595,1.648,6599,1.721,6828,4.591,6900,1.437,6901,1.683,6911,1.721,6925,1.319,6952,3.469,7002,6.242,7094,1.437,7101,1.812,7553,1.617,7563,3.053,7843,3.053,7871,1.812,7873,3.42,7881,3.504,7887,3.355,7890,2.751,7989,2.024,8119,2.913,8333,1.763,8392,6.595,8797,7.502,9425,1.812,9674,5.438,9675,2.139,9688,4.545,9705,3.137,9706,1.563,9841,6.946,9870,1.763,10088,1.812,10382,1.763,10383,2.139,10402,3.236,10691,1.683,10694,3.053,10729,2.8,10735,5.683,10738,1.721,10770,1.938,10952,1.812,10962,2.139,11362,1.763,11363,1.812,11382,7.223,11384,7.789,11621,1.683,11626,2.705,11627,1.648,11769,1.812,11770,2.139,11774,1.683,11786,2.552,11849,2.024,12054,3.053,12323,2.913,12631,2.139,13050,4.279,13057,1.869,13156,1.938,13416,2.024,13423,5.522,13651,1.869,13798,2.139,13844,2.024,13849,2.024,13902,3.504,13903,1.812,13910,1.869,13911,2.139,13912,1.869,13930,1.648,14121,3.939,14182,1.812,14449,3.703,14453,3.355,14880,1.938,15134,2.024,15186,3.236,15353,3.355,15563,2.139,15962,1.812,16879,1.869,17096,3.773,17166,1.938,17176,2.024,17391,1.938,17905,2.024,17939,2.024,18042,3.504,18693,1.938,18957,1.763,19115,2.024,19732,1.869,19740,1.938,19867,3.236,19917,3.504,19919,2.139,19925,2.139,20116,1.938,20117,1.869,20298,3.703,20300,4.812,20301,5.836,20305,5.836,20310,5.522,20311,2.979,20569,3.504,20708,3.137,21357,7.75,21370,3.236,21612,4.896,22217,2.024,22241,2.139,22293,3.053,22295,3.355,22304,3.355,22309,1.763,22316,1.763,22320,1.869,22322,2.024,22325,4.945,22345,1.869,22361,1.938,22373,2.139,22376,2.139,22379,2.139,22381,2.139,22393,1.869,22394,1.938,22398,1.869,22399,2.139,22414,2.139,22415,2.139,22430,3.355,22447,3.504,22462,4.279,22469,1.938,22487,2.139,22490,2.024,22496,2.139,22504,2.024,22506,2.024,22512,2.024,22535,1.869,22576,2.024,22582,2.024,22615,2.024,22629,1.869,22649,2.024,22694,2.024,22805,2.139,22823,2.139,22857,2.139,22885,2.139,22889,2.139,22895,2.024,22929,2.024,22942,1.938,22962,1.938,22963,2.024,22972,4.436,22987,4.896,22989,3.703,23017,1.938,23023,7.428,23061,2.024,23128,2.139,23160,2.139,23170,2.024,23171,1.938,23174,3.504,23177,2.024,23190,2.139,23197,2.139,23199,2.139,23210,3.504,23212,2.139,23217,8.92,23235,3.355,23241,3.504,23249,3.703,23251,4.896,23252,2.024,23253,3.703,23254,2.139,23270,3.504,23299,2.139,23300,2.139,23326,2.139,23357,2.139,23359,2.139,23375,2.139,23393,2.313,23394,2.313,23395,2.313,23396,6.312,23397,2.024,23398,2.313,23399,5.295,23400,2.313,23401,4.005,23402,2.313,23403,2.313,23404,4.005,23405,2.313,23406,2.313,23407,2.313,23408,2.024,23409,2.313,23410,2.313,23411,2.313,23412,2.313,23413,2.313,23414,2.313,23415,2.313,23416,2.313,23417,2.313,23418,2.313,23419,2.313,23420,2.313,23421,6.312,23422,2.313,23423,2.139,23424,2.313,23425,2.313,23426,2.139,23427,2.313,23428,2.313,23429,7.813,23430,2.313,23431,2.313,23432,2.313,23433,2.313,23434,2.313,23435,2.139,23436,3.703,23437,4.005,23438,7.134,23439,4.005,23440,2.313,23441,2.313,23442,2.024,23443,2.313,23444,5.295,23445,4.005,23446,4.005,23447,7.813,23448,4.005,23449,2.313,23450,2.313,23451,2.139,23452,2.024,23453,5.295,23454,2.313,23455,5.295,23456,4.005,23457,7.134,23458,4.005,23459,5.295,23460,2.313,23461,2.313,23462,2.313,23463,4.005,23464,8.382,23465,2.313,23466,2.313,23467,2.313,23468,2.313,23469,2.313,23470,2.313,23471,2.313,23472,2.313,23473,2.313,23474,2.313,23475,2.313,23476,2.313,23477,2.313,23478,2.313,23479,2.313,23480,2.313,23481,2.313,23482,4.005,23483,2.313,23484,2.139,23485,5.295,23486,2.313,23487,2.313,23488,2.313,23489,2.313,23490,5.295,23491,2.313,23492,4.005,23493,4.005,23494,2.313,23495,2.313,23496,2.313,23497,2.313,23498,2.313,23499,4.005,23500,4.005,23501,4.005,23502,5.295,23503,2.313,23504,2.313,23505,4.005,23506,4.005,23507,4.005,23508,5.295,23509,2.313,23510,2.313,23511,2.313,23512,4.005,23513,2.313,23514,4.005,23515,2.313,23516,2.313,23517,2.313,23518,2.313,23519,4.005,23520,4.005,23521,2.313,23522,2.313,23523,2.313,23524,2.313,23525,7.134,23526,2.313,23527,5.295,23528,2.139,23529,2.024,23530,2.313,23531,2.313,23532,2.313,23533,2.313,23534,2.313,23535,2.313,23536,2.313,23537,2.313,23538,6.312,23539,2.313,23540,2.313,23541,4.005,23542,4.005,23543,2.313,23544,4.005,23545,2.313,23546,2.313,23547,2.313,23548,2.313,23549,2.313,23550,2.313,23551,2.313,23552,2.139,23553,2.313,23554,2.313,23555,2.313,23556,2.313,23557,2.313,23558,2.313,23559,4.005,23560,2.313,23561,2.313,23562,2.313,23563,2.313,23564,2.313,23565,2.313,23566,2.313,23567,2.313,23568,2.313,23569,2.313,23570,2.313]],["title/additional-documentation/nestjs-application/vscode.html",[817,2.721,1236,3.326,22297,4.575]],["body/additional-documentation/nestjs-application/vscode.html",[5,0.014,30,0.001,72,4.378,103,0.001,104,0.001,511,5.23,590,5.919,753,7.556,824,5.137,929,5.725,2113,7.015,2363,7.459,2589,6.413,3454,6.949,3853,7.352,3854,7.459,4691,6.141,6220,6.413,6258,6.096,6296,6.413,6499,8.079,8051,7.173,11791,7.793,11796,7.173,14421,8.437,20300,8.924,22297,9.461,22326,10.242,22503,8.079,22595,8.917,22766,8.437,22880,8.917,22932,11.655,22961,8.917,22968,8.079,23023,8.079,23063,8.437,23098,8.917,23134,8.917,23167,8.079,23270,8.437,23334,10.242,23571,9.644,23572,9.644,23573,9.644,23574,9.644,23575,9.644,23576,9.644,23577,9.644]],["title/additional-documentation/nestjs-application/git.html",[817,2.721,1236,3.326,22298,4.743]],["body/additional-documentation/nestjs-application/git.html",[30,0.001,31,0.42,55,2.411,72,3.4,77,4.772,103,0.001,104,0.001,153,1.703,220,2.849,324,3.79,353,5.144,358,3.295,486,2.253,511,3.346,517,2.872,760,6.218,824,3.989,932,6.275,946,5.198,994,3.536,1021,2.93,1203,2.391,1242,4.313,1452,6.275,1453,6.053,1454,5.632,1616,6.627,1665,7.338,1685,7.103,1752,4.906,1757,4.98,1770,4.087,1776,10.049,1777,9.801,1909,3.456,2031,4.232,2128,5.059,2158,4.272,2333,4.4,2344,4.272,2363,6.35,2365,4.906,2418,4.4,2430,6.722,2634,3.515,2768,4.446,2820,4.82,3393,5.236,4691,3.929,5105,7.338,5461,4.652,5524,5.709,6181,8.72,6506,5.236,6779,4.837,6896,5.868,7111,4.772,7815,5.709,7890,5.144,8392,5.571,9425,5.868,10226,5.236,11625,4.906,11629,5.571,11769,5.868,11881,5.337,11882,5.337,12026,6.553,12053,6.275,12322,6.553,13849,6.553,13851,8.883,14121,5.571,15275,6.553,19748,6.925,22298,10.005,22315,6.553,22320,6.053,22330,6.553,22331,6.553,22343,9.385,22348,8.35,22394,10.005,22395,6.925,22408,9.215,22533,7.809,22535,6.053,22582,9.801,22661,6.925,22826,6.925,22945,9.053,22975,6.925,22996,8.72,23154,6.925,23167,8.35,23187,6.925,23252,8.72,23297,6.925,23528,6.925,23529,6.553,23578,7.49,23579,7.49,23580,7.49,23581,7.49,23582,7.49,23583,7.49,23584,7.49,23585,7.49,23586,7.49,23587,7.49,23588,7.49,23589,7.49,23590,7.49,23591,7.49,23592,9.967,23593,7.49,23594,7.49,23595,9.967,23596,7.49,23597,7.49,23598,7.49,23599,7.49,23600,7.49,23601,7.49,23602,7.49,23603,7.49,23604,7.49,23605,7.49,23606,7.49,23607,7.49]],["title/additional-documentation/nestjs-application/keycloak.html",[568,3.607,817,2.721,1236,3.326]],["body/additional-documentation/nestjs-application/keycloak.html",[5,0.005,18,2.272,30,0.001,31,0.602,51,3.357,53,6.112,78,8,87,3.468,95,0.12,101,0.016,103,0,104,0,128,1.808,137,4.339,153,1.568,208,1.644,219,1.749,220,1.708,239,1.583,284,3.318,319,2.027,321,5.018,353,3.084,357,3.422,358,4.149,511,3.082,517,2.645,568,8.585,569,3.199,591,2.537,600,2.789,685,1.9,741,3.266,757,3.339,761,5.78,763,3.084,824,5.421,929,4.095,965,3.084,989,2.492,1075,2.637,1076,5.354,1128,3.139,1202,3.935,1220,3.864,1229,2.941,1423,5.78,1447,5.354,1454,3.899,1660,3.468,1665,4.519,1731,2.86,1752,2.941,1892,3.199,1922,3.734,1962,6.355,2019,4.452,2031,2.537,2113,3.266,2145,2.724,2256,6.65,2268,9.047,2279,2.755,2355,2.755,2364,5.771,2365,2.941,2369,3.084,2430,6.929,2774,7.921,2822,6.929,2900,3.899,3060,3.66,3072,2.049,3247,5.285,3452,5.771,3457,4.519,3539,1.832,3544,3.032,3854,2.86,3928,6.405,4545,3.266,4619,4.343,4693,3.084,5461,2.789,5514,3.422,5569,3.928,6220,2.985,6442,3.339,6498,3.517,6540,2.637,6779,4.456,6828,3.266,6900,4.285,7094,4.285,7111,2.86,7349,6.859,7869,5.875,8051,5.132,8390,4.824,8392,3.339,8797,8.682,9706,3.032,10133,3.517,10373,3.761,10693,3.339,10762,2.724,11248,6.112,11384,5.988,11597,2.561,11615,7.758,11625,2.941,11626,5.676,11643,3.517,11656,7.388,11697,8.25,11726,4.285,11754,3.761,11824,3.928,11953,3.628,12940,6.477,13296,7.351,13393,7.351,13396,7.621,13434,7.189,13528,3.928,13651,3.628,13653,4.151,13851,6.25,14421,3.928,14965,3.628,15014,6.79,15373,4.151,15494,3.761,15719,3.761,17096,5.988,19922,3.928,20300,3.422,20311,5.132,21370,3.628,22293,3.422,22296,3.928,22309,9.516,22319,3.928,22348,3.761,22398,3.628,22416,3.928,22456,4.151,22533,5.405,22565,4.151,22598,4.151,22631,4.151,22703,4.151,22953,8.903,22968,7.9,23031,10.763,23046,9.409,23047,7.769,23048,6.379,23049,6.379,23050,6.379,23051,8.719,23052,6.379,23053,6.379,23054,8.719,23056,4.151,23130,6.379,23426,4.151,23435,4.151,23442,3.928,23484,4.151,23608,4.49,23609,4.49,23610,4.49,23611,4.49,23612,9.43,23613,4.49,23614,4.49,23615,4.49,23616,6.899,23617,4.49,23618,4.49,23619,6.899,23620,4.49,23621,4.49,23622,4.49,23623,4.49,23624,6.899,23625,4.49,23626,6.899,23627,6.899,23628,6.899,23629,6.899,23630,11.19,23631,6.899,23632,6.899,23633,6.899,23634,6.899,23635,4.49,23636,4.49,23637,4.49,23638,10.177,23639,6.899,23640,6.899,23641,4.49,23642,4.49,23643,6.899,23644,4.49,23645,4.49,23646,4.49,23647,4.49,23648,4.49,23649,4.49,23650,4.49,23651,6.899,23652,4.49,23653,4.49,23654,4.49,23655,6.899,23656,6.899,23657,4.49,23658,4.49,23659,4.49,23660,4.49,23661,4.49,23662,4.49,23663,4.49,23664,4.49,23665,4.49,23666,4.49]],["title/additional-documentation/nestjs-application/rocket.chat.html",[817,2.721,1236,3.326,23667,5.235]],["body/additional-documentation/nestjs-application/rocket.chat.html",[5,0.009,30,0.001,31,0.416,103,0.001,104,0.001,358,3.271,696,2.932,751,9.93,824,3.96,933,4.281,945,6.087,971,4.091,988,5.198,1053,5.667,1099,7.77,1127,5.824,1667,6.008,1962,5.458,2019,3.51,2256,8.269,2268,5.824,2333,4.367,2430,7.443,2589,4.943,2822,4.461,3072,3.393,3452,5.106,3453,4.676,3457,4.87,3539,4.047,3854,4.737,6442,5.53,7108,5.667,8968,5.408,10123,5.022,11649,5.408,15014,6.008,15276,6.504,15394,6.504,16612,6.228,17582,8.677,19732,6.008,19741,6.874,20311,5.53,21627,6.228,22309,7.56,22535,6.008,22953,6.504,22981,6.228,23031,10.852,23334,6.504,23667,10.319,23668,7.435,23669,7.435,23670,7.435,23671,7.435,23672,7.435,23673,9.918,23674,7.435,23675,7.435,23676,7.435,23677,7.435,23678,7.435,23679,7.435,23680,9.918,23681,7.435,23682,7.435,23683,7.435,23684,7.435,23685,7.435,23686,7.435,23687,7.435,23688,7.435,23689,7.435,23690,7.435,23691,7.435,23692,7.435,23693,7.435,23694,7.435,23695,7.435,23696,7.435,23697,7.435,23698,7.435,23699,7.435,23700,7.435,23701,7.435,23702,7.435,23703,7.435,23704,7.435,23705,7.435,23706,7.435,23707,7.435,23708,7.435,23709,7.435,23710,7.435,23711,7.435,23712,7.435,23713,7.435,23714,7.435,23715,9.918,23716,9.918,23717,7.435,23718,7.435]],["title/additional-documentation/nestjs-application/configuration.html",[817,2.721,1236,3.326,2017,2.478]],["body/additional-documentation/nestjs-application/configuration.html",[30,0.001,31,0.482,34,1.03,55,2.155,102,3.04,103,0,104,0.001,131,2.266,141,4.11,153,1.375,204,2.338,236,0.984,261,4.755,292,3.061,355,5.411,358,2.661,359,3.629,360,7.051,361,3.418,458,3.357,475,3.104,486,1.82,511,3.844,517,2.319,563,3.59,564,2.642,685,4.237,749,3.962,754,4.611,759,3.962,824,3.222,845,5.067,929,3.59,930,4.739,932,10.321,945,3.712,946,4.646,986,2.909,1021,2.366,1202,3.45,1203,1.931,1220,4.818,1239,5.28,1455,6.258,1579,3.517,1615,3.67,1666,3.804,1716,6.992,1731,3.854,1750,4.229,1770,3.301,1776,8.814,1962,4.734,2017,2.648,2019,2.855,2031,3.418,2344,6.221,2362,6.544,2363,5.481,2364,5.909,2369,4.154,2381,5.481,2430,3.629,2431,3.962,2744,6.297,3072,2.76,3246,4.022,3454,6.84,3457,7.144,3689,4.31,3853,6.558,3854,8.53,3928,4.611,4145,3.962,4549,4.888,4691,3.173,5079,3.483,5230,5.411,5336,5.067,5461,5.344,5508,4.4,5522,4.611,5753,4.888,6131,3.854,6219,4.154,6317,5.636,6400,4.888,6503,4.31,6504,4.499,6683,6.544,6779,5.556,6925,4.907,6930,4.611,7523,4.499,7890,4.154,8826,3.517,8971,6.558,9594,5.292,9655,4.739,10387,8.314,10769,4.888,11384,4.31,11626,4.086,11769,4.739,11774,6.258,11786,5.481,11820,5.292,12054,6.558,13075,7.844,13650,8.091,13851,4.499,14121,4.499,14182,6.74,14320,4.888,14967,4.888,15356,4.611,15372,5.067,15716,5.067,15717,4.888,16873,4.739,16879,6.952,17096,4.31,18342,5.292,20521,4.739,21627,5.067,21859,5.292,22292,7.207,22293,4.611,22294,5.292,22295,5.067,22296,5.292,22297,4.888,22298,7.207,22299,6.952,22300,5.292,22301,5.292,22302,5.292,22303,7.954,22304,7.207,22305,5.592,22306,5.592,22307,5.592,22308,5.067,22309,7.633,22310,5.292,22311,7.954,22312,5.067,22313,5.067,22314,7.954,22315,5.292,22316,4.611,22317,5.067,22318,5.292,22319,5.292,22320,4.888,22321,5.592,22322,5.292,22323,5.592,22324,5.067,22325,4.739,22326,5.292,22327,7.954,22328,7.954,22329,8.76,22330,10.081,22331,5.292,22332,5.592,22333,7.954,22334,5.292,22335,5.592,22336,5.592,22337,5.592,22338,7.954,22339,7.954,22340,5.592,22341,5.592,22342,5.592,22343,5.067,22344,5.592,22345,4.888,22346,5.592,22347,6.952,22348,7.207,22349,5.592,22350,5.067,22351,5.592,22352,5.292,22353,5.592,22354,5.067]],["title/additional-documentation/nestjs-application/authorisation.html",[817,2.721,1236,3.326,3546,4.435]],["body/additional-documentation/nestjs-application/authorisation.html",[0,0.075,5,0.006,8,0.46,9,1.041,10,1.56,26,1.924,27,0.09,30,0.001,31,0.342,32,0.052,33,0.106,34,0.869,47,0.611,72,4.29,74,1.781,94,1.073,101,0.008,103,0,104,0,105,0.238,119,1.039,131,3.662,133,2.658,141,1.053,142,2.389,143,1.36,145,1.066,153,0.501,154,1.942,155,1.703,172,0.704,177,0.934,180,0.395,182,0.717,201,2.504,203,1.381,209,1.444,236,1.126,239,2.922,253,1.88,261,1.047,262,1.517,271,2.708,275,5.646,276,4.279,316,2.062,321,3.712,345,0.702,349,0.895,355,3.84,358,4.541,359,1.323,363,1.234,437,1.527,459,1.971,474,0.942,475,2.619,478,3.688,487,1.224,511,0.985,517,1.472,521,2.418,535,1.603,539,0.292,560,4.761,562,4.755,563,3.625,564,0.677,576,1.929,590,3.748,591,2.17,603,1.227,604,0.896,608,1.884,643,3.077,651,1.053,652,1.053,653,1.139,654,3.309,662,1.208,685,3.665,708,0.916,753,1.727,757,3.795,759,3.343,760,5.042,763,1.514,824,1.174,834,1.6,931,1.404,933,4.988,945,1.353,946,1.023,989,3.843,998,2.594,1003,1.541,1157,3.944,1174,1.183,1220,3.419,1229,1.444,1236,3.587,1239,1.353,1242,2.938,1276,0.689,1391,3.343,1395,2.038,1396,1.541,1413,1.308,1451,1.929,1454,3.912,1559,1.689,1600,1.444,1606,1.193,1609,5.808,1610,4.665,1615,3.096,1616,3.393,1631,8.061,1632,6.057,1634,2.385,1654,2.423,1660,6.281,1665,2.516,1666,4.354,1667,1.781,1668,1.68,1669,2,1672,3.096,1676,1.006,1680,1.727,1686,2.927,1700,3.795,1715,4.613,1716,1.337,1717,5.955,1752,4.979,1753,1.514,1755,4.194,1756,2.638,1758,1.727,1759,1.323,1760,5.342,1761,4.933,1762,4.123,1770,3.778,1788,2.038,1793,4.2,1795,1.727,1813,1.424,1817,5.871,1818,1.781,1824,1.466,1858,2.438,1864,4.234,1869,2.415,1880,0.912,1932,2.685,1938,2.91,1962,2.808,2001,1.489,2019,1.041,2031,1.246,2033,2.594,2145,1.337,2146,2.038,2333,3.587,2334,1.257,2344,4.335,2345,4.123,2346,2.038,2355,1.353,2360,3.217,2362,1.323,2365,1.444,2381,6.413,2418,2.997,2430,6.858,2431,2.516,2432,5.416,2473,4.269,2555,6.23,2585,1.224,2624,0.985,2634,2.395,2677,2.304,2702,3.588,2768,1.308,2775,5.824,2896,1.323,3022,3.89,3060,1.673,3070,1.781,3072,3.73,3073,2.447,3074,3.451,3078,4.719,3160,1.404,3247,5.14,3353,1.444,3357,2.594,3368,3.505,3392,1.404,3453,1.386,3454,2.28,3538,3.009,3539,0.9,3548,1.64,3609,4.84,3830,1.781,3832,4.755,3851,1.781,3853,1.68,3854,4.411,4145,5.95,4206,1.303,4441,1.847,4546,1.781,4550,2.594,4551,1.929,4564,5.077,4648,1.514,4689,1.466,4691,1.156,4693,6.715,4914,1.353,5071,2.447,5105,2.516,5230,4.781,5330,3.009,5504,5.077,5514,1.68,5523,1.781,5753,1.781,6164,2.516,6219,1.514,6258,3.605,6318,1.466,6497,1.727,6501,1.541,6506,1.541,6538,1.571,6592,1.781,6599,2.856,6683,1.323,6779,3.944,6828,1.603,6858,1.929,6859,1.847,6901,1.603,6921,2.078,6925,4.94,6927,1.571,6929,3.89,6943,1.727,6948,1.68,7052,2.038,7096,5.342,7106,1.404,7114,2.793,7348,1.781,7433,1.386,7523,1.64,7553,1.541,7843,1.68,7865,1.727,7879,3.89,8119,1.603,8383,1.68,8392,3.795,8393,1.847,8826,1.282,8968,1.603,9688,3.89,9706,5.134,9708,4.123,9870,1.68,9972,1.64,10123,1.489,10226,1.541,10580,1.847,10586,1.929,10762,3.096,10774,1.64,10792,5.794,10960,1.929,11391,4.718,11627,1.571,11629,1.64,11707,2.038,11726,1.369,11774,5.036,11786,1.404,11851,2.038,11948,2.553,12042,1.781,12055,1.64,12323,5.529,12630,4.275,12955,1.929,13059,3.217,13156,1.847,13157,4.275,13803,3.551,13804,1.847,13847,2.038,13851,1.64,13902,1.929,13903,3.009,13908,1.781,13930,1.571,14182,3.009,14199,3.217,14265,2.038,14276,2.038,14320,1.781,14453,1.847,14581,2.793,14967,3.103,15353,3.217,15356,1.68,15368,1.929,15962,1.727,16455,2.038,16618,1.929,16643,2.038,16720,1.929,16873,1.727,16879,1.781,17096,2.737,17166,1.847,17749,3.36,18426,1.929,18919,2.038,19732,3.103,19733,2.038,19740,1.847,19813,2.038,19915,6.65,19920,4.123,19946,5.646,20064,2.038,20117,1.781,20311,2.856,20329,2.038,20374,3.103,20708,3.009,20709,2.038,21370,4.934,21419,2.038,21420,2.038,22101,3.551,22217,7.947,22312,1.847,22316,3.89,22317,1.847,22324,1.847,22325,1.727,22345,1.781,22393,3.103,22398,5.595,22417,2.038,22425,1.847,22430,3.217,22450,1.929,22465,2.038,22511,3.36,22678,2.038,22695,2.038,22766,5.342,22881,1.847,22891,2.038,22894,2.038,22916,1.847,22942,1.847,22964,2.038,22981,1.847,22982,1.929,23061,4.464,23135,2.038,23164,1.929,23167,3.217,23177,1.929,23193,4.718,23203,2.038,23210,1.929,23223,3.551,23241,4.464,23320,3.551,23356,2.038,23397,1.929,23408,1.929,23423,2.038,23436,2.038,23442,1.929,23451,2.038,23529,1.929,23552,3.551,23719,2.204,23720,2.204,23721,3.84,23722,2.204,23723,5.103,23724,2.204,23725,2.204,23726,2.038,23727,6.106,23728,3.84,23729,2.204,23730,2.204,23731,3.84,23732,3.84,23733,3.84,23734,2.204,23735,2.204,23736,3.84,23737,8.662,23738,2.204,23739,2.204,23740,2.204,23741,3.84,23742,2.204,23743,2.204,23744,2.204,23745,2.204,23746,2.204,23747,2.204,23748,3.84,23749,2.204,23750,2.204,23751,2.204,23752,2.204,23753,5.103,23754,2.204,23755,3.84,23756,3.84,23757,2.204,23758,3.84,23759,2.204,23760,2.204,23761,2.204,23762,2.204,23763,2.204,23764,2.204,23765,2.204,23766,2.204,23767,2.204,23768,2.204,23769,2.204,23770,2.204,23771,3.84,23772,3.84,23773,2.204,23774,2.204,23775,2.204,23776,2.204,23777,3.84,23778,2.204,23779,2.204,23780,2.204,23781,2.204,23782,2.204,23783,2.204,23784,5.103,23785,2.204,23786,2.204,23787,2.204,23788,2.204,23789,2.204,23790,2.204,23791,2.204,23792,2.204,23793,5.103,23794,2.204,23795,6.106,23796,2.204,23797,2.204,23798,3.84,23799,2.204,23800,2.204,23801,2.204,23802,2.204,23803,2.204,23804,2.204,23805,2.204,23806,2.204,23807,2.204,23808,2.204,23809,2.204,23810,2.204,23811,3.84,23812,2.204,23813,2.204,23814,3.84,23815,2.204,23816,2.204,23817,2.204,23818,2.038,23819,2.204,23820,2.204,23821,2.204,23822,3.84,23823,2.204,23824,2.204,23825,2.204,23826,2.204,23827,2.204,23828,2.204,23829,2.204,23830,2.204,23831,2.204,23832,2.204,23833,2.204,23834,2.204,23835,2.204,23836,2.204,23837,2.204]],["title/additional-documentation/nestjs-application/code-style.html",[817,2.328,946,2.248,1236,2.846,23452,4.239]],["body/additional-documentation/nestjs-application/code-style.html",[0,0.292,2,1.222,8,1.436,30,0.001,31,0.706,35,1.035,47,0.846,101,0.014,103,0.001,104,0.001,112,0.951,119,2.221,181,2.305,206,3.411,261,5.689,314,7.534,349,0.89,358,3.789,379,1.365,474,5.762,529,2.437,708,3.578,760,4.78,933,6.284,946,3.996,986,3.69,989,6.058,1615,5.225,1666,6.864,1672,5.225,1799,6.137,1864,3.19,2031,6.167,2158,4.912,2430,6.548,2432,6.137,2975,7.962,3249,7.215,3503,6.959,3866,7.962,5562,7.534,6655,7.215,7553,6.021,8051,6.406,10949,11.077,11726,5.349,12512,6.747,15718,7.962,22316,6.565,22425,7.215,22705,7.962,22732,7.962,22954,7.962,23017,7.215,23235,7.215,23397,7.534,23408,9.548,23452,7.534,23818,7.962,23838,8.612,23839,8.612,23840,8.612,23841,8.612,23842,8.612,23843,8.612,23844,8.612,23845,8.612]],["title/additional-documentation/nestjs-application/s3clientmodule.html",[817,2.721,1236,3.326,10672,4.211]],["body/additional-documentation/nestjs-application/s3clientmodule.html",[0,0.373,30,0.001,31,0.487,101,0.02,103,0.001,104,0.001,124,5.515,168,4.954,177,1.59,201,3.186,203,3.124,208,4.019,225,3.426,353,8.262,358,5.292,379,1.086,437,1.419,517,3.33,539,1.15,560,3.576,591,4.909,603,1.745,685,4.643,753,6.805,760,4.822,1669,4.523,2017,3.802,2032,5.463,2033,5.867,2430,5.212,3538,4.28,3539,4.909,4145,7.188,6334,6.991,6335,6.805,6336,6.073,6337,6.073,6338,6.073,6339,6.073,8032,10.921,10580,7.277,10687,7.277,10848,7.02,10849,6.461,11628,7.537,11769,6.805,11992,9.6,13434,6.622,17177,7.599,20374,7.02,20708,6.805,20715,8.031,23380,8.031,23726,8.031,23846,8.687,23847,8.687,23848,8.687,23849,8.687,23850,8.687,23851,12.029,23852,8.687,23853,8.687,23854,8.687,23855,8.687]]],"invertedIndex":[["",{"_index":30,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":696,"title":{},"body":{"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":{},"classes/GroupUcMapper.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":{},"injectables/MetaTagExtractorService.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.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":22162,"title":{},"body":{"dependencies.html":{}}}],["0.1.1",{"_index":22235,"title":{},"body":{"dependencies.html":{}}}],["0.1.13",{"_index":22264,"title":{},"body":{"dependencies.html":{}}}],["0.1.4",{"_index":22273,"title":{},"body":{"dependencies.html":{}}}],["0.14.0",{"_index":22196,"title":{},"body":{"dependencies.html":{}}}],["0.4.0",{"_index":22182,"title":{},"body":{"dependencies.html":{}}}],["0.4.11",{"_index":22170,"title":{},"body":{"dependencies.html":{}}}],["0.5.1",{"_index":22287,"title":{},"body":{"dependencies.html":{}}}],["0.5.19",{"_index":22276,"title":{},"body":{"dependencies.html":{}}}],["0.5.2",{"_index":22249,"title":{},"body":{"dependencies.html":{}}}],["0.5.4",{"_index":22239,"title":{},"body":{"dependencies.html":{}}}],["0.5.9",{"_index":22171,"title":{},"body":{"dependencies.html":{}}}],["0.6.0",{"_index":22240,"title":{},"body":{"dependencies.html":{}}}],["0.7.0",{"_index":22275,"title":{},"body":{"dependencies.html":{}}}],["0.8.0",{"_index":22177,"title":{},"body":{"dependencies.html":{}}}],["0.8.1",{"_index":22243,"title":{},"body":{"dependencies.html":{}}}],["0.9.7",{"_index":22237,"title":{},"body":{"dependencies.html":{}}}],["0000d231816abba584714c9e",{"_index":23355,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0000dcfbfb5c7a3f00bf21ab",{"_index":5836,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["0000dcfbfb5c7a3f00bf21ab'})@ismongoid",{"_index":5832,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["05",{"_index":23352,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["08",{"_index":19063,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["0]?.id",{"_index":13292,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["1",{"_index":708,"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":{},"injectables/ColumnBoardService.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":22259,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":22143,"title":{},"body":{"dependencies.html":{}}}],["1.0.5",{"_index":22223,"title":{},"body":{"dependencies.html":{}}}],["1.0.56",{"_index":22211,"title":{},"body":{"dependencies.html":{}}}],["1.0a",{"_index":14579,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"dependencies.html":{}}}],["1.1",{"_index":23541,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.1.1",{"_index":22257,"title":{},"body":{"dependencies.html":{}}}],["1.1.4",{"_index":22265,"title":{},"body":{"dependencies.html":{}}}],["1.15.2",{"_index":22189,"title":{},"body":{"dependencies.html":{}}}],["1.17.3",{"_index":22216,"title":{},"body":{"dependencies.html":{}}}],["1.2",{"_index":23542,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.2.0",{"_index":22187,"title":{},"body":{"dependencies.html":{}}}],["1.21.2",{"_index":22186,"title":{},"body":{"dependencies.html":{}}}],["1.25.0",{"_index":22224,"title":{},"body":{"dependencies.html":{}}}],["1.25.1",{"_index":22164,"title":{},"body":{"dependencies.html":{}}}],["1.28.1",{"_index":22227,"title":{},"body":{"dependencies.html":{}}}],["1.3.4",{"_index":22144,"title":{},"body":{"dependencies.html":{}}}],["1.5.0",{"_index":22185,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":22191,"title":{},"body":{"dependencies.html":{}}}],["1.6.2",{"_index":22201,"title":{},"body":{"dependencies.html":{}}}],["1.9.4",{"_index":22251,"title":{},"body":{"dependencies.html":{}}}],["10",{"_index":710,"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":22156,"title":{},"body":{"dependencies.html":{}}}],["10.1.1",{"_index":22154,"title":{},"body":{"dependencies.html":{}}}],["10.2.4",{"_index":22152,"title":{},"body":{"dependencies.html":{}}}],["100",{"_index":697,"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":1572,"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":19771,"title":{},"body":{"classes/TaskFactory.html":{}}}],["100000",{"_index":7085,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/FileRecordFactory.html":{},"classes/JwtTestFactory.html":{}}}],["1010",{"_index":22064,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["1055",{"_index":1773,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["10start",{"_index":23675,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["11",{"_index":22547,"title":{},"body":{"license.html":{}}}],["123",{"_index":14009,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["1234",{"_index":23585,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["12345",{"_index":19433,"title":{},"body":{"classes/SystemFactory.html":{}}}],["124",{"_index":15393,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["13",{"_index":4278,"title":{},"body":{"entities/ClassEntity.html":{},"classes/GroupUcMapper.html":{},"interfaces/IClassEntityProps.html":{},"license.html":{}}}],["13.1.0",{"_index":22260,"title":{},"body":{"dependencies.html":{}}}],["14.14",{"_index":10425,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["15",{"_index":11817,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["150",{"_index":4127,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{}}}],["15672:15672",{"_index":23033,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["15:20:30.888",{"_index":23354,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["16",{"_index":22712,"title":{},"body":{"license.html":{}}}],["172.29.173.128",{"_index":23679,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["173",{"_index":2331,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["17t14:17:51.958+00:00",{"_index":19064,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["18.5.0",{"_index":22221,"title":{},"body":{"dependencies.html":{}}}],["19",{"_index":22357,"title":{},"body":{"license.html":{}}}],["1993",{"_index":23598,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["1996",{"_index":22553,"title":{},"body":{"license.html":{}}}],["2",{"_index":7553,"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":14501,"title":{},"body":{"controllers/LoginController.html":{}}}],["2.0",{"_index":5569,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["2.0.0",{"_index":22193,"title":{},"body":{"dependencies.html":{}}}],["2.0.1",{"_index":22160,"title":{},"body":{"dependencies.html":{}}}],["2.0.5",{"_index":22229,"title":{},"body":{"dependencies.html":{}}}],["2.1.0",{"_index":22151,"title":{},"body":{"dependencies.html":{}}}],["2.1.2",{"_index":22195,"title":{},"body":{"dependencies.html":{}}}],["2.1375.0",{"_index":22184,"title":{},"body":{"dependencies.html":{}}}],["2.19.2",{"_index":22236,"title":{},"body":{"dependencies.html":{}}}],["2.2.5",{"_index":22166,"title":{},"body":{"dependencies.html":{}}}],["2.2.6",{"_index":22252,"title":{},"body":{"dependencies.html":{}}}],["2.3.2",{"_index":22225,"title":{},"body":{"dependencies.html":{}}}],["2.8.1",{"_index":22206,"title":{},"body":{"dependencies.html":{}}}],["2.8.32",{"_index":22168,"title":{},"body":{"dependencies.html":{}}}],["2.9.0",{"_index":22192,"title":{},"body":{"dependencies.html":{}}}],["20",{"_index":22551,"title":{},"body":{"license.html":{}}}],["200",{"_index":278,"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":22359,"title":{},"body":{"license.html":{}}}],["200})@apiinternalservererrorresponse({description",{"_index":21153,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["201",{"_index":2873,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{}}}],["2023",{"_index":19062,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["204",{"_index":2918,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["204})@apiresponse({status",{"_index":2881,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["21.1.2",{"_index":22145,"title":{},"body":{"dependencies.html":{}}}],["24",{"_index":6806,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["250",{"_index":3516,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["28",{"_index":22848,"title":{},"body":{"license.html":{}}}],["2984",{"_index":17858,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["2a$10$/dsztv5o6p5piw2ewjsxw.4nhovmjgba.qnwitmuz/uvuc40b.uhu",{"_index":534,"title":{},"body":{"classes/AccountFactory.html":{}}}],["2auth",{"_index":22991,"title":{},"body":{"todo.html":{}}}],["3",{"_index":3503,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LdapService.html":{},"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["3.0",{"_index":22959,"title":{},"body":{"properties.html":{}}}],["3.0.0",{"_index":22150,"title":{},"body":{"dependencies.html":{}}}],["3.0.1",{"_index":22153,"title":{},"body":{"dependencies.html":{}}}],["3.0.2",{"_index":22267,"title":{},"body":{"dependencies.html":{}}}],["3.1.0",{"_index":22254,"title":{},"body":{"dependencies.html":{}}}],["3.100.0",{"_index":22136,"title":{},"body":{"dependencies.html":{}}}],["3.13.0",{"_index":22268,"title":{},"body":{"dependencies.html":{}}}],["3.2.2",{"_index":22175,"title":{},"body":{"dependencies.html":{}}}],["3.3",{"_index":15720,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["3.3.4",{"_index":22250,"title":{},"body":{"dependencies.html":{}}}],["3.8.2",{"_index":22290,"title":{},"body":{"dependencies.html":{}}}],["30",{"_index":22755,"title":{},"body":{"license.html":{}}}],["300",{"_index":13795,"title":{},"body":{"injectables/LdapService.html":{}}}],["3000:3000",{"_index":23712,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["302",{"_index":11458,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["3030/api/v3/docs",{"_index":23120,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["3030/docs",{"_index":23125,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["31",{"_index":23353,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["335",{"_index":12662,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["3532",{"_index":23599,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["389:389",{"_index":23639,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["3990",{"_index":1778,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["4",{"_index":7523,"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":22142,"title":{},"body":{"dependencies.html":{}}}],["4.0.1",{"_index":22258,"title":{},"body":{"dependencies.html":{}}}],["4.1.6",{"_index":22282,"title":{},"body":{"dependencies.html":{}}}],["4.13.2",{"_index":22215,"title":{},"body":{"dependencies.html":{}}}],["4.14.0",{"_index":22214,"title":{},"body":{"dependencies.html":{}}}],["4.17.19",{"_index":22233,"title":{},"body":{"dependencies.html":{}}}],["4.18.2",{"_index":22281,"title":{},"body":{"dependencies.html":{}}}],["4.2.0",{"_index":22208,"title":{},"body":{"dependencies.html":{}}}],["4.2.5",{"_index":22197,"title":{},"body":{"dependencies.html":{}}}],["4.5.11",{"_index":22139,"title":{},"body":{"dependencies.html":{}}}],["4.5.16",{"_index":22138,"title":{},"body":{"dependencies.html":{}}}],["4.6.0",{"_index":22190,"title":{},"body":{"dependencies.html":{}}}],["4.x",{"_index":23026,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["400",{"_index":282,"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":{},"injectables/MetaTagExtractorService.html":{},"classes/OAuthRejectableBody.html":{},"controllers/ShareTokenController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["400/bad",{"_index":23370,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["401",{"_index":5534,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"controllers/MetaTagExtractorController.html":{},"classes/OAuthRejectableBody.html":{}}}],["4011:80",{"_index":23627,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["403",{"_index":287,"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":290,"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":23368,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["4096",{"_index":7068,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["4444",{"_index":23083,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["456",{"_index":14014,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["47494638",{"_index":8869,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["4xx",{"_index":11039,"title":{},"body":{"controllers/GroupController.html":{}}}],["5",{"_index":17172,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["5.0.0",{"_index":22179,"title":{},"body":{"dependencies.html":{}}}],["5.0.1",{"_index":22180,"title":{},"body":{"dependencies.html":{}}}],["5.0.3",{"_index":22218,"title":{},"body":{"dependencies.html":{}}}],["5.1.1",{"_index":22256,"title":{},"body":{"dependencies.html":{}}}],["5.13.20",{"_index":22238,"title":{},"body":{"dependencies.html":{}}}],["5.2.1",{"_index":22149,"title":{},"body":{"dependencies.html":{}}}],["5.4.2",{"_index":22148,"title":{},"body":{"dependencies.html":{}}}],["500",{"_index":8442,"title":{},"body":{"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"classes/ListOauthClientsParams.html":{},"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["501",{"_index":18717,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["5069",{"_index":1827,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["5672",{"_index":23035,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["5672:5672",{"_index":23032,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["59",{"_index":13275,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["5xx",{"_index":11041,"title":{},"body":{"controllers/GroupController.html":{}}}],["6.0.0",{"_index":22203,"title":{},"body":{"dependencies.html":{}}}],["6.1.3",{"_index":22204,"title":{},"body":{"dependencies.html":{}}}],["6.2.2",{"_index":22253,"title":{},"body":{"dependencies.html":{}}}],["6.3.0",{"_index":22219,"title":{},"body":{"dependencies.html":{}}}],["6.9.7",{"_index":22261,"title":{},"body":{"dependencies.html":{}}}],["60",{"_index":6807,"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":17635,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["632",{"_index":15557,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["64",{"_index":23582,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["673",{"_index":14119,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["699615164",{"_index":22984,"title":{},"body":{"todo.html":{}}}],["6b",{"_index":22625,"title":{},"body":{"license.html":{}}}],["6d",{"_index":22644,"title":{},"body":{"license.html":{}}}],["7",{"_index":10139,"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":22207,"title":{},"body":{"dependencies.html":{}}}],["7.1.10",{"_index":22158,"title":{},"body":{"dependencies.html":{}}}],["7.3.1",{"_index":22269,"title":{},"body":{"dependencies.html":{}}}],["789",{"_index":14015,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["8",{"_index":10395,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["8.1.0",{"_index":22199,"title":{},"body":{"dependencies.html":{}}}],["8.3.0",{"_index":22289,"title":{},"body":{"dependencies.html":{}}}],["8.8.2",{"_index":22173,"title":{},"body":{"dependencies.html":{}}}],["80",{"_index":23118,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080",{"_index":23090,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080:8080",{"_index":23048,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["820",{"_index":21418,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["8443:8443",{"_index":23049,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["86400000",{"_index":10203,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["885",{"_index":22066,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["89504e47",{"_index":8867,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["9.0.0",{"_index":22228,"title":{},"body":{"dependencies.html":{}}}],["9.2.0",{"_index":22147,"title":{},"body":{"dependencies.html":{}}}],["9000:9000",{"_index":23040,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001",{"_index":23045,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001:9001",{"_index":23041,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["91",{"_index":16080,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["9229",{"_index":23078,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["99",{"_index":841,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["990",{"_index":9869,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["999",{"_index":22333,"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":10869,"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":10867,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9]{24",{"_index":2857,"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":645,"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":11706,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_.pick(params",{"_index":659,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["_.random(35).tostring(36)).join",{"_index":15011,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.snakecase(classname).touppercase",{"_index":10934,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.snakecase(exceptionname).touppercase",{"_index":10944,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.spec.ts",{"_index":23255,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["_.startcase(exceptionname",{"_index":10945,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.startcase(name",{"_index":10935,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.test.[ts|js",{"_index":23097,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["_.times(20",{"_index":15010,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.union(userpermissions",{"_index":21099,"title":{},"body":{"classes/UserFactory.html":{}}}],["_\\w\\d",{"_index":15023,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["__v",{"_index":9995,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_allowemptyquery",{"_index":6058,"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":16817,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_collectmetricsroutemetrics",{"_index":16818,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_columnboardid",{"_index":4910,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["_contextid",{"_index":3330,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_contexttype",{"_index":3332,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["_creatorid",{"_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":{}}}],["_em",{"_index":2253,"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":971,"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":11789,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_instance",{"_index":16819,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_iscopyfrom",{"_index":10090,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_isenabled",{"_index":16820,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_lockid",{"_index":9957,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_oauthconfigcache",{"_index":13529,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["_operator",{"_index":6059,"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":7194,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["_ownerid",{"_index":9958,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_parentid",{"_index":9959,"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":16821,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_queries",{"_index":6060,"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":16822,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_schoolid",{"_index":10091,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_self",{"_index":5366,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["_updatedat",{"_index":981,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["a.getmetadata().title",{"_index":7538,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["a.localecompare(b",{"_index":18972,"title":{},"body":{"classes/SortHelper.html":{}}}],["a.m",{"_index":22351,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["a.position",{"_index":3239,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["a.userid.$oid",{"_index":13719,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["a.width",{"_index":14900,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["aaa",{"_index":23427,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["abbreviation",{"_index":6523,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ability",{"_index":22685,"title":{},"body":{"license.html":{}}}],["aborted",{"_index":13694,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["above",{"_index":22347,"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":22574,"title":{},"body":{"license.html":{}}}],["absolute",{"_index":11693,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["abstract",{"_index":9,"title":{},"body":{"classes/AbstractAccountService.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":{},"classes/BaseUc.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":853,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:113",{"_index":854,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:117",{"_index":866,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:122",{"_index":865,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:127",{"_index":870,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:146",{"_index":861,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:18",{"_index":857,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:24",{"_index":862,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:29",{"_index":858,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:34",{"_index":859,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:42",{"_index":860,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:47",{"_index":864,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:83",{"_index":869,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:91",{"_index":867,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:99",{"_index":868,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractbootstrapconsole",{"_index":20296,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["abstraction",{"_index":23726,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["abstraction/detail",{"_index":23158,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractions",{"_index":23195,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractlaunchstrategy",{"_index":2528,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:105",{"_index":2563,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:128",{"_index":2566,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:139",{"_index":2569,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:155",{"_index":2556,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:18",{"_index":2548,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:181",{"_index":2584,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:19",{"_index":15454,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:218",{"_index":2581,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:24",{"_index":2586,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:249",{"_index":2560,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:33",{"_index":2550,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:40",{"_index":2574,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:64",{"_index":2576,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:79",{"_index":2571,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:9",{"_index":2545,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["acacac",{"_index":6602,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.html":{}}}],["accept",{"_index":137,"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":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["accept(visitor",{"_index":2734,"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":22759,"title":{},"body":{"license.html":{}}}],["acceptasync",{"_index":2727,"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":2738,"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":15927,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequest(challenge",{"_index":15933,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequestbody",{"_index":106,"title":{"interfaces/AcceptConsentRequestBody.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["accepted",{"_index":22971,"title":{},"body":{"todo.html":{}}}],["acceptloginrequest",{"_index":16085,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(challenge",{"_index":16159,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptloginrequest(currentuserid",{"_index":16089,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["acceptloginrequestbody",{"_index":127,"title":{"interfaces/AcceptLoginRequestBody.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest",{"_index":15966,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(@param",{"_index":16044,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptlogoutrequest(challenge",{"_index":16161,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(params",{"_index":15971,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptquery",{"_index":134,"title":{"classes/AcceptQuery.html":{}},"body":{"classes/AcceptQuery.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["accepts",{"_index":140,"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":316,"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":999,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["access.token.claim",{"_index":13495,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["access_token",{"_index":125,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["accessed",{"_index":6930,"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":22422,"title":{},"body":{"license.html":{}}}],["accessing",{"_index":23212,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["accesskeyid",{"_index":6338,"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":686,"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":1433,"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":14568,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accesstokendto.accesstoken",{"_index":14570,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accompanied",{"_index":22610,"title":{},"body":{"license.html":{}}}],["accompanies",{"_index":22927,"title":{},"body":{"license.html":{}}}],["accomplish",{"_index":22424,"title":{},"body":{"license.html":{}}}],["accord",{"_index":22573,"title":{},"body":{"license.html":{}}}],["according",{"_index":22919,"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":538,"title":{},"body":{"classes/AccountFactory.html":{}}}],["account's",{"_index":12703,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["account.'})@apiresponse({status",{"_index":281,"title":{},"body":{"controllers/AccountController.html":{}}}],["account._id.$oid",{"_index":13729,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.activated",{"_index":430,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.attdbcaccountid",{"_index":551,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcsystemid",{"_index":553,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcuserid",{"_index":552,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.createdat",{"_index":426,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.createddate",{"_index":550,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["account.credentialhash",{"_index":431,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.email",{"_index":13589,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.expiresat",{"_index":432,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.factory",{"_index":647,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.firstname",{"_index":13590,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.id",{"_index":425,"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":13712,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.interface.ts",{"_index":12071,"title":{},"body":{"interfaces/IJsonAccount.html":{}}}],["account.lastname",{"_index":13591,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.lasttriedfailedlogin",{"_index":433,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["account.lasttriedfailedlogin.gettime",{"_index":1571,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["account.module",{"_index":228,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["account.params.ts",{"_index":16608,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:13",{"_index":16619,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:24",{"_index":16617,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:33",{"_index":16613,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:42",{"_index":16614,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:51",{"_index":16615,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.password",{"_index":434,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["account.response",{"_index":827,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["account.service.abstract",{"_index":873,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["account.systemid",{"_index":886,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["account.systemid?.tostring",{"_index":435,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.test.factory.ts",{"_index":642,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:23",{"_index":20913,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:28",{"_index":20906,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:34",{"_index":20910,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:49",{"_index":20912,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:61",{"_index":20908,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.token",{"_index":436,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.updatedat",{"_index":427,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{}}}],["account.userid",{"_index":786,"title":{},"body":{"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LocalStrategy.html":{}}}],["account.userid.$oid",{"_index":13730,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.userid?.tostring",{"_index":428,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountValidationService.html":{}}}],["account.username",{"_index":429,"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":952,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["account?.systemid?.tostring",{"_index":953,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountapimodule",{"_index":202,"title":{"modules/AccountApiModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["accountbyidbodyparams",{"_index":232,"title":{"classes/AccountByIdBodyParams.html":{}},"body":{"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{}}}],["accountbyidparams",{"_index":255,"title":{"classes/AccountByIdParams.html":{}},"body":{"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{}}}],["accountcontroller",{"_index":224,"title":{"controllers/AccountController.html":{}},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountcopy",{"_index":21516,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountcopy.systemid",{"_index":21552,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountdbcaccountid",{"_index":12709,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdbcuserid",{"_index":12712,"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":890,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.credentialhash",{"_index":895,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.expiresat",{"_index":891,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.id",{"_index":883,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.lasttriedfailedlogin",{"_index":892,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.password",{"_index":893,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.systemid",{"_index":887,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.token",{"_index":896,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.username",{"_index":889,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdtos",{"_index":440,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities",{"_index":421,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountentities[0",{"_index":439,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities[1",{"_index":442,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentity",{"_index":876,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper",{"_index":410,"title":{"classes/AccountEntityToDtoMapper.html":{}},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.mapaccountstodto(accountentities",{"_index":879,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(await",{"_index":912,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(foundaccounts",{"_index":441,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentitytodtomapper.mapsearchresult(accountentities",{"_index":904,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapsearchresult(await",{"_index":936,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.maptodto(account",{"_index":898,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.maptodto(accountentity",{"_index":444,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountfactory",{"_index":445,"title":{"classes/AccountFactory.html":{}},"body":{"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountfactory.define(account",{"_index":537,"title":{},"body":{"classes/AccountFactory.html":{}}}],["accountfactory.withuser(user).build(accountparams",{"_index":661,"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":950,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountidmtodtomapper",{"_index":540,"title":{"injectables/AccountIdmToDtoMapper.html":{}},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{}}}],["accountidmtodtomapper:6",{"_index":547,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["accountidmtodtomapperdb",{"_index":545,"title":{"classes/AccountIdmToDtoMapperDb.html":{}},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"modules/AccountModule.html":{}}}],["accountidmtodtomapperfactory",{"_index":638,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountidmtodtomapperfactory(configservice",{"_index":634,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountidmtodtomapperidm",{"_index":554,"title":{"classes/AccountIdmToDtoMapperIdm.html":{}},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{}}}],["accountlookupservice",{"_index":557,"title":{"injectables/AccountLookupService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["accountmodule",{"_index":213,"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":640,"title":{"interfaces/AccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountpassword",{"_index":14415,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountrepo",{"_index":619,"title":{"injectables/AccountRepo.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountresponse",{"_index":279,"title":{"classes/AccountResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountresponsemapper",{"_index":776,"title":{"classes/AccountResponseMapper.html":{}},"body":{"classes/AccountResponseMapper.html":{}}}],["accounts",{"_index":179,"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":320,"title":{},"body":{"controllers/AccountController.html":{}}}],["accounts.filter((foundaccount",{"_index":939,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accounts.find((a",{"_index":13718,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["accounts.find((foundaccount",{"_index":1556,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["accounts.length",{"_index":13675,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["accounts.map((accountentity",{"_index":443,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accounts_allowanonymousread=false",{"_index":23695,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowemailchange=false",{"_index":23694,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowrealnamechange=false",{"_index":23692,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowusernamechange=false",{"_index":23693,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_method=get",{"_index":23710,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_url=http://localhost:4000/rocketchat/authget",{"_index":23691,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_enabled=true",{"_index":23689,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_url=http://localhost:4000/rocketchat/iframe",{"_index":23690,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_activating=false",{"_index":23696,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_deactivating=false",{"_index":23697,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_setdefaultavatar=false",{"_index":23708,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_usedefaultblockeddomainslist=false",{"_index":23698,"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":401,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:26",{"_index":395,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:30",{"_index":398,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:34",{"_index":389,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:38",{"_index":399,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:42",{"_index":397,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:46",{"_index":393,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:5",{"_index":384,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:50",{"_index":391,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:54",{"_index":387,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:57",{"_index":392,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:7",{"_index":383,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:9",{"_index":385,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsearchlistresponse",{"_index":317,"title":{"classes/AccountSearchListResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountsearchqueryparams",{"_index":311,"title":{"classes/AccountSearchQueryParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{}}}],["accountsearchtype",{"_index":832,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["accountservice",{"_index":617,"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":620,"title":{"injectables/AccountServiceDb.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["accountserviceidm",{"_index":621,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountsfile",{"_index":12078,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["accountuc",{"_index":215,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountuserid",{"_index":14418,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountvalidationservice",{"_index":618,"title":{"injectables/AccountValidationService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{}}}],["achieve",{"_index":22930,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["achieved",{"_index":23526,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["acknowledges",{"_index":22521,"title":{},"body":{"license.html":{}}}],["acquired",{"_index":22806,"title":{},"body":{"license.html":{}}}],["acr",{"_index":129,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["acr_values",{"_index":16383,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["act",{"_index":23426,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["action",{"_index":1609,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/BaseDomainObject.html":{},"classes/BaseUc.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnUc.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":1611,"title":{},"body":{"interfaces/AuthorizationContext.html":{}}}],["action.read",{"_index":1625,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"classes/BaseUc.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.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":1624,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/ElementUc.html":{},"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{}}}],["actions",{"_index":22766,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.loggable",{"_index":16711,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["actions.loggable.ts",{"_index":16659,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:4",{"_index":16661,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:7",{"_index":16662,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.read",{"_index":2346,"title":{},"body":{"classes/BaseDomainObject.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.write",{"_index":23784,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["activated",{"_index":157,"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":237,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["active",{"_index":11625,"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":22461,"title":{},"body":{"license.html":{}}}],["activity",{"_index":22843,"title":{},"body":{"license.html":{}}}],["actor",{"_index":23198,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["actual",{"_index":22826,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["actually",{"_index":22661,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["adapt",{"_index":22443,"title":{},"body":{"license.html":{}}}],["adapter",{"_index":4546,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adapter.mapper",{"_index":4582,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.mapper.ts",{"_index":4591,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.mapper.ts:16",{"_index":4594,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.module",{"_index":4670,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["adapter.module.ts",{"_index":4618,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.service",{"_index":15544,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthModule.html":{}}}],["adapter.service.ts",{"_index":15664,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:11",{"_index":15667,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:14",{"_index":15669,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:23",{"_index":15674,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:37",{"_index":15672,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapters",{"_index":23566,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["add",{"_index":1454,"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":{},"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":2728,"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":2741,"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":13331,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addclientprotocolmappers(defaultclientinternalid",{"_index":13348,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["added",{"_index":11786,"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":13412,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addexternaloauth2datatoconfig",{"_index":9356,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addexternaloauth2datatoconfig(config",{"_index":9370,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addgroupmoderator(groupname",{"_index":1042,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adding",{"_index":473,"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":1236,"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":13123,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["additionally",{"_index":22324,"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":13683,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["additionalpermissions",{"_index":664,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["additionaly",{"_index":23071,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["addlessons",{"_index":5045,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addlessons(builder",{"_index":5054,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addorganization",{"_index":5151,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addorganization(props",{"_index":5160,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addparameters",{"_index":2533,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addparameters(propertydata",{"_index":2552,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addprometheusmetricsmiddlewaresifenabled",{"_index":16880,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["addproperty",{"_index":2534,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addproperty(propertydata",{"_index":2557,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addquery",{"_index":6065,"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":6079,"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":10968,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addreferences(anotherreference",{"_index":7531,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addresourcetofile",{"_index":5152,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addresourcetofile(props",{"_index":5164,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization",{"_index":5314,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization(props",{"_index":5178,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["address",{"_index":16612,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["addressed",{"_index":22440,"title":{},"body":{"license.html":{}}}],["addroom",{"_index":7467,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["addroom(room",{"_index":7488,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["adds",{"_index":11707,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addtasks",{"_index":5046,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addtasks(builder",{"_index":5059,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addteacherroleifadmin",{"_index":18052,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addteacherroleifadmin(externaluser",{"_index":18056,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addtokentowhitelist",{"_index":13216,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtokentowhitelist(redisidentifier",{"_index":13224,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist",{"_index":13199,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist(accountid",{"_index":13205,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["adduser",{"_index":10996,"title":{},"body":{"classes/Group.html":{}}}],["adduser(user",{"_index":10999,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["adduserids",{"_index":15419,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adduserids.tostring",{"_index":15423,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adjust",{"_index":5388,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["adm",{"_index":5167,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["admin",{"_index":10762,"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":23687,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["adminaccount",{"_index":675,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["adminid",{"_index":967,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminidandtoken",{"_index":955,"title":{"interfaces/AdminIdAndToken.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.id",{"_index":1067,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.token",{"_index":1066,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["administration.module",{"_index":12676,"title":{},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration.module.ts",{"_index":13240,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["administration.service",{"_index":13247,"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":13250,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:21",{"_index":13267,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:26",{"_index":13274,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:35",{"_index":13271,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:39",{"_index":13268,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:43",{"_index":13269,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:47",{"_index":13270,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:57",{"_index":13273,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:62",{"_index":13272,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:66",{"_index":13266,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:7",{"_index":13276,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:9",{"_index":13264,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration/interface/keycloak",{"_index":12083,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["administration/keycloak",{"_index":12675,"title":{},"body":{"modules/IdentityManagementModule.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration/service/keycloak",{"_index":13249,"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":321,"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":966,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminpermissions",{"_index":21094,"title":{},"body":{"classes/UserFactory.html":{}}}],["adminstrator",{"_index":23751,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["admintoken",{"_index":968,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminuser",{"_index":676,"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":5158,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["adopted",{"_index":22550,"title":{},"body":{"license.html":{}}}],["adversely",{"_index":22691,"title":{},"body":{"license.html":{}}}],["advised",{"_index":22915,"title":{},"body":{"license.html":{}}}],["aes",{"_index":19350,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["aes_key",{"_index":8348,"title":{},"body":{"modules/EncryptionModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["aeskey",{"_index":8345,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["affected",{"_index":23379,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["affecteduserid",{"_index":21553,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["affects",{"_index":11856,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["affero",{"_index":22356,"title":{},"body":{"license.html":{}}}],["affirmed",{"_index":22788,"title":{},"body":{"license.html":{}}}],["affirms",{"_index":22519,"title":{},"body":{"license.html":{}}}],["afterall",{"_index":23514,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterall(async",{"_index":23505,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterbuild",{"_index":452,"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":469,"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":477,"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":19888,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["afterduedateornone(duedate",{"_index":19970,"title":{},"body":{"classes/TaskScope.html":{}}}],["aftereach",{"_index":23421,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterwards",{"_index":23326,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["again",{"_index":6318,"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":11362,"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":11356,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["against.ts:8",{"_index":11360,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["age",{"_index":23743,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["agent",{"_index":14891,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["aggregate",{"_index":22598,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["aggregate.attrs",{"_index":13491,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["agility",{"_index":23148,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["agnostic",{"_index":13034,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["ago",{"_index":7992,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["agpl",{"_index":22948,"title":{},"body":{"license.html":{},"properties.html":{}}}],["agree",{"_index":22861,"title":{},"body":{"license.html":{}}}],["agreed",{"_index":22903,"title":{},"body":{"license.html":{}}}],["agreement",{"_index":22814,"title":{},"body":{"license.html":{}}}],["aims",{"_index":23144,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["aint",{"_index":23183,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ajax",{"_index":11400,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["ajv",{"_index":22172,"title":{},"body":{"dependencies.html":{}}}],["aktuelle",{"_index":4864,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["alert",{"_index":8408,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alert(loggable",{"_index":8413,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alg",{"_index":1425,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["algorithm",{"_index":1376,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/JwtConstants.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["algorithms",{"_index":1397,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{}}}],["algorithms.includes(jwtconstants.jwtoptions.algorithm",{"_index":1411,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["alias",{"_index":12341,"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":7912,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["all_entities",{"_index":10667,"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":11723,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.filter",{"_index":11730,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.map((file",{"_index":11734,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["alleging",{"_index":22794,"title":{},"body":{"license.html":{}}}],["allforcreator",{"_index":19878,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(allforfinishedcoursesandlessonsforcreator.query",{"_index":19881,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closeddraftsforcreator.query",{"_index":19880,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closedwithoutparentforcreator.query",{"_index":19879,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons",{"_index":19864,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.addquery(parentsfinished.query",{"_index":19865,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.bydraft(false",{"_index":19866,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator",{"_index":19875,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.addquery(parentsfinished.query",{"_index":19876,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.bycreatorid(parentids.creatorid",{"_index":19877,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allmappers",{"_index":13451,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allmappers.find((mapper",{"_index":13454,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allow",{"_index":6296,"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":3980,"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":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.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":4175,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedcontexttype",{"_index":18924,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["alloweddos",{"_index":4190,"title":{},"body":{"injectables/CardUc.html":{}}}],["alloweddos.push(boarddo",{"_index":4189,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedparenttype",{"_index":18917,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["allowedstrings",{"_index":10561,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowedstrings.includes(input",{"_index":10563,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowemptyquery",{"_index":6066,"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":6082,"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":9072,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["allowglobalcontext",{"_index":15016,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{}}}],["allowmodstounmuteusers",{"_index":1956,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["allows",{"_index":753,"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":17095,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["allrooms",{"_index":7468,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["allteacherpseudonyms",{"_index":9795,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["allteacherpseudonyms.map((pseudonym",{"_index":9799,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["alone",{"_index":23418,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["along",{"_index":22576,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["already",{"_index":590,"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":4731,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["alternate",{"_index":22409,"title":{},"body":{"license.html":{}}}],["alternative",{"_index":13426,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["alternativetext",{"_index":3218,"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":9926,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["although",{"_index":23323,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["always",{"_index":357,"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":1978,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["always_deny",{"_index":1979,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["ambiguous",{"_index":19921,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["amount",{"_index":821,"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":22174,"title":{},"body":{"dependencies.html":{}}}],["amqp.module.ts",{"_index":10499,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["amqpconnection",{"_index":1143,"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":17159,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqplib",{"_index":22176,"title":{},"body":{"dependencies.html":{}}}],["amr",{"_index":130,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["analysis",{"_index":23115,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["analytics",{"_index":22286,"title":{},"body":{"dependencies.html":{}}}],["analytics_features_messages=false",{"_index":23699,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_rooms=false",{"_index":23700,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_users=false",{"_index":23701,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ancestor",{"_index":3606,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestorids",{"_index":3098,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/ColumnBoardService.html":{}}}],["ancestornodes",{"_index":3615,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestornodes.foreach((node",{"_index":3617,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestors",{"_index":3604,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancillary",{"_index":22760,"title":{},"body":{"license.html":{}}}],["and/opr",{"_index":23462,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["and/or",{"_index":22402,"title":{},"body":{"license.html":{}}}],["annotations",{"_index":23266,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["anonymous",{"_index":7180,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["another",{"_index":15962,"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":10982,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["antareskey",{"_index":6515,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["anti",{"_index":22538,"title":{},"body":{"license.html":{}}}],["antivirus.service",{"_index":1110,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirus_service_options",{"_index":1111,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirusmodule",{"_index":1100,"title":{"modules/AntivirusModule.html":{}},"body":{"modules/AntivirusModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["antivirusmodule.forroot",{"_index":10680,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["antivirusmoduleoptions",{"_index":1104,"title":{"interfaces/AntivirusModuleOptions.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["antivirusservice",{"_index":1109,"title":{"injectables/AntivirusService.html":{}},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["antivirusservice:checkstream",{"_index":1177,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusservice:send",{"_index":1190,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusserviceoptions",{"_index":1134,"title":{"interfaces/AntivirusServiceOptions.html":{}},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["anyboarddo",{"_index":2450,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnUc.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.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":1861,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{}}}],["anycontentelementresponse",{"_index":2449,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{}}}],["anyelementcontentbody",{"_index":5674,"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":720,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["anymore",{"_index":1395,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anyone",{"_index":22585,"title":{},"body":{"license.html":{}}}],["anything",{"_index":22450,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anywhere",{"_index":23232,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["api",{"_index":1220,"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":10737,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["api.module.ts",{"_index":222,"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/MetaTagExtractorApiModule.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":23099,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v1",{"_index":22305,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3",{"_index":22306,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/docs",{"_index":23121,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v3/news",{"_index":22314,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/sso/oauth",{"_index":15597,"title":{},"body":{"injectables/OAuthService.html":{}}}],["api/v3/sso/oauth/migration",{"_index":15596,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["api_enable_cors=true",{"_index":23703,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_enable_rate_limiter_limit_calls_default=255",{"_index":23688,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_keys",{"_index":23746,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["api_response_time_metric_middleware_successfully_added",{"_index":16871,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["api_validation_error",{"_index":1219,"title":{},"body":{"classes/ApiValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["api_version_path",{"_index":1161,"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":6264,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["apibadrequestresponse",{"_index":20584,"title":{},"body":{"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apibody",{"_index":4967,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apicreatedresponse",{"_index":20490,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiexcludeendpoint",{"_index":10343,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10338,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@put(filesstorageinternalactions.updatesecuritystatus",{"_index":10341,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiextramodels",{"_index":3704,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SubmissionItemResponse.html":{}}}],["apiextramodels(fileelementresponse",{"_index":19163,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["apiextramodels(lti11toolconfigcreateparams",{"_index":8710,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["apiextramodels(lti11toolconfigupdateparams",{"_index":9512,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(richtextelementresponse",{"_index":3725,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apiextramodels(submissionitemresponse",{"_index":8295,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiforbiddenresponse",{"_index":17012,"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":13952,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiinternalservererrorresponse",{"_index":21174,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinocontentresponse",{"_index":21175,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinotfoundresponse",{"_index":13953,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiokresponse",{"_index":13954,"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":335,"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/MetaTagExtractorController.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":2871,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.html":{},"controllers/H5PEditorController.html":{},"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{}}}],["apiproperty",{"_index":245,"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/GetMetaTagDataBody.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/MetaTagExtractorResponse.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":18139,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["apiproperty()@apipropertyoptional",{"_index":7329,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["apiproperty()@decodehtmlentities",{"_index":2717,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordResponse.html":{},"classes/MetaTagExtractorResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/TaskResponse.html":{}}}],["apiproperty()@ismongoid",{"_index":5889,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileRecordParams.html":{},"classes/SchoolIdParams.html":{},"classes/SingleFileParams.html":{}}}],["apiproperty()@isnumber",{"_index":5901,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["apiproperty()@isstring",{"_index":6290,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/DownloadFileParams.html":{},"classes/MetaTagExtractorResponse.html":{}}}],["apiproperty()@isstring()@ismongoid",{"_index":18190,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["apiproperty()@isstring()@isnotempty",{"_index":17413,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["apiproperty()@isurl",{"_index":14860,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["apiproperty()@matches('([a",{"_index":10864,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["apiproperty()@validatenested",{"_index":6293,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{}}}],["apiproperty({description",{"_index":816,"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":2859,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassInfoResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameterResponse.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":5831,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty({pattern",{"_index":2855,"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":814,"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/SubmissionItemResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionsResponse.html":{},"classes/TaskListResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["apipropertyoptional",{"_index":149,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BusinessError.html":{},"classes/CardResponse.html":{},"classes/ClassFilterParams.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":3419,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{}}}],["apipropertyoptional()@isoptional()@isboolean",{"_index":10748,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["apipropertyoptional()@isoptional()@isstring()@isnotempty",{"_index":10746,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["apipropertyoptional()@isstring()@isoptional",{"_index":21336,"title":{},"body":{"classes/UserLoginMigrationSearchParams.html":{}}}],["apipropertyoptional({default",{"_index":21854,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({description",{"_index":1209,"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":10753,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/PreviewParams.html":{}}}],["apipropertyoptional({nullable",{"_index":20762,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["apipropertyoptional({type",{"_index":6225,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/NewsResponse.html":{}}}],["apiresponse",{"_index":336,"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/MetaTagExtractorController.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":17456,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetrichistogram.observe(labels",{"_index":17463,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetriclabelnames",{"_index":17442,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apitags",{"_index":337,"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/MetaTagExtractorController.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":342,"title":{},"body":{"controllers/AccountController.html":{}}}],["apitags('authentication",{"_index":14507,"title":{},"body":{"controllers/LoginController.html":{}}}],["apitags('board",{"_index":2908,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apitags('collaborative",{"_index":4655,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["apitags('courses",{"_index":6692,"title":{},"body":{"controllers/CourseController.html":{}}}],["apitags('dashboard",{"_index":7451,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apitags('file",{"_index":10345,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apitags('fwu",{"_index":10809,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["apitags('group",{"_index":11054,"title":{},"body":{"controllers/GroupController.html":{}}}],["apitags('h5p",{"_index":11385,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["apitags('lesson",{"_index":14157,"title":{},"body":{"controllers/LessonController.html":{}}}],["apitags('meta",{"_index":14840,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["apitags('news",{"_index":15090,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["apitags('oauth2",{"_index":16015,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["apitags('pseudonym",{"_index":17017,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apitags('rooms",{"_index":17782,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apitags('school",{"_index":13960,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["apitags('sharetoken",{"_index":18729,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apitags('sso",{"_index":16246,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apitags('submission",{"_index":19092,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apitags('systems",{"_index":19383,"title":{},"body":{"controllers/SystemController.html":{}}}],["apitags('task",{"_index":19654,"title":{},"body":{"controllers/TaskController.html":{}}}],["apitags('tool",{"_index":20427,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["apitags('user",{"_index":20928,"title":{},"body":{"controllers/UserController.html":{}}}],["apitags('userimport",{"_index":12798,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["apitags('userloginmigration",{"_index":21185,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apitags('usermigration",{"_index":21477,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["apitags('videoconference",{"_index":21833,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiunauthorizedresponse",{"_index":13955,"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":20491,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apivalidationerror",{"_index":1198,"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":10965,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apivalidationerror.validationerrors.foreach((validationerror",{"_index":1253,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apivalidationerrorresponse",{"_index":1224,"title":{"classes/ApiValidationErrorResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/GlobalErrorFilter.html":{}}}],["apivalidationerrorresponse(error",{"_index":10937,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apivalidationerror})@apiresponse({status",{"_index":2875,"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":1455,"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":23327,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["app.use(createapiresponsetimemetricmiddleware",{"_index":16884,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["app_filter",{"_index":6510,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["app_guard",{"_index":6509,"title":{},"body":{"modules/CoreModule.html":{}}}],["app_interceptor",{"_index":6507,"title":{},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"todo.html":{}}}],["app_pipe",{"_index":6508,"title":{},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{}}}],["append",{"_index":23020,"title":{},"body":{"todo.html":{}}}],["appendedattachment",{"_index":1290,"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":2672,"title":{},"body":{"entities/Board.html":{}}}],["applicable",{"_index":22454,"title":{},"body":{"license.html":{}}}],["applicaiton",{"_index":23080,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["application",{"_index":3854,"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":1439,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/CalendarService.html":{},"classes/TestApiClient.html":{}}}],["application/octet",{"_index":9911,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{}}}],["application/x",{"_index":13557,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["application/xml",{"_index":2194,"title":{},"body":{"injectables/BBBService.html":{}}}],["application/zip",{"_index":6704,"title":{},"body":{"controllers/CourseController.html":{}}}],["applications",{"_index":22292,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["applied",{"_index":11754,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["applies",{"_index":4551,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["apply",{"_index":11726,"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":13101,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["applypropertiestopathparams",{"_index":2535,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["applypropertiestopathparams(url",{"_index":2561,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["appname",{"_index":1268,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["approach",{"_index":23524,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appropriate",{"_index":4549,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["appropriately",{"_index":22569,"title":{},"body":{"license.html":{}}}],["approve",{"_index":22079,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["approximate",{"_index":4141,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["approximates",{"_index":22923,"title":{},"body":{"license.html":{}}}],["apps/server",{"_index":23067,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["apps/server/doc",{"_index":23129,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src",{"_index":23133,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src/apps/helpers/app",{"_index":1266,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["apps/server/src/apps/helpers/prometheus",{"_index":16858,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["apps/server/src/config/database.config.ts",{"_index":10878,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["apps/server/src/console/api",{"_index":20293,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["apps/server/src/console/console.module.ts",{"_index":18571,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["apps/server/src/console/server.console.ts",{"_index":18557,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:11",{"_index":18561,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:17",{"_index":18564,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:6",{"_index":18560,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/core/core.module.ts",{"_index":6496,"title":{},"body":{"modules/CoreModule.html":{}}}],["apps/server/src/core/error/dto/api",{"_index":1225,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts",{"_index":8454,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:10",{"_index":8460,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:15",{"_index":8459,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:20",{"_index":8458,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:25",{"_index":8457,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:30",{"_index":8456,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/validation",{"_index":21742,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["apps/server/src/core/error/error.module.ts",{"_index":8447,"title":{},"body":{"modules/ErrorModule.html":{}}}],["apps/server/src/core/error/filter/global",{"_index":10882,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apps/server/src/core/error/interface/error",{"_index":11973,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["apps/server/src/core/error/interface/feathers",{"_index":9698,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts",{"_index":8356,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:11",{"_index":8364,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:13",{"_index":8367,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:34",{"_index":8366,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:47",{"_index":8371,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:56",{"_index":8373,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:8",{"_index":8362,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts",{"_index":8461,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:16",{"_index":8470,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:20",{"_index":8475,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:24",{"_index":8467,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:6",{"_index":8472,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/interceptor/interceptor.module.ts",{"_index":13056,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["apps/server/src/core/interfaces/core",{"_index":11939,"title":{},"body":{"interfaces/ICoreModuleConfig.html":{}}}],["apps/server/src/core/logger/error",{"_index":8406,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["apps/server/src/core/logger/interfaces/legacy",{"_index":12089,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts",{"_index":14426,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts:4",{"_index":14427,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/logger",{"_index":12106,"title":{},"body":{"interfaces/ILoggerConfig.html":{}}}],["apps/server/src/core/logger/legacy",{"_index":13883,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["apps/server/src/core/logger/logger.module.ts",{"_index":14448,"title":{},"body":{"modules/LoggerModule.html":{}}}],["apps/server/src/core/logger/logger.ts",{"_index":14428,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:13",{"_index":14440,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:18",{"_index":14437,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:23",{"_index":14435,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:28",{"_index":14433,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:33",{"_index":14438,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:9",{"_index":14431,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logging.utils.ts",{"_index":14469,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:13",{"_index":14479,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:18",{"_index":14477,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:6",{"_index":14474,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/validation/pipe/global",{"_index":10947,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apps/server/src/core/validation/validation.module.ts",{"_index":21746,"title":{},"body":{"modules/ValidationModule.html":{}}}],["apps/server/src/modules/account/account",{"_index":221,"title":{},"body":{"modules/AccountApiModule.html":{},"interfaces/IAccountConfig.html":{}}}],["apps/server/src/modules/account/account.module.ts",{"_index":623,"title":{},"body":{"modules/AccountModule.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts",{"_index":260,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:31",{"_index":322,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:44",{"_index":297,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:60",{"_index":332,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:70",{"_index":326,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:84",{"_index":293,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:97",{"_index":308,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/dto/account",{"_index":233,"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":768,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:13",{"_index":772,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:16",{"_index":775,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:19",{"_index":774,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:22",{"_index":771,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:25",{"_index":773,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:3",{"_index":770,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/patch",{"_index":16607,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["apps/server/src/modules/account/mapper/account",{"_index":411,"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":678,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:10",{"_index":719,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:18",{"_index":691,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:22",{"_index":698,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:27",{"_index":693,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:31",{"_index":694,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:35",{"_index":701,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:42",{"_index":703,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:46",{"_index":699,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:50",{"_index":707,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:54",{"_index":709,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:58",{"_index":689,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:63",{"_index":690,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:73",{"_index":695,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:77",{"_index":706,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/services/account",{"_index":558,"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":914,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:11",{"_index":920,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:29",{"_index":924,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:34",{"_index":922,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:8",{"_index":918,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/dto/account",{"_index":787,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts",{"_index":375,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts:9",{"_index":380,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/authentication/authentication",{"_index":1317,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["apps/server/src/modules/authentication/authentication.module.ts",{"_index":1365,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["apps/server/src/modules/authentication/constants.ts",{"_index":13150,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/ldap",{"_index":13749,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/local",{"_index":14393,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts",{"_index":14531,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts:5",{"_index":14532,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth",{"_index":15832,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth2",{"_index":15614,"title":{},"body":{"classes/Oauth2AuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts",{"_index":14483,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:31",{"_index":14493,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:47",{"_index":14497,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:62",{"_index":14502,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/mapper/login",{"_index":14552,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["apps/server/src/modules/authentication/errors/brute",{"_index":3816,"title":{},"body":{"classes/BruteForceError.html":{}}}],["apps/server/src/modules/authentication/errors/ldap",{"_index":13769,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["apps/server/src/modules/authentication/errors/school",{"_index":18358,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["apps/server/src/modules/authentication/errors/unauthorized.loggable",{"_index":20850,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["apps/server/src/modules/authentication/guard/jwt",{"_index":13146,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["apps/server/src/modules/authentication/interface/jwt",{"_index":7090,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["apps/server/src/modules/authentication/interface/user.ts",{"_index":11951,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["apps/server/src/modules/authentication/mapper/current",{"_index":7130,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts",{"_index":1514,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:17",{"_index":1523,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:25",{"_index":1530,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:42",{"_index":1528,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:57",{"_index":1536,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:65",{"_index":1525,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:76",{"_index":1539,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:80",{"_index":1534,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:84",{"_index":1532,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts",{"_index":13775,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:14",{"_index":13779,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:23",{"_index":13781,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:9",{"_index":13777,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt",{"_index":13165,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts",{"_index":13174,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12",{"_index":13177,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25",{"_index":13179,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts",{"_index":13807,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16",{"_index":13812,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28",{"_index":13821,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56",{"_index":13818,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68",{"_index":13816,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75",{"_index":13814,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:91",{"_index":13819,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts",{"_index":14396,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:15",{"_index":14400,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:25",{"_index":14408,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:46",{"_index":14406,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:54",{"_index":14403,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts",{"_index":15621,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15",{"_index":15622,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20",{"_index":15623,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts",{"_index":14523,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts:2",{"_index":14524,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts",{"_index":14560,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:12",{"_index":14565,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:9",{"_index":14563,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authorization/authorization",{"_index":1748,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["apps/server/src/modules/authorization/authorization.module.ts",{"_index":1712,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["apps/server/src/modules/authorization/domain/error/forbidden.loggable",{"_index":10778,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["apps/server/src/modules/authorization/domain/mapper/authorization",{"_index":1613,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["apps/server/src/modules/authorization/domain/rules/board",{"_index":3347,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/context",{"_index":6049,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course",{"_index":6852,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts",{"_index":7006,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:10",{"_index":7009,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:16",{"_index":7008,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:7",{"_index":7007,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts",{"_index":11252,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:11",{"_index":11255,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:17",{"_index":11254,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:8",{"_index":11253,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/legacy",{"_index":14070,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts",{"_index":14248,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:16",{"_index":14260,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:22",{"_index":14259,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:40",{"_index":14262,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:53",{"_index":14264,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:59",{"_index":14266,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:73",{"_index":14258,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:79",{"_index":14256,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:9",{"_index":14254,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/school",{"_index":18262,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts",{"_index":19253,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:11",{"_index":19271,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:17",{"_index":19266,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:27",{"_index":19261,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:41",{"_index":19270,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:47",{"_index":19268,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:61",{"_index":19265,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:70",{"_index":19263,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:8",{"_index":19259,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts",{"_index":19945,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:16",{"_index":19951,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:22",{"_index":19950,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:43",{"_index":19949,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:9",{"_index":19947,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts",{"_index":20195,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:10",{"_index":20198,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:14",{"_index":20197,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:7",{"_index":20196,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user",{"_index":21331,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts",{"_index":21650,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:10",{"_index":21653,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:16",{"_index":21652,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:7",{"_index":21651,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization",{"_index":1774,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts",{"_index":1635,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:14",{"_index":1648,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:21",{"_index":1650,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:32",{"_index":1644,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:38",{"_index":1653,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:7",{"_index":1646,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts",{"_index":1796,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:11",{"_index":1802,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:18",{"_index":1808,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:24",{"_index":1814,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:31",{"_index":1804,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:38",{"_index":1811,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:42",{"_index":1806,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:49",{"_index":1812,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:53",{"_index":1810,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts",{"_index":12135,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:39",{"_index":17404,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:69",{"_index":17407,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:77",{"_index":17406,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/rule",{"_index":17866,"title":{},"body":{"injectables/RuleManager.html":{}}}],["apps/server/src/modules/authorization/domain/type/authorization",{"_index":1607,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts",{"_index":17863,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:6",{"_index":17865,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:7",{"_index":17864,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/feathers/feathers",{"_index":9629,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{}}}],["apps/server/src/modules/board/board",{"_index":2695,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["apps/server/src/modules/board/board.module.ts",{"_index":3537,"title":{},"body":{"modules/BoardModule.html":{}}}],["apps/server/src/modules/board/controller/board",{"_index":3678,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts",{"_index":2862,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:33",{"_index":2892,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:50",{"_index":2887,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:68",{"_index":2898,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:83",{"_index":2883,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:93",{"_index":2878,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts",{"_index":3985,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:113",{"_index":4000,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:141",{"_index":3996,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:47",{"_index":4007,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:68",{"_index":4011,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:83",{"_index":4015,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:98",{"_index":4018,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts",{"_index":4945,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:34",{"_index":4963,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:49",{"_index":4966,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:64",{"_index":4959,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:75",{"_index":4956,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board",{"_index":2852,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts",{"_index":3653,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:17",{"_index":3657,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:21",{"_index":3660,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:26",{"_index":3656,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:29",{"_index":3659,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:6",{"_index":3655,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts",{"_index":3813,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11",{"_index":3815,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/card",{"_index":4137,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts",{"_index":4983,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:17",{"_index":4986,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:21",{"_index":4988,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:26",{"_index":4985,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:29",{"_index":4987,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:6",{"_index":4984,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts",{"_index":5034,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11",{"_index":5035,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/content",{"_index":5759,"title":{},"body":{"classes/ContentElementUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/move",{"_index":15031,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts",{"_index":17409,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12",{"_index":17412,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/set",{"_index":18669,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts",{"_index":4191,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts:11",{"_index":4192,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card",{"_index":4053,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts",{"_index":4071,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:21",{"_index":4073,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:34",{"_index":4076,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:38",{"_index":4078,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:41",{"_index":4075,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:55",{"_index":4074,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:58",{"_index":4080,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:61",{"_index":4077,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/create",{"_index":7044,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/move",{"_index":15041,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["apps/server/src/modules/board/controller/dto/card/visibility",{"_index":22129,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/create",{"_index":7049,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/element/external",{"_index":8730,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/file",{"_index":9932,"title":{},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/link",{"_index":14358,"title":{},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/rich",{"_index":17557,"title":{},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/submission",{"_index":19061,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/update",{"_index":8239,"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":7122,"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":20342,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:11",{"_index":20346,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:14",{"_index":20344,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:17",{"_index":20345,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:3",{"_index":20343,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/user",{"_index":21045,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts",{"_index":8261,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:110",{"_index":8273,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:125",{"_index":8269,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:51",{"_index":8277,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:89",{"_index":8282,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/mapper/base",{"_index":2442,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/board",{"_index":3665,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/card",{"_index":4085,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/column",{"_index":4991,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/content",{"_index":5632,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["apps/server/src/modules/board/controller/mapper/external",{"_index":8752,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/file",{"_index":9951,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/link",{"_index":14372,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/rich",{"_index":17568,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/submission",{"_index":19070,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["apps/server/src/modules/board/repo/board",{"_index":3162,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["apps/server/src/modules/board/repo/recursive",{"_index":17280,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["apps/server/src/modules/board/service/board",{"_index":3083,"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":4094,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:16",{"_index":4108,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:20",{"_index":4111,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:29",{"_index":4102,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:50",{"_index":4106,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:54",{"_index":4114,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:58",{"_index":4116,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:64",{"_index":4118,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:70",{"_index":4104,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:9",{"_index":4098,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/column",{"_index":4766,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts",{"_index":5000,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:11",{"_index":5006,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:16",{"_index":5002,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:32",{"_index":5004,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:36",{"_index":5008,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:40",{"_index":5010,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:8",{"_index":5001,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/content",{"_index":5661,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["apps/server/src/modules/board/service/submission",{"_index":19182,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts",{"_index":2452,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:12",{"_index":2461,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:28",{"_index":2467,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:44",{"_index":2464,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:6",{"_index":2457,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts",{"_index":3776,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:11",{"_index":3780,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:25",{"_index":3786,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:34",{"_index":3788,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:43",{"_index":3784,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:52",{"_index":3794,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:61",{"_index":3782,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:71",{"_index":3792,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts",{"_index":4151,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:22",{"_index":4165,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:31",{"_index":4170,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:40",{"_index":4172,"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:60",{"_index":4158,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:79",{"_index":4168,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:9",{"_index":4156,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:96",{"_index":4163,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts",{"_index":5017,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:22",{"_index":5022,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:31",{"_index":5027,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:40",{"_index":5020,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:51",{"_index":5025,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:9",{"_index":5018,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts",{"_index":8299,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:19",{"_index":8302,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:32",{"_index":8310,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:43",{"_index":8306,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:49",{"_index":8308,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:63",{"_index":8304,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/submission",{"_index":19197,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["apps/server/src/modules/class/class.module.ts",{"_index":4425,"title":{},"body":{"modules/ClassModule.html":{}}}],["apps/server/src/modules/class/domain/class",{"_index":4459,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts",{"_index":4204,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:22",{"_index":4217,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:26",{"_index":4219,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:30",{"_index":4221,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:34",{"_index":4223,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:38",{"_index":4225,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:42",{"_index":4227,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:46",{"_index":4229,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:50",{"_index":4231,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:54",{"_index":4233,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:58",{"_index":4235,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:62",{"_index":4237,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:66",{"_index":4238,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:70",{"_index":4239,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:74",{"_index":4215,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts",{"_index":4313,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8",{"_index":4315,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/entity/class",{"_index":4466,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts",{"_index":4257,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:26",{"_index":4261,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:30",{"_index":4262,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:34",{"_index":4270,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:38",{"_index":4269,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:41",{"_index":4259,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:44",{"_index":4271,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:47",{"_index":4258,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:50",{"_index":4260,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:53",{"_index":4268,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:57",{"_index":4264,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:60",{"_index":4267,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts",{"_index":4303,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7",{"_index":4306,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts",{"_index":4472,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:10",{"_index":4475,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:13",{"_index":4477,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:21",{"_index":4478,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:31",{"_index":4480,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts",{"_index":4372,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:26",{"_index":4384,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:43",{"_index":4380,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:47",{"_index":4382,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:7",{"_index":4378,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/service/class.service.ts",{"_index":4426,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:10",{"_index":4437,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:16",{"_index":4435,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:23",{"_index":4433,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:7",{"_index":4431,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/collaborative",{"_index":4630,"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":6216,"title":{},"body":{"classes/CopyApiResponse.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["apps/server/src/modules/files",{"_index":6236,"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":10063,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts",{"_index":9955,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:106",{"_index":9982,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:109",{"_index":9971,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:116",{"_index":9996,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:39",{"_index":9978,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:42",{"_index":9977,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:45",{"_index":9979,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:48",{"_index":9980,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:51",{"_index":9988,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:54",{"_index":9994,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:57",{"_index":9989,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:60",{"_index":9976,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:63",{"_index":9991,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:66",{"_index":9992,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:69",{"_index":9993,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:72",{"_index":9986,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:76",{"_index":9987,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:80",{"_index":9975,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:88",{"_index":9974,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:95",{"_index":9984,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:99",{"_index":9969,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/files.module.ts",{"_index":10443,"title":{},"body":{"modules/FilesModule.html":{}}}],["apps/server/src/modules/files/job/delete",{"_index":7981,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts",{"_index":10444,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:10",{"_index":10448,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:15",{"_index":10457,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:19",{"_index":10456,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:33",{"_index":10450,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:44",{"_index":10453,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/service/files.service.ts",{"_index":10472,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:10",{"_index":10479,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:14",{"_index":10485,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:28",{"_index":10481,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:32",{"_index":10483,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:7",{"_index":10477,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/uc/delete",{"_index":8005,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["apps/server/src/modules/fwu",{"_index":10795,"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":4320,"title":{},"body":{"classes/ClassFilterParams.html":{},"classes/ClassSortParams.html":{}}}],["apps/server/src/modules/group/controller/dto/request/group",{"_index":11142,"title":{},"body":{"classes/GroupIdParams.html":{}}}],["apps/server/src/modules/group/controller/dto/response/class",{"_index":4356,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/external",{"_index":8553,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group",{"_index":11328,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts",{"_index":11182,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:11",{"_index":11187,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:14",{"_index":11189,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:17",{"_index":11191,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:20",{"_index":11185,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:23",{"_index":11184,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:8",{"_index":11186,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts",{"_index":11034,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:23",{"_index":11043,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:53",{"_index":11049,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/mapper/group",{"_index":11201,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["apps/server/src/modules/group/domain/group",{"_index":11315,"title":{},"body":{"classes/GroupUser.html":{}}}],["apps/server/src/modules/group/domain/group.ts",{"_index":10995,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["apps/server/src/modules/group/domain/group.ts:25",{"_index":11005,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:29",{"_index":11006,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:33",{"_index":11008,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:37",{"_index":11010,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:41",{"_index":11012,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:45",{"_index":11004,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:49",{"_index":11002,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:53",{"_index":11001,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/entity/group",{"_index":11321,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts",{"_index":11126,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:32",{"_index":11128,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:35",{"_index":11130,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:38",{"_index":11127,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:41",{"_index":11132,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:44",{"_index":11131,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:47",{"_index":11129,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/group",{"_index":11030,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["apps/server/src/modules/group/group.module.ts",{"_index":11149,"title":{},"body":{"modules/GroupModule.html":{}}}],["apps/server/src/modules/group/loggable/unknown",{"_index":20854,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["apps/server/src/modules/group/repo/group",{"_index":11069,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts",{"_index":11154,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:10",{"_index":11157,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:100",{"_index":11158,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:13",{"_index":11161,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:27",{"_index":11160,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:46",{"_index":11163,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:60",{"_index":11164,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:75",{"_index":11165,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/service/group.service.ts",{"_index":11258,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:12",{"_index":11265,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:22",{"_index":11271,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:28",{"_index":11264,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:34",{"_index":11266,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:40",{"_index":11267,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:46",{"_index":11269,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:52",{"_index":11263,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:9",{"_index":11261,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/uc/dto/class",{"_index":4328,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["apps/server/src/modules/group/uc/dto/resolved",{"_index":17480,"title":{},"body":{"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["apps/server/src/modules/group/uc/mapper/group",{"_index":11281,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["apps/server/src/modules/group/util/sort",{"_index":18967,"title":{},"body":{"classes/SortHelper.html":{}}}],["apps/server/src/modules/h5p",{"_index":11367,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["apps/server/src/modules/learnroom/common",{"_index":5144,"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":6671,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:23",{"_index":6680,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:36",{"_index":6677,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts",{"_index":7432,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:15",{"_index":7435,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:22",{"_index":7440,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:38",{"_index":7445,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course",{"_index":6889,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts",{"_index":6957,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14",{"_index":6959,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts",{"_index":7042,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11",{"_index":7043,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts",{"_index":7651,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100",{"_index":7660,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105",{"_index":7656,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108",{"_index":7825,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118",{"_index":7827,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124",{"_index":7826,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16",{"_index":7675,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22",{"_index":7677,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27",{"_index":7676,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32",{"_index":7674,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35",{"_index":7655,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4",{"_index":7673,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62",{"_index":7662,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68",{"_index":7665,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73",{"_index":7663,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78",{"_index":7657,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83",{"_index":7666,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88",{"_index":7667,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94",{"_index":7661,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts",{"_index":7855,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11",{"_index":7856,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson",{"_index":14162,"title":{},"body":{"classes/LessonCopyApiParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts",{"_index":14326,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11",{"_index":14327,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/move",{"_index":15045,"title":{},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/patch",{"_index":16603,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room",{"_index":17727,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts",{"_index":17730,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11",{"_index":17731,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/single",{"_index":2707,"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":17759,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:33",{"_index":17771,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:43",{"_index":17774,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:57",{"_index":17777,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:67",{"_index":17765,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:78",{"_index":17768,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/learnroom",{"_index":13866,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["apps/server/src/modules/learnroom/learnroom.module.ts",{"_index":13881,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["apps/server/src/modules/learnroom/mapper/board",{"_index":3750,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts",{"_index":6875,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts:5",{"_index":6878,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts",{"_index":7678,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15",{"_index":7682,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36",{"_index":7684,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5",{"_index":7686,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/room",{"_index":17668,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["apps/server/src/modules/learnroom/service/board",{"_index":2930,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/column",{"_index":4923,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["apps/server/src/modules/learnroom/service/common",{"_index":5042,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["apps/server/src/modules/learnroom/service/course",{"_index":6708,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts",{"_index":7020,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:13",{"_index":7028,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:19",{"_index":7025,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:29",{"_index":7026,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:6",{"_index":7023,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:9",{"_index":7030,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts",{"_index":6862,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:15",{"_index":6868,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:6",{"_index":6866,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:9",{"_index":6870,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts",{"_index":17799,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:10",{"_index":17803,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:19",{"_index":17807,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:33",{"_index":17805,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/uc/course",{"_index":6763,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts",{"_index":7036,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:10",{"_index":7040,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:7",{"_index":7038,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts",{"_index":7828,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13",{"_index":7834,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26",{"_index":7836,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41",{"_index":7838,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57",{"_index":7840,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7",{"_index":7833,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/lesson",{"_index":14165,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["apps/server/src/modules/learnroom/uc/room",{"_index":8123,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts",{"_index":17732,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11",{"_index":17740,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17",{"_index":17738,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24",{"_index":17744,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45",{"_index":17742,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts",{"_index":17822,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:10",{"_index":17826,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:20",{"_index":17828,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:31",{"_index":17833,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:52",{"_index":17831,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/legacy",{"_index":9861,"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":14324,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11",{"_index":14325,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts",{"_index":14152,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts:14",{"_index":14156,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/lesson",{"_index":14146,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["apps/server/src/modules/lesson/lesson.module.ts",{"_index":14223,"title":{},"body":{"modules/LessonModule.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts",{"_index":8480,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:12",{"_index":8486,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:9",{"_index":8484,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts",{"_index":14289,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:13",{"_index":14296,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:19",{"_index":14303,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:23",{"_index":14301,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:27",{"_index":14300,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:33",{"_index":14298,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:7",{"_index":14294,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts",{"_index":15335,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:12",{"_index":15339,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:9",{"_index":15337,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts",{"_index":14314,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:13",{"_index":14317,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:7",{"_index":14315,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lti",{"_index":14705,"title":{},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{}}}],["apps/server/src/modules/management/console/board",{"_index":3439,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["apps/server/src/modules/management/console/database",{"_index":7858,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["apps/server/src/modules/management/controller/database",{"_index":7896,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts",{"_index":3824,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:11",{"_index":3837,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:21",{"_index":3828,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/management",{"_index":14795,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["apps/server/src/modules/management/management.module.ts",{"_index":14782,"title":{},"body":{"modules/ManagementModule.html":{}}}],["apps/server/src/modules/management/uc/board",{"_index":3465,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["apps/server/src/modules/management/uc/database",{"_index":11680,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["apps/server/src/modules/meta",{"_index":10871,"title":{},"body":{"classes/GetMetaTagDataBody.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["apps/server/src/modules/news/controller/dto/create",{"_index":7099,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/filter",{"_index":10766,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts",{"_index":15119,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:101",{"_index":15234,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:106",{"_index":15230,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:111",{"_index":15242,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:116",{"_index":15229,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:12",{"_index":15227,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:121",{"_index":15241,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:126",{"_index":15233,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:129",{"_index":15120,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:51",{"_index":15232,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:56",{"_index":15240,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:61",{"_index":15228,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:66",{"_index":15231,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:73",{"_index":15235,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:78",{"_index":15236,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:85",{"_index":15239,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:91",{"_index":15238,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:96",{"_index":15237,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts",{"_index":15332,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts:11",{"_index":15334,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/school",{"_index":18380,"title":{},"body":{"classes/SchoolInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/target",{"_index":19596,"title":{},"body":{"classes/TargetInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts",{"_index":20218,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts:11",{"_index":20219,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/update",{"_index":20868,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/user",{"_index":21106,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts",{"_index":15066,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:26",{"_index":15069,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:40",{"_index":15074,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:61",{"_index":15078,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:71",{"_index":15083,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:89",{"_index":15072,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/team",{"_index":20151,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["apps/server/src/modules/news/loggable/news",{"_index":15109,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts",{"_index":15135,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:38",{"_index":15143,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:52",{"_index":15141,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:65",{"_index":15149,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:74",{"_index":15145,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:9",{"_index":15147,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/school",{"_index":18373,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/target",{"_index":19591,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/user",{"_index":21105,"title":{},"body":{"classes/UserInfoMapper.html":{}}}],["apps/server/src/modules/news/news.module.ts",{"_index":15187,"title":{},"body":{"modules/NewsModule.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts",{"_index":15261,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:100",{"_index":15278,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:122",{"_index":15290,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:148",{"_index":15271,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:159",{"_index":15282,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:179",{"_index":15288,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:197",{"_index":15280,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:207",{"_index":15284,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:23",{"_index":15268,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:39",{"_index":15270,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:67",{"_index":15273,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/oauth",{"_index":135,"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":1719,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11",{"_index":1723,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15",{"_index":1726,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19",{"_index":1727,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23",{"_index":1728,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27",{"_index":1729,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/sso",{"_index":18009,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["apps/server/src/modules/oauth/controller/dto/stateless",{"_index":18994,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/system",{"_index":19459,"title":{},"body":{"classes/SystemIdParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/user",{"_index":21492,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["apps/server/src/modules/oauth/controller/oauth",{"_index":16198,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apps/server/src/modules/oauth/interface/oauth",{"_index":15604,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["apps/server/src/modules/oauth/loggable/oauth",{"_index":15490,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["apps/server/src/modules/oauth/loggable/user",{"_index":21582,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["apps/server/src/modules/oauth/mapper/oauth",{"_index":15852,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/token",{"_index":20362,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/user",{"_index":21489,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["apps/server/src/modules/oauth/oauth",{"_index":15698,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["apps/server/src/modules/oauth/oauth.module.ts",{"_index":15872,"title":{},"body":{"modules/OauthModule.html":{}}}],["apps/server/src/modules/oauth/service/dto/authentication",{"_index":1323,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts",{"_index":6206,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2",{"_index":6210,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4",{"_index":6209,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts",{"_index":11478,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13",{"_index":11482,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15",{"_index":11483,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17",{"_index":11481,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19",{"_index":11484,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21",{"_index":11480,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4",{"_index":11479,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/oauth",{"_index":15476,"title":{},"body":{"classes/OAuthProcessDto.html":{},"interfaces/OauthTokenResponse.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts",{"_index":11495,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:126",{"_index":11507,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:19",{"_index":11502,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:27",{"_index":11515,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:29",{"_index":11509,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:43",{"_index":11514,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:79",{"_index":11511,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:99",{"_index":11505,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/oauth",{"_index":15663,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts",{"_index":15500,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:116",{"_index":15521,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:132",{"_index":15530,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:142",{"_index":15534,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:154",{"_index":15536,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:169",{"_index":15526,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:189",{"_index":15523,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:205",{"_index":15528,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:214",{"_index":15519,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:22",{"_index":15514,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:37",{"_index":15517,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:63",{"_index":15532,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/uc/dto/oauth",{"_index":15840,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["apps/server/src/modules/oauth/uc/hydra",{"_index":11418,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts",{"_index":16314,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:142",{"_index":16321,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:26",{"_index":16319,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:40",{"_index":16329,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:66",{"_index":16327,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:97",{"_index":16324,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/provisioning/dto/external",{"_index":8499,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalUserDto.html":{}}}],["apps/server/src/modules/provisioning/dto/oauth",{"_index":15811,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning",{"_index":16972,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts",{"_index":16914,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2",{"_index":16916,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/loggable/group",{"_index":11240,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/school",{"_index":18337,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/user",{"_index":21101,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/mapper/provisioning",{"_index":16977,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["apps/server/src/modules/provisioning/provisioning.module.ts",{"_index":16924,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts",{"_index":16930,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:16",{"_index":16951,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:19",{"_index":16939,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:32",{"_index":16950,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:36",{"_index":16943,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:50",{"_index":16941,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:56",{"_index":16948,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:62",{"_index":16945,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts",{"_index":16968,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:5",{"_index":16971,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:7",{"_index":16970,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:9",{"_index":16969,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv",{"_index":13080,"title":{},"body":{"classes/IservMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts",{"_index":13097,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19",{"_index":13100,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65",{"_index":13105,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc",{"_index":16409,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts",{"_index":16520,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9",{"_index":16522,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/service/oidc",{"_index":16419,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis",{"_index":18016,"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":18075,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis",{"_index":18078,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts",{"_index":18051,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21",{"_index":18054,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:72",{"_index":18057,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym",{"_index":17041,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts",{"_index":17043,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:11",{"_index":17044,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:5",{"_index":17045,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:8",{"_index":17046,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts",{"_index":17006,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts:27",{"_index":17011,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/domain/pseudonym",{"_index":17060,"title":{},"body":{"interfaces/PseudonymSearchQuery.html":{}}}],["apps/server/src/modules/pseudonym/entity/external",{"_index":9001,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts",{"_index":17024,"title":{},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18",{"_index":17025,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21",{"_index":17026,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24",{"_index":17027,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts",{"_index":17049,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:13",{"_index":17058,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:20",{"_index":17056,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:6",{"_index":17054,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/loggable/too",{"_index":20373,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts",{"_index":17029,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts:5",{"_index":17031,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym",{"_index":17002,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym.module.ts",{"_index":17040,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["apps/server/src/modules/pseudonym/repo/external",{"_index":9015,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts",{"_index":17126,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10",{"_index":17132,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21",{"_index":17131,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36",{"_index":17130,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44",{"_index":17128,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65",{"_index":17129,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7",{"_index":17127,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71",{"_index":17134,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82",{"_index":17133,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/service/feathers",{"_index":9713,"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":17061,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:105",{"_index":17074,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:11",{"_index":17070,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:112",{"_index":17089,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:120",{"_index":17083,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:126",{"_index":17082,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:132",{"_index":17087,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:17",{"_index":17076,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:27",{"_index":17077,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:50",{"_index":17081,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:74",{"_index":17072,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:87",{"_index":17085,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:93",{"_index":17079,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:99",{"_index":17075,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts",{"_index":17113,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:16",{"_index":17117,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:9",{"_index":17115,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/rocketchat/rocket",{"_index":956,"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":17594,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:13",{"_index":17598,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:5",{"_index":17601,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/role.module.ts",{"_index":17610,"title":{},"body":{"modules/RoleModule.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts",{"_index":17589,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:4",{"_index":17591,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:6",{"_index":17592,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:8",{"_index":17590,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/role.service.ts",{"_index":17641,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:11",{"_index":17648,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:16",{"_index":17645,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:22",{"_index":17646,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:28",{"_index":17647,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:8",{"_index":17644,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts",{"_index":17659,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:10",{"_index":17662,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:7",{"_index":17661,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts",{"_index":18580,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts:7",{"_index":18581,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/server.config.ts",{"_index":12243,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["apps/server/src/modules/server/server.module.ts",{"_index":18593,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:157",{"_index":18596,"title":{},"body":{"modules/ServerModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:188",{"_index":18667,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:192",{"_index":18668,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/sharing/controller/dto/share",{"_index":18681,"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":18700,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apps/server/src/modules/sharing/domainobject/share",{"_index":18748,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["apps/server/src/modules/sharing/entity/share",{"_index":12262,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["apps/server/src/modules/sharing/mapper/context",{"_index":18697,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/metadata",{"_index":14917,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/parent",{"_index":18790,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/share",{"_index":18784,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["apps/server/src/modules/sharing/repo/share",{"_index":18802,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["apps/server/src/modules/sharing/service/share",{"_index":18835,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["apps/server/src/modules/sharing/service/token",{"_index":20358,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["apps/server/src/modules/sharing/sharing.module.ts",{"_index":18943,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["apps/server/src/modules/sharing/uc/dto/share",{"_index":18776,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["apps/server/src/modules/sharing/uc/share",{"_index":18866,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["apps/server/src/modules/system/controller/dto/oauth",{"_index":15785,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/public",{"_index":17143,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/system",{"_index":19460,"title":{},"body":{"classes/SystemIdParams-1.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts",{"_index":19451,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:10",{"_index":19457,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:16",{"_index":19454,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/mapper/system",{"_index":19525,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts",{"_index":19362,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:23",{"_index":19369,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:38",{"_index":19374,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/mapper/system",{"_index":19483,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts",{"_index":19462,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:20",{"_index":19468,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:39",{"_index":19465,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:6",{"_index":19466,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/service/dto/oauth",{"_index":15755,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/oidc",{"_index":16363,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts",{"_index":19395,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:10",{"_index":19405,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:12",{"_index":19398,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:14",{"_index":19399,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:16",{"_index":19402,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:18",{"_index":19403,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:20",{"_index":19401,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:22",{"_index":19397,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:6",{"_index":19400,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:8",{"_index":19404,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/system",{"_index":19496,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts",{"_index":19541,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:10",{"_index":19544,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:16",{"_index":19545,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:25",{"_index":19547,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:40",{"_index":19551,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:66",{"_index":19549,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/system",{"_index":19357,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["apps/server/src/modules/system/system.module.ts",{"_index":19479,"title":{},"body":{"modules/SystemModule.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts",{"_index":19583,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:11",{"_index":19586,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:25",{"_index":19587,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:8",{"_index":19584,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts",{"_index":19299,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:14",{"_index":19306,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:17",{"_index":19309,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:20",{"_index":19308,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:23",{"_index":19305,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:26",{"_index":19307,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:29",{"_index":19310,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:3",{"_index":19304,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:32",{"_index":19300,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:38",{"_index":19301,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts",{"_index":19329,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts:11",{"_index":19330,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task",{"_index":19673,"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":19773,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:22",{"_index":19939,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:26",{"_index":19942,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:29",{"_index":19931,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:32",{"_index":19938,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:36",{"_index":19933,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:39",{"_index":19941,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:42",{"_index":19932,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:49",{"_index":19936,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:52",{"_index":19940,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:55",{"_index":19937,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:58",{"_index":19934,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:61",{"_index":19944,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:64",{"_index":19943,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:67",{"_index":19774,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:9",{"_index":19930,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts",{"_index":20110,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts:11",{"_index":20111,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts",{"_index":19080,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:15",{"_index":19088,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:29",{"_index":19084,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts",{"_index":19623,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:100",{"_index":19632,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:22",{"_index":19633,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:30",{"_index":19636,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:37",{"_index":19638,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:54",{"_index":19641,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:63",{"_index":19644,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:72",{"_index":19647,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:85",{"_index":19630,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts",{"_index":19220,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts:5",{"_index":19223,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/task",{"_index":20011,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts",{"_index":19780,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:39",{"_index":19787,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:54",{"_index":19784,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:6",{"_index":19789,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts",{"_index":19283,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:13",{"_index":19293,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:17",{"_index":19290,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:23",{"_index":19288,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:7",{"_index":19286,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/task",{"_index":19675,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts",{"_index":19995,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:15",{"_index":20004,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:24",{"_index":19999,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:32",{"_index":20001,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:39",{"_index":20003,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:8",{"_index":19997,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/task",{"_index":19617,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["apps/server/src/modules/task/task.module.ts",{"_index":19821,"title":{},"body":{"modules/TaskModule.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts",{"_index":19311,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:13",{"_index":19319,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:22",{"_index":19315,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:39",{"_index":19317,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:7",{"_index":19314,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/task",{"_index":19709,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts",{"_index":20022,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:110",{"_index":20047,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:126",{"_index":20037,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:155",{"_index":20039,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:185",{"_index":20043,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:19",{"_index":20028,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:197",{"_index":20045,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:218",{"_index":20040,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:225",{"_index":20031,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:28",{"_index":20035,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:69",{"_index":20033,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:85",{"_index":20030,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts",{"_index":20203,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:15",{"_index":20209,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:6",{"_index":20207,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:9",{"_index":20211,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/teams",{"_index":20249,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["apps/server/src/modules/teams/teams.module.ts",{"_index":20254,"title":{},"body":{"modules/TeamsModule.html":{}}}],["apps/server/src/modules/tool/common/common",{"_index":5384,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["apps/server/src/modules/tool/common/domain/custom",{"_index":7273,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntry.html":{}}}],["apps/server/src/modules/tool/common/entity/custom",{"_index":7317,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["apps/server/src/modules/tool/common/interface/external",{"_index":9354,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{}}}],["apps/server/src/modules/tool/common/interface/tool",{"_index":20847,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["apps/server/src/modules/tool/common/mapper/tool",{"_index":20840,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["apps/server/src/modules/tool/common/service/common",{"_index":5391,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{}}}],["apps/server/src/modules/tool/common/uc/tool",{"_index":20702,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["apps/server/src/modules/tool/context",{"_index":5763,"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":2484,"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":7321,"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":1586,"title":{},"body":{"classes/AuthenticationValues.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":20701,"title":{},"body":{"modules/ToolModule.html":{}}}],["apps/server/src/modules/user",{"_index":4507,"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":17501,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts",{"_index":4198,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts:8",{"_index":4202,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts",{"_index":19340,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:3",{"_index":19342,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:9",{"_index":19343,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts",{"_index":20920,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:15",{"_index":20927,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:25",{"_index":20924,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/interfaces/user",{"_index":12593,"title":{},"body":{"interfaces/IUserConfig.html":{}}}],["apps/server/src/modules/user/mapper/resolved",{"_index":17490,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts",{"_index":21437,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts:5",{"_index":21438,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/service/user.service.ts",{"_index":21668,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:103",{"_index":21693,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:112",{"_index":21676,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:118",{"_index":21677,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:20",{"_index":21674,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:29",{"_index":21690,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:39",{"_index":21688,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:46",{"_index":21686,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:55",{"_index":21680,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:61",{"_index":21695,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:67",{"_index":21697,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:73",{"_index":21682,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:79",{"_index":21679,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:85",{"_index":21678,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:91",{"_index":21684,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts",{"_index":21060,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:20",{"_index":21067,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:22",{"_index":21063,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:24",{"_index":21065,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:26",{"_index":21070,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:28",{"_index":21074,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:3",{"_index":21062,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:30",{"_index":21075,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:32",{"_index":21071,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:34",{"_index":21064,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:36",{"_index":21068,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:38",{"_index":21066,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:41",{"_index":21073,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:43",{"_index":21069,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:45",{"_index":21072,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts",{"_index":21725,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:12",{"_index":21731,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:19",{"_index":21729,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:25",{"_index":21732,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:9",{"_index":21727,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/user",{"_index":20917,"title":{},"body":{"modules/UserApiModule.html":{}}}],["apps/server/src/modules/user/user.module.ts",{"_index":21578,"title":{},"body":{"modules/UserModule.html":{}}}],["apps/server/src/modules/video",{"_index":1936,"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":1199,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts",{"_index":1627,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts:4",{"_index":1629,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts",{"_index":3849,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:12",{"_index":3858,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:15",{"_index":3861,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:18",{"_index":3860,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:21",{"_index":3859,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:25",{"_index":3857,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:47",{"_index":3862,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/entity",{"_index":8350,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["apps/server/src/shared/common/error/forbidden",{"_index":10787,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["apps/server/src/shared/common/error/user",{"_index":20899,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts",{"_index":21739,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts:4",{"_index":21740,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/interceptor/duration",{"_index":8222,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/interfaces/interceptor",{"_index":12068,"title":{},"body":{"interfaces/IInterceptorConfig.html":{}}}],["apps/server/src/shared/common/interceptor/request",{"_index":17465,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts",{"_index":20327,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11",{"_index":20331,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14",{"_index":20332,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/loggable",{"_index":15440,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts",{"_index":6197,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts:9",{"_index":6200,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/guard",{"_index":11355,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts",{"_index":19031,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:10",{"_index":19034,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:2",{"_index":19036,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts",{"_index":16582,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:14",{"_index":16583,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:8",{"_index":16584,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts",{"_index":16587,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:11",{"_index":16590,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:14",{"_index":16593,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:17",{"_index":16592,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:20",{"_index":16591,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:3",{"_index":16589,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts",{"_index":18976,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:13",{"_index":18977,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:18",{"_index":18979,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/domain/domain",{"_index":1598,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts",{"_index":2234,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts:5",{"_index":2236,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/board/board",{"_index":2725,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts",{"_index":3960,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:10",{"_index":3968,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:14",{"_index":3970,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:18",{"_index":3972,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:22",{"_index":3974,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column",{"_index":4749,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts",{"_index":4740,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:10",{"_index":4744,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:6",{"_index":4743,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/content",{"_index":5607,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["apps/server/src/shared/domain/domainobject/board/external",{"_index":8714,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/file",{"_index":9914,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/link",{"_index":14334,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/rich",{"_index":17538,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/submission",{"_index":19051,"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":2779,"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":8538,"title":{},"body":{"classes/ExternalSource.html":{}}}],["apps/server/src/shared/domain/domainobject/legacy",{"_index":13973,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts",{"_index":7243,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:17",{"_index":14679,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:19",{"_index":14688,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:21",{"_index":14675,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:23",{"_index":14686,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:25",{"_index":14676,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:27",{"_index":14677,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:29",{"_index":14678,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:31",{"_index":14684,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:33",{"_index":14685,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:35",{"_index":14683,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:37",{"_index":14670,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:39",{"_index":14674,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:41",{"_index":14673,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:43",{"_index":14682,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:45",{"_index":14680,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:47",{"_index":14671,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:49",{"_index":14687,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:51",{"_index":14681,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:53",{"_index":14672,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:55",{"_index":14669,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:6",{"_index":7246,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:8",{"_index":7245,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts",{"_index":16537,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:2",{"_index":16539,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:4",{"_index":16538,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts",{"_index":16985,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13",{"_index":16987,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17",{"_index":16989,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21",{"_index":16990,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25",{"_index":16991,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29",{"_index":16992,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/role",{"_index":17625,"title":{},"body":{"classes/RoleReference.html":{}}}],["apps/server/src/shared/domain/domainobject/user",{"_index":21212,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts",{"_index":20937,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:11",{"_index":20940,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:13",{"_index":20943,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:15",{"_index":20949,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:17",{"_index":20954,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:19",{"_index":20955,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:21",{"_index":20951,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:23",{"_index":20942,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:25",{"_index":20946,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:27",{"_index":20944,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:29",{"_index":20950,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:31",{"_index":20941,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:33",{"_index":20947,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:35",{"_index":20945,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:37",{"_index":20953,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:39",{"_index":20948,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:41",{"_index":20952,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:43",{"_index":20938,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:7",{"_index":20939,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:9",{"_index":20956,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/video",{"_index":21917,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts",{"_index":156,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:12",{"_index":171,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:15",{"_index":165,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:18",{"_index":167,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:21",{"_index":162,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:24",{"_index":169,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:27",{"_index":166,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:30",{"_index":164,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:33",{"_index":163,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:36",{"_index":161,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts",{"_index":2348,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:11",{"_index":2353,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:25",{"_index":2375,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:28",{"_index":2377,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:31",{"_index":2376,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:34",{"_index":2379,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:8",{"_index":2351,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts",{"_index":3547,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29",{"_index":3551,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32",{"_index":3549,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35",{"_index":3552,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39",{"_index":3555,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42",{"_index":3553,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/card",{"_index":4063,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/column",{"_index":4800,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/external",{"_index":8739,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/file",{"_index":9939,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/link",{"_index":14363,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/rich",{"_index":17562,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/submission",{"_index":19067,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/types/board",{"_index":3121,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts",{"_index":6535,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:100",{"_index":6559,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:103",{"_index":6548,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:106",{"_index":6561,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:44",{"_index":21737,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:46",{"_index":21736,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:48",{"_index":21738,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:57",{"_index":6563,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:60",{"_index":6556,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:64",{"_index":6565,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:68",{"_index":6570,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:72",{"_index":6573,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:76",{"_index":6572,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:79",{"_index":6554,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:83",{"_index":6550,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:86",{"_index":6568,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:90",{"_index":6574,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:93",{"_index":6551,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:97",{"_index":6567,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts",{"_index":6814,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:21",{"_index":6817,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:25",{"_index":6822,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:29",{"_index":6816,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:33",{"_index":6820,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts",{"_index":7466,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:100",{"_index":10992,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:108",{"_index":10981,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:117",{"_index":10987,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:138",{"_index":10991,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:14",{"_index":12007,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:142",{"_index":10994,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:16",{"_index":12009,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:161",{"_index":7486,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:163",{"_index":7484,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:165",{"_index":7485,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:167",{"_index":7487,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:169",{"_index":7508,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:176",{"_index":7514,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:18",{"_index":12008,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:180",{"_index":7483,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:193",{"_index":7502,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:197",{"_index":7506,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:20",{"_index":12005,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:201",{"_index":7500,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:213",{"_index":7497,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:22",{"_index":12004,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:221",{"_index":7512,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:231",{"_index":7521,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:24",{"_index":12010,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:240",{"_index":7518,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:255",{"_index":7493,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:266",{"_index":7491,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:272",{"_index":7489,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:278",{"_index":7499,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:286",{"_index":7505,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:298",{"_index":7516,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:307",{"_index":7510,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:38",{"_index":10977,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:40",{"_index":10980,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:42",{"_index":10979,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:52",{"_index":10976,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:60",{"_index":10985,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:64",{"_index":10984,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:68",{"_index":10986,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:72",{"_index":10983,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:76",{"_index":10978,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:78",{"_index":10990,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:8",{"_index":12006,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:82",{"_index":10988,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:86",{"_index":10989,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:90",{"_index":10993,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts",{"_index":7619,"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":7626,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45",{"_index":7627,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48",{"_index":7628,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52",{"_index":7625,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56",{"_index":7623,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76",{"_index":7707,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81",{"_index":7709,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/external",{"_index":8543,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/federal",{"_index":6513,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["apps/server/src/shared/domain/entity/import",{"_index":12018,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["apps/server/src/shared/domain/entity/legacy",{"_index":2604,"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":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":{},"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:101",{"_index":14208,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:104",{"_index":14201,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:107",{"_index":14206,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:110",{"_index":14209,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:81",{"_index":12105,"title":{},"body":{"interfaces/ILessonParent.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:87",{"_index":14207,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:91",{"_index":14205,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:95",{"_index":14202,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:98",{"_index":14203,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts",{"_index":7169,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:101",{"_index":14650,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:33",{"_index":14657,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:36",{"_index":14668,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:39",{"_index":14653,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:42",{"_index":14666,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:45",{"_index":14654,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:48",{"_index":14655,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:51",{"_index":14656,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:54",{"_index":14662,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:58",{"_index":14665,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:65",{"_index":14661,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:68",{"_index":14647,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:71",{"_index":14652,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:74",{"_index":14651,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:77",{"_index":14646,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:85",{"_index":14658,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:89",{"_index":14648,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:92",{"_index":14667,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:95",{"_index":14659,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:98",{"_index":14649,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts",{"_index":12108,"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":14803,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:34",{"_index":14804,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:37",{"_index":14805,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:40",{"_index":14806,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:43",{"_index":14807,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:46",{"_index":14808,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:49",{"_index":14809,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:52",{"_index":14810,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:55",{"_index":14811,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:58",{"_index":14812,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts",{"_index":6912,"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":18471,"title":{},"body":{"entities/SchoolNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:116",{"_index":6913,"title":{},"body":{"entities/CourseNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:127",{"_index":20150,"title":{},"body":{"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:34",{"_index":15063,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:38",{"_index":15053,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:43",{"_index":15055,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:46",{"_index":15056,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:49",{"_index":15059,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:52",{"_index":15060,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:55",{"_index":15061,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:59",{"_index":15062,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:62",{"_index":15058,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:65",{"_index":15054,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:68",{"_index":15064,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:70",{"_index":15057,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts",{"_index":12171,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:15",{"_index":17585,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:18",{"_index":17586,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:21",{"_index":17588,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts",{"_index":12192,"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":18155,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:107",{"_index":18145,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:47",{"_index":18485,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:50",{"_index":18484,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:56",{"_index":18486,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:59",{"_index":18487,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:66",{"_index":18144,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:69",{"_index":18146,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:72",{"_index":18147,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:75",{"_index":18143,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:78",{"_index":18151,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:81",{"_index":18148,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:84",{"_index":18149,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:87",{"_index":18153,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:90",{"_index":18150,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:93",{"_index":18152,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts",{"_index":12234,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:13",{"_index":18520,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:16",{"_index":18521,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:19",{"_index":18519,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts",{"_index":12273,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:15",{"_index":19023,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:18",{"_index":19022,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:21",{"_index":19025,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:24",{"_index":19024,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts",{"_index":12286,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:30",{"_index":19044,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:34",{"_index":19048,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:37",{"_index":19045,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:40",{"_index":19040,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:43",{"_index":19049,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:46",{"_index":19039,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:49",{"_index":19046,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:52",{"_index":19043,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:55",{"_index":19041,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:58",{"_index":19042,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts",{"_index":12340,"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":13759,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:105",{"_index":13760,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:108",{"_index":13758,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:111",{"_index":13767,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:114",{"_index":13764,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:117",{"_index":13765,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:120",{"_index":13766,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:123",{"_index":13762,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:126",{"_index":13763,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:153",{"_index":16354,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:166",{"_index":16356,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:169",{"_index":16357,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:172",{"_index":16359,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:175",{"_index":16355,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:178",{"_index":16361,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:18",{"_index":15741,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:181",{"_index":16360,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:184",{"_index":16362,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:187",{"_index":16358,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:206",{"_index":19422,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:209",{"_index":19423,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:212",{"_index":19413,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:215",{"_index":19414,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:218",{"_index":19417,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:222",{"_index":19420,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:225",{"_index":19418,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:228",{"_index":19416,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:231",{"_index":19421,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:36",{"_index":15743,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:39",{"_index":15744,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:42",{"_index":15746,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:45",{"_index":15751,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:48",{"_index":15745,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:51",{"_index":15754,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:54",{"_index":15742,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:57",{"_index":15752,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:60",{"_index":15753,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:63",{"_index":15750,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:66",{"_index":15749,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:69",{"_index":15747,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:72",{"_index":15748,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:76",{"_index":13755,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:93",{"_index":13756,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:96",{"_index":13757,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:99",{"_index":13761,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts",{"_index":12453,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:16",{"_index":20113,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:18",{"_index":20112,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:35",{"_index":12454,"title":{},"body":{"interfaces/ITaskParent.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:45",{"_index":19606,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:48",{"_index":19600,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:51",{"_index":19601,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:54",{"_index":19597,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:58",{"_index":19602,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:61",{"_index":19607,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:64",{"_index":19608,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:67",{"_index":19611,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:71",{"_index":19599,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:75",{"_index":19598,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:79",{"_index":19609,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:83",{"_index":19605,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:86",{"_index":19610,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:90",{"_index":19603,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts",{"_index":12563,"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":20223,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:27",{"_index":20226,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:30",{"_index":20224,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:33",{"_index":20225,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:36",{"_index":20227,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:40",{"_index":20229,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:44",{"_index":20231,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:48",{"_index":20233,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:56",{"_index":20122,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:59",{"_index":20123,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/user",{"_index":21236,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts",{"_index":12595,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:41",{"_index":20880,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:44",{"_index":20883,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:47",{"_index":20889,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:51",{"_index":20896,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:55",{"_index":20897,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:59",{"_index":20891,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:62",{"_index":20882,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:65",{"_index":20894,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:69",{"_index":20886,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:72",{"_index":20884,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:75",{"_index":20890,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:78",{"_index":20881,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:81",{"_index":20887,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:84",{"_index":20885,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:87",{"_index":20893,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:91",{"_index":20879,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:94",{"_index":20888,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:97",{"_index":20892,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/video",{"_index":21749,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["apps/server/src/shared/domain/interface/base",{"_index":2340,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["apps/server/src/shared/domain/interface/entity.ts",{"_index":11969,"title":{},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/interface/find",{"_index":12002,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["apps/server/src/shared/domain/interface/learnroom.ts",{"_index":12087,"title":{},"body":{"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts",{"_index":16634,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:17",{"_index":16640,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:26",{"_index":16645,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:51",{"_index":16638,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/types/importuser.types.ts",{"_index":12064,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["apps/server/src/shared/domain/types/news.types.ts",{"_index":11943,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["apps/server/src/shared/domain/types/rich",{"_index":17527,"title":{},"body":{"classes/RichText.html":{}}}],["apps/server/src/shared/domain/types/task.types.ts",{"_index":12446,"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":1101,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts:8",{"_index":1105,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts",{"_index":1138,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:10",{"_index":1145,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:17",{"_index":1148,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:44",{"_index":1154,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:62",{"_index":1152,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts",{"_index":1132,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["apps/server/src/shared/infra/cache/cache.module.ts",{"_index":3887,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts",{"_index":3874,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts:7",{"_index":3876,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/calendar/calendar.module.ts",{"_index":3935,"title":{},"body":{"modules/CalendarModule.html":{}}}],["apps/server/src/shared/infra/calendar/dto/calendar",{"_index":3906,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["apps/server/src/shared/infra/calendar/interface/calendar",{"_index":11594,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts",{"_index":3916,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7",{"_index":3919,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts",{"_index":3939,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:15",{"_index":3949,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:17",{"_index":3943,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:24",{"_index":3946,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:46",{"_index":3948,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/collaborative",{"_index":4542,"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":5599,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{}}}],["apps/server/src/shared/infra/database/management/database",{"_index":7930,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{}}}],["apps/server/src/shared/infra/database/mongo",{"_index":15002,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts",{"_index":11960,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:5",{"_index":11966,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:6",{"_index":11964,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.module.ts",{"_index":8338,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts",{"_index":19345,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:15",{"_index":19348,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:23",{"_index":19347,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:8",{"_index":19346,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/feathers/feathers",{"_index":9822,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["apps/server/src/shared/infra/feathers/feathers.module.ts",{"_index":9704,"title":{},"body":{"modules/FeathersModule.html":{}}}],["apps/server/src/shared/infra/file",{"_index":10358,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["apps/server/src/shared/infra/identity",{"_index":11597,"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":1291,"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":14765,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts:11",{"_index":14767,"title":{},"body":{"modules/MailModule.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts",{"_index":14771,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:12",{"_index":14773,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:18",{"_index":14774,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts",{"_index":16816,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:12",{"_index":16833,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:14",{"_index":16838,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:18",{"_index":16832,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:20",{"_index":16840,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:24",{"_index":16828,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:26",{"_index":16842,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:30",{"_index":16829,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:32",{"_index":16844,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:34",{"_index":16827,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:4",{"_index":16830,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:44",{"_index":16845,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:52",{"_index":16834,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:6",{"_index":16831,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:8",{"_index":16836,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts",{"_index":17416,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10",{"_index":17423,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12",{"_index":17425,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14",{"_index":17427,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16",{"_index":17421,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32",{"_index":17510,"title":{},"body":{"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6",{"_index":17424,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8",{"_index":17422,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/oauth",{"_index":108,"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":16657,"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":8432,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/error.mapper.ts:6",{"_index":8436,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/exchange/files",{"_index":11929,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts",{"_index":17158,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:55",{"_index":17181,"title":{},"body":{"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rpc",{"_index":11971,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{}}}],["apps/server/src/shared/infra/redis/redis.module.ts",{"_index":17398,"title":{},"body":{"modules/RedisModule.html":{}}}],["apps/server/src/shared/infra/s3",{"_index":6330,"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":2238,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:11",{"_index":2287,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:111",{"_index":2266,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:116",{"_index":2270,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:13",{"_index":2269,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:15",{"_index":2275,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:17",{"_index":2272,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:19",{"_index":2281,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:24",{"_index":2283,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:42",{"_index":2255,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:50",{"_index":2286,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:63",{"_index":2258,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:77",{"_index":2277,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:8",{"_index":2252,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:85",{"_index":2260,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:98",{"_index":2264,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts",{"_index":2424,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:13",{"_index":2433,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:16",{"_index":2438,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:18",{"_index":2434,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:22",{"_index":2437,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:26",{"_index":2435,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:30",{"_index":2436,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts",{"_index":3620,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:11",{"_index":3628,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:17",{"_index":3631,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:25",{"_index":3626,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:38",{"_index":3633,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:7",{"_index":3634,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/contextexternaltool/context",{"_index":5906,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts",{"_index":6961,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:120",{"_index":6974,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:129",{"_index":6977,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:21",{"_index":7019,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:32",{"_index":7018,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:37",{"_index":7015,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:47",{"_index":7017,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:55",{"_index":6978,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:59",{"_index":6967,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:71",{"_index":6970,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:9",{"_index":7016,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:95",{"_index":6972,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts",{"_index":6841,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19",{"_index":6844,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26",{"_index":6847,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9",{"_index":6848,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts",{"_index":7711,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112",{"_index":7734,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128",{"_index":7729,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16",{"_index":7722,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19",{"_index":7740,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24",{"_index":7736,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34",{"_index":7731,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42",{"_index":7742,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51",{"_index":7738,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64",{"_index":7727,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75",{"_index":7744,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95",{"_index":7724,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts",{"_index":7796,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14",{"_index":11958,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15",{"_index":11957,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16",{"_index":11959,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20",{"_index":7800,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24",{"_index":7806,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30",{"_index":7808,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36",{"_index":7802,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42",{"_index":7804,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/externaltool/external",{"_index":9075,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["apps/server/src/shared/repo/federalstate/federal",{"_index":9855,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts",{"_index":12941,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:11",{"_index":12956,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:27",{"_index":12954,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:34",{"_index":12950,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:52",{"_index":12952,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:69",{"_index":12947,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts",{"_index":12996,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:10",{"_index":13020,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:100",{"_index":13016,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:113",{"_index":13024,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:17",{"_index":13022,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:24",{"_index":13009,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:38",{"_index":13011,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:54",{"_index":13013,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:69",{"_index":13018,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:86",{"_index":13007,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson",{"_index":14283,"title":{},"body":{"classes/LessonScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts",{"_index":14224,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:13",{"_index":14228,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:23",{"_index":14230,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:41",{"_index":14232,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:9",{"_index":14233,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts",{"_index":14707,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17",{"_index":14713,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26",{"_index":14715,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31",{"_index":14712,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9",{"_index":14718,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts",{"_index":14818,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts:7",{"_index":14819,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts",{"_index":15021,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts:6",{"_index":15025,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/news/news",{"_index":15243,"title":{},"body":{"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts",{"_index":15192,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:10",{"_index":15206,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:12",{"_index":15207,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:21",{"_index":15199,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:36",{"_index":15201,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:51",{"_index":15205,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:58",{"_index":15203,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts",{"_index":17628,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:11",{"_index":17636,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:13",{"_index":17632,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:23",{"_index":17634,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:28",{"_index":17631,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:7",{"_index":17637,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/school/legacy",{"_index":14026,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["apps/server/src/shared/repo/schoolexternaltool/school",{"_index":18198,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["apps/server/src/shared/repo/scope.ts",{"_index":18537,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:11",{"_index":18540,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:13",{"_index":18539,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:20",{"_index":18545,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:31",{"_index":18542,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:35",{"_index":18543,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:9",{"_index":18541,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts",{"_index":19026,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12",{"_index":19029,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16",{"_index":19028,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7",{"_index":19027,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts",{"_index":19230,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:10",{"_index":19243,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:21",{"_index":19237,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:30",{"_index":19239,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:35",{"_index":19235,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:41",{"_index":19242,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/system/system",{"_index":19539,"title":{},"body":{"classes/SystemScope.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts",{"_index":19509,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:12",{"_index":19513,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:31",{"_index":19511,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:8",{"_index":19514,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/task/task",{"_index":19959,"title":{},"body":{"classes/TaskScope.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts",{"_index":19822,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:106",{"_index":19831,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:11",{"_index":19842,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:15",{"_index":19841,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:164",{"_index":19837,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:190",{"_index":19839,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:26",{"_index":19829,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:38",{"_index":19835,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts",{"_index":20255,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:12",{"_index":20260,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:35",{"_index":20257,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:42",{"_index":20259,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:8",{"_index":20261,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts",{"_index":19000,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:10",{"_index":19006,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:21",{"_index":19009,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:36",{"_index":19011,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/user/user",{"_index":20979,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts",{"_index":21592,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:158",{"_index":21599,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:166",{"_index":21597,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:173",{"_index":21605,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:185",{"_index":21607,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:189",{"_index":21604,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:21",{"_index":21608,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:36",{"_index":21600,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:48",{"_index":21603,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts",{"_index":21655,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:12",{"_index":21664,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:19",{"_index":21662,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:28",{"_index":21666,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:35",{"_index":21658,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:5",{"_index":21660,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/userloginmigration/user",{"_index":21291,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["apps/server/src/shared/repo/videoconference/video",{"_index":22083,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts",{"_index":446,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:15",{"_index":468,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:9",{"_index":466,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/axios",{"_index":1906,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts",{"_index":2380,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:110",{"_index":2386,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:122",{"_index":2393,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:134",{"_index":2396,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:144",{"_index":2394,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:148",{"_index":2391,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:15",{"_index":2384,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:160",{"_index":2395,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:32",{"_index":2392,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:47",{"_index":2387,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:60",{"_index":2390,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:75",{"_index":2388,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:84",{"_index":2389,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:98",{"_index":2385,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts",{"_index":6791,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:12",{"_index":6795,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:19",{"_index":6796,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:26",{"_index":6798,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:33",{"_index":6801,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts",{"_index":6836,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts:8",{"_index":6837,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/board/column",{"_index":4794,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/do",{"_index":8107,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/domain",{"_index":8115,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/legacy",{"_index":14001,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/context",{"_index":5862,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/external",{"_index":7331,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/school",{"_index":18173,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/external",{"_index":8781,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts",{"_index":10198,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts:10",{"_index":10200,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/import",{"_index":12830,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts",{"_index":7058,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:18",{"_index":13197,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:22",{"_index":13196,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/lesson.factory.ts",{"_index":14211,"title":{},"body":{"classes/LessonFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts",{"_index":14690,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:14",{"_index":14694,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:7",{"_index":14692,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/material.factory.ts",{"_index":14814,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["apps/server/src/shared/testing/factory/readable",{"_index":17183,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["apps/server/src/shared/testing/factory/share",{"_index":18761,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts",{"_index":19104,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:15",{"_index":19109,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:21",{"_index":19108,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:27",{"_index":19111,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:9",{"_index":19107,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts",{"_index":19424,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:28",{"_index":19429,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:40",{"_index":19432,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:7",{"_index":19431,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts",{"_index":19765,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:11",{"_index":19766,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:17",{"_index":19769,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:23",{"_index":19770,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:29",{"_index":19768,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts",{"_index":20125,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:14",{"_index":20131,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:7",{"_index":20129,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts",{"_index":20234,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:19",{"_index":20237,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:9",{"_index":20235,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user",{"_index":641,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts",{"_index":21052,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts:8",{"_index":21055,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts",{"_index":21082,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:11",{"_index":21093,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:17",{"_index":21091,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:23",{"_index":21088,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:32",{"_index":21089,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:41",{"_index":21087,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/test",{"_index":1431,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["apps\\server\\src\\shared\\testing\\factory",{"_index":23554,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appstartinfo",{"_index":1265,"title":{"interfaces/AppStartInfo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["appstartloggable",{"_index":1275,"title":{"classes/AppStartLoggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["appthis",{"_index":22307,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["arbitrary",{"_index":23343,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["arc",{"_index":2428,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["architectural",{"_index":23155,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["architecture",{"_index":22299,"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":23331,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["archive",{"_index":22943,"title":{},"body":{"license.html":{}}}],["archived",{"_index":6898,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["archivegroup(groupname",{"_index":1032,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["are.claim.values.regex",{"_index":13486,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["area",{"_index":23735,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["areas",{"_index":23423,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["aresubmissionspublic",{"_index":12519,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["arg",{"_index":22178,"title":{},"body":{"dependencies.html":{}}}],["args",{"_index":18563,"title":{},"body":{"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{}}}],["argument",{"_index":1000,"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":10894,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["arising",{"_index":22907,"title":{},"body":{"license.html":{}}}],["around",{"_index":19734,"title":{},"body":{"injectables/TaskCopyUC.html":{},"todo.html":{}}}],["arrange",{"_index":22823,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["arrangement",{"_index":22833,"title":{},"body":{"license.html":{}}}],["array",{"_index":1669,"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":{},"classes/SubmissionItemResponse.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":3519,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["array.from(classmap.keys",{"_index":4493,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["array.from(modelentity.gridelements).foreach((el",{"_index":7787,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["array.isarray(boardnode",{"_index":3254,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(cardidparams.ids",{"_index":4028,"title":{},"body":{"controllers/CardController.html":{}}}],["array.isarray(collectionnamefilter",{"_index":11727,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["array.isarray(domainobjects",{"_index":2326,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(id",{"_index":2335,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(matches",{"_index":12049,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(permissions",{"_index":9685,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["array.isarray(props.classnames",{"_index":12035,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(props.rolenames",{"_index":12032,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(requiredpermissions",{"_index":1670,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["array.isarray(t",{"_index":3250,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(user.attributes[attributename",{"_index":13628,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.isarray(user.permissions",{"_index":9650,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["array.isarray(value",{"_index":13640,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["arraybuffer",{"_index":8887,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["article",{"_index":22546,"title":{},"body":{"license.html":{}}}],["asadmin",{"_index":21083,"title":{},"body":{"classes/UserFactory.html":{}}}],["asadmin(additionalpermissions",{"_index":677,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["asc",{"_index":10459,"title":{},"body":{"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["asguest",{"_index":2077,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["asguest(isguest",{"_index":22018,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["asguest(value",{"_index":2080,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["ask",{"_index":14281,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["ask_moderator",{"_index":1980,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["asks",{"_index":5502,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["aspnetcore_environment='development",{"_index":23628,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["assert",{"_index":22399,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assets",{"_index":22778,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["assigned",{"_index":3460,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["assignemnt",{"_index":12862,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["assigning",{"_index":23299,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assignment",{"_index":1009,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["assignment,@typescript",{"_index":1006,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["associated",{"_index":20115,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{}}}],["associations",{"_index":453,"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":483,"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":21084,"title":{},"body":{"classes/UserFactory.html":{}}}],["asstudent(additionalpermissions",{"_index":667,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["assume",{"_index":22898,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["assumption",{"_index":22926,"title":{},"body":{"license.html":{}}}],["assumptions",{"_index":22728,"title":{},"body":{"license.html":{}}}],["asteacher",{"_index":21085,"title":{},"body":{"classes/UserFactory.html":{}}}],["asteacher(additionalpermissions",{"_index":673,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["async",{"_index":262,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/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":23461,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["atm",{"_index":1451,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["attach",{"_index":22932,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["attachment",{"_index":1299,"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":1301,"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":22738,"title":{},"body":{"license.html":{}}}],["attempted",{"_index":14994,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["attendee",{"_index":2117,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["attendeepw",{"_index":1957,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["attendees",{"_index":2101,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["attends",{"_index":12861,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["attention",{"_index":23790,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["attribute",{"_index":12723,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["attributename",{"_index":12720,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributes",{"_index":3925,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["attributes.summary",{"_index":3929,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributes['x",{"_index":3927,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributevalue",{"_index":12725,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributions",{"_index":22715,"title":{},"body":{"license.html":{}}}],["aud",{"_index":7059,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["audience",{"_index":1417,"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":4849,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["autenticationresponse",{"_index":1448,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["auth",{"_index":1077,"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":13147,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["auth.provider",{"_index":9681,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["auth.provider.ts",{"_index":9630,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["auth.provider.ts:13",{"_index":9636,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:16",{"_index":9644,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:26",{"_index":9646,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:38",{"_index":9640,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:55",{"_index":9638,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:60",{"_index":9642,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth_token",{"_index":2094,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["authcode",{"_index":15516,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authconfig",{"_index":13154,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.jwtoptions",{"_index":13163,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.secret",{"_index":13162,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authendpoint",{"_index":11569,"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":338,"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/MetaTagExtractorController.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":343,"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/MetaTagExtractorController.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":16001,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@delete('clients/:id",{"_index":15976,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('auth/sessions/consent",{"_index":15989,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients",{"_index":15991,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients/:id",{"_index":15984,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('consentrequest/:challenge",{"_index":15979,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('consentrequest/:challenge",{"_index":15994,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('loginrequest/:challenge",{"_index":15997,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('logoutrequest/:challenge",{"_index":15972,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@post('clients",{"_index":15974,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@put('clients/:id",{"_index":16003,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticated",{"_index":303,"title":{},"body":{"controllers/AccountController.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"interfaces/OauthCurrentUser.html":{}}}],["authenticateuser",{"_index":15501,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticateuser(systemid",{"_index":15515,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticating",{"_index":23209,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["authentication",{"_index":1731,"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":1319,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["authentication/authentication",{"_index":11415,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["authentication/authentication.module",{"_index":10836,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/MetaTagExtractorModule.html":{}}}],["authentication/local",{"_index":1443,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationapimodule",{"_index":1311,"title":{"modules/AuthenticationApiModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["authenticationcodegranttokenrequest",{"_index":1322,"title":{"classes/AuthenticationCodeGrantTokenRequest.html":{}},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/TokenRequestMapper.html":{}}}],["authenticationexecutioninforepresentation",{"_index":13378,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationflowrepresentation",{"_index":13380,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationmodule",{"_index":1315,"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/MetaTagExtractorModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["authenticationresponse",{"_index":1430,"title":{"interfaces/AuthenticationResponse.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationresponse.accesstoken",{"_index":1513,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationservice",{"_index":1357,"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":15586,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["authenticationurl.searchparams.append('client_id",{"_index":15588,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('kc_idp_hint",{"_index":15593,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('redirect_uri",{"_index":15589,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('response_type",{"_index":15590,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('scope",{"_index":15591,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('state",{"_index":15592,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.tostring",{"_index":15594,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationvalues",{"_index":1585,"title":{"classes/AuthenticationValues.html":{}},"body":{"classes/AuthenticationValues.html":{}}}],["authguard",{"_index":13149,"title":{},"body":{"injectables/JwtAuthGuard.html":{},"controllers/LoginController.html":{}}}],["authguard('jwt",{"_index":13148,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["authheader",{"_index":16302,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.split",{"_index":16305,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.tolowercase().startswith('bearer",{"_index":16304,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["author",{"_index":22714,"title":{},"body":{"license.html":{},"properties.html":{}}}],["authoriation",{"_index":23803,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorisation",{"_index":3546,"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":14195,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorisationservice",{"_index":8125,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["authorizable",{"_index":2479,"title":{},"body":{"classes/BaseUc.html":{}}}],["authorizable.service",{"_index":3799,"title":{},"body":{"injectables/BoardUc.html":{}}}],["authorizable.service.ts",{"_index":3084,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:11",{"_index":5797,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:18",{"_index":3089,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:24",{"_index":3090,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:32",{"_index":3092,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:50",{"_index":3094,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:8",{"_index":5796,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.ts",{"_index":3059,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizable.ts:32",{"_index":3062,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:36",{"_index":3064,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:40",{"_index":3066,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizableobject",{"_index":1597,"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":1784,"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":10645,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.contextexternaltoolentity",{"_index":6145,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.course",{"_index":6774,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.lesson",{"_index":10641,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.school",{"_index":10639,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{}}}],["authorizablereferencetype.submission",{"_index":10643,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.task",{"_index":10634,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.user",{"_index":10637,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizableuser",{"_index":14112,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["authorization",{"_index":1631,"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":13750,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:12",{"_index":13754,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:13",{"_index":14394,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:17",{"_index":13751,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:21",{"_index":13752,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:7",{"_index":13753,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:8",{"_index":14395,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.helper",{"_index":1816,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["authorization.module",{"_index":1769,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorization.params",{"_index":16245,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authorization.params.ts",{"_index":18995,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:12",{"_index":18997,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:16",{"_index":18998,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:20",{"_index":18999,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:8",{"_index":18996,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.service",{"_index":1790,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["authorization.service.ts",{"_index":9666,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:16",{"_index":9677,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:32",{"_index":9673,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:54",{"_index":9679,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:6",{"_index":9671,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization_code",{"_index":11573,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{}}}],["authorization_operation",{"_index":1630,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["authorization_timebox_ms",{"_index":13251,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorizationapimodule",{"_index":1754,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorizationcontext",{"_index":1606,"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":1612,"title":{"classes/AuthorizationContextBuilder.html":{}},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ExternalToolConfigurationUc.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":17125,"title":{},"body":{"injectables/PseudonymUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_admin",{"_index":6161,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_user",{"_index":20694,"title":{},"body":{"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read([permission.course_edit",{"_index":6787,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["authorizationcontextbuilder.read([permission.filestorage_view",{"_index":23762,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([permission.school_edit",{"_index":14139,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["authorizationcontextbuilder.read([permission.school_tool_admin",{"_index":8668,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["authorizationcontextbuilder.read([permission.submissions_view",{"_index":19328,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.read([permission.topic_create",{"_index":14193,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorizationcontextbuilder.read([permissions.course_view",{"_index":23759,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write",{"_index":14199,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.change_team_roles",{"_index":4712,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["authorizationcontextbuilder.write([permission.context_tool_admin",{"_index":6142,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["authorizationcontextbuilder.write([permission.course_create",{"_index":6772,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_create",{"_index":23761,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_edit",{"_index":23763,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_remove",{"_index":23764,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.instance",{"_index":23771,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.submissions_edit",{"_index":19325,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.write([permission.topic_view",{"_index":14322,"title":{},"body":{"injectables/LessonUC.html":{}}}],["authorizationcontextbuilder.write([permission.user_login_migration_admin",{"_index":17522,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["authorizationcontextbuilder.write(requiredpermissions",{"_index":18922,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["authorizationerror",{"_index":1626,"title":{"classes/AuthorizationError.html":{}},"body":{"classes/AuthorizationError.html":{}}}],["authorizationhelper",{"_index":1634,"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":1679,"title":{"interfaces/AuthorizationLoaderService.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizationloaderservicegeneric",{"_index":1687,"title":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/GroupService.html":{}}}],["authorizationmodule",{"_index":1689,"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/MetaTagExtractorApiModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/PseudonymApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/TaskApiModule.html":{},"modules/ToolApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationparams",{"_index":1718,"title":{"classes/AuthorizationParams.html":{}},"body":{"classes/AuthorizationParams.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["authorizationreferencemodule",{"_index":1734,"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":1739,"title":{"injectables/AuthorizationReferenceService.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ShareTokenUC.html":{}}}],["authorizations",{"_index":19733,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationservice",{"_index":1695,"title":{"injectables/AuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/MetaTagExtractorUc.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":12429,"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":16618,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizeaccess",{"_index":13253,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorized",{"_index":1632,"title":{},"body":{"classes/AuthorizationError.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizes",{"_index":22801,"title":{},"body":{"license.html":{}}}],["authorizing",{"_index":22837,"title":{},"body":{"license.html":{}}}],["authors",{"_index":22719,"title":{},"body":{"license.html":{}}}],["authparams",{"_index":11465,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["authservice",{"_index":4684,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LoginUc.html":{}}}],["authtoken",{"_index":1018,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["auto",{"_index":1841,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"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":{}}}],["autocontextidstrategy",{"_index":1830,"title":{"injectables/AutoContextIdStrategy.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["autocontextnamestrategy",{"_index":1844,"title":{"injectables/AutoContextNameStrategy.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["automated",{"_index":23393,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["automatic",{"_index":22770,"title":{},"body":{"license.html":{}}}],["automatically",{"_index":8971,"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":8958,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameters.includes(customparameter.type",{"_index":8997,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameterstrategy",{"_index":1840,"title":{"interfaces/AutoParameterStrategy.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["autoparameterstrategymap",{"_index":2529,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["autoschoolidstrategy",{"_index":1890,"title":{"injectables/AutoSchoolIdStrategy.html":{}},"body":{"injectables/AutoSchoolIdStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["autoschoolnumberstrategy",{"_index":1894,"title":{"injectables/AutoSchoolNumberStrategy.html":{}},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["avaible",{"_index":1686,"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":2355,"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":{},"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":12250,"title":{},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{}}}],["availabledate",{"_index":3734,"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":19889,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["availableschoolexternaltools",{"_index":8600,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["availableschoolexternaltools.map",{"_index":8627,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["availabletools",{"_index":8617,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["availabletools.foreach((externaltool",{"_index":8672,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext",{"_index":8680,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext.foreach((tooltemplateinfo",{"_index":8683,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["avoid",{"_index":1760,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["await",{"_index":608,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/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/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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/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":23463,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["awaiting_scan_status",{"_index":10117,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["awaits",{"_index":20715,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["away",{"_index":22379,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["aws",{"_index":8030,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"dependencies.html":{}}}],["axios",{"_index":1920,"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":11459,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosheaders",{"_index":1915,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaders(props.headers",{"_index":1929,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaderskeyvalue",{"_index":1921,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheadervalue",{"_index":1919,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosrequestconfig",{"_index":3947,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponse",{"_index":1908,"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":1933,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseimp",{"_index":1905,"title":{"classes/AxiosResponseImp.html":{}},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseprops",{"_index":1911,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["b",{"_index":2661,"title":{},"body":{"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/MetaTagExtractorService.html":{},"classes/SortHelper.html":{},"license.html":{}}}],["b.getmetadata().title",{"_index":7540,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["b.position",{"_index":3240,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["b.width",{"_index":14901,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["back",{"_index":518,"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":14548,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["backchannelsupported",{"_index":16406,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["backend",{"_index":23714,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["backendurl",{"_index":8872,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["backendurl}${filledtemplate",{"_index":8876,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["background",{"_index":10133,"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":11690,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["backup/idm/keycloak",{"_index":23663,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup/setup/accounts.json",{"_index":13305,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["backup/setup/users.json",{"_index":13306,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["bad",{"_index":12322,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["badrequest",{"_index":19735,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["badrequestexception",{"_index":2618,"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":{},"injectables/SubmissionItemUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["badrequestexception('dashboard",{"_index":7562,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('destination",{"_index":18913,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["badrequestexception('elements",{"_index":2655,"title":{},"body":{"entities/Board.html":{}}}],["badrequestexception('language",{"_index":21723,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["badrequestexception('this",{"_index":7548,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('unknown",{"_index":21545,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["badrequestexception(`cannot",{"_index":2767,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(`invalid",{"_index":2765,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(errorobj.message",{"_index":8440,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["badrequestexception(errortype.file_name_empty",{"_index":10165,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["badrequestexception})@apiresponse({status",{"_index":11375,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["badrequestloggableexception",{"_index":23377,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["base",{"_index":1938,"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":7248,"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":14039,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["base.do.repo.ts",{"_index":2374,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["base.entity",{"_index":175,"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":526,"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":8108,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["base.interface.strategy",{"_index":15376,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["base.repo",{"_index":3635,"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":2052,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{}}}],["base.response.ts",{"_index":1948,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["base.strategy",{"_index":13112,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{}}}],["base.uc",{"_index":3800,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["base64",{"_index":8879,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"dependencies.html":{}}}],["base64content",{"_index":1294,"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":8883,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["base_string",{"_index":14585,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["base_url",{"_index":17443,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["based",{"_index":2381,"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":11694,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["basedo",{"_index":1683,"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":5777,"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":2339,"title":{"classes/BaseDomainObject.html":{}},"body":{"classes/BaseDomainObject.html":{}}}],["basedorepo",{"_index":2237,"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":5928,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:111",{"_index":5934,"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":9090,"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":20991,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:13",{"_index":14710,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["basedorepo:19",{"_index":5936,"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":9080,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:24",{"_index":5937,"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":18809,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:28",{"_index":18207,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:29",{"_index":20984,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:34",{"_index":5920,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:37",{"_index":22088,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:40",{"_index":21296,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:42",{"_index":5930,"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":14717,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:45",{"_index":14031,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:46",{"_index":18808,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:49",{"_index":14037,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:50",{"_index":5938,"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":21295,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:56",{"_index":5923,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:60",{"_index":20990,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:63",{"_index":5931,"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":14036,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:69",{"_index":14716,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:74",{"_index":18213,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:77",{"_index":5935,"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":5929,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:84",{"_index":9089,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:85",{"_index":5932,"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":9088,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["basedorepo:98",{"_index":5933,"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":2289,"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":2290,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["baseentityproperties.includes(key",{"_index":2323,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["baseentityreference",{"_index":2357,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["baseentitywithtimestamps",{"_index":174,"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":447,"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":1934,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalToolEntityFactory.html":{}}}],["basefactory.define(readablestreamwithfiletypeimp",{"_index":17193,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["basefactory:110",{"_index":485,"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":515,"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":523,"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":8117,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["basefactory:144",{"_index":516,"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":503,"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":464,"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":520,"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":508,"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":492,"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":499,"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":4316,"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":495,"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":497,"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":471,"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":14789,"title":{},"body":{"modules/ManagementModule.html":{}}}],["basename",{"_index":14884,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["basename(urlobject.pathname",{"_index":14897,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["basepath",{"_index":1269,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/ICollectionFilePath.html":{}}}],["basepermission",{"_index":23792,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["baserepo",{"_index":679,"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":6846,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["baserepo:14",{"_index":19240,"title":{},"body":{"injectables/SubmissionRepo.html":{},"injectables/TeamsRepo.html":{}}}],["baserepo:15",{"_index":12948,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["baserepo:17",{"_index":14231,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["baserepo:18",{"_index":712,"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":717,"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":21601,"title":{},"body":{"injectables/UserRepo.html":{}}}],["baserepo:26",{"_index":714,"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":715,"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":3629,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["baserepo:63",{"_index":6975,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["baseresponsemapper",{"_index":2441,"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":1456,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["baseuc",{"_index":2451,"title":{"classes/BaseUc.html":{}},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseuc:12",{"_index":3795,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseuc:28",{"_index":3797,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseuc:44",{"_index":3796,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseurl",{"_index":2133,"title":{},"body":{"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":7344,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["bash",{"_index":23612,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["basic",{"_index":13416,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["basictoolconfig",{"_index":2483,"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":9209,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["basictoolconfigentity",{"_index":2496,"title":{"classes/BasicToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["basictoolconfigfactory",{"_index":7341,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigfactory.build",{"_index":7390,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigparams",{"_index":2506,"title":{"classes/BasicToolConfigParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["basictoolconfigresponse",{"_index":2516,"title":{"classes/BasicToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["basictoollaunchstrategy",{"_index":2524,"title":{"injectables/BasicToolLaunchStrategy.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["batch",{"_index":7998,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["batchcounter",{"_index":8036,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["batchsize",{"_index":7988,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["bbb",{"_index":1952,"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":1935,"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":1976,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["bbbbaseresponse",{"_index":1946,"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":1954,"title":{"classes/BBBCreateConfig.html":{}},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbcreateconfigbuilder",{"_index":1998,"title":{"classes/BBBCreateConfigBuilder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["bbbcreateresponse",{"_index":2041,"title":{"interfaces/BBBCreateResponse.html":{}},"body":{"interfaces/BBBCreateResponse.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfig",{"_index":2053,"title":{"classes/BBBJoinConfig.html":{}},"body":{"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfigbuilder",{"_index":2075,"title":{"classes/BBBJoinConfigBuilder.html":{}},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["bbbjoinresponse",{"_index":2092,"title":{"interfaces/BBBJoinResponse.html":{}},"body":{"interfaces/BBBJoinResponse.html":{}}}],["bbbmeetinginforesponse",{"_index":2098,"title":{"interfaces/BBBMeetingInfoResponse.html":{}},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbresp",{"_index":2199,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.message",{"_index":2205,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.returncode",{"_index":2202,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresponse",{"_index":2124,"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":2021,"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":2036,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbrole.viewer",{"_index":2038,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbservice",{"_index":2126,"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":2208,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:end",{"_index":2214,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:getmeetinginfo",{"_index":2216,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbsettings",{"_index":2140,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbstatus",{"_index":1951,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/BBBService.html":{}}}],["bbbstatus.success",{"_index":2203,"title":{},"body":{"injectables/BBBService.html":{}}}],["bc",{"_index":1777,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["bcc",{"_index":1309,"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":871,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LocalStrategy.html":{}}}],["bcrypt.compare(comparepassword",{"_index":907,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcrypt.compare(enteredpassword",{"_index":14425,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["bcrypt.hash(password",{"_index":911,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcryptjs",{"_index":872,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/LocalStrategy.html":{},"dependencies.html":{}}}],["bearer",{"_index":1441,"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":22421,"title":{},"body":{"license.html":{}}}],["becoming",{"_index":23729,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["beetween",{"_index":4280,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["before",{"_index":355,"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":23512,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeall(async",{"_index":23490,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeeach",{"_index":23513,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforehand",{"_index":23081,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["beginning",{"_index":22334,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["behalf",{"_index":22527,"title":{},"body":{"license.html":{}}}],["behaves",{"_index":23378,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["behavior",{"_index":750,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["behaviour",{"_index":6501,"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":20329,"title":{},"body":{"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["being",{"_index":2398,"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":22831,"title":{},"body":{"license.html":{}}}],["belong",{"_index":4125,"title":{},"body":{"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["belongs",{"_index":5562,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["below",{"_index":22533,"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":22405,"title":{},"body":{"license.html":{}}}],["ber",{"_index":4894,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["berechtigungen",{"_index":4877,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["beside",{"_index":23063,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["best",{"_index":22929,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["better",{"_index":22945,"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":9717,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["between",{"_index":562,"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":23179,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["beyond",{"_index":22600,"title":{},"body":{"license.html":{}}}],["bezeichnung",{"_index":18018,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["big",{"_index":23168,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bigbluebutton",{"_index":21858,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["bigbluebutton/api/${callname",{"_index":2231,"title":{},"body":{"injectables/BBBService.html":{}}}],["binary",{"_index":6303,"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":10061,"title":{},"body":{"classes/FileParams.html":{}}}],["bind",{"_index":13803,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["binding",{"_index":13850,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["bis",{"_index":18033,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["blackbox",{"_index":23401,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["block",{"_index":23435,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["blocked",{"_index":10113,"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":23404,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["blti",{"_index":5232,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_bundle",{"_index":5239,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_icon",{"_index":5241,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["bn",{"_index":3248,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["bn.type",{"_index":3252,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["board",{"_index":1882,"title":{"entities/Board.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"classes/BaseUc.html":{},"entities/Board.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"interfaces/BoardDoBuilder.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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":{},"modules/ToolApiModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["board.'})@apiresponse({status",{"_index":2872,"title":{},"body":{"controllers/BoardController.html":{}}}],["board.children.map((column",{"_index":3671,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.context",{"_index":3805,"title":{},"body":{"injectables/BoardUc.html":{}}}],["board.context.type",{"_index":1884,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["board.createdat",{"_index":3677,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.displaycolor",{"_index":17683,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.do",{"_index":2816,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["board.do.factory.ts",{"_index":4795,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.factory.ts:10",{"_index":4797,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.ts",{"_index":4750,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["board.do.ts:10",{"_index":4755,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:14",{"_index":4757,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:18",{"_index":4759,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:6",{"_index":4754,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.elements.foreach((element",{"_index":17685,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.getbytargetid(elementid",{"_index":17843,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.id",{"_index":3511,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{}}}],["board.isarchived",{"_index":17684,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.module",{"_index":2701,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["board.references.getitems",{"_index":3644,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.references.init",{"_index":3643,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.reorderelements(orderedlist",{"_index":17846,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.response",{"_index":3408,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.response.ts",{"_index":2709,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:15",{"_index":2715,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:19",{"_index":2718,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:22",{"_index":2716,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:25",{"_index":2714,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:28",{"_index":2719,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:31",{"_index":2713,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:4",{"_index":2712,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.roomid",{"_index":17682,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.service.ts",{"_index":4813,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:145",{"_index":4822,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:20",{"_index":4818,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:27",{"_index":4831,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:33",{"_index":4832,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:39",{"_index":4829,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:52",{"_index":4834,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:57",{"_index":4820,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:72",{"_index":4827,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:76",{"_index":4837,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:81",{"_index":4824,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.syncboardelementreferences(boardelementtargets",{"_index":17815,"title":{},"body":{"injectables/RoomsService.html":{}}}],["board.title",{"_index":3670,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardService.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.types",{"_index":8164,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["board.updatedat",{"_index":3676,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board/board",{"_index":2708,"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":2605,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:29",{"_index":2610,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:32",{"_index":2614,"title":{},"body":{"entities/Board.html":{}}}],["board/board.response.ts",{"_index":18950,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:19",{"_index":18955,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:25",{"_index":18956,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:30",{"_index":18952,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:36",{"_index":18953,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:41",{"_index":18954,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:6",{"_index":18951,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/boardelement.entity.ts",{"_index":3388,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:26",{"_index":3391,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:30",{"_index":3389,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/column",{"_index":4908,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{}}}],["board/lesson",{"_index":14149,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["board/task",{"_index":19621,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardapimodule",{"_index":2686,"title":{"modules/BoardApiModule.html":{}},"body":{"modules/BoardApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["boardauthorizable",{"_index":19209,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardauthorizable.users.filter((user",{"_index":19211,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardcolumnboardresponse",{"_index":2706,"title":{"classes/BoardColumnBoardResponse.html":{}},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardcomposite",{"_index":2724,"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":8718,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:14",{"_index":4742,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:17",{"_index":8716,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:19",{"_index":3964,"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":8717,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{}}}],["boardcomposite:22",{"_index":4753,"title":{},"body":{"classes/ColumnBoard.html":{},"classes/RichTextElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:23",{"_index":4741,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:25",{"_index":9915,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:26",{"_index":3963,"title":{},"body":{"classes/Card.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:27",{"_index":4751,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:28",{"_index":19121,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:29",{"_index":9916,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:30",{"_index":17539,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:31",{"_index":4752,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:32",{"_index":19122,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:35",{"_index":3966,"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":3961,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:37",{"_index":14337,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:39",{"_index":3965,"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":3962,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:41",{"_index":14335,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:45",{"_index":14336,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcompositeprops",{"_index":2778,"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":2735,"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":2739,"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":2915,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse",{"_index":2851,"title":{"classes/BoardContextResponse.html":{}},"body":{"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{}}}],["boardcontextresponse(boardcontext",{"_index":2917,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse})@apiresponse({status",{"_index":2885,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontroller",{"_index":2696,"title":{"controllers/BoardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{}}}],["boardcopy",{"_index":2992,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyparams",{"_index":2948,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyservice",{"_index":2929,"title":{"injectables/BoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{}}}],["boarddo",{"_index":2466,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddo.id",{"_index":3100,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["boarddoauthorizable",{"_index":2470,"title":{"classes/BoardDoAuthorizable.html":{}},"body":{"classes/BaseUc.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizable.requireduserrole",{"_index":2472,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find",{"_index":3360,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find((u",{"_index":2475,"title":{},"body":{"classes/BaseUc.html":{}}}],["boarddoauthorizableprops",{"_index":3079,"title":{"interfaces/BoardDoAuthorizableProps.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizableservice",{"_index":2456,"title":{"injectables/BoardDoAuthorizableService.html":{}},"body":{"classes/BaseUc.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["boarddobuilder",{"_index":3120,"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":3161,"title":{"classes/BoardDoBuilderImpl.html":{}},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(children).builddomainobject(boardnode",{"_index":3323,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(descendants).builddomainobject(boardnode",{"_index":3314,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddocopyparams",{"_index":3261,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["boarddocopyservice",{"_index":3258,"title":{"injectables/BoardDoCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["boarddorepo",{"_index":3088,"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":1697,"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":4186,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddoservice",{"_index":3365,"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":2626,"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":2628,"title":{},"body":{"entities/Board.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts",{"_index":14150,"title":{},"body":{"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts:13",{"_index":14151,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["boardelement.entity.ts:16",{"_index":19622,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardelement.ts",{"_index":5036,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelement.ts:13",{"_index":5038,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelementprops",{"_index":3394,"title":{},"body":{"entities/BoardElement.html":{}}}],["boardelementreference",{"_index":2627,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{}}}],["boardelementresponse",{"_index":3398,"title":{"classes/BoardElementResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["boardelements",{"_index":2953,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelements.map((element",{"_index":3004,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelementservice",{"_index":20703,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardelementtarget",{"_index":2684,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets",{"_index":17814,"title":{},"body":{"injectables/RoomsService.html":{}}}],["boardelementtargets.filter(isnotcontained).map(maptoboardelement",{"_index":2680,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets.includes(ref.target",{"_index":2670,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtype",{"_index":2972,"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":3016,"title":{},"body":{"injectables/BoardCopyService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.lesson",{"_index":3013,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.task",{"_index":3009,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardexternalreference",{"_index":3294,"title":{"interfaces/BoardExternalReference.html":{}},"body":{"injectables/BoardDoRepo.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardUc.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{}}}],["boardexternalreferencetype",{"_index":1862,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":1885,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/RoomsService.html":{}}}],["boardid",{"_index":3461,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"injectables/ColumnBoardService.html":{}}}],["boardids",{"_index":4835,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["boardlessonresponse",{"_index":3402,"title":{"classes/BoardLessonResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardmanagementconsole",{"_index":3438,"title":{"classes/BoardManagementConsole.html":{}},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["boardmanagementuc",{"_index":3444,"title":{"injectables/BoardManagementUc.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ManagementModule.html":{}}}],["boardmodule",{"_index":1767,"title":{"modules/BoardModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/LearnroomModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules.html":{}}}],["boardnode",{"_index":3109,"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":3219,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.ancestorids",{"_index":3340,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.caption",{"_index":3217,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.completed",{"_index":3230,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.context",{"_index":3205,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.contextexternaltool?.id",{"_index":3233,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.createdat",{"_index":3203,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.duedate",{"_index":3228,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.entity",{"_index":4066,"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":3255,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.height",{"_index":3214,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.id",{"_index":3201,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnode.imageurl",{"_index":3222,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.inputformat",{"_index":3225,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.joinpath(props.parent.path",{"_index":3564,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.joinpath(this.path",{"_index":3576,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.parentid",{"_index":3337,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.text",{"_index":3223,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.title",{"_index":3202,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.updatedat",{"_index":3204,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.url",{"_index":3220,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.usedobuilder(this",{"_index":3196,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.userid",{"_index":3231,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnodeauthorizableservice",{"_index":12138,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["boardnodeprops",{"_index":3558,"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":3280,"title":{"injectables/BoardNodeRepo.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnodes",{"_index":3318,"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":3321,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.map((o",{"_index":3334,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.reduce((map",{"_index":3326,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodetype",{"_index":3187,"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":3206,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["boardnodetype.column",{"_index":3198,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{}}}],["boardnodetype.column_board",{"_index":4805,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["boardnodetype.external_tool",{"_index":3212,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["boardnodetype.file_element",{"_index":3208,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["boardnodetype.link_element",{"_index":3209,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["boardnodetype.rich_text_element",{"_index":3210,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["boardnodetype.submission_container_element",{"_index":3211,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["boardnodetype.submission_item",{"_index":3226,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardprops",{"_index":2636,"title":{},"body":{"entities/Board.html":{}}}],["boardrepo",{"_index":2941,"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":2902,"title":{"classes/BoardResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper",{"_index":2906,"title":{"classes/BoardResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper.maptoresponse(board",{"_index":2913,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardresponse})@apiresponse({status",{"_index":2890,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardroles",{"_index":3067,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"interfaces/UserBoardRoles.html":{}}}],["boardroles.editor",{"_index":3114,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boardroles.reader",{"_index":3119,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boards",{"_index":2863,"title":{},"body":{"controllers/BoardController.html":{},"injectables/ColumnBoardService.html":{}}}],["boardservice",{"_index":20704,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardstatus",{"_index":2971,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["boardstatus.elements",{"_index":3049,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardsubmissioncontroller",{"_index":2700,"title":{"controllers/BoardSubmissionController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["boardtask",{"_index":17691,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.availabledate",{"_index":17706,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.course",{"_index":17702,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.createdat",{"_index":17699,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.description",{"_index":17712,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.duedate",{"_index":17708,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.getparentdata",{"_index":17693,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.id",{"_index":17697,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.name",{"_index":17698,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.updatedat",{"_index":17700,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc",{"_index":17692,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc.color",{"_index":17710,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskresponse",{"_index":3401,"title":{"classes/BoardTaskResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatus",{"_index":17694,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper",{"_index":3749,"title":{"classes/BoardTaskStatusMapper.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper.maptoresponse(status",{"_index":17695,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusresponse",{"_index":3745,"title":{"classes/BoardTaskStatusResponse.html":{}},"body":{"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{}}}],["boardtaskstatusresponse(status",{"_index":3755,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["boarduc",{"_index":2690,"title":{"injectables/BoardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["boardurlparams",{"_index":2870,"title":{"classes/BoardUrlParams.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardUrlParams.html":{}}}],["boardvalue",{"_index":1875,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["body",{"_index":324,"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/MetaTagExtractorController.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":21210,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.create",{"_index":20183,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.delete",{"_index":20184,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.destinationcourseid",{"_index":18746,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.expiresindays",{"_index":18735,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.mandatory",{"_index":21204,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.newname",{"_index":18745,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parentid",{"_index":18733,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parenttype",{"_index":18732,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.read",{"_index":20185,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.redirecturi",{"_index":21211,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.schoolexclusive",{"_index":18734,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.session",{"_index":15958,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["body.share",{"_index":20186,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.systemid",{"_index":21209,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.write",{"_index":20187,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["bodyparams",{"_index":2894,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/MetaTagExtractorController.html":{}}}],["bodyparams.completed",{"_index":3724,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.data.content",{"_index":8292,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.height",{"_index":4040,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.title",{"_index":2922,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["bodyparams.toboardid",{"_index":4974,"title":{},"body":{"controllers/ColumnController.html":{}}}],["bodyparams.tocardid",{"_index":8288,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.tocolumnid",{"_index":4036,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.toposition",{"_index":4037,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.url",{"_index":14843,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["bodyproperties",{"_index":2592,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["bom",{"_index":22278,"title":{},"body":{"dependencies.html":{}}}],["boolean",{"_index":119,"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":11663,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["bootstrap",{"_index":207,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":20313,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts",{"_index":20295,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts:8",{"_index":20297,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrapconsole",{"_index":20304,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstraps",{"_index":23488,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["both",{"_index":22864,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bound",{"_index":14385,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["box",{"_index":23484,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["branch",{"_index":932,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["break",{"_index":5256,"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":23720,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["breakout",{"_index":2102,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["breakoutrooms",{"_index":2103,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["bring",{"_index":7052,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["broadcast",{"_index":976,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["broken",{"_index":23176,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["broker",{"_index":13393,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["brokerconfig",{"_index":19574,"title":{},"body":{"injectables/SystemService.html":{}}}],["brokering",{"_index":23619,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["browse",{"_index":22952,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application.html":{}}}],["browser",{"_index":22950,"title":{},"body":{"modules.html":{}}}],["brute",{"_index":73,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{}}}],["bruteforceerror",{"_index":1548,"title":{"classes/BruteForceError.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["bruteforceerror(timetowait",{"_index":1577,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["bson",{"_index":524,"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":3835,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["bsonconverter",{"_index":3823,"title":{"injectables/BsonConverter.html":{}},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["bsondocuments",{"_index":3834,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["btw",{"_index":2371,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bucket",{"_index":6337,"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":23849,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buffer",{"_index":7063,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"classes/JwtTestFactory.html":{}}}],["buffer.from(externaltool.logo",{"_index":8878,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(manifest",{"_index":5208,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(newresource.content",{"_index":5189,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(resource.content",{"_index":5194,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(response.data",{"_index":8890,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(tool.logo",{"_index":8899,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.length",{"_index":8880,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.tostring('base64",{"_index":8892,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["bufferencoding",{"_index":10405,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["bug",{"_index":12568,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["bugs",{"_index":22958,"title":{},"body":{"properties.html":{}}}],["build",{"_index":454,"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":10318,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["build(id",{"_index":6327,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["build(name",{"_index":9898,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["build(params",{"_index":488,"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":18498,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["build(requiredpermissions",{"_index":1617,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["build(schoolid",{"_index":10055,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["build(type",{"_index":5614,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["build(userid",{"_index":6348,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["buildaccount",{"_index":20904,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildaccount(user",{"_index":660,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin",{"_index":674,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin(params",{"_index":20907,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildcard",{"_index":3123,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcard(boardnode",{"_index":3132,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren",{"_index":3166,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren(boardnode",{"_index":3174,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn",{"_index":3124,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn(boardnode",{"_index":3135,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard",{"_index":3125,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard(boardnode",{"_index":3138,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcopyentitydict",{"_index":6415,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["buildcopyentitydict(status",{"_index":6418,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["builddomainobject",{"_index":3167,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddomainobject(boardnode",{"_index":3178,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddtowithelements",{"_index":8127,"title":{},"body":{"classes/DtoCreator.html":{}}}],["builddtowithelements(elements",{"_index":8141,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["builder",{"_index":2001,"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":5095,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.build",{"_index":5090,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.buildcard(this",{"_index":4070,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["builder.buildcolumn(this",{"_index":4982,"title":{},"body":{"entities/ColumnNode.html":{}}}],["builder.buildcolumnboard(this",{"_index":4812,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["builder.buildexternaltoolelement(this",{"_index":8746,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["builder.buildfileelement(this",{"_index":9945,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["builder.buildlinkelement(this",{"_index":14367,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["builder.buildrichtextelement(this",{"_index":17567,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["builder.buildsubmissioncontainerelement(this",{"_index":19069,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["builder.buildsubmissionitem(this",{"_index":19155,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["builder.ts",{"_index":5146,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:24",{"_index":11874,"title":{},"body":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:28",{"_index":11871,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:30",{"_index":11872,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:32",{"_index":11873,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:35",{"_index":5315,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:42",{"_index":5318,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:46",{"_index":5320,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:52",{"_index":5316,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:63",{"_index":5157,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:65",{"_index":5159,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:67",{"_index":5156,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:69",{"_index":5155,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:73",{"_index":5162,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:79",{"_index":5165,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:88",{"_index":5166,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder:2",{"_index":2007,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["builder:26",{"_index":2008,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["builder:8",{"_index":2086,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["buildexternaltool",{"_index":5609,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildexternaltoolelement",{"_index":3126,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildexternaltoolelement(boardnode",{"_index":3141,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfile",{"_index":5610,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/PreviewGeneratorBuilder.html":{}}}],["buildfile(preview",{"_index":16698,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["buildfileelement",{"_index":3127,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfileelement(boardnode",{"_index":3144,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfromaxiosresponse",{"_index":9896,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromaxiosresponse(name",{"_index":9900,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest",{"_index":9897,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest(fileinfo",{"_index":9902,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildgroupsclaim",{"_index":12635,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildgroupsclaim(teams",{"_index":12641,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildlink",{"_index":5611,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildlinkelement",{"_index":3128,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildlinkelement(boardnode",{"_index":3147,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildlist",{"_index":455,"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":494,"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":7332,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["buildlistwitheachtype(params",{"_index":7333,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["buildlistwithid",{"_index":456,"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":496,"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":8839,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildlogourl(template",{"_index":8846,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildoptions",{"_index":491,"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":16669,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildparams(filerecord",{"_index":16671,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload",{"_index":16670,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload(params",{"_index":16673,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildrichtext",{"_index":5612,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildrichtextelement",{"_index":3129,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildrichtextelement(boardnode",{"_index":3150,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["builds",{"_index":2166,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["buildscope",{"_index":5908,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildscope(query",{"_index":5913,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildstudent",{"_index":663,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildstudent(params",{"_index":20909,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildsubmissioncontainer",{"_index":5613,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildsubmissioncontainerelement",{"_index":3130,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissioncontainerelement(boardnode",{"_index":3153,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem",{"_index":3131,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem(boardnode",{"_index":3156,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildteacher",{"_index":670,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildteacher(params",{"_index":20911,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildtokenrequestpayload",{"_index":15502,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtokenrequestpayload(code",{"_index":15518,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtoollaunchdatafromconcreteconfig",{"_index":2530,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromconcreteconfig(userid",{"_index":2543,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool",{"_index":2536,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool(externaltool",{"_index":2564,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools",{"_index":2537,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools(data",{"_index":2568,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload",{"_index":2531,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload(url",{"_index":2546,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl",{"_index":2538,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl(toollaunchdatado",{"_index":2570,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildwithid",{"_index":457,"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":498,"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":668,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["built",{"_index":476,"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":13418,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["bundle",{"_index":22964,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["busboy",{"_index":9905,"title":{},"body":{"classes/FileDtoBuilder.html":{},"dependencies.html":{}}}],["business",{"_index":3850,"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":1217,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ForbiddenOperationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/ValidationError.html":{}}}],["businesserror",{"_index":1201,"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":1208,"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":1213,"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":1212,"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":1211,"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":1210,"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":1214,"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":23361,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["businesslogic",{"_index":23222,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["button",{"_index":16579,"title":{},"body":{"classes/PageContentResponse.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["byavailable",{"_index":19960,"title":{},"body":{"classes/TaskScope.html":{}}}],["byavailable(availabledate",{"_index":19972,"title":{},"body":{"classes/TaskScope.html":{}}}],["byclasses",{"_index":12997,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclasses(classes",{"_index":13006,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclientid",{"_index":9337,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(clientid",{"_index":9340,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(query.clientid",{"_index":9100,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["bycontextid",{"_index":6061,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontextid(contextid",{"_index":6071,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype",{"_index":6062,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype(contexttype",{"_index":6073,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycourseids",{"_index":14284,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycourseids(courseids",{"_index":14285,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycreator",{"_index":15244,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreator(creatorid",{"_index":15248,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreatorid",{"_index":19961,"title":{},"body":{"classes/TaskScope.html":{}}}],["bycreatorid(creatorid",{"_index":19974,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft",{"_index":19962,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft(isdraft",{"_index":19975,"title":{},"body":{"classes/TaskScope.html":{}}}],["byexpires",{"_index":10275,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["byfilerecordid",{"_index":10293,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfilerecordid(filerecordid",{"_index":10298,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfinished",{"_index":19963,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfinished(userid",{"_index":19977,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfirstname",{"_index":12998,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byfirstname(firstname",{"_index":13008,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byhidden",{"_index":9338,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(ishidden",{"_index":9342,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(query.ishidden",{"_index":9101,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byid",{"_index":6063,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byid(id",{"_index":6075,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bylastname",{"_index":12999,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylastname(lastname",{"_index":13010,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylessonids",{"_index":19964,"title":{},"body":{"classes/TaskScope.html":{}}}],["bylessonids(lessonids",{"_index":19978,"title":{},"body":{"classes/TaskScope.html":{}}}],["byloginname",{"_index":13000,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byloginname(loginname",{"_index":13012,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymarkedfordelete",{"_index":10294,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymarkedfordelete(ismarked",{"_index":10300,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymatches",{"_index":13001,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymatches(matches",{"_index":13015,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byname",{"_index":9339,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(name",{"_index":9344,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(query.name",{"_index":9099,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byonlycreatorid",{"_index":19965,"title":{},"body":{"classes/TaskScope.html":{}}}],["byonlycreatorid(creatorid",{"_index":19980,"title":{},"body":{"classes/TaskScope.html":{}}}],["byparentid",{"_index":10295,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byparentid(parentid",{"_index":10303,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bypassdocumentvalidation",{"_index":7966,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["bypasstest",{"_index":1130,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["bypseudonym",{"_index":17050,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(pseudonym",{"_index":17053,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(query.pseudonym",{"_index":9069,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bypublished",{"_index":15245,"title":{},"body":{"classes/NewsScope.html":{}}}],["byrole",{"_index":13002,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byrole(rolename",{"_index":13017,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool",{"_index":13003,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool(school",{"_index":13019,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschoolid",{"_index":10296,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschoolid(query.schoolid",{"_index":21000,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["byschoolid(schoolid",{"_index":10305,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschooltoolid",{"_index":6064,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byschooltoolid(schooltoolid",{"_index":6077,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bysecuritycheckrequesttoken",{"_index":10297,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bysecuritycheckrequesttoken(token",{"_index":10307,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bytargets",{"_index":15246,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytargets(targets",{"_index":15250,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytes",{"_index":10819,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["bytesrange",{"_index":10813,"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":17051,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["bytoolid(query.toolid",{"_index":9070,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bytoolid(toolid",{"_index":17055,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["byunpublished",{"_index":15247,"title":{},"body":{"classes/NewsScope.html":{}}}],["byuserid",{"_index":17052,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuserid(query.userid",{"_index":9071,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["byuserid(userid",{"_index":17057,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuseridquery",{"_index":19231,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byuseridquery(userid",{"_index":19234,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byusermatch",{"_index":13004,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byusermatch(user",{"_index":13021,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["c",{"_index":510,"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":20055,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished",{"_index":20074,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished()).map((c",{"_index":20054,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.user",{"_index":14311,"title":{},"body":{"injectables/LessonService.html":{}}}],["cache",{"_index":3891,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/OauthAdapterService.html":{},"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{},"dependencies.html":{}}}],["cache_manager",{"_index":13214,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachedstate",{"_index":16323,"title":{},"body":{"injectables/OauthUc.html":{}}}],["cacheexpiration",{"_index":17629,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["cachemanager",{"_index":13204,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachemodule",{"_index":3888,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemodule.registerasync",{"_index":3895,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemoduleoptions",{"_index":3889,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cacheservice",{"_index":3873,"title":{"injectables/CacheService.html":{}},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cacheservice.getstoretype",{"_index":3896,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachestoretype",{"_index":3877,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachestoretype.memory",{"_index":3883,"title":{},"body":{"injectables/CacheService.html":{}}}],["cachestoretype.redis",{"_index":3882,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachewrappermodule",{"_index":1353,"title":{"modules/CacheWrapperModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CacheWrapperModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["caf",{"_index":13036,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["cafe",{"_index":13038,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["calculatenumberofsubmitters(submissions",{"_index":12526,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["calculations",{"_index":23202,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["calendareventdto",{"_index":3905,"title":{"classes/CalendarEventDto.html":{}},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["calendarmapper",{"_index":3915,"title":{"injectables/CalendarMapper.html":{}},"body":{"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarmodule",{"_index":3930,"title":{"modules/CalendarModule.html":{}},"body":{"modules/CalendarModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["calendarservice",{"_index":3934,"title":{"injectables/CalendarService.html":{}},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarservice:findevent",{"_index":3958,"title":{},"body":{"injectables/CalendarService.html":{}}}],["call",{"_index":478,"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":2167,"title":{},"body":{"injectables/BBBService.html":{}}}],["callback",{"_index":23466,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["callback_uri",{"_index":1187,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["callbackuri",{"_index":1181,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["calld",{"_index":23511,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["called",{"_index":475,"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":8229,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["calling",{"_index":16643,"title":{},"body":{"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callkcadminclient",{"_index":13254,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["callname",{"_index":2159,"title":{},"body":{"injectables/BBBService.html":{}}}],["calls",{"_index":16879,"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":23298,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["can't",{"_index":1393,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cancel",{"_index":16578,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["cancelbuttonurl",{"_index":16544,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["caninline",{"_index":5214,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["canmap",{"_index":2444,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["canmap(element",{"_index":2445,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["cant",{"_index":23234,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["capabilities",{"_index":23092,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["caption",{"_index":3216,"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":9924,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["card",{"_index":2792,"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/ColumnUc.html":{},"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.'})@apiextramodels(externaltoolelementresponse",{"_index":3992,"title":{},"body":{"controllers/CardController.html":{}}}],["card.'})@apiresponse({status",{"_index":3998,"title":{},"body":{"controllers/CardController.html":{}}}],["card.addchild(text1",{"_index":4870,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text2",{"_index":4886,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text3",{"_index":4898,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text4",{"_index":4905,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.body.params",{"_index":4969,"title":{},"body":{"controllers/ColumnController.html":{}}}],["card.body.params.ts",{"_index":7045,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:10",{"_index":15034,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:13",{"_index":7048,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["card.body.params.ts:18",{"_index":15036,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.children.map((element",{"_index":4091,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.constructor.name",{"_index":4997,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["card.createdat",{"_index":4093,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.do",{"_index":2815,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["card.height",{"_index":4090,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.id",{"_index":4088,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.response",{"_index":4062,"title":{},"body":{"classes/CardListResponse.html":{}}}],["card.title",{"_index":4089,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.updatedat",{"_index":4092,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["cardcontroller",{"_index":2698,"title":{"controllers/CardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{}}}],["cardid",{"_index":4109,"title":{},"body":{"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnUc.html":{}}}],["cardidparams",{"_index":4002,"title":{},"body":{"controllers/CardController.html":{}}}],["cardidparams.ids",{"_index":4029,"title":{},"body":{"controllers/CardController.html":{}}}],["cardids",{"_index":4027,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardidsparams",{"_index":4003,"title":{"classes/CardIdsParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardIdsParams.html":{}}}],["cardlistresponse",{"_index":4020,"title":{"classes/CardListResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardListResponse.html":{}}}],["cardlistresponse})@apiresponse({status",{"_index":4005,"title":{},"body":{"controllers/CardController.html":{}}}],["cardnode",{"_index":3133,"title":{"entities/CardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["cardnodefactory",{"_index":3490,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodefactory.build",{"_index":3514,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodeprops",{"_index":4067,"title":{"interfaces/CardNodeProps.html":{}},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["cardprops",{"_index":3983,"title":{"interfaces/CardProps.html":{}},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["cardresponse",{"_index":4060,"title":{"classes/CardResponse.html":{}},"body":{"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper",{"_index":4025,"title":{"classes/CardResponseMapper.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper.maptoresponse(card",{"_index":4032,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["cardresponses",{"_index":4031,"title":{},"body":{"controllers/CardController.html":{}}}],["cardresponse})@apiresponse({status",{"_index":4953,"title":{},"body":{"controllers/ColumnController.html":{}}}],["cards",{"_index":3207,"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":3507,"title":{},"body":{"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{}}}],["cards.some((card",{"_index":4123,"title":{},"body":{"injectables/CardService.html":{}}}],["cardservice",{"_index":3532,"title":{"injectables/CardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{}}}],["cardskeletonresponse",{"_index":4136,"title":{"classes/CardSkeletonResponse.html":{}},"body":{"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardspercolumn",{"_index":3500,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardspercolumn.flat",{"_index":3504,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["carduc",{"_index":2691,"title":{"injectables/CardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["cardurlparams",{"_index":3991,"title":{"classes/CardUrlParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardUrlParams.html":{}}}],["care",{"_index":23270,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["careful",{"_index":23586,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["carefully",{"_index":23534,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cares",{"_index":23364,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["carry",{"_index":22580,"title":{},"body":{"license.html":{}}}],["cartridge",{"_index":5043,"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":11864,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{}}}],["cartridge/common",{"_index":5145,"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":5082,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["cartridge_basiclti_link",{"_index":5223,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_bundle",{"_index":5237,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_icon",{"_index":5240,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cascading",{"_index":5387,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["case",{"_index":1242,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/AutoContextNameStrategy.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":5452,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["cases",{"_index":1762,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/TaskFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cast",{"_index":1446,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["catch",{"_index":1174,"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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":2206,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["catch(error",{"_index":10893,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["catcherror",{"_index":962,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["catcherror((e",{"_index":1079,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["catcherror((err",{"_index":17478,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["cause",{"_index":3856,"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":8477,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["caution",{"_index":13901,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["cc",{"_index":1308,"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":22742,"title":{},"body":{"license.html":{}}}],["ceating",{"_index":11944,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["centralldap",{"_index":18371,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["certain",{"_index":22705,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cessation",{"_index":22751,"title":{},"body":{"license.html":{}}}],["ch.id",{"_index":2772,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["chaining",{"_index":23372,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["chains",{"_index":22987,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["chalk",{"_index":22194,"title":{},"body":{"dependencies.html":{}}}],["challenge",{"_index":4195,"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":4193,"title":{"classes/ChallengeParams.html":{}},"body":{"classes/ChallengeParams.html":{},"controllers/OauthProviderController.html":{}}}],["change",{"_index":5105,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.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":10424,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"additional-documentation/nestjs-application.html":{}}}],["changefinishedforuser",{"_index":20023,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changefinishedforuser(userid",{"_index":20029,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changelanguage",{"_index":20921,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguage(params",{"_index":20922,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguageparams",{"_index":4197,"title":{"classes/ChangeLanguageParams.html":{}},"body":{"classes/ChangeLanguageParams.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["changes",{"_index":13851,"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":21158,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["channel",{"_index":17170,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["chapter",{"_index":2429,"title":{},"body":{"injectables/BaseRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["character",{"_index":740,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["characterized",{"_index":22682,"title":{},"body":{"license.html":{}}}],["characters",{"_index":10381,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/MongoPatterns.html":{}}}],["charge",{"_index":22388,"title":{},"body":{"license.html":{}}}],["chat",{"_index":1099,"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":17580,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.module.ts:7",{"_index":17581,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service",{"_index":17583,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service.ts",{"_index":957,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["chat.service.ts:42",{"_index":17578,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:44",{"_index":17577,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:47",{"_index":17576,"title":{},"body":{"classes/RocketChatError.html":{}}}],["check",{"_index":933,"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":9999,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["check.entity.ts",{"_index":10322,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["check.entity.ts:14",{"_index":10330,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:17",{"_index":10326,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:20",{"_index":10327,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:23",{"_index":10325,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:26",{"_index":10324,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.service.ts",{"_index":14931,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:15",{"_index":14936,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:8",{"_index":14934,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["checkallpermissions",{"_index":1797,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkallpermissions(user",{"_index":1803,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkandaddprefix",{"_index":20271,"title":{},"body":{"classes/TestApiClient.html":{}}}],["checkandaddprefix(inputpath",{"_index":1491,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["checkavaiblelanguages",{"_index":21726,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavaiblelanguages(settedlanguage",{"_index":21728,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavailablelanguages",{"_index":21669,"title":{},"body":{"injectables/UserService.html":{}}}],["checkavailablelanguages(language",{"_index":21675,"title":{},"body":{"injectables/UserService.html":{}}}],["checkbrutforce",{"_index":1515,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkbrutforce(account",{"_index":1524,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkcontextreadpermission",{"_index":18868,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcontextreadpermission(userid",{"_index":18874,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission",{"_index":18869,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission(userid",{"_index":18876,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcredentials",{"_index":13808,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["checkcredentials(account",{"_index":13813,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkcredentials(enteredpassword",{"_index":14401,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["checkcustomparameterentries",{"_index":5411,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkcustomparameterentries(loadedexternaltool",{"_index":5419,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkdestinationcourseauthorisation",{"_index":19710,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorisation(authorizableuser",{"_index":19717,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorization",{"_index":14166,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationcourseauthorization(user",{"_index":14170,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationlessonauthorization",{"_index":19711,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationlessonauthorization(authorizableuser",{"_index":19719,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkduplicateincontext",{"_index":6163,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checkduplicateincontext(contextexternaltool",{"_index":6168,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checked",{"_index":1394,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/HydraSsoService.html":{}}}],["checkentitypermissions",{"_index":9667,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkentitypermissions(userid",{"_index":9672,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkerror",{"_index":10698,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkerror(response",{"_index":10707,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkexpired",{"_index":18836,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkexpired(sharetoken",{"_index":18843,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkfeatureenabled",{"_index":6765,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["checkfeatureenabled(parenttype",{"_index":18878,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkforduplicateparameters",{"_index":5412,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkforduplicateparameters(validatabletool",{"_index":5423,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkifpreviewpossible",{"_index":16777,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checkifpreviewpossible(filerecord",{"_index":16783,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checking",{"_index":10949,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkinputisvalid",{"_index":23844,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["checkldapcredentials",{"_index":13776,"title":{},"body":{"injectables/LdapService.html":{}}}],["checkldapcredentials(system",{"_index":13778,"title":{},"body":{"injectables/LdapService.html":{}}}],["checklist",{"_index":22340,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checklistscontainingequalentities(first",{"_index":2658,"title":{},"body":{"entities/Board.html":{}}}],["checkofficialschoolnumbersmatch",{"_index":18392,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkofficialschoolnumbersmatch(schooldo",{"_index":18401,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkoneofpermissions",{"_index":1798,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoneofpermissions(user",{"_index":1805,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoptionalparameter",{"_index":5413,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoptionalparameter(param",{"_index":5425,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoriginallessonauthorization",{"_index":14167,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginallessonauthorization(user",{"_index":14173,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginaltaskauthorization",{"_index":19712,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkoriginaltaskauthorization(authorizableuser",{"_index":19722,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkout",{"_index":22344,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checkparameterregex",{"_index":5414,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparameterregex(foundentry",{"_index":5428,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype",{"_index":5415,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype(foundentry",{"_index":5430,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparentwritepermission",{"_index":18870,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkparentwritepermission(userid",{"_index":18880,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkpermission",{"_index":1799,"title":{},"body":{"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkpermission(user",{"_index":1807,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermission(userid",{"_index":2458,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["checkpermissionbyreferences",{"_index":1779,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpermissionbyreferences(userid",{"_index":1783,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpreconditions",{"_index":18983,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checkpreconditions(userid",{"_index":18985,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checks",{"_index":11627,"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":14108,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkschoolauthorization(authorizableuser",{"_index":14110,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkscopeandvalidateparameter",{"_index":5416,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkscopeandvalidateparameter(validatabletool",{"_index":5432,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkshorttitle",{"_index":7551,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["checkstream",{"_index":1139,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstream(stream",{"_index":1146,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstreamresponsive",{"_index":17901,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checkstreamresponsive(stream",{"_index":17908,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checksubmissionitemwritepermission",{"_index":2453,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["checksubmissionitemwritepermission(userid",{"_index":2462,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["checksum",{"_index":2157,"title":{},"body":{"injectables/BBBService.html":{}}}],["checkvalue",{"_index":13809,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkvalue(value",{"_index":13815,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkversionmatch",{"_index":18325,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["checkversionmatch(schoolexternaltoolversion",{"_index":18327,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["child",{"_index":2744,"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":17353,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["child.acceptasync(this",{"_index":17270,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["child.constructor.name",{"_index":2763,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["child.id",{"_index":2773,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["childcopy",{"_index":17277,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childid",{"_index":3298,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["children",{"_index":2732,"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/SubmissionItemResponseMapper.html":{}}}],["children.length",{"_index":3242,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["children.map((element",{"_index":19181,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["children.sort((a",{"_index":3238,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["childrenmap",{"_index":3165,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["childrenmap[boardnode.pathofchildren",{"_index":3322,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["childstatus",{"_index":17273,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses",{"_index":17271,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses.push(childstatus",{"_index":17275,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["choose",{"_index":22885,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["choosing",{"_index":22887,"title":{},"body":{"license.html":{}}}],["chunk",{"_index":22262,"title":{},"body":{"dependencies.html":{}}}],["circumstances",{"_index":22531,"title":{},"body":{"license.html":{}}}],["circumvention",{"_index":22539,"title":{},"body":{"license.html":{}}}],["civil",{"_index":22925,"title":{},"body":{"license.html":{}}}],["cjs",{"_index":13244,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["cjs/keycloak",{"_index":13243,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["claim",{"_index":13487,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["claim.name",{"_index":13496,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["claims",{"_index":22803,"title":{},"body":{"license.html":{}}}],["clamconnection",{"_index":1144,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["clamdscan",{"_index":1126,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["clamscan",{"_index":1108,"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/BaseUc.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/ClassFilterParams.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/GetMetaTagDataBody.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/MetaTagExtractorResponse.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/UnknownQueryTypeLoggableException.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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":4317,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classattributenamemapping",{"_index":12414,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classentity",{"_index":4256,"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":{}}}],["classentityfactory",{"_index":4302,"title":{"classes/ClassEntityFactory.html":{}},"body":{"classes/ClassEntityFactory.html":{}}}],["classentityfactory.define(classentity",{"_index":4309,"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/BaseUc.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/ClassFilterParams.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/GetMetaTagDataBody.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":{},"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/MetaTagExtractorResponse.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/UnknownQueryTypeLoggableException.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((clazz",{"_index":4489,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classes.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13048,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["classesrepo",{"_index":4424,"title":{"injectables/ClassesRepo.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{}}}],["classfactory",{"_index":4312,"title":{"classes/ClassFactory.html":{}},"body":{"classes/ClassFactory.html":{}}}],["classfactory.define(class",{"_index":4318,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classfilterparams",{"_index":4319,"title":{"classes/ClassFilterParams.html":{}},"body":{"classes/ClassFilterParams.html":{},"controllers/GroupController.html":{}}}],["classid",{"_index":4496,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classids",{"_index":6547,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["classinfo",{"_index":11210,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.externalsourcename",{"_index":11222,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.id",{"_index":11219,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.isupgradable",{"_index":11225,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.name",{"_index":11221,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.schoolyear",{"_index":11224,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.studentcount",{"_index":11226,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.teachernames",{"_index":11223,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.type",{"_index":11220,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfodto",{"_index":4327,"title":{"classes/ClassInfoDto.html":{}},"body":{"classes/ClassInfoDto.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["classinforesponse",{"_index":4355,"title":{"classes/ClassInfoResponse.html":{}},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfos",{"_index":11207,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.data.map((classinfo",{"_index":11216,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.total",{"_index":11218,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse",{"_index":4369,"title":{"classes/ClassInfoSearchListResponse.html":{}},"body":{"classes/ClassInfoSearchListResponse.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse})@apiresponse({status",{"_index":11038,"title":{},"body":{"controllers/GroupController.html":{}}}],["classmap",{"_index":4488,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmap.get(entity.id",{"_index":4501,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper",{"_index":4371,"title":{"classes/ClassMapper.html":{}},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{}}}],["classmapper.maptodos(classes",{"_index":4487,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper.maptoentity(updateddomainobject",{"_index":4503,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmodule",{"_index":4419,"title":{"modules/ClassModule.html":{}},"body":{"modules/ClassModule.html":{},"modules/GroupApiModule.html":{},"modules.html":{}}}],["classname",{"_index":9700,"title":{},"body":{"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["classnames",{"_index":12019,"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":12404,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classprops",{"_index":4242,"title":{"interfaces/ClassProps.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{}}}],["classroottype",{"_index":4342,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupUcMapper.html":{}}}],["classroottype.class",{"_index":11309,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classroottype.group",{"_index":11298,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classserializerinterceptor",{"_index":13058,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["classservice",{"_index":4423,"title":{"injectables/ClassService.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{}}}],["classsortby",{"_index":4452,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["classsortparams",{"_index":4448,"title":{"classes/ClassSortParams.html":{}},"body":{"classes/ClassSortParams.html":{},"controllers/GroupController.html":{}}}],["classsourceoptions",{"_index":4240,"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":4265,"title":{"classes/ClassSourceOptionsEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["classsourceoptionsentityprops",{"_index":4468,"title":{"interfaces/ClassSourceOptionsEntityProps.html":{}},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["classsourceoptionsprops",{"_index":4461,"title":{"interfaces/ClassSourceOptionsProps.html":{}},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classvalidatormetadatastorage",{"_index":8357,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["clause",{"_index":758,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["clazz",{"_index":4491,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel",{"_index":11305,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel}${clazz.name",{"_index":11306,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.id",{"_index":4490,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/GroupUcMapper.html":{}}}],["clazz.name",{"_index":11307,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.source",{"_index":11310,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.successor",{"_index":11308,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.userids",{"_index":11313,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.userids.length",{"_index":11314,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clean",{"_index":10226,"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":11636,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["clean(pagesize",{"_index":13501,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["cleans",{"_index":11632,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleanup",{"_index":6599,"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":14397,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanupinput(username",{"_index":14405,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanuppath",{"_index":20272,"title":{},"body":{"classes/TestApiClient.html":{}}}],["cleanuppath(inputpath",{"_index":1494,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["clear",{"_index":11738,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"license.html":{}}}],["clearcollection",{"_index":7934,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearcollection(collectionname",{"_index":7942,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearly",{"_index":23235,"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":17994,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["cli",{"_index":23130,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["click",{"_index":21860,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["client",{"_index":3539,"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":18002,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.adapter.ts",{"_index":17899,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:111",{"_index":17921,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:134",{"_index":17923,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:155",{"_index":17911,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:179",{"_index":17916,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:199",{"_index":17918,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:21",{"_index":17907,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:226",{"_index":17909,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:32",{"_index":17914,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:49",{"_index":17919,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:82",{"_index":17913,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.bind(username",{"_index":13799,"title":{},"body":{"injectables/LdapService.html":{}}}],["client.body.ts",{"_index":15704,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:10",{"_index":15707,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:15",{"_index":15708,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:20",{"_index":15709,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:26",{"_index":15714,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:36",{"_index":15735,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:46",{"_index":15729,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:56",{"_index":15724,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:65",{"_index":15712,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:71",{"_index":15713,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:77",{"_index":15715,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.getsigningkey",{"_index":15681,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["client.histogram",{"_index":17457,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["client.interface",{"_index":16904,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["client.mapper",{"_index":10058,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["client.mapper.ts",{"_index":10532,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:17",{"_index":10540,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:27",{"_index":10548,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:39",{"_index":10542,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:49",{"_index":10550,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:62",{"_index":10544,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:7",{"_index":10546,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.module.ts",{"_index":10573,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"modules/S3ClientModule.html":{}}}],["client.module.ts:25",{"_index":18001,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.on('connect",{"_index":3902,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.on('error",{"_index":3900,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.response",{"_index":5581,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["client.send(deletioncommand",{"_index":8078,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["client.service",{"_index":6377,"title":{},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{}}}],["client.service.ts",{"_index":10511,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:11",{"_index":10517,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:16",{"_index":10519,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:23",{"_index":10523,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:31",{"_index":10521,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.ts",{"_index":1432,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["client.ts:104",{"_index":20287,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:110",{"_index":20278,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:120",{"_index":20279,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:129",{"_index":20284,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:136",{"_index":20286,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:142",{"_index":20283,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:26",{"_index":20276,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:28",{"_index":20277,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:30",{"_index":20275,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:38",{"_index":20282,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:45",{"_index":20280,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:54",{"_index":20291,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:64",{"_index":20289,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:74",{"_index":20290,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:84",{"_index":20288,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client/dto",{"_index":18493,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["client/dto/copy",{"_index":6237,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["client/dto/file.dto.ts",{"_index":9885,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:10",{"_index":9890,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:12",{"_index":9887,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:6",{"_index":9888,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:8",{"_index":9889,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/files",{"_index":10572,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["client/interface/index.ts",{"_index":6331,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/S3Config-1.html":{}}}],["client/interfaces/copy",{"_index":11935,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["client/interfaces/file",{"_index":11975,"title":{},"body":{"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{}}}],["client/interfaces/files",{"_index":12001,"title":{},"body":{"interfaces/IFilesStorageClientConfig.html":{}}}],["client/lib/defs/authenticationexecutioninforepresentation",{"_index":13379,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/authenticationflowrepresentation",{"_index":13381,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/clientrepresentation",{"_index":13383,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityprovidermapperrepresentation",{"_index":13384,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityproviderrepresentation",{"_index":13385,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["client/lib/defs/protocolmapperrepresentation",{"_index":13386,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/userrepresentation",{"_index":13586,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["client/mapper/copy",{"_index":6346,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["client/mapper/files",{"_index":10054,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["client/s3",{"_index":17898,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["client/service/copy",{"_index":6359,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["client/service/files",{"_index":10510,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["client_id",{"_index":1326,"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":5585,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ListOauthClientsParams.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{}}}],["client_secret",{"_index":1327,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["client_secret_basic",{"_index":15733,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client_secret_post",{"_index":15732,"title":{},"body":{"classes/OauthClientBody.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["clientauthmethod",{"_index":16405,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["clientid",{"_index":5589,"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":13290,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clientname",{"_index":5587,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["clientrepresentation",{"_index":13382,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["clients",{"_index":8059,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["clients.map",{"_index":16028,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["clients.params.ts",{"_index":14381,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:16",{"_index":14386,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:27",{"_index":14389,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:36",{"_index":14382,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:45",{"_index":14390,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients_configuration_path='/tmp/config/clients",{"_index":23632,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["clientsecret",{"_index":7347,"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":13294,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clienttype",{"_index":2122,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["clienturl",{"_index":4901,"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":458,"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":501,"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":2417,"title":{},"body":{"classes/BaseFactory.html":{}}}],["close",{"_index":17176,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed",{"_index":19867,"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":21110,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["closedat",{"_index":21112,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["closeddraftsforcreator",{"_index":19871,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.addquery(parentsopen.query",{"_index":19872,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.bycreatorid(parentids.creatorid",{"_index":19874,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.byfinished(parentids.creatorid",{"_index":19873,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons",{"_index":19860,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.addquery(parentsopen.query",{"_index":19861,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.bydraft(false",{"_index":19862,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.byfinished(parentids.creatorid",{"_index":19863,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator",{"_index":19868,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byfinished(parentids.creatorid",{"_index":19869,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byonlycreatorid(parentids.creatorid",{"_index":19870,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closely",{"_index":22922,"title":{},"body":{"license.html":{}}}],["closemigration",{"_index":4510,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["closemigration(@currentuser",{"_index":21206,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(currentuser",{"_index":21130,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(schoolid",{"_index":21343,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["closemigration(userid",{"_index":4517,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["closeuserloginmigrationuc",{"_index":4506,"title":{"injectables/CloseUserLoginMigrationUc.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["closing",{"_index":23549,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cloud",{"_index":15372,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["cloud.github.io/schulcloud",{"_index":23005,"title":{},"body":{"todo.html":{}}}],["cloud/commons",{"_index":2020,"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":3878,"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":23678,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["cloud/erwin",{"_index":23052,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/node",{"_index":22231,"title":{},"body":{"dependencies.html":{}}}],["cloud/sc",{"_index":23640,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/schulcloud",{"_index":22982,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cluster_accountapimodule",{"_index":210,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_imports",{"_index":211,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_providers",{"_index":212,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountmodule",{"_index":612,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_exports",{"_index":613,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_imports",{"_index":614,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_providers",{"_index":615,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_authenticationapimodule",{"_index":1312,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_imports",{"_index":1313,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_providers",{"_index":1314,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationmodule",{"_index":1349,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_exports",{"_index":1351,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_imports",{"_index":1352,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_providers",{"_index":1350,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authorizationmodule",{"_index":1690,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_exports",{"_index":1692,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_imports",{"_index":1693,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_providers",{"_index":1691,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationreferencemodule",{"_index":1735,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_exports",{"_index":1738,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_imports",{"_index":1736,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_providers",{"_index":1737,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_boardapimodule",{"_index":2687,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_imports",{"_index":2688,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_providers",{"_index":2689,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardmodule",{"_index":3524,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_exports",{"_index":3525,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_imports",{"_index":3527,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_providers",{"_index":3526,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_cachewrappermodule",{"_index":3884,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_exports",{"_index":3885,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_providers",{"_index":3886,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_calendarmodule",{"_index":3931,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_exports",{"_index":3932,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_providers",{"_index":3933,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_classmodule",{"_index":4420,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_exports",{"_index":4422,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_providers",{"_index":4421,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_collaborativestorageadaptermodule",{"_index":4610,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_exports",{"_index":4611,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_imports",{"_index":4613,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_providers",{"_index":4612,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestoragemodule",{"_index":4662,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_exports",{"_index":4665,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_imports",{"_index":4663,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_providers",{"_index":4664,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_commontoolmodule",{"_index":5376,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_exports",{"_index":5378,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_imports",{"_index":5377,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_providers",{"_index":5379,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_consolewritermodule",{"_index":5596,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_exports",{"_index":5598,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_providers",{"_index":5597,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_contextexternaltoolmodule",{"_index":5877,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_exports",{"_index":5879,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_imports",{"_index":5878,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_providers",{"_index":5880,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_copyhelpermodule",{"_index":6406,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_exports",{"_index":6407,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_providers",{"_index":6408,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_coremodule",{"_index":6490,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_exports",{"_index":6492,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_imports",{"_index":6491,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_databasemanagementmodule",{"_index":7926,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_exports",{"_index":7927,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_providers",{"_index":7928,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_encryptionmodule",{"_index":8336,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_encryptionmodule_imports",{"_index":8337,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_errormodule",{"_index":8445,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_errormodule_imports",{"_index":8446,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_externaltoolmodule",{"_index":8912,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_exports",{"_index":8915,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_imports",{"_index":8914,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_providers",{"_index":8913,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_feathersmodule",{"_index":9701,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_exports",{"_index":9702,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_providers",{"_index":9703,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_filesmodule",{"_index":10440,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_imports",{"_index":10442,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_providers",{"_index":10441,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesstorageamqpmodule",{"_index":10494,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_imports",{"_index":10495,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_providers",{"_index":10496,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageapimodule",{"_index":10503,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_imports",{"_index":10504,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_providers",{"_index":10505,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageclientmodule",{"_index":10568,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_exports",{"_index":10570,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_imports",{"_index":10569,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_providers",{"_index":10571,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstoragemodule",{"_index":10655,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_exports",{"_index":10656,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_imports",{"_index":10657,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_providers",{"_index":10658,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragetestmodule",{"_index":10727,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesstoragetestmodule_imports",{"_index":10728,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesystemmodule",{"_index":10429,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_exports",{"_index":10430,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_providers",{"_index":10431,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_fwulearningcontentsmodule",{"_index":10830,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_imports",{"_index":10832,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_providers",{"_index":10831,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentstestmodule",{"_index":10841,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_imports",{"_index":10842,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_providers",{"_index":10843,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_groupapimodule",{"_index":11025,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_imports",{"_index":11026,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_providers",{"_index":11027,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupmodule",{"_index":11144,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_exports",{"_index":11145,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_providers",{"_index":11146,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_h5peditormodule",{"_index":11403,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_imports",{"_index":11404,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_providers",{"_index":11405,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditortestmodule",{"_index":11412,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_h5peditortestmodule_imports",{"_index":11413,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_identitymanagementmodule",{"_index":12667,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_exports",{"_index":12669,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_imports",{"_index":12668,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_importusermodule",{"_index":12932,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_imports",{"_index":12933,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_providers",{"_index":12934,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_keycloakadministrationmodule",{"_index":13236,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_exports",{"_index":13238,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_providers",{"_index":13237,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakconfigurationmodule",{"_index":13310,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_exports",{"_index":13313,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_imports",{"_index":13311,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_providers",{"_index":13312,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakmodule",{"_index":13695,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_exports",{"_index":13696,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_imports",{"_index":13698,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_providers",{"_index":13697,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_learnroomapimodule",{"_index":13858,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_imports",{"_index":13860,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_providers",{"_index":13859,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroommodule",{"_index":13876,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_exports",{"_index":13878,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_imports",{"_index":13877,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_providers",{"_index":13879,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_legacyschoolapimodule",{"_index":13923,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_imports",{"_index":13925,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_providers",{"_index":13924,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolmodule",{"_index":14018,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_exports",{"_index":14021,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_imports",{"_index":14020,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_providers",{"_index":14019,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_lessonapimodule",{"_index":14142,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_imports",{"_index":14144,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_providers",{"_index":14143,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonmodule",{"_index":14218,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_exports",{"_index":14219,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_imports",{"_index":14220,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_providers",{"_index":14221,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_loggermodule",{"_index":14445,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_exports",{"_index":14447,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_providers",{"_index":14446,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_ltitoolmodule",{"_index":14701,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_exports",{"_index":14702,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_providers",{"_index":14703,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_managementmodule",{"_index":14779,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_imports",{"_index":14781,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_providers",{"_index":14780,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementservermodule",{"_index":14793,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservermodule_imports",{"_index":14794,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservertestmodule",{"_index":14800,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_managementservertestmodule_imports",{"_index":14801,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_metatagextractorapimodule",{"_index":14821,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["cluster_metatagextractorapimodule_imports",{"_index":14822,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["cluster_metatagextractorapimodule_providers",{"_index":14823,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["cluster_metatagextractormodule",{"_index":14845,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_metatagextractormodule_exports",{"_index":14848,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_metatagextractormodule_imports",{"_index":14847,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_metatagextractormodule_providers",{"_index":14846,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_newsmodule",{"_index":15182,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_exports",{"_index":15185,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_imports",{"_index":15184,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_providers",{"_index":15183,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_oauthapimodule",{"_index":15693,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_imports",{"_index":15695,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_providers",{"_index":15694,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthmodule",{"_index":15868,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_exports",{"_index":15869,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_imports",{"_index":15871,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_providers",{"_index":15870,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthproviderapimodule",{"_index":15875,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_imports",{"_index":15876,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_providers",{"_index":15877,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthprovidermodule",{"_index":16127,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_exports",{"_index":16129,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_imports",{"_index":16130,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_providers",{"_index":16128,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthproviderservicemodule",{"_index":16184,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_oauthproviderservicemodule_exports",{"_index":16185,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_previewgeneratoramqpmodule",{"_index":16691,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratoramqpmodule_imports",{"_index":16692,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratorproducermodule",{"_index":16728,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_exports",{"_index":16730,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_imports",{"_index":16731,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_providers",{"_index":16729,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_provisioningmodule",{"_index":16918,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_exports",{"_index":16919,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_imports",{"_index":16921,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_providers",{"_index":16920,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_pseudonymapimodule",{"_index":16998,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_imports",{"_index":16999,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_providers",{"_index":17000,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymmodule",{"_index":17035,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_exports",{"_index":17037,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_imports",{"_index":17038,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_providers",{"_index":17036,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_redismodule",{"_index":17396,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_redismodule_imports",{"_index":17397,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_rolemodule",{"_index":17605,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_exports",{"_index":17607,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_providers",{"_index":17606,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_schoolexternaltoolmodule",{"_index":18182,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_exports",{"_index":18183,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_imports",{"_index":18184,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_providers",{"_index":18185,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_serverconsolemodule",{"_index":18569,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_serverconsolemodule_imports",{"_index":18570,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_servermodule",{"_index":18583,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servermodule_imports",{"_index":18584,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servertestmodule",{"_index":18665,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_servertestmodule_imports",{"_index":18666,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_sharingapimodule",{"_index":18939,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_imports",{"_index":18940,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_providers",{"_index":18941,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingmodule",{"_index":18946,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_exports",{"_index":18947,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_imports",{"_index":18949,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_providers",{"_index":18948,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_systemapimodule",{"_index":19353,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_imports",{"_index":19354,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_providers",{"_index":19355,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemmodule",{"_index":19475,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_exports",{"_index":19478,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_imports",{"_index":19476,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_providers",{"_index":19477,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_taskapimodule",{"_index":19612,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_imports",{"_index":19614,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_providers",{"_index":19613,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskmodule",{"_index":19817,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_exports",{"_index":19819,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_imports",{"_index":19818,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_providers",{"_index":19820,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_teamsapimodule",{"_index":20246,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsapimodule_imports",{"_index":20247,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsmodule",{"_index":20251,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_exports",{"_index":20253,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_providers",{"_index":20252,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_toolapimodule",{"_index":20380,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_imports",{"_index":20381,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_providers",{"_index":20382,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toollaunchmodule",{"_index":20629,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_exports",{"_index":20630,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_imports",{"_index":20631,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_providers",{"_index":20632,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toolmodule",{"_index":20697,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_exports",{"_index":20700,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_imports",{"_index":20699,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_providers",{"_index":20698,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_userapimodule",{"_index":20914,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_imports",{"_index":20916,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_providers",{"_index":20915,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userloginmigrationapimodule",{"_index":21115,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_imports",{"_index":21117,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_providers",{"_index":21116,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationmodule",{"_index":21284,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_exports",{"_index":21286,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_imports",{"_index":21287,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_providers",{"_index":21285,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_usermodule",{"_index":21574,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_exports",{"_index":21577,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_imports",{"_index":21576,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_providers",{"_index":21575,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_videoconferenceapimodule",{"_index":21779,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_imports",{"_index":21781,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_providers",{"_index":21780,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferencemodule",{"_index":22053,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_exports",{"_index":22056,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_imports",{"_index":22054,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_providers",{"_index":22055,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["code",{"_index":946,"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":15499,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["codebase",{"_index":23220,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["coded",{"_index":11852,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["coersion",{"_index":10955,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["cohesion",{"_index":23246,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["collaborative",{"_index":4547,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/NextcloudStrategy.html":{}}}],["collaborativestorage",{"_index":11671,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["collaborativestorageadapter",{"_index":4541,"title":{"injectables/CollaborativeStorageAdapter.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["collaborativestorageadaptermapper",{"_index":4559,"title":{"injectables/CollaborativeStorageAdapterMapper.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["collaborativestorageadaptermodule",{"_index":4609,"title":{"modules/CollaborativeStorageAdapterModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules.html":{}}}],["collaborativestoragecontroller",{"_index":4629,"title":{"controllers/CollaborativeStorageController.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["collaborativestoragemodule",{"_index":4661,"title":{"modules/CollaborativeStorageModule.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["collaborativestorageservice",{"_index":4666,"title":{"injectables/CollaborativeStorageService.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collaborativestorageuc",{"_index":4650,"title":{"injectables/CollaborativeStorageUc.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collect",{"_index":22863,"title":{},"body":{"license.html":{}}}],["collectdefaultmetrics",{"_index":16825,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collected",{"_index":16877,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting",{"_index":16876,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_default_metrics_disabled",{"_index":16875,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_metrics_route_metrics_disabled",{"_index":16878,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collection",{"_index":1654,"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":2611,"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":7969,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.find({}).toarray",{"_index":7967,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.insertmany(jsondocuments",{"_index":7964,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.name",{"_index":7974,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionexists",{"_index":7935,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionexists(collectionname",{"_index":7944,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname",{"_index":7905,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter",{"_index":11721,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter.length",{"_index":11728,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter?.includes(collectionname",{"_index":11731,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnames",{"_index":7972,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname}.json",{"_index":11713,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionname}:${data.length",{"_index":11751,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections",{"_index":7865,"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":7976,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.includes(data.collectionname",{"_index":11746,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.length",{"_index":11745,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.map((collection",{"_index":7973,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.map((collectionname",{"_index":11711,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport",{"_index":11780,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport.map(async",{"_index":11782,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed",{"_index":11759,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed.map(async",{"_index":11761,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionswithfilepaths",{"_index":11710,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectmetricsroutemetrics",{"_index":16826,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collects",{"_index":23802,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["color",{"_index":6536,"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":2630,"title":{"classes/Column.html":{}},"body":{"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":4952,"title":{},"body":{"controllers/ColumnController.html":{}}}],["column.addchild(card",{"_index":4853,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["column.body.params.ts",{"_index":15037,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:11",{"_index":15039,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:19",{"_index":15040,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.children.map((card",{"_index":4995,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.constructor.name",{"_index":3673,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["column.createdat",{"_index":4999,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.do",{"_index":2817,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["column.id",{"_index":4993,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.response",{"_index":3661,"title":{},"body":{"classes/BoardResponse.html":{}}}],["column.title",{"_index":4994,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.updatedat",{"_index":4998,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["columnboard",{"_index":1863,"title":{"classes/ColumnBoard.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.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":4847,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["columnboard.context",{"_index":17359,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.id",{"_index":17355,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.title",{"_index":17356,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboardboardelement",{"_index":2629,"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":2944,"title":{"injectables/ColumnBoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["columnboardelement",{"_index":3043,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["columnboardelements",{"_index":3651,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["columnboardfactory",{"_index":4793,"title":{"classes/ColumnBoardFactory.html":{}},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardfactory.define(columnboard",{"_index":4799,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardid",{"_index":2710,"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":4931,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardids.length",{"_index":17818,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardids.map((id",{"_index":4938,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardids.push(columnboard.id",{"_index":17820,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardinfo",{"_index":17718,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.columnboardid",{"_index":17721,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.createdat",{"_index":17724,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.id",{"_index":17720,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.published",{"_index":17723,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.title",{"_index":17722,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.updatedat",{"_index":17725,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardmetadata",{"_index":8161,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardnode",{"_index":3139,"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":3491,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodefactory.build",{"_index":3496,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodeprops",{"_index":4806,"title":{"interfaces/ColumnBoardNodeProps.html":{}},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["columnboardprops",{"_index":4764,"title":{"interfaces/ColumnBoardProps.html":{}},"body":{"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{}}}],["columnboardservice",{"_index":1851,"title":{"injectables/ColumnBoardService.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget",{"_index":2631,"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":3035,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.createdat",{"_index":8209,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.id",{"_index":8207,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.published",{"_index":8211,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.title",{"_index":8208,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.updatedat",{"_index":8210,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtargetprops",{"_index":4915,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["columnboardtargets",{"_index":4937,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardtargetservice",{"_index":4922,"title":{"injectables/ColumnBoardTargetService.html":{}},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["columncontroller",{"_index":2697,"title":{"controllers/ColumnController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ColumnController.html":{}}}],["columnid",{"_index":3790,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{},"classes/ColumnUrlParams.html":{}}}],["columnnode",{"_index":3136,"title":{"entities/ColumnNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnnodefactory",{"_index":3492,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnnodefactory.build",{"_index":3513,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnprops",{"_index":4747,"title":{"interfaces/ColumnProps.html":{}},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["columnresponse",{"_index":2903,"title":{"classes/ColumnResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper",{"_index":2907,"title":{"classes/ColumnResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper.maptoresponse(column",{"_index":2928,"title":{},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["columnresponse})@apiresponse({status",{"_index":2874,"title":{},"body":{"controllers/BoardController.html":{}}}],["columns",{"_index":3199,"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":3501,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnservice",{"_index":3533,"title":{"injectables/ColumnService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{}}}],["columnuc",{"_index":2692,"title":{"injectables/ColumnUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["columnurlparams",{"_index":4950,"title":{"classes/ColumnUrlParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{}}}],["colums",{"_index":7560,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["combination",{"_index":17166,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["combinations",{"_index":23653,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["combine",{"_index":22874,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["combined",{"_index":18957,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["combineduri",{"_index":21546,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.pathname",{"_index":21548,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.tostring",{"_index":21549,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combines",{"_index":23835,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["come",{"_index":22417,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["comes",{"_index":22586,"title":{},"body":{"license.html":{}}}],["coming",{"_index":23754,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["command",{"_index":3452,"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":3448,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/KeycloakConsole.html":{},"classes/ServerConsole.html":{}}}],["commander",{"_index":22198,"title":{},"body":{"dependencies.html":{}}}],["commandname",{"_index":13526,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["commandoption",{"_index":11602,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["commandoutput",{"_index":17955,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["commandresponse",{"_index":20312,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["commands",{"_index":11615,"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":8975,"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":23595,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["commercial",{"_index":22664,"title":{},"body":{"license.html":{}}}],["commit",{"_index":22348,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["commitment",{"_index":22815,"title":{},"body":{"license.html":{}}}],["commits",{"_index":23592,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["committing",{"_index":22342,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common",{"_index":5079,"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":5780,"title":{},"body":{"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":5851,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["common/enum",{"_index":1867,"title":{},"body":{"injectables/AutoContextNameStrategy.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":5781,"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":6031,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["common/service",{"_index":6171,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["common/uc/tool",{"_index":6139,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["commoncartridgeexportservice",{"_index":5041,"title":{"injectables/CommonCartridgeExportService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomModule.html":{}}}],["commoncartridgefilebuilder",{"_index":5055,"title":{"classes/CommonCartridgeFileBuilder.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeintendedusetype",{"_index":5077,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeintendedusetype.assignment",{"_index":5143,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeintendedusetype.unspecified",{"_index":5118,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeltiresource",{"_index":5210,"title":{"classes/CommonCartridgeLtiResource.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeltiresource(props",{"_index":5346,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgemanifestelement",{"_index":5173,"title":{"classes/CommonCartridgeManifestElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgemetadataelement",{"_index":5275,"title":{"classes/CommonCartridgeMetadataElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["commoncartridgemetadataelement(this.metadataprops).transform",{"_index":5292,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeorganizationbuilder",{"_index":5179,"title":{"classes/CommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationbuilder(props",{"_index":5190,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement",{"_index":5177,"title":{"classes/CommonCartridgeOrganizationItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement(this.props",{"_index":5180,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationwrapperelement",{"_index":5276,"title":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["commoncartridgeorganizationwrapperelement(this.organizations).transform",{"_index":5293,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeresourceitemelement",{"_index":5175,"title":{"classes/CommonCartridgeResourceItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(props",{"_index":5185,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(resourceprops",{"_index":5182,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourcetype",{"_index":5078,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.lti",{"_index":5221,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeresourcetype.web_content",{"_index":5116,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeresourcetype.web_link_v1",{"_index":5125,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.web_link_v3",{"_index":5124,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcewrapperelement",{"_index":5278,"title":{"classes/CommonCartridgeResourceWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["commoncartridgeresourcewrapperelement(this.resources).transform",{"_index":5294,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeversion",{"_index":5057,"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":5142,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeversion.v_1_3_0",{"_index":5123,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgewebcontentresource",{"_index":5341,"title":{"classes/CommonCartridgeWebContentResource.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgewebcontentresource(props",{"_index":5347,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeweblinkresourceelement",{"_index":5343,"title":{"classes/CommonCartridgeWebLinkResourceElement.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeweblinkresourceelement(props",{"_index":5348,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commonobject",{"_index":5222,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$.xmlns",{"_index":5243,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:blti",{"_index":5245,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticm",{"_index":5247,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticp",{"_index":5249,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xsi:schemalocation",{"_index":5251,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonprops",{"_index":5109,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commontags",{"_index":5365,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commontoolmodule",{"_index":5375,"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":5381,"title":{"injectables/CommonToolService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["commontoolvalidationservice",{"_index":5382,"title":{"injectables/CommonToolValidationService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["commontoolvalidationservice.typecheckers[type",{"_index":5450,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["communicate",{"_index":23818,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["communication",{"_index":22511,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["community",{"_index":22375,"title":{},"body":{"license.html":{}}}],["comparator",{"_index":23302,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["comparealphabetic",{"_index":2660,"title":{},"body":{"entities/Board.html":{}}}],["compared",{"_index":23604,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["compareparameters",{"_index":9550,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["compareparameters(oldparams",{"_index":9558,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["comparepassword",{"_index":92,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["compass",{"_index":23557,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["compatible",{"_index":23038,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["compilation",{"_index":22592,"title":{},"body":{"license.html":{}}}],["compilation's",{"_index":22599,"title":{},"body":{"license.html":{}}}],["compilations",{"_index":22846,"title":{},"body":{"license.html":{}}}],["compile",{"_index":20310,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["compiler",{"_index":22500,"title":{},"body":{"license.html":{}}}],["complete",{"_index":14967,"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":3229,"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":19134,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["completed.loggable.ts",{"_index":14960,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:3",{"_index":14962,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:6",{"_index":14963,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completion",{"_index":23509,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["completly",{"_index":23801,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["complex",{"_index":13903,"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":23721,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["compliance",{"_index":22775,"title":{},"body":{"license.html":{}}}],["comply",{"_index":22526,"title":{},"body":{"license.html":{}}}],["compodoc",{"_index":23127,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["component",{"_index":5698,"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":5757,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["components",{"_index":22325,"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":5075,"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":5126,"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":5121,"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":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":{}}}],["componenttype.lernstore",{"_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":{}}}],["componenttype.nexboard",{"_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":{}}}],["componenttype.text",{"_index":5115,"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":6445,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["composite",{"_index":2780,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["composite.do",{"_index":3975,"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":2726,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["composite.do.ts:11",{"_index":2755,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:15",{"_index":2757,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:19",{"_index":2743,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:33",{"_index":2748,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:35",{"_index":2750,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:39",{"_index":2746,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:45",{"_index":2736,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:47",{"_index":2740,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:7",{"_index":2753,"title":{},"body":{"classes/BoardComposite.html":{}}}],["compression",{"_index":22200,"title":{},"body":{"dependencies.html":{}}}],["computer",{"_index":22457,"title":{},"body":{"license.html":{}}}],["concatenating",{"_index":15362,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["concept",{"_index":23259,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concepts",{"_index":23258,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concern",{"_index":23192,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["concerns",{"_index":22881,"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":23322,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concurrently",{"_index":22202,"title":{},"body":{"dependencies.html":{}}}],["cond",{"_index":19956,"title":{},"body":{"injectables/TaskRule.html":{}}}],["condition",{"_index":23408,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["conditioned",{"_index":22840,"title":{},"body":{"license.html":{}}}],["conditions",{"_index":22430,"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":2192,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference",{"_index":8081,"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":21807,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference.controller.ts",{"_index":21801,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:105",{"_index":21814,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:132",{"_index":21810,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:44",{"_index":21825,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:77",{"_index":21820,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.do.ts",{"_index":21918,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:19",{"_index":21921,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:21",{"_index":21922,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:23",{"_index":21919,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:5",{"_index":22071,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:7",{"_index":22072,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:9",{"_index":22070,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.entity",{"_index":22091,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.entity.ts",{"_index":21750,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:10",{"_index":22068,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:12",{"_index":22069,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:14",{"_index":22067,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:31",{"_index":21753,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:34",{"_index":21754,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:37",{"_index":21752,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.mapper",{"_index":21828,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference.mapper.ts",{"_index":22029,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:25",{"_index":22035,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:32",{"_index":22037,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:38",{"_index":22041,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:42",{"_index":22039,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.module",{"_index":21788,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["conference.module.ts",{"_index":22058,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo",{"_index":22061,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo.ts",{"_index":22084,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:20",{"_index":22089,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:28",{"_index":22087,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.ts",{"_index":21769,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:10",{"_index":21770,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:6",{"_index":21773,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:8",{"_index":21771,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference/bbb/bbb",{"_index":11591,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["conference/bbb/bbb.service.ts",{"_index":2127,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:107",{"_index":2163,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:136",{"_index":2154,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:14",{"_index":2139,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:150",{"_index":2172,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:167",{"_index":2165,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:21",{"_index":2176,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:25",{"_index":2178,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:29",{"_index":2180,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:39",{"_index":2142,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:61",{"_index":2161,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:72",{"_index":2169,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:84",{"_index":2149,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/builder/bbb",{"_index":1999,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["conference/bbb/builder/builder.ts",{"_index":3843,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:2",{"_index":3845,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:8",{"_index":3847,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/request/bbb",{"_index":1937,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["conference/bbb/response/bbb",{"_index":1947,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["conference/bbb/response/bbb.response.ts",{"_index":2125,"title":{},"body":{"interfaces/BBBResponse.html":{}}}],["conference/controller/dto/request/video",{"_index":21853,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference/controller/dto/response/video",{"_index":8080,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["conference/controller/video",{"_index":21800,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference/error/error",{"_index":21969,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/error/invalid",{"_index":13071,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["conference/interface/video",{"_index":12617,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["conference/mapper/vc",{"_index":22111,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference/mapper/video",{"_index":22028,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference/uc/dto/scope",{"_index":12240,"title":{},"body":{"interfaces/IScopeInfo.html":{},"classes/ScopeRef.html":{}}}],["conference/uc/dto/video",{"_index":21768,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["conference/uc/video",{"_index":21871,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/video",{"_index":18615,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["conferences",{"_index":22065,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["config",{"_index":1909,"title":{},"body":{"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":19453,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["config.allowmodstounmuteusers",{"_index":1995,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.attendeepw",{"_index":1993,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.builder.ts",{"_index":2000,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:10",{"_index":2083,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:11",{"_index":2016,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:15",{"_index":2085,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:16",{"_index":2010,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:21",{"_index":2014,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:5",{"_index":2081,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:6",{"_index":2012,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.clientid",{"_index":9813,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["config.connectionname",{"_index":18006,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["config.do",{"_index":2493,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts",{"_index":2487,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:11",{"_index":14593,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:13",{"_index":14594,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:15",{"_index":14591,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:17",{"_index":15636,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:4",{"_index":2489,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{}}}],["config.do.ts:5",{"_index":14592,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:6",{"_index":8578,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["config.do.ts:7",{"_index":14596,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:9",{"_index":14595,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.dto",{"_index":19407,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["config.dto.ts",{"_index":15756,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:1",{"_index":16366,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:10",{"_index":15762,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:12",{"_index":15770,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:14",{"_index":15759,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:16",{"_index":15768,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:18",{"_index":15769,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:2",{"_index":15760,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:20",{"_index":15766,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:22",{"_index":16367,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:24",{"_index":16370,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:25",{"_index":15765,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:26",{"_index":16369,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:27",{"_index":15764,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:28",{"_index":16371,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:29",{"_index":15758,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:30",{"_index":16368,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:4",{"_index":15761,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:6",{"_index":15763,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:8",{"_index":15767,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.entity",{"_index":2502,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts",{"_index":2498,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:10",{"_index":8583,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:11",{"_index":15654,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:12",{"_index":14617,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:15",{"_index":14616,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:18",{"_index":14614,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:21",{"_index":14615,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:24",{"_index":14612,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:6",{"_index":2499,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["config.entity.ts:7",{"_index":8584,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:8",{"_index":15655,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:9",{"_index":14613,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.frontchannellogouturi",{"_index":9446,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.fullname",{"_index":2067,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guest",{"_index":2072,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guestpolicy",{"_index":1989,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.json",{"_index":23630,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["config.logouturl",{"_index":1985,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.meetingid",{"_index":1945,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"injectables/BBBService.html":{}}}],["config.moderatorpw",{"_index":1991,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.module",{"_index":8926,"title":{},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{}}}],["config.module.ts",{"_index":20400,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["config.name",{"_index":1983,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.params",{"_index":2514,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["config.params.ts",{"_index":2508,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:4",{"_index":8581,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:6",{"_index":8580,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.redirect",{"_index":2074,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.redirecturis",{"_index":9444,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.response",{"_index":2523,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["config.response.ts",{"_index":2518,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:10",{"_index":2520,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["config.response.ts:13",{"_index":14620,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:16",{"_index":14623,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:19",{"_index":14621,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:22",{"_index":14622,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:23",{"_index":15795,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:25",{"_index":14619,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:28",{"_index":15659,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:30",{"_index":15790,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:37",{"_index":15798,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:4",{"_index":8587,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:44",{"_index":15788,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:51",{"_index":15796,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:58",{"_index":15797,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:6",{"_index":8586,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:65",{"_index":15794,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:72",{"_index":15793,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:79",{"_index":15792,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:86",{"_index":15787,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:9",{"_index":15789,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.role",{"_index":2069,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.scope",{"_index":9440,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.tokenendpointauthmethod",{"_index":9442,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.ts",{"_index":11589,"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":21799,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:14",{"_index":20402,"title":{},"body":{"classes/ToolConfiguration.html":{}}}],["config.ts:4",{"_index":13307,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["config.ts:5",{"_index":13234,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["config.ts:6",{"_index":21796,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.type",{"_index":8576,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["config.userid",{"_index":2070,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.welcome",{"_index":1987,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config/development.json",{"_index":11994,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config/test.json",{"_index":11995,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config['meta_bbb",{"_index":1997,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["configbuilder",{"_index":21905,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withguestpolicy(guestpolicy.ask_moderator",{"_index":21911,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withmuteonstart(true",{"_index":21913,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configmodule",{"_index":10666,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions",{"_index":16727,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(config",{"_index":10679,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(metatagextractorconfig",{"_index":14853,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(serverconfig",{"_index":14790,"title":{},"body":{"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configs",{"_index":13461,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/S3ClientModule.html":{}}}],["configs.flatmap((config",{"_index":18005,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["configservice",{"_index":584,"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":635,"title":{},"body":{"modules/AccountModule.html":{}}}],["configservice.get('incoming_request_timeout",{"_index":13061,"title":{},"body":{"modules/InterceptorModule.html":{},"injectables/PreviewProducer.html":{}}}],["configservice.get('incoming_request_timeout_copy_api",{"_index":10715,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["configservice.get('nest_log_level",{"_index":14455,"title":{},"body":{"modules/LoggerModule.html":{}}}],["configservice.get(aeskey",{"_index":8346,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["configtoupdate",{"_index":9495,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["configtype",{"_index":20612,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["configuration",{"_index":2017,"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":13320,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.console.ts",{"_index":11600,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:121",{"_index":13521,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:156",{"_index":13524,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:172",{"_index":13525,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:201",{"_index":13523,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:23",{"_index":13517,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:32",{"_index":13518,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:51",{"_index":13519,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:77",{"_index":13520,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:99",{"_index":13527,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.controller",{"_index":13327,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.controller.ts",{"_index":13643,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:109",{"_index":20419,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:19",{"_index":13647,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration.controller.ts:38",{"_index":20413,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:60",{"_index":20409,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:86",{"_index":20423,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.externaltoolid",{"_index":5818,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.get",{"_index":12255,"title":{},"body":{"interfaces/IServerConfig.html":{},"injectables/ShareTokenUC.html":{}}}],["configuration.get('antivirus_exchange",{"_index":10683,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('antivirus_routing_key",{"_index":10684,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('calendar_uri",{"_index":3951,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('clamav__service_hostname",{"_index":10685,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('clamav__service_port",{"_index":10686,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('column_board_feedback_link",{"_index":4889,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('column_board_help_link",{"_index":4873,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('cookie__expires_seconds",{"_index":16293,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__http_only",{"_index":16286,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__same_site",{"_index":16288,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__secure",{"_index":16292,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('ctl_tools__external_tool_max_logo_size_in_bytes",{"_index":12584,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('enable_file_security_check",{"_index":10681,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('feature_column_board_enabled",{"_index":8181,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["configuration.get('feature_copy_service_enabled",{"_index":6777,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["configuration.get('feature_course_share_new",{"_index":18931,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_ctl_context_configuration_enabled",{"_index":12583,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_ctl_tools_tab_enabled",{"_index":12581,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_fwu_content_enabled",{"_index":10811,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["configuration.get('feature_identity_management_enabled",{"_index":12257,"title":{},"body":{"interfaces/IServerConfig.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["configuration.get('feature_identity_management_login_enabled",{"_index":12259,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_identity_management_store_enabled",{"_index":12258,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_imscc_course_export_enabled",{"_index":12256,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_lesson_share",{"_index":18933,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_lti_tools_tab_enabled",{"_index":12582,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_prometheus_metrics_enabled",{"_index":16851,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('feature_sanis_group_provisioning_enabled",{"_index":16532,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["configuration.get('feature_task_share",{"_index":18934,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_videoconference_enabled",{"_index":21797,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('files_storage__exchange",{"_index":11931,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["configuration.get('files_storage__incoming_request_timeout",{"_index":11986,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__max_file_size",{"_index":11990,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_access_key_id",{"_index":11999,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_bucket",{"_index":11998,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_endpoint",{"_index":11996,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_region",{"_index":11997,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_secret_access_key",{"_index":12000,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__service_base_url",{"_index":10682,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('files_storage__use_stream_to_antivirus",{"_index":11991,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('host",{"_index":4902,"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":11437,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["configuration.get('i18n__available_languages",{"_index":12251,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('identity_management__admin_clientid",{"_index":13233,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_password",{"_index":13232,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_user",{"_index":13231,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__clientid",{"_index":13230,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__tenant",{"_index":13229,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__uri",{"_index":13228,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('incoming_request_timeout_api",{"_index":12249,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('incoming_request_timeout_copy_api",{"_index":11989,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('login_block_time",{"_index":12254,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('mail_send_exchange",{"_index":17174,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('mail_send_routing_key",{"_index":18624,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('migration_end_grace_period_ms",{"_index":21367,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["configuration.get('nest_log_level",{"_index":11984,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('nextcloud_scopes",{"_index":11582,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["configuration.get('nextcloud_sociallogin_oidc_internal_name",{"_index":4628,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["configuration.get('node_env",{"_index":12253,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_default_metrics",{"_index":16854,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_metrics_route_metrics",{"_index":16855,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_port",{"_index":16853,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_route",{"_index":16852,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('public_backend_url",{"_index":12585,"title":{},"body":{"interfaces/IToolFeatures.html":{},"injectables/OAuthService.html":{},"classes/ToolConfiguration.html":{},"injectables/UserMigrationService.html":{}}}],["configuration.get('rabbitmq_uri",{"_index":17175,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('redis_uri",{"_index":3898,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["configuration.get('request_option__timeout_ms",{"_index":3953,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('rocket_chat_admin_id",{"_index":18627,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_password",{"_index":18630,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_token",{"_index":18628,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_user",{"_index":18629,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_uri",{"_index":18626,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('s3_key",{"_index":19013,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["configuration.get('sc_domain",{"_index":2028,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('sc_theme",{"_index":4900,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('session__expires_seconds",{"_index":18633,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__http_only",{"_index":18652,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__name",{"_index":18646,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__proxy",{"_index":18649,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__same_site",{"_index":18651,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secret",{"_index":18642,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secure",{"_index":18650,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('videoconference_default_presentation",{"_index":21795,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_host",{"_index":21793,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_salt",{"_index":21794,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get(placeholder",{"_index":11832,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.has('column_board_feedback_link",{"_index":4887,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('column_board_help_link",{"_index":4871,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('redis_uri",{"_index":3881,"title":{},"body":{"injectables/CacheService.html":{},"modules/RedisModule.html":{}}}],["configuration.has('session__name",{"_index":18645,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has('session__proxy",{"_index":18648,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has(placeholder",{"_index":11831,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.logourl",{"_index":5823,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.mapper",{"_index":20426,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.mapper.ts",{"_index":20443,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:12",{"_index":20457,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:28",{"_index":20455,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:41",{"_index":20452,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:60",{"_index":20449,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.module",{"_index":14783,"title":{},"body":{"modules/ManagementModule.html":{}}}],["configuration.module.ts",{"_index":13317,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.name",{"_index":5821,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.parameters",{"_index":5824,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.schoolexternaltoolid",{"_index":5820,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.service",{"_index":13324,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.service.ts",{"_index":8590,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:108",{"_index":13352,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:12",{"_index":8597,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:128",{"_index":13353,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:15",{"_index":8610,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:155",{"_index":13354,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:167",{"_index":13349,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:191",{"_index":13371,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:214",{"_index":13357,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:224",{"_index":13375,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:235",{"_index":13362,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:24",{"_index":8606,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:240",{"_index":13377,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:254",{"_index":13359,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:26",{"_index":13346,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:262",{"_index":13366,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:277",{"_index":13363,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:34",{"_index":13351,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:46",{"_index":8601,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:77",{"_index":8612,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.uc",{"_index":11605,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["configuration.uc.ts",{"_index":8640,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:116",{"_index":8661,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:136",{"_index":8659,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:16",{"_index":13500,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:165",{"_index":8653,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:17",{"_index":8649,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:177",{"_index":8651,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:20",{"_index":13502,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:24",{"_index":13505,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:28",{"_index":8657,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:32",{"_index":13503,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:64",{"_index":8655,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:8",{"_index":13499,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.version",{"_index":5826,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration/console/keycloak",{"_index":11599,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration/controller/keycloak",{"_index":13642,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration/interface/json",{"_index":12070,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["configuration/interface/keycloak",{"_index":12076,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["configuration/keycloak",{"_index":13303,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{}}}],["configuration/mapper/identity",{"_index":16393,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["configuration/service/keycloak",{"_index":13330,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["configuration/uc/keycloak",{"_index":13497,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configurations",{"_index":11992,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configure",{"_index":11649,"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":18594,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configure(options",{"_index":11650,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configureaction",{"_index":13390,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.action",{"_index":13443,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.create",{"_index":13444,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.delete",{"_index":13448,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.update",{"_index":13446,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureactions",{"_index":13441,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurebrokerflows",{"_index":13332,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureclient",{"_index":13333,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configured",{"_index":14995,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["configureidentityproviders",{"_index":13334,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurerealm",{"_index":13335,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configures",{"_index":6498,"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":16623,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["confirmpassword",{"_index":16621,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["conflict",{"_index":6732,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["conflicts",{"_index":23257,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["conjunction",{"_index":23637,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["connect",{"_index":13434,"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":13780,"title":{},"body":{"injectables/LdapService.html":{}}}],["connected",{"_index":18342,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["connecting",{"_index":23058,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["connection",{"_index":11628,"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":13787,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error",{"_index":13784,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error.ts",{"_index":13770,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.error.ts:4",{"_index":13772,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.managedconnection.close",{"_index":17180,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["connection.unbind",{"_index":13788,"title":{},"body":{"injectables/LdapService.html":{}}}],["connectionname",{"_index":6335,"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":17177,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connectredis",{"_index":18619,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis(session",{"_index":18636,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis.redisstore",{"_index":18634,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connects",{"_index":13648,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["consent",{"_index":110,"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":17524,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.params.ts:7",{"_index":17525,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.response",{"_index":16909,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consent_request",{"_index":16908,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consentflowuc",{"_index":16016,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequest",{"_index":16049,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequestbody",{"_index":5488,"title":{"classes/ConsentRequestBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["consentresponse",{"_index":5539,"title":{"classes/ConsentResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consentresponse.client?.client_id",{"_index":15953,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentresponse.requested_scope",{"_index":15952,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentsessionresponse",{"_index":5582,"title":{"classes/ConsentSessionResponse.html":{}},"body":{"classes/ConsentSessionResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consequence",{"_index":22762,"title":{},"body":{"license.html":{}}}],["consequential",{"_index":22906,"title":{},"body":{"license.html":{}}}],["considerations",{"_index":23244,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["considered",{"_index":22730,"title":{},"body":{"license.html":{}}}],["consistent",{"_index":2030,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/GlobalErrorFilter.html":{},"license.html":{}}}],["console",{"_index":3453,"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":5606,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["console/board",{"_index":14784,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/database",{"_index":14786,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/keycloak",{"_index":13319,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["consolelogger",{"_index":13909,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["consolemodule",{"_index":18576,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["consolewriter",{"_index":3446,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{}}}],["consolewritermodule",{"_index":3528,"title":{"modules/ConsoleWriterModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["consolewriterservice",{"_index":3443,"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":22568,"title":{},"body":{"license.html":{}}}],["const",{"_index":437,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"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":{},"injectables/RecursiveDeleteVisitor.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":{},"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/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":1380,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{},"injectables/S3ClientAdapter.html":{}}}],["constitutes",{"_index":22520,"title":{},"body":{"license.html":{}}}],["constraint",{"_index":17169,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["constructor",{"_index":379,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"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/ColumnUc.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":{},"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/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorUc.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/UnknownQueryTypeLoggableException.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":16400,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(@inject(mikroorm",{"_index":15018,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["constructor(@inject(request",{"_index":9836,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["constructor(@inject(toolfeatures",{"_index":8613,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["constructor(@inject(winston_module_provider",{"_index":8425,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["constructor(_em",{"_index":2248,"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":851,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["constructor(adapter",{"_index":4681,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["constructor(amqpconnection",{"_index":1142,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["constructor(apivalidationerror",{"_index":1231,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["constructor(app",{"_index":1458,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["constructor(authenticationservice",{"_index":14398,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["constructor(authorisation",{"_index":14168,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["constructor(authorisationservice",{"_index":17664,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["constructor(authorization",{"_index":6766,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["constructor(authorizationhelper",{"_index":3350,"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":2455,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["constructor(authservice",{"_index":14562,"title":{},"body":{"injectables/LoginUc.html":{}}}],["constructor(bbbservice",{"_index":21877,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["constructor(bbbsettings",{"_index":2136,"title":{},"body":{"injectables/BBBService.html":{}}}],["constructor(boarddorepo",{"_index":3087,"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":13202,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["constructor(classesrepo",{"_index":4430,"title":{},"body":{"injectables/ClassService.html":{}}}],["constructor(client",{"_index":17906,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["constructor(clientid",{"_index":5586,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/IdTokenCreationLoggableException.html":{}}}],["constructor(columnboardservice",{"_index":4927,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["constructor(config",{"_index":1941,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["constructor(configuration",{"_index":5808,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["constructor(consentresponse",{"_index":5547,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["constructor(console",{"_index":13516,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["constructor(consolewriter",{"_index":3442,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ServerConsole.html":{}}}],["constructor(content",{"_index":5694,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["constructor(contextexternaltool",{"_index":14991,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["constructor(contextexternaltoolrepo",{"_index":5795,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{}}}],["constructor(contextexternaltoolservice",{"_index":6165,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolReferenceUc.html":{}}}],["constructor(copyhelperservice",{"_index":6364,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["constructor(county",{"_index":6517,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["constructor(courseexportservice",{"_index":6781,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["constructor(courserepo",{"_index":6713,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{},"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["constructor(courserule",{"_index":17870,"title":{},"body":{"injectables/RuleManager.html":{}}}],["constructor(courseservice",{"_index":1848,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/CommonCartridgeExportService.html":{}}}],["constructor(customkey",{"_index":19005,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["constructor(dashboardrepo",{"_index":7832,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["constructor(data",{"_index":812,"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":16396,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(deletefilesuc",{"_index":7984,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["constructor(descendants",{"_index":3170,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["constructor(descriptionoroptions",{"_index":13738,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["constructor(details",{"_index":13771,"title":{},"body":{"classes/LdapConnectionError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["constructor(domainobject",{"_index":7251,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(dto",{"_index":3909,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["constructor(e",{"_index":991,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["constructor(em",{"_index":3279,"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":2383,"title":{},"body":{"classes/BaseFactory.html":{}}}],["constructor(entityname",{"_index":8352,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["constructor(error",{"_index":8361,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["constructor(externaltoolid",{"_index":8834,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["constructor(externaltoollogo",{"_index":8811,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["constructor(externaltoolrepo",{"_index":9365,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["constructor(externaltoolservice",{"_index":8647,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["constructor(externaluserid",{"_index":21584,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["constructor(feathersauthprovider",{"_index":9670,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["constructor(feathersserviceprovider",{"_index":8482,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/NexboardService.html":{}}}],["constructor(federalstaterepo",{"_index":9865,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["constructor(field",{"_index":21744,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(file",{"_index":9876,"title":{},"body":{"classes/FileDto.html":{}}}],["constructor(filecopyservice",{"_index":17202,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["constructor(filerecord",{"_index":6260,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["constructor(filesrepo",{"_index":8012,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["constructor(filesstorageclientadapterservice",{"_index":18496,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["constructor(filesstorageservice",{"_index":10579,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["constructor(group",{"_index":11183,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["constructor(grouprepo",{"_index":11260,"title":{},"body":{"injectables/GroupService.html":{}}}],["constructor(groupuser",{"_index":21102,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["constructor(httpservice",{"_index":3942,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/OauthAdapterService.html":{}}}],["constructor(id",{"_index":2235,"title":{},"body":{"classes/BaseDO.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/ScopeRef.html":{}}}],["constructor(idmservice",{"_index":582,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["constructor(info",{"_index":1287,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["constructor(init",{"_index":3844,"title":{},"body":{"classes/Builder.html":{}}}],["constructor(inusermigration",{"_index":14961,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["constructor(jwtservice",{"_index":1521,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["constructor(jwtvalidationadapter",{"_index":13176,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["constructor(kcadmin",{"_index":13344,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["constructor(kcadminclient",{"_index":13262,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["constructor(kcadminservice",{"_index":13531,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["constructor(key",{"_index":7244,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["constructor(ldapconfig",{"_index":12372,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(lessonrepo",{"_index":14293,"title":{},"body":{"injectables/LessonService.html":{}}}],["constructor(loader",{"_index":1781,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["constructor(logger",{"_index":2940,"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":14535,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["constructor(logourl",{"_index":8820,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["constructor(logouturl",{"_index":13073,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["constructor(ltirepo",{"_index":11500,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["constructor(ltitoolrepo",{"_index":14759,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["constructor(ltitoolservice",{"_index":16069,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["constructor(message",{"_index":1628,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/ForbiddenOperationError.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/PreviewActionsLoggable.html":{},"classes/ValidationError.html":{}}}],["constructor(newsrepo",{"_index":15267,"title":{},"body":{"injectables/NewsUc.html":{}}}],["constructor(oauthconfig",{"_index":12349,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oauthconfigdto",{"_index":15757,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["constructor(oauthconfigresponse",{"_index":15786,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["constructor(oauthproviderloginflowservice",{"_index":12638,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["constructor(oauthproviderservice",{"_index":15899,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["constructor(oauthservice",{"_index":11426,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["constructor(officialschoolnumber",{"_index":18475,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["constructor(oidcconfig",{"_index":12416,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oidcconfigdto",{"_index":16365,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["constructor(oidcprovisioningservice",{"_index":16521,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["constructor(operation",{"_index":15111,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["constructor(operator",{"_index":18538,"title":{},"body":{"classes/Scope.html":{}}}],["constructor(options",{"_index":5153,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(organizationelements",{"_index":5325,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["constructor(parametertype",{"_index":16598,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["constructor(params",{"_index":13975,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["constructor(payload",{"_index":18795,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["constructor(previewgeneratorservice",{"_index":16703,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["constructor(private",{"_index":345,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"controllers/MetaTagExtractorController.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":{},"classes/UnknownQueryTypeLoggableException.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":181,"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":2291,"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":16915,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["constructor(pseudonym",{"_index":20376,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["constructor(pseudonymrepo",{"_index":17069,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["constructor(pseudonymservice",{"_index":17114,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["constructor(readonly",{"_index":1218,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(redirectreponse",{"_index":17387,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["constructor(relation",{"_index":11242,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["constructor(repo",{"_index":6865,"title":{},"body":{"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/FilesService.html":{}}}],["constructor(req",{"_index":17420,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(request",{"_index":9847,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["constructor(requesttimeout",{"_index":20330,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["constructor(res",{"_index":17440,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(resourceelements",{"_index":5353,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["constructor(resourcename",{"_index":15443,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["constructor(resp",{"_index":8085,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["constructor(response",{"_index":5998,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["constructor(responsemapper",{"_index":18053,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["constructor(rolerepo",{"_index":17643,"title":{},"body":{"injectables/RoleService.html":{}}}],["constructor(roleservice",{"_index":17660,"title":{},"body":{"injectables/RoleUc.html":{}}}],["constructor(rulemanager",{"_index":1801,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["constructor(schoolexternaltoolrepo",{"_index":18274,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["constructor(schoolexternaltoolservice",{"_index":18306,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["constructor(schoolid",{"_index":18479,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["constructor(schoolname",{"_index":18363,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["constructor(schoolrepo",{"_index":14082,"title":{},"body":{"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["constructor(schoolservice",{"_index":1896,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["constructor(schoolyearrepo",{"_index":18531,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["constructor(service",{"_index":4722,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["constructor(sharetokenservice",{"_index":18872,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["constructor(state",{"_index":16860,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["constructor(storageclient",{"_index":16739,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["constructor(strategy",{"_index":4557,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["constructor(submissionitemsresponse",{"_index":19332,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["constructor(submissionrepo",{"_index":19285,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["constructor(submissionservice",{"_index":19313,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["constructor(successful",{"_index":19341,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["constructor(system",{"_index":17148,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{}}}],["constructor(systemrepo",{"_index":13811,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["constructor(systemresponses",{"_index":17144,"title":{},"body":{"classes/PublicSystemListResponse.html":{}}}],["constructor(systemservice",{"_index":16935,"title":{},"body":{"injectables/ProvisioningService.html":{},"injectables/SystemUc.html":{}}}],["constructor(task",{"_index":12461,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["constructor(taskrepo",{"_index":19678,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["constructor(taskservice",{"_index":17802,"title":{},"body":{"injectables/RoomsService.html":{}}}],["constructor(teamsrepo",{"_index":20206,"title":{},"body":{"injectables/TeamService.html":{}}}],["constructor(timetowait",{"_index":3818,"title":{},"body":{"classes/BruteForceError.html":{}}}],["constructor(tokengenerator",{"_index":18840,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["constructor(toolfeatures",{"_index":8595,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{}}}],["constructor(toollaunchservice",{"_index":20690,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["constructor(toolpermissionhelper",{"_index":6122,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["constructor(toolreference",{"_index":20720,"title":{},"body":{"classes/ToolReference.html":{}}}],["constructor(toolreferenceresponse",{"_index":20758,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["constructor(total",{"_index":16588,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["constructor(type",{"_index":8455,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["constructor(undefined",{"_index":769,"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/MetaTagExtractorResponse.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(unknownquerytype",{"_index":20855,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["constructor(user",{"_index":11330,"title":{},"body":{"classes/GroupUserResponse.html":{},"classes/UserDto.html":{}}}],["constructor(userid",{"_index":10779,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["constructor(userloginmigrationid",{"_index":21111,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["constructor(userloginmigrationservice",{"_index":4512,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["constructor(usermatchschoolid",{"_index":18349,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["constructor(usermigrationdto",{"_index":14945,"title":{},"body":{"classes/MigrationDto.html":{}}}],["constructor(usermigrationservice",{"_index":21397,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["constructor(username",{"_index":20851,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["constructor(userrepo",{"_index":17403,"title":{},"body":{"injectables/ReferenceLoader.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["constructor(userservice",{"_index":9731,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["constructor(validationerrors",{"_index":1205,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["construed",{"_index":22850,"title":{},"body":{"license.html":{}}}],["consumer",{"_index":14581,"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":14589,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["consumer.module.ts",{"_index":16719,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["consumer.module.ts:13",{"_index":16722,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["contact",{"_index":22939,"title":{},"body":{"license.html":{}}}],["contain",{"_index":535,"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":5070,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["container",{"_index":2822,"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":3695,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["container.url.params.ts",{"_index":19076,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["container.url.params.ts:11",{"_index":19078,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["containing",{"_index":15716,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["contains",{"_index":5461,"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":2193,"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/SubmissionItemResponseMapper.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":8240,"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:100",{"_index":19065,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["content.body.params.ts:107",{"_index":8694,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["content.body.params.ts:116",{"_index":8737,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["content.body.params.ts:14",{"_index":8242,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["content.body.params.ts:150",{"_index":20860,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:20",{"_index":9874,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:24",{"_index":9873,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:33",{"_index":9937,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["content.body.params.ts:39",{"_index":14333,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:44",{"_index":14331,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:49",{"_index":14329,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:54",{"_index":14330,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:63",{"_index":14361,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["content.body.params.ts:69",{"_index":17537,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:73",{"_index":17536,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:82",{"_index":17560,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["content.body.params.ts:91",{"_index":19050,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["content.component",{"_index":5114,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.description",{"_index":5128,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.url",{"_index":5127,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.dto",{"_index":16558,"title":{},"body":{"injectables/PageContentMapper.html":{},"injectables/UserMigrationService.html":{}}}],["content.dto.ts",{"_index":16543,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:2",{"_index":16547,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:4",{"_index":16546,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.identifier",{"_index":5324,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.mapper.ts",{"_index":16554,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.mapper.ts:7",{"_index":16555,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.numberofdrafttasks",{"_index":8202,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.numberofplannedtasks",{"_index":8204,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.response.ts",{"_index":16576,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:12",{"_index":16577,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:7",{"_index":16581,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.title",{"_index":5113,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.title}${content.content.text",{"_index":5120,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content/:contentid/:file",{"_index":11397,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["content_developer",{"_index":7174,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdeveloper",{"_index":7175,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdisposition",{"_index":1293,"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":3535,"title":{"injectables/ContentElementFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["contentelementid",{"_index":5761,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"injectables/ElementUc.html":{}}}],["contentelementresponsefactory",{"_index":3711,"title":{"classes/ContentElementResponseFactory.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["contentelementresponsefactory.mapsubmissioncontenttoresponse(element",{"_index":3732,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["contentelementresponsefactory.maptoresponse(element",{"_index":4052,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ElementController.html":{}}}],["contentelementservice",{"_index":1850,"title":{"injectables/ContentElementService.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contentelementtype",{"_index":4101,"title":{},"body":{"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnUc.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":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.external_tool",{"_index":5629,"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":5621,"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":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.link",{"_index":5623,"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":5625,"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":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.submission_container",{"_index":5627,"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":5677,"title":{"injectables/ContentElementUpdateVisitor.html":{}},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["contentelementupdatevisitor(content",{"_index":5688,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["contentelementurlparams",{"_index":5758,"title":{"classes/ContentElementUrlParams.html":{}},"body":{"classes/ContentElementUrlParams.html":{},"controllers/ElementController.html":{}}}],["contentid",{"_index":1298,"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":6343,"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":6344,"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":10844,"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":10839,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["contents.controller",{"_index":10838,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.controller.ts",{"_index":10798,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.controller.ts:25",{"_index":10803,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.module.ts",{"_index":10834,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["contents.params",{"_index":10808,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.params.ts",{"_index":10862,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.params.ts:11",{"_index":10868,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.push(element",{"_index":14216,"title":{},"body":{"classes/LessonFactory.html":{}}}],["contents.uc",{"_index":10806,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.uc.ts",{"_index":10847,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:15",{"_index":10851,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:7",{"_index":10850,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents/controller/dto/fwu",{"_index":10861,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents/controller/fwu",{"_index":10797,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents/fwu",{"_index":10833,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents/interface/config.ts",{"_index":18008,"title":{},"body":{"interfaces/S3Config.html":{}}}],["contents/uc/fwu",{"_index":10846,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contenttype",{"_index":6342,"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":8863,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["contenttypedetector[imagesignature",{"_index":8903,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["context",{"_index":131,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BaseUc.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/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/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":20408,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["context(context",{"_index":4761,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["context.action",{"_index":3362,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["context.builder",{"_index":23811,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["context.builder.ts",{"_index":1614,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:11",{"_index":1622,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:17",{"_index":1620,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:5",{"_index":1618,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.contextid",{"_index":18926,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["context.controller.ts",{"_index":20466,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:122",{"_index":20481,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:146",{"_index":20489,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:44",{"_index":20472,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:70",{"_index":20476,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:89",{"_index":20485,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.getclass",{"_index":20339,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.gethandler",{"_index":20338,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.interface",{"_index":16906,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/Rule.html":{}}}],["context.interface.ts",{"_index":1608,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/ProviderOidcContext.html":{}}}],["context.params.ts",{"_index":5829,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:18",{"_index":5835,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:8",{"_index":5833,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.reponse",{"_index":2905,"title":{},"body":{"controllers/BoardController.html":{}}}],["context.reponse.ts",{"_index":2853,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:13",{"_index":2858,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:16",{"_index":2861,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:4",{"_index":2854,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.requiredpermissions",{"_index":3358,"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":5579,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["context.response.ts",{"_index":16382,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:12",{"_index":16389,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:15",{"_index":16390,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:19",{"_index":16392,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:6",{"_index":16387,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:9",{"_index":16388,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.switchtohttp().getrequest",{"_index":17471,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["context_external_tools",{"_index":5854,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextcanwrite",{"_index":14198,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextconfigurationenabled",{"_index":12576,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["contextdo",{"_index":20712,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool",{"_index":1837,"title":{"classes/ContextExternalTool.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":20475,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltool(contextexternaltooldto",{"_index":6147,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.contextref",{"_index":6180,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref.id",{"_index":1843,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltool.contextref.type",{"_index":1870,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool.displayname",{"_index":6034,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.id",{"_index":6032,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltool.schooltoolref",{"_index":6179,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.schooltoolref.schoolid",{"_index":6153,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.schooltoolref.schooltoolid",{"_index":6033,"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":6035,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltoolauthorizableservice",{"_index":5793,"title":{"injectables/ContextExternalToolAuthorizableService.html":{}},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse",{"_index":5799,"title":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20465,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplateresponse",{"_index":5801,"title":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolcontextparams",{"_index":5827,"title":{"classes/ContextExternalToolContextParams.html":{}},"body":{"classes/ContextExternalToolContextParams.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltooldto",{"_index":5982,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltooldto.schooltoolref.schoolid",{"_index":6146,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltooldto.schooltoolref.schooltoolid",{"_index":6144,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltoolentity",{"_index":5838,"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":5947,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltoolfactory",{"_index":5861,"title":{"classes/ContextExternalToolFactory.html":{}},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolfactory.define(contextexternaltool",{"_index":5870,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolid",{"_index":3232,"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":8724,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["contextexternaltoolidparams",{"_index":5871,"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":3529,"title":{"modules/ContextExternalToolModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["contextexternaltoolpostparams",{"_index":5887,"title":{"classes/ContextExternalToolPostParams.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolprops",{"_index":5770,"title":{"interfaces/ContextExternalToolProps.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["contextexternaltoolquery",{"_index":5914,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{}}}],["contextexternaltoolrepo",{"_index":5383,"title":{"injectables/ContextExternalToolRepo.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{}}}],["contextexternaltoolrequestmapper",{"_index":5975,"title":{"classes/ContextExternalToolRequestMapper.html":{}},"body":{"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolrequestmapper.mapcontextexternaltoolrequest(body",{"_index":20493,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse",{"_index":5996,"title":{"classes/ContextExternalToolResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper",{"_index":6017,"title":{"classes/ContextExternalToolResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(contextexternaltool",{"_index":20507,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(createdtool",{"_index":20495,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(tool",{"_index":20503,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(updatedtool",{"_index":20510,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponse(toolreference",{"_index":20746,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponses(toolreferences",{"_index":20749,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiunprocessableentityresponse()@apioperation({summary",{"_index":20488,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20470,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apioperation({summary",{"_index":20479,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolrule",{"_index":1698,"title":{"injectables/ContextExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/RuleManager.html":{}}}],["contextexternaltools",{"_index":6106,"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":9816,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltools.map",{"_index":20502,"title":{},"body":{"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolscope",{"_index":5916,"title":{"classes/ContextExternalToolScope.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["contextexternaltoolsearchlistresponse",{"_index":6086,"title":{"classes/ContextExternalToolSearchListResponse.html":{}},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse(mappedtools",{"_index":20504,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse})@apioperation({summary",{"_index":20484,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolservice",{"_index":5883,"title":{"injectables/ContextExternalToolService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/RecursiveDeleteVisitor.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":8605,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["contextexternaltoolsinuse.some",{"_index":8624,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["contextexternaltooltemplateinfo",{"_index":8603,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltooltype",{"_index":5843,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltooltype.board_element",{"_index":5973,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooltype.course",{"_index":5972,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooluc",{"_index":6114,"title":{"injectables/ContextExternalToolUc.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolvalidationservice",{"_index":5884,"title":{"injectables/ContextExternalToolValidationService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["contextid",{"_index":5830,"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":7373,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["contextreadwithtopiccreate",{"_index":14192,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextref",{"_index":5766,"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":9818,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextrefparams",{"_index":6192,"title":{"classes/ContextRefParams.html":{}},"body":{"classes/ContextRefParams.html":{},"controllers/ToolConfigurationController.html":{}}}],["contexttoolid",{"_index":6042,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["contexttype",{"_index":4803,"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":22688,"title":{},"body":{"license.html":{}}}],["continued",{"_index":22672,"title":{},"body":{"license.html":{}}}],["contractual",{"_index":22727,"title":{},"body":{"license.html":{}}}],["contradict",{"_index":22857,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contrast",{"_index":22381,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contributor",{"_index":22800,"title":{},"body":{"license.html":{}}}],["contributor's",{"_index":22802,"title":{},"body":{"license.html":{}}}],["control",{"_index":20569,"title":{},"body":{"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controlled",{"_index":22805,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controller",{"_index":259,"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/MetaTagExtractorController.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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.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":344,"title":{},"body":{"controllers/AccountController.html":{}}}],["controller('authentication",{"_index":14508,"title":{},"body":{"controllers/LoginController.html":{}}}],["controller('board",{"_index":3713,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["controller('boards",{"_index":2909,"title":{},"body":{"controllers/BoardController.html":{}}}],["controller('cards",{"_index":4026,"title":{},"body":{"controllers/CardController.html":{}}}],["controller('collaborative",{"_index":4656,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["controller('columns",{"_index":4970,"title":{},"body":{"controllers/ColumnController.html":{}}}],["controller('courses",{"_index":6693,"title":{},"body":{"controllers/CourseController.html":{}}}],["controller('dashboard",{"_index":7452,"title":{},"body":{"controllers/DashboardController.html":{}}}],["controller('elements",{"_index":8284,"title":{},"body":{"controllers/ElementController.html":{}}}],["controller('fwu",{"_index":10810,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["controller('groups",{"_index":11055,"title":{},"body":{"controllers/GroupController.html":{}}}],["controller('h5p",{"_index":11386,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["controller('lessons",{"_index":14158,"title":{},"body":{"controllers/LessonController.html":{}}}],["controller('management/database",{"_index":7917,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["controller('management/idm",{"_index":13656,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["controller('meta",{"_index":14841,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["controller('news",{"_index":15091,"title":{},"body":{"controllers/NewsController.html":{}}}],["controller('oauth2",{"_index":16014,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["controller('pseudonyms",{"_index":17018,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["controller('rooms",{"_index":17783,"title":{},"body":{"controllers/RoomsController.html":{}}}],["controller('school",{"_index":13961,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["controller('sharetoken",{"_index":18730,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["controller('sso",{"_index":16247,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["controller('submissions",{"_index":19093,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["controller('systems",{"_index":19384,"title":{},"body":{"controllers/SystemController.html":{}}}],["controller('tasks",{"_index":19655,"title":{},"body":{"controllers/TaskController.html":{}}}],["controller('team",{"_index":20158,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["controller('tools",{"_index":20428,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolLaunchController.html":{}}}],["controller('tools/context",{"_index":20492,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["controller('tools/external",{"_index":20541,"title":{},"body":{"controllers/ToolController.html":{}}}],["controller('tools/school",{"_index":20819,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["controller('tools/tool",{"_index":20743,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["controller('user",{"_index":20929,"title":{},"body":{"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["controller('user/import",{"_index":12799,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["controller('videoconference",{"_index":21945,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["controller('videoconference2",{"_index":21834,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["controller.ts",{"_index":23269,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["controller/account.controller",{"_index":229,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["controller/api",{"_index":23564,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["controller/collaborative",{"_index":4677,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["controller/course.controller",{"_index":13869,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/dashboard.controller",{"_index":13870,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/database",{"_index":14787,"title":{},"body":{"modules/ManagementModule.html":{}}}],["controller/dto",{"_index":785,"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":21451,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["controller/dto/password",{"_index":805,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["controller/dto/response/video",{"_index":22042,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["controller/dto/single",{"_index":17679,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["controller/dto/target",{"_index":19593,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["controller/dto/task",{"_index":20014,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["controller/dto/team",{"_index":4732,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["controller/fwu",{"_index":10837,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["controller/h5p",{"_index":11408,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["controller/import",{"_index":12938,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["controller/keycloak",{"_index":13326,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["controller/legacy",{"_index":13933,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["controller/news.controller",{"_index":15189,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/oauth",{"_index":15700,"title":{},"body":{"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{}}}],["controller/pseudonym.controller",{"_index":17005,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["controller/rooms.controller",{"_index":13871,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/server.controller",{"_index":18620,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["controller/share",{"_index":18944,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["controller/team",{"_index":15190,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/transformer/sanitize",{"_index":17532,"title":{},"body":{"classes/RichText.html":{}}}],["controller/user",{"_index":21121,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["controllers",{"_index":223,"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.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":13823,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["controllers/login.controller",{"_index":1320,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["convenient",{"_index":22475,"title":{},"body":{"license.html":{}}}],["convention",{"_index":23403,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["conventions",{"_index":23252,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["conversion",{"_index":594,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convert",{"_index":561,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["converted",{"_index":592,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convertedteamuserids",{"_index":15406,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter((userid",{"_index":15420,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter(boolean",{"_index":15413,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.includes(userid",{"_index":15416,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["converter/bson.converter",{"_index":11682,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["converterutil",{"_index":2138,"title":{"injectables/ConverterUtil.html":{}},"body":{"injectables/BBBService.html":{},"injectables/ConverterUtil.html":{},"modules/VideoConferenceModule.html":{}}}],["converts",{"_index":589,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["converttodatabasevalue",{"_index":19003,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttodatabasevalue(value",{"_index":19008,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue",{"_index":19004,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue(value",{"_index":19010,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["convey",{"_index":22463,"title":{},"body":{"license.html":{}}}],["conveyance",{"_index":22835,"title":{},"body":{"license.html":{}}}],["conveyed",{"_index":22683,"title":{},"body":{"license.html":{}}}],["conveying",{"_index":22470,"title":{},"body":{"license.html":{}}}],["conveys",{"_index":22726,"title":{},"body":{"license.html":{}}}],["cookie",{"_index":11542,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["cookie.parse(request.headers.cookie",{"_index":13172,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookie.startswith('oauth2",{"_index":11558,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["cookiedefaultoptions",{"_index":16284,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookieoptions",{"_index":16234,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookies",{"_index":11468,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{}}}],["cookies[name",{"_index":13173,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookiesdto",{"_index":6205,"title":{"classes/CookiesDto.html":{}},"body":{"classes/CookiesDto.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["cooperation",{"_index":22374,"title":{},"body":{"license.html":{}}}],["copied",{"_index":1390,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/LessonCopyApiParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/TaskCopyApiParams.html":{}}}],["copies",{"_index":17276,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"license.html":{}}}],["copies.push(childcopy",{"_index":17279,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy",{"_index":2418,"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":17205,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy(params",{"_index":3260,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy(paths",{"_index":17910,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copy(userid",{"_index":10156,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["copy.id",{"_index":17252,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.interface",{"_index":3267,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.interface.ts",{"_index":18489,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.interface.ts:18",{"_index":18492,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.params",{"_index":6468,"title":{},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{}}}],["copy.params.ts",{"_index":14163,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:14",{"_index":14164,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:22",{"_index":19674,"title":{},"body":{"classes/TaskCopyApiParams.html":{}}}],["copy.service",{"_index":2978,"title":{},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/CourseCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["copy.service.ts",{"_index":2931,"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":2957,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:120",{"_index":2960,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:128",{"_index":2955,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:14",{"_index":3262,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.service.ts:143",{"_index":2964,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:15",{"_index":6715,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.service.ts:16",{"_index":4769,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copy.service.ts:164",{"_index":2970,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:177",{"_index":2967,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:18",{"_index":19679,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:25",{"_index":4771,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:36",{"_index":2946,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:42",{"_index":19684,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:46",{"_index":2949,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:56",{"_index":6719,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:63",{"_index":19689,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:70",{"_index":19687,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:72",{"_index":6724,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:78",{"_index":2952,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["copy.service.ts:9",{"_index":18502,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.uc",{"_index":17779,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/TaskController.html":{}}}],["copy.uc.ts",{"_index":6764,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:10",{"_index":6767,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:102",{"_index":19731,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:11",{"_index":19716,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:112",{"_index":19721,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:12",{"_index":14169,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:16",{"_index":6770,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:21",{"_index":14177,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:27",{"_index":6768,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:55",{"_index":14174,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:61",{"_index":19723,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:63",{"_index":14171,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:68",{"_index":14172,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:69",{"_index":19718,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:74",{"_index":19720,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:81",{"_index":19726,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:92",{"_index":19729,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.visitor",{"_index":3265,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.visitor.ts",{"_index":17196,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:126",{"_index":17224,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:146",{"_index":17226,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:165",{"_index":17228,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:183",{"_index":17230,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:192",{"_index":17220,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:21",{"_index":17204,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:210",{"_index":17214,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:214",{"_index":17210,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:227",{"_index":17208,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:23",{"_index":17203,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:27",{"_index":17206,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:38",{"_index":17218,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:59",{"_index":17216,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:77",{"_index":17212,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:96",{"_index":17222,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy_files_of_parent",{"_index":11932,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["copyapiresponse",{"_index":6215,"title":{"classes/CopyApiResponse.html":{}},"body":{"classes/CopyApiResponse.html":{},"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copyapiresponse})@apiresponse({status",{"_index":18714,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["copyboard",{"_index":2932,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboard(params",{"_index":2947,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements",{"_index":2933,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements(boardelements",{"_index":2950,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard",{"_index":2934,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["copycolumnboard(columnboardtarget",{"_index":2954,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard(props",{"_index":4770,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copycourse",{"_index":6709,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourse(currentuser",{"_index":17763,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copycourse(undefined",{"_index":6716,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourse(userid",{"_index":6769,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourseentity",{"_index":6710,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourseentity(params",{"_index":6717,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copydict",{"_index":3047,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copydictionary",{"_index":6420,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copyelementtype",{"_index":2979,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.board",{"_index":2993,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.card",{"_index":17244,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.column",{"_index":17242,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.columnboard",{"_index":17239,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.content",{"_index":19705,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.course",{"_index":6761,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.coursegroup_group",{"_index":6758,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.external_tool_element",{"_index":17268,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file",{"_index":6398,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_element",{"_index":17258,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_group",{"_index":6403,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.lesson",{"_index":3053,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.link_element",{"_index":17261,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.ltitool_group",{"_index":6753,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.metadata",{"_index":6751,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.richtext_element",{"_index":17264,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_container_element",{"_index":17266,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_group",{"_index":19706,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.submission_item",{"_index":17267,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.task",{"_index":19708,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.time_group",{"_index":6754,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.user_group",{"_index":6752,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyentity",{"_index":2995,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyentity.course?.id",{"_index":6480,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyentity.id",{"_index":6478,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyfiledto",{"_index":6235,"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":17255,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.name",{"_index":17256,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.sourceid",{"_index":17257,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfilelistresponse",{"_index":6248,"title":{"classes/CopyFileListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse.map((response",{"_index":10554,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["copyfileparams",{"_index":6287,"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":6251,"title":{"classes/CopyFileResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["copyfileresponsebuilder",{"_index":6324,"title":{"classes/CopyFileResponseBuilder.html":{}},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["copyfiles",{"_index":6329,"title":{"interfaces/CopyFiles.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["copyfilesofentity",{"_index":6361,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofentity(originalentity",{"_index":6367,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparent",{"_index":10512,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(param",{"_index":10518,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["copyfilesofparent(params",{"_index":18490,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(payload",{"_index":10583,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:finished",{"_index":10719,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:started",{"_index":10717,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparentparambuilder",{"_index":6345,"title":{"classes/CopyFilesOfParentParamBuilder.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparambuilder.build(userid",{"_index":6384,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparams",{"_index":6309,"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":6310,"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":6358,"title":{"injectables/CopyFilesService.html":{}},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["copyhelpermodule",{"_index":6405,"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":2945,"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":6899,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"license.html":{}}}],["copyingsince",{"_index":6537,"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":22370,"title":{},"body":{"license.html":{}}}],["copylesson",{"_index":2935,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copylesson(currentuser",{"_index":17766,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copylesson(originallesson",{"_index":2956,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copylesson(userid",{"_index":14175,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copymap",{"_index":17197,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copymapper",{"_index":6453,"title":{"classes/CopyMapper.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maplessoncopytodomain(params",{"_index":17798,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copymapper.maptaskcopytodomain(params",{"_index":19671,"title":{},"body":{"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(copystatus",{"_index":17795,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(element",{"_index":6484,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyname",{"_index":6726,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copyobjectcommand",{"_index":17925,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyobjectcommandoutput",{"_index":17926,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths",{"_index":17961,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths.map((p",{"_index":17971,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyprops",{"_index":1605,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["copyrequest",{"_index":17965,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyrequests",{"_index":17975,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyright",{"_index":22360,"title":{},"body":{"license.html":{}}}],["copyrightable",{"_index":22437,"title":{},"body":{"license.html":{}}}],["copyrighted",{"_index":22530,"title":{},"body":{"license.html":{}}}],["copyrightowners",{"_index":5084,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["copysource",{"_index":17977,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copystatus",{"_index":2963,"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":6476,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.copyentity.context",{"_index":4790,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copystatus.elements",{"_index":6481,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.status",{"_index":6475,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.title",{"_index":6473,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.type",{"_index":6474,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatusenum",{"_index":2980,"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":3003,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copystatusenum.not_doing",{"_index":6434,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.not_implemented",{"_index":6759,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copystatusenum.partial",{"_index":6428,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copystatusenum.success",{"_index":6399,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copytask",{"_index":2936,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copytask(currentuser",{"_index":19628,"title":{},"body":{"controllers/TaskController.html":{}}}],["copytask(originaltask",{"_index":2959,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copytask(params",{"_index":19680,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytask(userid",{"_index":18884,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copytaskentity",{"_index":19676,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytaskentity(params",{"_index":19682,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["core",{"_index":6497,"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":23607,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["core/error",{"_index":23365,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["core/logger/logger.module",{"_index":231,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["coremodule",{"_index":6489,"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":4644,"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":22901,"title":{},"body":{"license.html":{}}}],["correctly",{"_index":23396,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["correctness",{"_index":23151,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["corresponding",{"_index":14539,"title":{},"body":{"classes/LoginResponse-1.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["cors",{"_index":22205,"title":{},"body":{"dependencies.html":{}}}],["cost",{"_index":22620,"title":{},"body":{"license.html":{}}}],["count",{"_index":5948,"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":12978,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["countednewslist",{"_index":15211,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["countedtasklist",{"_index":19885,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["counterclaim",{"_index":22792,"title":{},"body":{"license.html":{}}}],["counties",{"_index":6524,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countpipeline",{"_index":21628,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countpipeline.push",{"_index":21629,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countries",{"_index":22460,"title":{},"body":{"license.html":{}}}],["country",{"_index":22828,"title":{},"body":{"license.html":{}}}],["counts",{"_index":6897,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["county",{"_index":6512,"title":{"classes/County.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.antareskey",{"_index":6529,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.countyid",{"_index":6527,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.name",{"_index":6525,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countyid",{"_index":6516,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["coupling",{"_index":23247,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["course",{"_index":1864,"title":{"entities/Course.html":{}},"body":{"injectables/AutoContextNameStrategy.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":5087,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.description",{"_index":23780,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.entity",{"_index":2621,"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":6629,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.substitutionteachers",{"_index":6633,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.teachers",{"_index":6630,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractuserlist(users",{"_index":6641,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.factory",{"_index":6838,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["course.getmetadata",{"_index":6881,"title":{},"body":{"classes/CourseMapper.html":{}}}],["course.getstudentslist().map((user",{"_index":3118,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getsubstitutionteacherslist().map((user",{"_index":3116,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getteacherslist().map((user",{"_index":3111,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.id",{"_index":9775,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.name",{"_index":1879,"title":{},"body":{"injectables/AutoContextNameStrategy.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":7034,"title":{},"body":{"injectables/CourseService.html":{}}}],["course.rule",{"_index":6857,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["course.school",{"_index":23778,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.school.id",{"_index":4784,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["course.service",{"_index":5080,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.students.contains(user",{"_index":17748,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.students.length",{"_index":9776,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.students.loaditems",{"_index":9782,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.substitutionteachers.contains(user",{"_index":17746,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.substitutionteachers.loaditems",{"_index":9784,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.teachers",{"_index":5129,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.teachers.contains(user",{"_index":17747,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.teachers.loaditems",{"_index":9783,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursecolumnboardtargets",{"_index":17812,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursecontroller",{"_index":6670,"title":{"controllers/CourseController.html":{}},"body":{"controllers/CourseController.html":{},"modules/LearnroomApiModule.html":{}}}],["coursecopy",{"_index":6721,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.copyingsince",{"_index":6749,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.name",{"_index":6760,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyparams",{"_index":6718,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyservice",{"_index":6707,"title":{"injectables/CourseCopyService.html":{}},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenUC.html":{}}}],["coursecopyuc",{"_index":6762,"title":{"injectables/CourseCopyUC.html":{}},"body":{"injectables/CourseCopyUC.html":{},"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["courseexportservice",{"_index":6783,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["courseexportuc",{"_index":6686,"title":{"injectables/CourseExportUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomApiModule.html":{}}}],["coursefactory",{"_index":6790,"title":{"classes/CourseFactory.html":{}},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.build",{"_index":6840,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.define(course",{"_index":6811,"title":{},"body":{"classes/CourseFactory.html":{}}}],["coursefeatures",{"_index":6557,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["coursegroup",{"_index":6585,"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":14237,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["coursegroup.entity",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{},"classes/UsersList.html":{}}}],["coursegroup.removestudent(userid",{"_index":6873,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupfactory",{"_index":6835,"title":{"classes/CourseGroupFactory.html":{}},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupfactory.define(coursegroup",{"_index":6839,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupid",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["coursegroupmemberids",{"_index":12307,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["coursegrouppermission",{"_index":14249,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouppermission(user",{"_index":14255,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouprepo",{"_index":1740,"title":{"injectables/CourseGroupRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["coursegrouprule",{"_index":1699,"title":{"injectables/CourseGroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{}}}],["coursegroups",{"_index":6538,"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":6872,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupservice",{"_index":6861,"title":{"injectables/CourseGroupService.html":{}},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupsexist",{"_index":6755,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursegroupsofuser",{"_index":19248,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["courseid",{"_index":1858,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":6845,"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":17809,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursemapper",{"_index":6690,"title":{"classes/CourseMapper.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMapper.html":{}}}],["coursemapper.maptometadataresponse(course",{"_index":6697,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadata",{"_index":6880,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.copyingsince",{"_index":6888,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.displaycolor",{"_index":6885,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.id",{"_index":6882,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.shorttitle",{"_index":6884,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.startdate",{"_index":6886,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.title",{"_index":6883,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.untildate",{"_index":6887,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadatalistresponse",{"_index":6689,"title":{"classes/CourseMetadataListResponse.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursemetadatalistresponse(courseresponses",{"_index":6698,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadataresponse",{"_index":6879,"title":{"classes/CourseMetadataResponse.html":{}},"body":{"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursename",{"_index":1886,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":6911,"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":6944,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["coursepermission",{"_index":14250,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursepermission(user",{"_index":14257,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursequeryparams",{"_index":6675,"title":{"classes/CourseQueryParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseQueryParams.html":{}}}],["coursereference",{"_index":4825,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/RoomsService.html":{}}}],["courserepo",{"_index":1741,"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":6695,"title":{},"body":{"controllers/CourseController.html":{}}}],["courserule",{"_index":1700,"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":4778,"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":20053,"title":{},"body":{"injectables/TaskUC.html":{}}}],["courses.foreach((course",{"_index":7033,"title":{},"body":{"injectables/CourseService.html":{}}}],["courses.map((course",{"_index":6696,"title":{},"body":{"controllers/CourseController.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["courses.map(async",{"_index":9808,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursescope",{"_index":6980,"title":{"classes/CourseScope.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["courseservice",{"_index":1849,"title":{"injectables/CourseService.html":{}},"body":{"injectables/AutoContextNameStrategy.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":6742,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursetasks",{"_index":17811,"title":{},"body":{"injectables/RoomsService.html":{}}}],["courseuc",{"_index":6684,"title":{"injectables/CourseUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"modules/LearnroomApiModule.html":{}}}],["courseurlparams",{"_index":6674,"title":{"classes/CourseUrlParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseUrlParams.html":{}}}],["coursevalue",{"_index":1872,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["court",{"_index":22856,"title":{},"body":{"license.html":{}}}],["courts",{"_index":22921,"title":{},"body":{"license.html":{}}}],["covenant",{"_index":22818,"title":{},"body":{"license.html":{}}}],["cover",{"_index":23399,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["coverage",{"_index":930,"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":22447,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["cp",{"_index":23662,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cr",{"_index":13431,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["create",{"_index":685,"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":{},"controllers/BoardSubmissionController.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":15092,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["create(config",{"_index":2141,"title":{},"body":{"injectables/BBBService.html":{}}}],["create(context",{"_index":4819,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["create(currentuser",{"_index":15068,"title":{},"body":{"controllers/NewsController.html":{}}}],["create(currentuserid",{"_index":21880,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create(data",{"_index":9824,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["create(entity",{"_index":711,"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":4099,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["create(path",{"_index":17912,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["create(userid",{"_index":15269,"title":{},"body":{"injectables/NewsUc.html":{},"injectables/SubmissionItemService.html":{}}}],["create.config.ts",{"_index":1955,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:23",{"_index":1974,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:25",{"_index":1968,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:27",{"_index":1972,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:29",{"_index":1970,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:31",{"_index":1975,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:33",{"_index":1969,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:35",{"_index":1973,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:37",{"_index":1967,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:39",{"_index":1971,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:9",{"_index":1966,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.params.ts",{"_index":8697,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:14",{"_index":21857,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:16",{"_index":19758,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:17",{"_index":8705,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:19",{"_index":21865,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:21",{"_index":14607,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:22",{"_index":8708,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:25",{"_index":15649,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{}}}],["create.params.ts:26",{"_index":14606,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:27",{"_index":8704,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:30",{"_index":14603,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:33",{"_index":19763,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:34",{"_index":14605,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:35",{"_index":15648,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:38",{"_index":14601,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:39",{"_index":15647,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:41",{"_index":19760,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:43",{"_index":15651,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:48",{"_index":8702,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:49",{"_index":19756,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:55",{"_index":8707,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:57",{"_index":19762,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:59",{"_index":8703,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:63",{"_index":8706,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:9",{"_index":21856,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.response.ts",{"_index":2042,"title":{},"body":{"interfaces/BBBCreateResponse.html":{}}}],["create.uc.ts",{"_index":21872,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:19",{"_index":21879,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:26",{"_index":21883,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:40",{"_index":21881,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:67",{"_index":21886,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:88",{"_index":21890,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:92",{"_index":21888,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create_tokens_for_users=true",{"_index":23685,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["createaccount",{"_index":12691,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createaccount(account",{"_index":12700,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createandjoin",{"_index":21931,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandjoin(currentuser",{"_index":21932,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandstartprometheusmetricsappifenabled",{"_index":16886,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createapiresponsetimemetricmiddleware",{"_index":16864,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["createauthenticationcodegranttokenrequestpayload",{"_index":20363,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createauthenticationcodegranttokenrequestpayload(clientid",{"_index":20365,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createboard",{"_index":3441,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboard(courseid",{"_index":3447,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboardelementfor(boardelementtarget",{"_index":2683,"title":{},"body":{"entities/Board.html":{}}}],["createboardforcourse",{"_index":3621,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createboardforcourse(courseid",{"_index":3625,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createbucket",{"_index":17902,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createbucketcommand",{"_index":17927,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createcard",{"_index":4946,"title":{},"body":{"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["createcard(urlparams",{"_index":4949,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcard(userid",{"_index":5019,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["createcardbodyparams",{"_index":4951,"title":{"classes/CreateCardBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["createcardbodyparams})@post(':columnid/cards",{"_index":4955,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcards",{"_index":3467,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcards(amount",{"_index":3475,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createclient",{"_index":8008,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["createclient(storageprovider",{"_index":8016,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["createcollection",{"_index":7936,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcollection(collectionname",{"_index":7946,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcolumn",{"_index":2864,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["createcolumn(urlparams",{"_index":2869,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumn(userid",{"_index":3781,"title":{},"body":{"injectables/BoardUc.html":{}}}],["createcolumns",{"_index":3468,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcolumns(amount",{"_index":3477,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createconfigmoduleoptions",{"_index":10676,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["createcontentelementbodyparams",{"_index":3686,"title":{"classes/CreateContentElementBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CreateContentElementBodyParams.html":{}}}],["createcontextexternaltool",{"_index":6117,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(currentuser",{"_index":20468,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(userid",{"_index":6126,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["createcourse",{"_index":6962,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["createcourse(course",{"_index":6966,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["createcourse(userid",{"_index":23782,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["created",{"_index":2306,"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":21824,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["created.id",{"_index":2309,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["createdaccountid",{"_index":13690,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdaccountid.id",{"_index":13692,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdat",{"_index":376,"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":11790,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createdate",{"_index":2043,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createddate",{"_index":549,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createdir",{"_index":10362,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdir(folderpath",{"_index":10371,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdmodel",{"_index":7767,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["createdschoolexternaltool",{"_index":18297,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["createdschoolexternaltooldo",{"_index":20834,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createdto",{"_index":8218,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createdto(undefined",{"_index":17666,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["createdtool",{"_index":6150,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createelement",{"_index":3681,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["createelement(urlparams",{"_index":3684,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{}}}],["createelement(userid",{"_index":4157,"title":{},"body":{"injectables/CardUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["createelements",{"_index":3469,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createelements(amount",{"_index":3479,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createemptyelements",{"_index":4095,"title":{},"body":{"injectables/CardService.html":{}}}],["createemptyelements(card",{"_index":4103,"title":{},"body":{"injectables/CardService.html":{}}}],["createentity",{"_index":2239,"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":2254,"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":10885,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorloggable(error",{"_index":10896,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse",{"_index":10886,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse(error",{"_index":10898,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror",{"_index":10887,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror(error",{"_index":10900,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror",{"_index":10888,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror(error",{"_index":10902,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception",{"_index":10889,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception(exception",{"_index":10904,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforunknownerror",{"_index":10890,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createetherpad",{"_index":8481,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createetherpad(userid",{"_index":8485,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createexternaltool",{"_index":9357,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["createexternaltool(currentuser",{"_index":20514,"title":{},"body":{"controllers/ToolController.html":{}}}],["createexternaltool(externaltool",{"_index":9372,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["createexternaltool(userid",{"_index":9477,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["createfile",{"_index":20316,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileresponse",{"_index":20317,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileurlreplacements",{"_index":6362,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createfileurlreplacements(filedtos",{"_index":6369,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createflowrequest",{"_index":13409,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["creategridelement",{"_index":7712,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategridelement(elementwithposition",{"_index":7723,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategroup(name",{"_index":1052,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createhttpexceptionoptions",{"_index":8462,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createhttpexceptionoptions(error",{"_index":8466,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createidentifier",{"_index":5081,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["createidentifier(content._id",{"_index":5110,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(courseid",{"_index":5083,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lesson.id",{"_index":5096,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lessonid)}/${createidentifier(content._id)}.html",{"_index":5112,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(task.id",{"_index":5138,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentityprovider",{"_index":13336,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidentityprovider(oidcconfig",{"_index":13355,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper",{"_index":13337,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper(idpalias",{"_index":13358,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidtoken",{"_index":12636,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createidtoken(userid",{"_index":12643,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createifnotrunning",{"_index":21873,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createifnotrunning(currentuserid",{"_index":21882,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createiframesubject",{"_index":12637,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createiframesubject(user",{"_index":12645,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createinstance(targetmodel",{"_index":6942,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["createjwt",{"_index":13195,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["createjwt(params",{"_index":7076,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtparams",{"_index":7057,"title":{"interfaces/CreateJwtParams.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtpayload",{"_index":1527,"title":{"interfaces/CreateJwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/JwtPayload.html":{},"injectables/LoginUc.html":{}}}],["createlaunchdata",{"_index":2539,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchdata(userid",{"_index":2573,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest",{"_index":2540,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdata",{"_index":2575,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdatado",{"_index":12591,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["createlesson",{"_index":14225,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(lesson",{"_index":14227,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(userid",{"_index":23786,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createlogmessageforvalidationerrors",{"_index":8358,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createlogmessageforvalidationerrors(error",{"_index":8365,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createmessage",{"_index":13885,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessage(message",{"_index":13889,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessagewithcontext",{"_index":14470,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmessagewithcontext(loggable",{"_index":14473,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmikroormmodule",{"_index":15012,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["createmock",{"_index":20298,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["createnewaccount",{"_index":16461,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["createnewentityfromdo",{"_index":2240,"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":2257,"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":21337,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewmigration(school",{"_index":21345,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewsparams",{"_index":7098,"title":{"classes/CreateNewsParams.html":{}},"body":{"classes/CreateNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["createnexboard",{"_index":15336,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createnexboard(userid",{"_index":15338,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createoauth2client",{"_index":15894,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["createoauth2client(currentuser",{"_index":15901,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["createoauth2client(data",{"_index":16163,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["createorupdate",{"_index":9017,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdate(domainobject",{"_index":9026,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdateboardnode",{"_index":17323,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateboardnode(boardnode",{"_index":17328,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateidmaccount",{"_index":13665,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdateidmaccount(account",{"_index":13667,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createpath",{"_index":16675,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpath(schoolid",{"_index":16679,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewdirectorypath",{"_index":16794,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewdirectorypath(filerecord.getschoolid",{"_index":16801,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewfilepath",{"_index":16676,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewfilepath(schoolid",{"_index":16682,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash",{"_index":16677,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash(id",{"_index":16681,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createprometheusmetricsapp",{"_index":16865,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createprometheusmetricsapp(route",{"_index":16894,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createqueryordermap",{"_index":20980,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createqueryordermap(sort",{"_index":20982,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createredisidentifierfromjwtdata",{"_index":13217,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createredisidentifierfromjwtdata(accountid",{"_index":13223,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createrequest",{"_index":10699,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrequest(event",{"_index":10709,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrichtextelement",{"_index":4814,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createrichtextelement(text",{"_index":4821,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creates",{"_index":2143,"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":18003,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["creates3clientadapter(config",{"_index":18007,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["createschoolbysuperhero(userid",{"_index":23767,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createschoolexternaltool",{"_index":18302,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(currentuser",{"_index":20801,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(userid",{"_index":18308,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["createsharetoken",{"_index":18702,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["createsharetoken(currentuser",{"_index":18705,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["createsharetoken(userid",{"_index":18886,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["createstudentstatusforuser(user",{"_index":12546,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createsubmissionitem",{"_index":8262,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["createsubmissionitem(urlparams",{"_index":8265,"title":{},"body":{"controllers/ElementController.html":{}}}],["createsubmissionitem(userid",{"_index":8303,"title":{},"body":{"injectables/ElementUc.html":{}}}],["createsubmissionitembodyparams",{"_index":7121,"title":{"classes/CreateSubmissionItemBodyParams.html":{}},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{}}}],["createsubmissionitembodyparams})@post(':contentelementid/submissions",{"_index":8268,"title":{},"body":{"controllers/ElementController.html":{}}}],["createtask",{"_index":19823,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtask(task",{"_index":19828,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtaskstatus",{"_index":8128,"title":{},"body":{"classes/DtoCreator.html":{}}}],["createtaskstatus(task",{"_index":8145,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createteacherstatusforuser(user",{"_index":12537,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createteam",{"_index":4552,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createteam(team",{"_index":4561,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createtestingmodule",{"_index":23510,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["createtime",{"_index":2044,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createtmpdir",{"_index":10363,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtmpdir(dirnameprefix",{"_index":10375,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtoken",{"_index":18837,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createtoken(payload",{"_index":18845,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createuser(email",{"_index":1058,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createuserbyadmin(userid",{"_index":23770,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createusermigrationdto",{"_index":21497,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusermigrationdto(urlpath",{"_index":21501,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusersearchindex",{"_index":11799,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createusertoken(userid",{"_index":1022,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createwelcomecolumnboard",{"_index":4815,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createwelcomecolumnboard(coursereference",{"_index":4823,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creating",{"_index":7101,"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":3464,"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":5086,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["creator",{"_index":6921,"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":9968,"title":{},"body":{"entities/FileEntity.html":{}}}],["creatorid",{"_index":6283,"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":13597,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["credentialdata",{"_index":13684,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["credentialhash",{"_index":158,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{}}}],["credentials",{"_index":8064,"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":8409,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["crit(loggable",{"_index":8415,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["criteria",{"_index":314,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["criterion",{"_index":22483,"title":{},"body":{"license.html":{}}}],["cross",{"_index":6499,"title":{},"body":{"modules/CoreModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["crossing",{"_index":23329,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["crud",{"_index":2345,"title":{},"body":{"classes/BaseDomainObject.html":{},"controllers/CollaborativeStorageController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["crud.uc",{"_index":16011,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crud.uc.ts",{"_index":15892,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:15",{"_index":15912,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:22",{"_index":15908,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:41",{"_index":15906,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:50",{"_index":15902,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:59",{"_index":15910,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:72",{"_index":15904,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:9",{"_index":15900,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crudoperation",{"_index":15112,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["cruduc",{"_index":16018,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crypto",{"_index":1546,"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":2220,"title":{},"body":{"injectables/BBBService.html":{}}}],["crypto.generatekeypairsync('rsa",{"_index":7066,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["cryptojs",{"_index":14577,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(data",{"_index":19352,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(value",{"_index":19020,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.aes.encrypt(data",{"_index":19351,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.encrypt(value",{"_index":19017,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.hmacsha1(base_string",{"_index":14587,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["cryptojs.sha256(saveduser.id",{"_index":16476,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["ctl",{"_index":9716,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["ctltoolstabenabled",{"_index":12577,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["cumbersome",{"_index":2361,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["cure",{"_index":22754,"title":{},"body":{"license.html":{}}}],["curl",{"_index":13653,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currenlty",{"_index":17754,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["current",{"_index":4648,"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":18526,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["currentdatetime",{"_index":11703,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["currentldapid",{"_index":13143,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["currently",{"_index":569,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BaseRepo.html":{},"modules/BoardModule.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currentredirect",{"_index":11466,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{}}}],["currentrooms",{"_index":7587,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentrooms.foreach((room",{"_index":7589,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentteacher",{"_index":5135,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["currentuser",{"_index":294,"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/MetaTagExtractorController.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":7154,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.impersonated",{"_index":7158,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.isexternaluser",{"_index":7159,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.roles",{"_index":7156,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.schoolid",{"_index":7155,"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":7157,"title":{},"body":{"classes/CurrentUserMapper.html":{},"controllers/OauthSSOController.html":{}}}],["currentuser.userid",{"_index":3717,"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":4701,"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":7129,"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":13193,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["currentusermapper.mapcurrentusertocreatejwtpayload(userinfo",{"_index":14567,"title":{},"body":{"injectables/LoginUc.html":{}}}],["currentusermapper.maptooauthcurrentuser",{"_index":15634,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["currentusermapper.maptooauthcurrentuser(account.id",{"_index":21706,"title":{},"body":{"injectables/UserService.html":{}}}],["currentusermapper.usertoicurrentuser(account.id",{"_index":13836,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["currentyear",{"_index":12218,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["custom",{"_index":1237,"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":23362,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["customarily",{"_index":22612,"title":{},"body":{"license.html":{}}}],["customary",{"_index":22871,"title":{},"body":{"license.html":{}}}],["customer",{"_index":22617,"title":{},"body":{"license.html":{}}}],["customfields",{"_index":975,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["customizations",{"_index":18661,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["customizing",{"_index":6502,"title":{},"body":{"modules/CoreModule.html":{}}}],["customkey",{"_index":19007,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["customltiproperty",{"_index":7168,"title":{"interfaces/CustomLtiProperty.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["customltipropertydo",{"_index":7242,"title":{"classes/CustomLtiPropertyDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["customltipropertydo('key",{"_index":14696,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["customparam",{"_index":7383,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter",{"_index":2554,"title":{"classes/CustomParameter.html":{}},"body":{"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":8998,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regex",{"_index":8994,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regexcomment",{"_index":8995,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.scope",{"_index":8996,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some",{"_index":8986,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some((item",{"_index":8984,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameterdo.default",{"_index":9330,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.description",{"_index":9329,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.displayname",{"_index":9328,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.isoptional",{"_index":9336,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.name",{"_index":9327,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regex",{"_index":9331,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regexcomment",{"_index":9332,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdos",{"_index":2553,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["customparameterdto",{"_index":9212,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterentity",{"_index":7299,"title":{"classes/CustomParameterEntity.html":{}},"body":{"classes/CustomParameterEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["customparameterentityfactory",{"_index":8795,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentityfactory.build",{"_index":8802,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentry",{"_index":2580,"title":{"classes/CustomParameterEntry.html":{}},"body":{"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":5846,"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":5895,"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":6004,"title":{"classes/CustomParameterEntryResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterfactory",{"_index":7330,"title":{"classes/CustomParameterFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.buildlist(number",{"_index":7384,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.define(customparameter",{"_index":7374,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterlocation",{"_index":2559,"title":{},"body":{"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":7376,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.path",{"_index":8798,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.query",{"_index":9243,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocationparams",{"_index":7402,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.body",{"_index":9244,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.path",{"_index":9241,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.query",{"_index":9242,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterparam",{"_index":6038,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparam.defaultvalue",{"_index":9279,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.description",{"_index":9278,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.displayname",{"_index":9277,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.isoptional",{"_index":9285,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.name",{"_index":5994,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparam.regex",{"_index":9280,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.regexcomment",{"_index":9281,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.value",{"_index":5995,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams",{"_index":5985,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams.map",{"_index":6037,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparams.map((customparameterparam",{"_index":5993,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterpostparams",{"_index":7392,"title":{"classes/CustomParameterPostParams.html":{}},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["customparameterresponse",{"_index":5813,"title":{"classes/CustomParameterResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["customparameters",{"_index":9123,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameters.map",{"_index":9181,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["customparameters.map((customparameterdo",{"_index":9326,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscope",{"_index":5449,"title":{},"body":{"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":5469,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.global",{"_index":7371,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.school",{"_index":5467,"title":{},"body":{"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":7408,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.context",{"_index":9239,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.global",{"_index":9237,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.school",{"_index":9238,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype",{"_index":1865,"title":{},"body":{"injectables/AutoContextNameStrategy.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":5443,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_contextname",{"_index":5444,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_contextname}/${contextexternaltool.contextref.type",{"_index":1877,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["customparametertype.auto_schoolid",{"_index":5445,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_schoolnumber",{"_index":5446,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.boolean",{"_index":5442,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.number",{"_index":5440,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.string",{"_index":5439,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparametertypeparams",{"_index":7411,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextid",{"_index":9249,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextname",{"_index":9250,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolid",{"_index":9251,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolnumber",{"_index":9252,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.boolean",{"_index":9247,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.number",{"_index":9248,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.string",{"_index":9246,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customproviderclass.name",{"_index":13900,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["customs",{"_index":7190,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["customtoparameterlocationmapping",{"_index":20615,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["customtoparameterlocationmapping[location",{"_index":20624,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["cycle",{"_index":3545,"title":{},"body":{"modules/BoardModule.html":{}}}],["cycles",{"_index":1543,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["d",{"_index":6442,"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":22904,"title":{},"body":{"license.html":{}}}],["das",{"_index":4858,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["dash",{"_index":22335,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dashboard",{"_index":7433,"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":7852,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.getid",{"_index":7687,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboard.getuserid",{"_index":7854,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.model.mapper",{"_index":7809,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboard.moveelement(from",{"_index":7851,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.setlearnrooms(courses",{"_index":7847,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard_repo",{"_index":13875,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardcontroller",{"_index":7431,"title":{"controllers/DashboardController.html":{}},"body":{"controllers/DashboardController.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardelement",{"_index":7631,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardentity",{"_index":7465,"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":7760,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["dashboardentity(new",{"_index":7812,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardgridelementmodel",{"_index":7618,"title":{"entities/DashboardGridElementModel.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementmodelproperties",{"_index":7629,"title":{"interfaces/DashboardGridElementModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementresponse",{"_index":7650,"title":{"classes/DashboardGridElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse",{"_index":7658,"title":{"classes/DashboardGridSubElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse(metadata",{"_index":7706,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardid",{"_index":7456,"title":{},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{}}}],["dashboardmapper",{"_index":7446,"title":{"classes/DashboardMapper.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{}}}],["dashboardmapper.mapgridelement(elementwithposition",{"_index":7689,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maplearnroom(groupmetadata",{"_index":7705,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maptoresponse(dashboard",{"_index":7455,"title":{},"body":{"controllers/DashboardController.html":{}}}],["dashboardmodel",{"_index":7820,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelentity",{"_index":7630,"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":7710,"title":{"injectables/DashboardModelMapper.html":{}},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardprops",{"_index":7482,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["dashboardrepo",{"_index":7795,"title":{"injectables/DashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardresponse",{"_index":7450,"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":7448,"title":{"injectables/DashboardUc.html":{}},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardurl",{"_index":15575,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["dashboardurl.tostring",{"_index":15583,"title":{},"body":{"injectables/OAuthService.html":{}}}],["dashboardurlparams",{"_index":7437,"title":{"classes/DashboardUrlParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardUrlParams.html":{}}}],["data",{"_index":284,"title":{},"body":{"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":{},"injectables/MetaTagExtractorService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"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/UnknownQueryTypeLoggableException.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":1282,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.body",{"_index":17944,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentlength",{"_index":17947,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentrange",{"_index":17948,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents.map((p",{"_index":17985,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents?.length",{"_index":17984,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contenttype",{"_index":17946,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.dto.ts",{"_index":15812,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:11",{"_index":15815,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:13",{"_index":15814,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:7",{"_index":15818,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:9",{"_index":15816,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.etag",{"_index":17949,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.externalgroups",{"_index":16534,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalgroups.map((externalgroup",{"_index":16535,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalschool",{"_index":16344,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.externalid",{"_index":16347,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.officialschoolnumber",{"_index":16348,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool?.officialschoolnumber",{"_index":15553,"title":{},"body":{"injectables/OAuthService.html":{}}}],["data.externaluser",{"_index":16530,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externaluser.externalid",{"_index":15552,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externaluser?.externalid",{"_index":13138,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["data.gridelement.getcontent",{"_index":7691,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.id",{"_index":6244,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.mountsdescription",{"_index":1284,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.name",{"_index":6247,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.port",{"_index":1280,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.pos",{"_index":7692,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.response",{"_index":19336,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["data.response.ts",{"_index":21046,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:11",{"_index":21048,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:14",{"_index":21049,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:17",{"_index":21050,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:3",{"_index":21047,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.result?.ogdescription",{"_index":14893,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["data.result?.ogimage",{"_index":14894,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["data.result?.ogtitle",{"_index":14892,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["data.sourceid",{"_index":6246,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.system.systemid",{"_index":16528,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.ts",{"_index":16898,"title":{},"body":{"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["data.ts:11",{"_index":20592,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:4",{"_index":16900,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:5",{"_index":20593,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:6",{"_index":16901,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:7",{"_index":20596,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:8",{"_index":16899,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:9",{"_index":20594,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data/generateseeddata",{"_index":11684,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["database",{"_index":1759,"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":10692,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["database.module.ts",{"_index":15004,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:31",{"_index":15005,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:42",{"_index":15007,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/mongo",{"_index":15003,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/types",{"_index":10736,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["databasemanagementconsole",{"_index":7857,"title":{"classes/DatabaseManagementConsole.html":{}},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["databasemanagementcontroller",{"_index":7895,"title":{"controllers/DatabaseManagementController.html":{}},"body":{"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementmodule",{"_index":7925,"title":{"modules/DatabaseManagementModule.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["databasemanagementservice",{"_index":7929,"title":{"injectables/DatabaseManagementService.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementuc",{"_index":7862,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["dataformats",{"_index":23560,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["datamodel",{"_index":23219,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["datawithdefaults",{"_index":15920,"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":1570,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["date(2020",{"_index":14010,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["date(date.now",{"_index":6808,"title":{},"body":{"classes/CourseFactory.html":{},"classes/FileRecordFactory.html":{},"controllers/OauthSSOController.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"injectables/UserLoginMigrationService.html":{}}}],["date(now.gettime",{"_index":21377,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["date(user.createdtimestamp",{"_index":13633,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["date.now",{"_index":4539,"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":18928,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["days",{"_index":7991,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"license.html":{}}}],["dayssincedeletion",{"_index":7994,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["db",{"_index":574,"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":629,"title":{},"body":{"modules/AccountModule.html":{}}}],["db.service.ts",{"_index":849,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:13",{"_index":852,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:134",{"_index":863,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:142",{"_index":856,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db_password",{"_index":10673,"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":10674,"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":10675,"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":12708,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["dbcaccountid",{"_index":13592,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcaccountid:${accountdbcaccountid",{"_index":13608,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbcsystemid",{"_index":13594,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid",{"_index":13593,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid:${accountdbcuserid",{"_index":13612,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbildungscloud",{"_index":22953,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["dbname",{"_index":15009,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["dd",{"_index":14465,"title":{},"body":{"modules/LoggerModule.html":{}}}],["de",{"_index":7368,"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":23221,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["debug",{"_index":5519,"title":{},"body":{"classes/ConsentRequestBody.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["debug(loggable",{"_index":14432,"title":{},"body":{"injectables/Logger.html":{}}}],["debug(message",{"_index":12093,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["debugger",{"_index":22326,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["debugging",{"_index":10694,"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":1125,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["december",{"_index":22552,"title":{},"body":{"license.html":{}}}],["decide",{"_index":4692,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"todo.html":{}}}],["decides",{"_index":13372,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["decisions",{"_index":23186,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["declarations",{"_index":206,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":17164,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["declared",{"_index":3866,"title":{},"body":{"classes/BusinessError.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declining",{"_index":22720,"title":{},"body":{"license.html":{}}}],["decodedjwt",{"_index":1564,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/OAuthService.html":{}}}],["decodedjwt.accountid",{"_index":1567,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodedjwt.jti",{"_index":1566,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodehtmlentities",{"_index":2720,"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/MetaTagExtractorResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["decodehtmlentities()@apiproperty({description",{"_index":7664,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["decorated",{"_index":10959,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["decorator",{"_index":8393,"title":{},"body":{"classes/ErrorLoggable.html":{},"controllers/LoginController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["decorators",{"_index":138,"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/ClassFilterParams.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/GetMetaTagDataBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.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":23558,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["decrypt",{"_index":11961,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decrypt(data",{"_index":11963,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decryptedclientsecret",{"_index":15600,"title":{},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["decryptedstring",{"_index":19019,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["deemed",{"_index":22540,"title":{},"body":{"license.html":{}}}],["deepmocked",{"_index":23499,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["deeppartial",{"_index":489,"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":486,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/AutoContextNameStrategy.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/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":{},"injectables/MetaTagExtractorService.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"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":6596,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.color",{"_index":6549,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.description",{"_index":6555,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.name",{"_index":6562,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.schema.json",{"_index":23028,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["default_errorcode",{"_index":15457,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["default_language",{"_index":11818,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["default_message",{"_index":15458,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["defaultclientinternalid",{"_index":13350,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultcolumns",{"_index":7522,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["defaultconfig",{"_index":11982,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["defaultencryptionservice",{"_index":8339,"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":11606,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultmapper",{"_index":13453,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper.id",{"_index":13479,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper?.id",{"_index":13456,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmessage",{"_index":1222,"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":10688,"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":15893,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["defaultoptions",{"_index":15019,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["defaults",{"_index":838,"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":16403,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["defaultscopes",{"_index":12432,"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":11688,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["defaulttestpassword",{"_index":531,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["defaulttestpasswordhash",{"_index":533,"title":{},"body":{"classes/AccountFactory.html":{}}}],["defaultvalue",{"_index":7395,"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":21866,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everyattendeejoinsmuted",{"_index":21867,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everybodyjoinsasmoderator",{"_index":21868,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.moderatormustapprovejoinrequests",{"_index":21869,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defective",{"_index":22897,"title":{},"body":{"license.html":{}}}],["defending",{"_index":22406,"title":{},"body":{"license.html":{}}}],["defenses",{"_index":22853,"title":{},"body":{"license.html":{}}}],["define",{"_index":459,"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":504,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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/GetMetaTagDataBody.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":23064,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["defining",{"_index":2370,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definition",{"_index":1228,"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":11796,"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":11624,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["delay(ms",{"_index":13522,"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/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":2923,"title":{},"body":{"controllers/BoardController.html":{}}}],["delete(':cardid",{"_index":4043,"title":{},"body":{"controllers/CardController.html":{}}}],["delete(':columnid",{"_index":4977,"title":{},"body":{"controllers/ColumnController.html":{}}}],["delete(':contentelementid",{"_index":8293,"title":{},"body":{"controllers/ElementController.html":{}}}],["delete(':contextexternaltoolid",{"_index":20497,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20474,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':externaltoolid",{"_index":20562,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':externaltoolid')@apiforbiddenresponse({description",{"_index":20519,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':id",{"_index":369,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':id')@apioperation({summary",{"_index":272,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':importuserid/match",{"_index":12769,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["delete(':lessonid",{"_index":14155,"title":{},"body":{"controllers/LessonController.html":{}}}],["delete(':newsid",{"_index":15071,"title":{},"body":{"controllers/NewsController.html":{}}}],["delete(':schoolexternaltoolid",{"_index":20832,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20805,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':scope/:scopeid",{"_index":21962,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':scope/:scopeid')@apioperation({summary",{"_index":21936,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':submissionid",{"_index":19083,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["delete(':taskid",{"_index":19631,"title":{},"body":{"controllers/TaskController.html":{}}}],["delete('auth/sessions/consent",{"_index":16060,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete('clients/:id",{"_index":16033,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete(@param",{"_index":14159,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(board",{"_index":4826,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["delete(card",{"_index":4105,"title":{},"body":{"injectables/CardService.html":{}}}],["delete(column",{"_index":5003,"title":{},"body":{"injectables/ColumnService.html":{}}}],["delete(domainobject",{"_index":2332,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{}}}],["delete(domainobjects",{"_index":2259,"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":5665,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["delete(entities",{"_index":713,"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":11262,"title":{},"body":{"injectables/GroupService.html":{}}}],["delete(id",{"_index":25,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/NewsUc.html":{}}}],["delete(path",{"_index":1471,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(paths",{"_index":17915,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["delete(submission",{"_index":19287,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["delete(subpath",{"_index":1469,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(task",{"_index":19998,"title":{},"body":{"injectables/TaskService.html":{}}}],["delete(urlparams",{"_index":14153,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(userid",{"_index":14316,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{}}}],["delete.vistor",{"_index":3309,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["delete.vistor.ts",{"_index":17281,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:22",{"_index":17284,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:29",{"_index":17291,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:34",{"_index":17290,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:39",{"_index":17287,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:44",{"_index":17293,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:51",{"_index":17294,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:57",{"_index":17295,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:62",{"_index":17296,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:67",{"_index":17297,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:72",{"_index":17292,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:86",{"_index":17286,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:90",{"_index":17289,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete_files_of_parent",{"_index":11934,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["deleteaccountbyid",{"_index":263,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteaccountbyid(accountid",{"_index":12704,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["deleteaccountbyid(currentuser",{"_index":269,"title":{},"body":{"controllers/AccountController.html":{}}}],["deleteaccountbyid(id",{"_index":13567,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteboard",{"_index":2865,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["deleteboard(@param",{"_index":2924,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(urlparams",{"_index":2880,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(userid",{"_index":3783,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletebyexternaltoolid",{"_index":18199,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyexternaltoolid(toolid",{"_index":18205,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyid",{"_index":680,"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":688,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["deletebyid(id",{"_index":2263,"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":6088,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":6094,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolids",{"_index":5909,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":5917,"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":3986,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["deletecard(@param",{"_index":4044,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(urlparams",{"_index":3997,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(userid",{"_index":4159,"title":{},"body":{"injectables/CardUc.html":{}}}],["deletecolumn",{"_index":4947,"title":{},"body":{"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["deletecolumn(@param",{"_index":4978,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(urlparams",{"_index":4957,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(userid",{"_index":5021,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["deletecontextexternaltool",{"_index":6089,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(contextexternaltool",{"_index":6096,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletecontextexternaltool(currentuser",{"_index":20473,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(userid",{"_index":6128,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["deleted",{"_index":280,"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":9960,"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":7968,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["deletedexternaltoolpseudonyms",{"_index":17101,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedfoldername",{"_index":17900,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedid",{"_index":15106,"title":{},"body":{"controllers/NewsController.html":{}}}],["deletedirectory",{"_index":17903,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedirectory(path",{"_index":17917,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedpseudonyms",{"_index":17100,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedsince",{"_index":6285,"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":21648,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deletedusers",{"_index":13721,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["deleteelement",{"_index":8263,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["deleteelement(urlparams",{"_index":8270,"title":{},"body":{"controllers/ElementController.html":{}}}],["deleteelement(userid",{"_index":8305,"title":{},"body":{"injectables/ElementUc.html":{}}}],["deleteentitybyid",{"_index":2241,"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":2265,"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":9358,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["deleteexternaltool(currentuser",{"_index":20518,"title":{},"body":{"controllers/ToolController.html":{}}}],["deleteexternaltool(toolid",{"_index":9374,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["deleteexternaltool(userid",{"_index":9479,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["deleteexternaltoolpseudonymsbyuserid",{"_index":17062,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deleteexternaltoolpseudonymsbyuserid(userid",{"_index":17073,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletefile",{"_index":8009,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefile(file",{"_index":8021,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage",{"_index":8010,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage(file",{"_index":8024,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefilesconsole",{"_index":7980,"title":{"classes/DeleteFilesConsole.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{}}}],["deletefilesofparent",{"_index":10513,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent(@rabbitpayload",{"_index":10612,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["deletefilesofparent(parentid",{"_index":10520,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["deletefilesofparent(payload",{"_index":10589,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:finished",{"_index":10725,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:started",{"_index":10723,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesuc",{"_index":7985,"title":{"injectables/DeleteFilesUc.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["deletegroup(groupname",{"_index":1056,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteidentityprovider",{"_index":13338,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteidentityprovider(alias",{"_index":13361,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteimportusersbyschool",{"_index":12942,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deleteimportusersbyschool(school",{"_index":12946,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deletelesson",{"_index":14290,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletelesson(lesson",{"_index":14295,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletemarkedfiles",{"_index":7983,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["deletemarkedfiles(dayssincedeletion",{"_index":7987,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["deletemarkedfiles(thresholddate",{"_index":8026,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletenode",{"_index":17282,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deletenode(domainobject",{"_index":17285,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deleteoauth2client",{"_index":15895,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["deleteoauth2client(@currentuser",{"_index":16034,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(currentuser",{"_index":15903,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(id",{"_index":16165,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["deleteobjectcommand",{"_index":8029,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deleteobjects",{"_index":17970,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deleteobjectscommand",{"_index":17928,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletepreviews",{"_index":16778,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepreviews(filerecords",{"_index":16785,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepseudonymsbyuserid",{"_index":9018,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletepseudonymsbyuserid(userid",{"_index":9028,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletes",{"_index":273,"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":18303,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(currentuser",{"_index":20804,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(userid",{"_index":18310,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["deleteschoolexternaltoolbyid",{"_index":18268,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18275,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deletesubmissions",{"_index":19996,"title":{},"body":{"injectables/TaskService.html":{}}}],["deletesubmissions(task",{"_index":20000,"title":{},"body":{"injectables/TaskService.html":{}}}],["deleteteam",{"_index":4553,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteteam(teamid",{"_index":4565,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteuser",{"_index":21593,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(userid",{"_index":21596,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(username",{"_index":1061,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteuserdatafromclasses",{"_index":4427,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromclasses(userid",{"_index":4432,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromcourse",{"_index":7021,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcourse(userid",{"_index":7024,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcoursegroup",{"_index":6863,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromcoursegroup(userid",{"_index":6867,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromlessons",{"_index":14291,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromlessons(userid",{"_index":14297,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromteams",{"_index":20204,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserdatafromteams(userid",{"_index":20208,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserloginmigration",{"_index":21338,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deleteuserloginmigration(userloginmigration",{"_index":21347,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deletevisitor",{"_index":3281,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["deletewithdescendants",{"_index":3367,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deletewithdescendants(domainobject",{"_index":3370,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deleting",{"_index":7997,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["deletion",{"_index":5386,"title":{},"body":{"modules/CommonToolModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/S3ClientAdapter.html":{}}}],["deletioncommand",{"_index":8075,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletions",{"_index":8049,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["dem",{"_index":4850,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["demand",{"_index":15436,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["denied",{"_index":22689,"title":{},"body":{"license.html":{}}}],["denominated",{"_index":22816,"title":{},"body":{"license.html":{}}}],["depend",{"_index":23170,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependencies",{"_index":204,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":1542,"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":23684,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["depending",{"_index":10397,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["depends",{"_index":10383,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deployment",{"_index":13649,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["deployments",{"_index":23240,"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":21930,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:106",{"_index":21937,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:46",{"_index":21935,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:86",{"_index":21939,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.response",{"_index":21944,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecated.response.ts",{"_index":8082,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:10",{"_index":21790,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:12",{"_index":21789,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:25",{"_index":8106,"title":{},"body":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["deprecated.response.ts:37",{"_index":8088,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:43",{"_index":8086,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:8",{"_index":21791,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecatedvideoconferenceinforesponse",{"_index":8079,"title":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecatedvideoconferencejoinresponse",{"_index":8098,"title":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprive",{"_index":22824,"title":{},"body":{"license.html":{}}}],["depth",{"_index":3287,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["der",{"_index":4863,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["derivecopyname",{"_index":6416,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopyname(name",{"_index":6421,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopystatus",{"_index":6363,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filecopystatus",{"_index":19685,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filedtos",{"_index":6373,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["derivecoursestatus",{"_index":6711,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivecoursestatus(originalcourse",{"_index":6720,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivestatusfromelements",{"_index":6417,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivestatusfromelements(elements",{"_index":6424,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["des",{"_index":4881,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["desc",{"_index":3614,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["descendant",{"_index":3605,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendant.path.match(`^${n.pathofchildren",{"_index":3613,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendants",{"_index":3172,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["describe",{"_index":23217,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"course",{"_index":23412,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"when",{"_index":23414,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('[method",{"_index":23443,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('createcourse",{"_index":23413,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('somefunction",{"_index":23517,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('when",{"_index":23444,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["described",{"_index":15718,"title":{},"body":{"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["describes",{"_index":2354,"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":153,"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/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.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":{},"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":14350,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["description.a",{"_index":23388,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["descriptioncommit",{"_index":23590,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["descriptioninputformat",{"_index":12447,"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":13740,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["descriptions",{"_index":12551,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptive",{"_index":12026,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["deserialize",{"_index":3825,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["deserialize(bsondocuments",{"_index":3827,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["deserializes",{"_index":3829,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["design",{"_index":22955,"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":22627,"title":{},"body":{"license.html":{}}}],["designed",{"_index":22373,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["desireable",{"_index":16082,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["desired",{"_index":23442,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["destination",{"_index":6223,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["destinationcourse",{"_index":2951,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destinationcourse).then((status",{"_index":3012,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourse.id",{"_index":3037,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourseid",{"_index":6221,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["destinationexternalreference",{"_index":3036,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["destinationlesson",{"_index":19683,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destroyed",{"_index":17178,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["detail",{"_index":22879,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["detail.response",{"_index":1251,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["detail.response.ts",{"_index":21743,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detail.response.ts:1",{"_index":21745,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detailed",{"_index":23153,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["details",{"_index":1202,"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":11757,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["detectable",{"_index":20639,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["detectcontenttypeorthrow",{"_index":8840,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detectcontenttypeorthrow(imagebuffer",{"_index":8848,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detected",{"_index":10232,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["detection",{"_index":75,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["determine",{"_index":23150,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["determineinput",{"_index":16931,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determineinput(systemid",{"_index":16940,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determinelaunchrequestmethod",{"_index":2532,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinelaunchrequestmethod(properties",{"_index":2549,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinenewroomsin",{"_index":7469,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["determinenewroomsin(rooms",{"_index":7492,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["determinestatus",{"_index":18269,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinestatus(tool",{"_index":18277,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinetoolconfigurationstatus",{"_index":5393,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determinetoolconfigurationstatus(externaltool",{"_index":5395,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determining",{"_index":16629,"title":{},"body":{"classes/PatchOrderParams.html":{},"license.html":{}}}],["deubg",{"_index":23571,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["dev",{"_index":23076,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["develop",{"_index":13650,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["developer",{"_index":5523,"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":22395,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["development",{"_index":11626,"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":4146,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["dfsdfsf",{"_index":22353,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["di",{"_index":23281,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dialnumber",{"_index":2045,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["dictionary",{"_index":10661,"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":23602,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["diffenrent",{"_index":23012,"title":{},"body":{"todo.html":{}}}],["differ",{"_index":22878,"title":{},"body":{"license.html":{}}}],["different",{"_index":4145,"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":23739,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["differently",{"_index":22711,"title":{},"body":{"license.html":{}}}],["differs",{"_index":23432,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dir",{"_index":11697,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["direct",{"_index":13392,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["direction",{"_index":22528,"title":{},"body":{"license.html":{}}}],["directions",{"_index":22633,"title":{},"body":{"license.html":{}}}],["directly",{"_index":757,"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":10004,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["directory",{"_index":10373,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dirnameprefix",{"_index":10379,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["dirpath",{"_index":10419,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["disable",{"_index":993,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"injectables/SystemRepo.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserRepo.html":{},"todo.html":{}}}],["disabled",{"_index":15564,"title":{},"body":{"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["disallow",{"_index":23742,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["disclaim",{"_index":22562,"title":{},"body":{"license.html":{}}}],["disclaimer",{"_index":22888,"title":{},"body":{"license.html":{}}}],["disclaiming",{"_index":22708,"title":{},"body":{"license.html":{}}}],["discovery",{"_index":2359,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"todo.html":{}}}],["discriminator",{"_index":8253,"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":3395,"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":2503,"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":22838,"title":{},"body":{"license.html":{}}}],["discussed",{"_index":2427,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["discussion",{"_index":23204,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["discussion_enabled=false",{"_index":23704,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["display",{"_index":9718,"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":6920,"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":3735,"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":7108,"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":5767,"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":22472,"title":{},"body":{"license.html":{}}}],["disposable",{"_index":22209,"title":{},"body":{"dependencies.html":{}}}],["disposition",{"_index":6705,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["dist",{"_index":22280,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["distinguish",{"_index":15374,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["distinguished",{"_index":23424,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["distinguishing",{"_index":22882,"title":{},"body":{"license.html":{}}}],["distingush",{"_index":23744,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["distribute",{"_index":22367,"title":{},"body":{"license.html":{}}}],["distributed",{"_index":22937,"title":{},"body":{"license.html":{}}}],["distributing",{"_index":22841,"title":{},"body":{"license.html":{}}}],["distribution",{"_index":22431,"title":{},"body":{"license.html":{}}}],["dn",{"_index":4310,"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":3163,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["do.builder.ts",{"_index":3122,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:23",{"_index":3140,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:24",{"_index":3137,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:25",{"_index":3134,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:26",{"_index":3146,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:27",{"_index":3149,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:28",{"_index":3152,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:29",{"_index":3155,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:30",{"_index":3158,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:31",{"_index":3143,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.mapper",{"_index":13114,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["do.mapper.ts",{"_index":13081,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:13",{"_index":13088,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:5",{"_index":13085,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.repo",{"_index":21580,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["do.repo.ts",{"_index":3272,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/UserDORepo.html":{}}}],["do.repo.ts:11",{"_index":3283,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:141",{"_index":20983,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:151",{"_index":20992,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:18",{"_index":3290,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:25",{"_index":20993,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:26",{"_index":3288,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:33",{"_index":20986,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:39",{"_index":3292,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:53",{"_index":3302,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:65",{"_index":3295,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:71",{"_index":20989,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:75",{"_index":3297,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:79",{"_index":20987,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:82",{"_index":3300,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:87",{"_index":3305,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:93",{"_index":3285,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.rule.ts",{"_index":3348,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:11",{"_index":3354,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:17",{"_index":3352,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:8",{"_index":3351,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.service",{"_index":4119,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["do.service.ts",{"_index":3366,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:20",{"_index":3375,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:6",{"_index":3369,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:9",{"_index":3371,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["dobasefactory",{"_index":4314,"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":7342,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["dobasefactory.define(lti11toolconfig",{"_index":7361,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["docker",{"_index":23031,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/mongo",{"_index":23671,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/rocketchat/rocket.chat:4.7.2envs",{"_index":23713,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["doclass",{"_index":3289,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["doclass.name",{"_index":3317,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["docs",{"_index":23000,"title":{},"body":{"todo.html":{}}}],["document",{"_index":6219,"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":22293,"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":22694,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["documents",{"_index":3830,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doe",{"_index":21058,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["doe${sequence",{"_index":12841,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["doescourseexist",{"_index":3470,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doescourseexist(courseid",{"_index":3481,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doesn't",{"_index":14320,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/OAuthService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doesnt",{"_index":17382,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["doing",{"_index":23201,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["domain",{"_index":1715,"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":{},"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":23750,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain.mapper",{"_index":11166,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["domain.mapper.ts",{"_index":11070,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:15",{"_index":11077,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:43",{"_index":11080,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:60",{"_index":11084,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:72",{"_index":11082,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:81",{"_index":11089,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:90",{"_index":11087,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain/class",{"_index":4385,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domain/external",{"_index":8860,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["domain/rules",{"_index":1714,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["domainentity",{"_index":7746,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["domainerror",{"_index":17859,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["domainobject",{"_index":1601,"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":3346,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["domainobject.closedat",{"_index":21281,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.context",{"_index":18758,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.context?.contextid",{"_index":18823,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.context?.contexttype",{"_index":18822,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.createdat",{"_index":20957,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.customs",{"_index":7262,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.email",{"_index":20959,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.emailsearchvalues",{"_index":20971,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.expiresat",{"_index":18759,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.externalid",{"_index":20963,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.finishedat",{"_index":21282,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.firstname",{"_index":20960,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.firstnamesearchvalues",{"_index":20967,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.forcepasswordchange",{"_index":20973,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.friendlyurl",{"_index":7268,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.frontchannel_logout_uri",{"_index":7271,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.gradelevel",{"_index":4410,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.id",{"_index":2297,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.importhash",{"_index":20965,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.invitationlink",{"_index":4407,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.ishidden",{"_index":7272,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.islocal",{"_index":7264,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.istemplate",{"_index":7263,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.key",{"_index":7254,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.language",{"_index":20972,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastloginsystemchange",{"_index":20975,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastname",{"_index":20961,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastnamesearchvalues",{"_index":20969,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.ldapdn",{"_index":4411,"title":{},"body":{"classes/ClassMapper.html":{},"classes/UserDO.html":{}}}],["domainobject.logo_url",{"_index":7256,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_message_type",{"_index":7257,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_version",{"_index":7258,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.mandatorysince",{"_index":21283,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.name",{"_index":4402,"title":{},"body":{"classes/ClassMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.oauthclientid",{"_index":7267,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.opennewtab",{"_index":7270,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.options",{"_index":21928,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.organizationid",{"_index":11257,"title":{},"body":{"injectables/GroupRule.html":{}}}],["domainobject.origintoolid",{"_index":7266,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.outdatedsince",{"_index":20976,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.payload",{"_index":18757,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.payload.parentid",{"_index":18821,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.payload.parenttype",{"_index":18820,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.preferences",{"_index":20974,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.previousexternalid",{"_index":20977,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.privacy_permission",{"_index":7261,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.removeuser(userid",{"_index":4445,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.resource_link_id",{"_index":7259,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.roles",{"_index":7260,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["domainobject.schoolid",{"_index":20962,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.secret",{"_index":7255,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.skipconsent",{"_index":7269,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.source",{"_index":4414,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourceoptions",{"_index":4415,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourcesystemid",{"_index":21278,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.startedat",{"_index":21280,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.successor",{"_index":4412,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.target",{"_index":21926,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetmodel",{"_index":21927,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetsystemid",{"_index":21279,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.teacherids.map((teacherid",{"_index":4404,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.token",{"_index":18756,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.updatedat",{"_index":20958,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.url",{"_index":7253,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.userids",{"_index":4444,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.userids?.map((userid",{"_index":4406,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.year",{"_index":4408,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject/share",{"_index":12268,"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":2751,"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":2733,"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":8114,"title":{"classes/DomainObjectFactory.html":{}},"body":{"classes/DomainObjectFactory.html":{}}}],["domainobjects",{"_index":2261,"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":17351,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["domainobjects.map((domainobject",{"_index":4417,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassService.html":{}}}],["domainrolenames",{"_index":21458,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles",{"_index":21456,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles.map((role",{"_index":21459,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domains",{"_index":22210,"title":{},"body":{"dependencies.html":{}}}],["domigration",{"_index":18393,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["domigration(externalid",{"_index":18404,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["domigration(userdo",{"_index":21504,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["don't",{"_index":2369,"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":8392,"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":19748,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["dos",{"_index":2325,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["dos.map((domainobj",{"_index":2327,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["dosomethingcrazy",{"_index":23453,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z",{"_index":23458,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).catch(err",{"_index":23473,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).then(result",{"_index":23468,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazysync(wrong",{"_index":23476,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["doubtful",{"_index":22658,"title":{},"body":{"license.html":{}}}],["down",{"_index":23177,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["download",{"_index":16779,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download(filerecord",{"_index":16787,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download_uri",{"_index":1186,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downloadbysecuritytoken",{"_index":10334,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(@param('token",{"_index":10347,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(token",{"_index":10336,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadfileparams",{"_index":6304,"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":16737,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloadoriginfile(pathtofile",{"_index":16741,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloaduri",{"_index":1179,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downstream",{"_index":22772,"title":{},"body":{"license.html":{}}}],["draft",{"_index":12499,"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":2426,"title":{},"body":{"injectables/BaseRepo.html":{},"properties.html":{}}}],["driver",{"_index":752,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drivers",{"_index":765,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drop/create",{"_index":11768,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dropcollection",{"_index":7937,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollection(collectionname",{"_index":7948,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollectionifexists(collectionname",{"_index":11736,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dry",{"_index":23190,"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":{},"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":{},"controllers/MetaTagExtractorController.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":23264,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dto.availabledate",{"_index":19803,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.bbbresponse",{"_index":21777,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["dto.builder.ts",{"_index":9895,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:13",{"_index":9904,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:19",{"_index":9901,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:7",{"_index":9899,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.cancelbuttonurl",{"_index":16560,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.classes",{"_index":12904,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.cookies",{"_index":11545,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["dto.createdat",{"_index":17494,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.currentredirect",{"_index":11474,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.description",{"_index":19801,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.descriptioninputformat",{"_index":19816,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.destinationcourseid",{"_index":6479,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.displaycolor",{"_index":19807,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.duedate",{"_index":19805,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.elements",{"_index":6482,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.enablemigrationstart",{"_index":14957,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.factory",{"_index":17835,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["dto.factory.ts",{"_index":8124,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:102",{"_index":8159,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:121",{"_index":8157,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:129",{"_index":8146,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:139",{"_index":8155,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:158",{"_index":8153,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:173",{"_index":8143,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:186",{"_index":17665,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:192",{"_index":17667,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:28",{"_index":8139,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:30",{"_index":8138,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:32",{"_index":8140,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:34",{"_index":8137,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:36",{"_index":8136,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:58",{"_index":8151,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:67",{"_index":8148,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:89",{"_index":8149,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:95",{"_index":8150,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.firstname",{"_index":12892,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.flagged",{"_index":12911,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.groupelements",{"_index":7703,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.groupid",{"_index":7702,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.id",{"_index":6477,"title":{},"body":{"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lastname",{"_index":12895,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lessonhidden",{"_index":19811,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.lessonname",{"_index":19810,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.loginname",{"_index":12898,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.mapper",{"_index":926,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["dto.mapper.abstract",{"_index":548,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.abstract.ts",{"_index":542,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.abstract.ts:7",{"_index":544,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.db.ts",{"_index":546,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{}}}],["dto.mapper.idm.ts",{"_index":555,"title":{},"body":{"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.ts",{"_index":412,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:22",{"_index":420,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:28",{"_index":418,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:5",{"_index":423,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.match",{"_index":12890,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.matchedby",{"_index":21463,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["dto.matches",{"_index":12907,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.oauthmigrationfinalfinish",{"_index":14956,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationfinished",{"_index":14955,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationmandatory",{"_index":14954,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationpossible",{"_index":14953,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.options",{"_index":21982,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["dto.permission",{"_index":21778,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.permissions",{"_index":15383,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.proceedbuttonurl",{"_index":16559,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.provisioningstrategy",{"_index":16982,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.provisioningurl",{"_index":16984,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.redirect",{"_index":21491,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["dto.response",{"_index":11477,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.response.status",{"_index":11473,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.role",{"_index":12901,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.rolename",{"_index":15439,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.roles",{"_index":17500,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.schoolid",{"_index":17498,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.state",{"_index":21775,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.target",{"_index":15172,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.teamid",{"_index":3914,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto.teamname",{"_index":15438,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.title",{"_index":3912,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["dto.unpublished",{"_index":15174,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.updatedat",{"_index":17496,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.updater",{"_index":15169,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.url",{"_index":22008,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["dto/board/board",{"_index":2904,"title":{},"body":{"controllers/BoardController.html":{}}}],["dto/board/set",{"_index":4023,"title":{},"body":{"controllers/CardController.html":{}}}],["dto/card/create",{"_index":4968,"title":{},"body":{"controllers/ColumnController.html":{}}}],["dto/class",{"_index":11297,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["dto/context",{"_index":6141,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["dto/copy.response",{"_index":6472,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto/element/rich",{"_index":17572,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["dto/file.dto",{"_index":9906,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto/fwu",{"_index":10807,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["dto/migration.dto",{"_index":21524,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/oauth",{"_index":14117,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{}}}],["dto/oauth2",{"_index":21180,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/page",{"_index":21525,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/pseudonym",{"_index":17016,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["dto/public",{"_index":19377,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["dto/request/school",{"_index":21182,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/request/user",{"_index":21183,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/response/consent.response",{"_index":16010,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/redirect.response",{"_index":16012,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/video",{"_index":21943,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["dto/role.dto",{"_index":17650,"title":{},"body":{"injectables/RoleService.html":{}}}],["dto/school",{"_index":18319,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["dto/stateless",{"_index":16244,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dto/submission",{"_index":3707,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["dto/system",{"_index":19379,"title":{},"body":{"controllers/SystemController.html":{}}}],["dto/task",{"_index":19653,"title":{},"body":{"controllers/TaskController.html":{}}}],["dto/team",{"_index":4598,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto/team.dto",{"_index":4706,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["dto/user",{"_index":16238,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dtocreator",{"_index":8122,"title":{"classes/DtoCreator.html":{}},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dtolist",{"_index":12806,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["dtos",{"_index":4596,"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":3544,"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":3227,"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":19055,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["dummy",{"_index":11373,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["dummypasswd!1",{"_index":532,"title":{},"body":{"classes/AccountFactory.html":{}}}],["dummyresponse",{"_index":11383,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["duplicate",{"_index":6177,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["duplicate.filter",{"_index":6183,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.id",{"_index":8983,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["duplicate.length",{"_index":6187,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.loggable",{"_index":18474,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["duplicates",{"_index":16649,"title":{},"body":{"injectables/PermissionService.html":{}}}],["duplicatetool",{"_index":6184,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.displayname",{"_index":6186,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.id",{"_index":6185,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplication",{"_index":2368,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["durable",{"_index":22611,"title":{},"body":{"license.html":{}}}],["duration",{"_index":2046,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/DurationLoggingInterceptor.html":{}}}],["durationlogginginterceptor",{"_index":8221,"title":{"injectables/DurationLoggingInterceptor.html":{}},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["during",{"_index":7094,"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":22657,"title":{},"body":{"license.html":{}}}],["dynamically",{"_index":22507,"title":{},"body":{"license.html":{}}}],["dynamicmodule",{"_index":1106,"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":2256,"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":2362,"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":8388,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.response.data",{"_index":1011,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.data.errortype",{"_index":1013,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.statuscode",{"_index":1008,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.target",{"_index":8394,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.value",{"_index":8396,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["each",{"_index":2344,"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":12042,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolExternalToolEntity.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["earlier",{"_index":22446,"title":{},"body":{"license.html":{}}}],["ease",{"_index":23810,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["easier",{"_index":23533,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["easily",{"_index":23436,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["easy",{"_index":23146,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["eathers",{"_index":9827,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["edit",{"_index":6929,"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":23776,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["editor",{"_index":3068,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/UserBoardRoles.html":{}}}],["editor.config",{"_index":11410,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller",{"_index":11409,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller.ts",{"_index":11369,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:33",{"_index":11379,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:44",{"_index":11377,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.module",{"_index":11416,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["editor.module.ts",{"_index":11407,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor/controller/h5p",{"_index":11368,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor/h5p",{"_index":11406,"title":{},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["editusernameallowed",{"_index":13450,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["effect",{"_index":22918,"title":{},"body":{"license.html":{}}}],["effected",{"_index":22559,"title":{},"body":{"license.html":{}}}],["effective",{"_index":22541,"title":{},"body":{"license.html":{}}}],["effectively",{"_index":22934,"title":{},"body":{"license.html":{}}}],["effects",{"_index":2147,"title":{},"body":{"injectables/BBBService.html":{}}}],["efficient",{"_index":3608,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["effortless",{"_index":23398,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["efforts",{"_index":22786,"title":{},"body":{"license.html":{}}}],["einsatz",{"_index":4880,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ejson",{"_index":3839,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.deserialize(bsondocuments",{"_index":3842,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.serialize(documents",{"_index":3840,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["el",{"_index":3647,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CopyHelperService.html":{}}}],["el.getreferences()).flat",{"_index":7600,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["el.status",{"_index":6431,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["el.target.id",{"_index":2652,"title":{},"body":{"entities/Board.html":{}}}],["elapsedtimemilliseconds",{"_index":13301,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["electronic",{"_index":22940,"title":{},"body":{"license.html":{}}}],["element",{"_index":1880,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"interfaces/BaseResponseMapper.html":{},"entities/Board.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"controllers/BoardSubmissionController.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":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["element.'})@apiextramodels(fileelementcontentbody",{"_index":8279,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiextramodels(submissionitemresponse)@apiresponse({status",{"_index":8266,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiresponse({status",{"_index":8271,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.acceptasync(updater",{"_index":5689,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.alternativetext",{"_index":9954,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.boardelementtype",{"_index":3008,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.body.params.ts",{"_index":7050,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:10",{"_index":15043,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:12",{"_index":15051,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:14",{"_index":7056,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:17",{"_index":15052,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:18",{"_index":15044,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:23",{"_index":15050,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:25",{"_index":7054,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:29",{"_index":15047,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.body.params.ts:33",{"_index":15048,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.caption",{"_index":9953,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.constructor.name",{"_index":5656,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["element.contextexternaltoolid",{"_index":8760,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["element.createdat",{"_index":8759,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.description",{"_index":14377,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.do",{"_index":2818,"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":8715,"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":17543,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:13",{"_index":9920,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:14",{"_index":17545,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:17",{"_index":9922,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:18",{"_index":17547,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:21",{"_index":14341,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:25",{"_index":14343,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:29",{"_index":14345,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:33",{"_index":14347,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:5",{"_index":8720,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:6",{"_index":17541,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:9",{"_index":8722,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.duedate",{"_index":19073,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.factory.ts",{"_index":5608,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:13",{"_index":5615,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:43",{"_index":5617,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:56",{"_index":5618,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:68",{"_index":5619,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:81",{"_index":5620,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:93",{"_index":5616,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.getreferences",{"_index":7588,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.getreferences().length",{"_index":7592,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.gridelement",{"_index":7570,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.id",{"_index":8757,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.imageurl",{"_index":14378,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.inputformat",{"_index":17575,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["element.interface",{"_index":5172,"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":11866,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.interface.ts:2",{"_index":11867,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.publish",{"_index":17844,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.removereference(room",{"_index":7591,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.removereferencebyindex(position.groupindex",{"_index":7613,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.response",{"_index":17573,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["element.response.ts",{"_index":3399,"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":8732,"title":{},"body":{"classes/ExternalToolElementContent.html":{}}}],["element.response.ts:12",{"_index":9934,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{}}}],["element.response.ts:14",{"_index":8747,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:15",{"_index":9933,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:17",{"_index":3406,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:18",{"_index":9946,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:20",{"_index":14359,"title":{},"body":{"classes/LinkElementContent.html":{}}}],["element.response.ts:22",{"_index":3403,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:23",{"_index":8749,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:26",{"_index":8751,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementResponse.html":{}}}],["element.response.ts:27",{"_index":9948,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:29",{"_index":8748,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:30",{"_index":9950,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:32",{"_index":8750,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:33",{"_index":9947,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:35",{"_index":14369,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:36",{"_index":9949,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:38",{"_index":14371,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:41",{"_index":14368,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:44",{"_index":14370,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:5",{"_index":8731,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/FileElementContent.html":{},"classes/LinkElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:7",{"_index":3400,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.service",{"_index":4120,"title":{},"body":{"injectables/CardService.html":{}}}],["element.service.ts",{"_index":5662,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:18",{"_index":5663,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:25",{"_index":5668,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:35",{"_index":5670,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:43",{"_index":5664,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:50",{"_index":5666,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:54",{"_index":5672,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:58",{"_index":5675,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.status",{"_index":6486,"title":{},"body":{"classes/CopyMapper.html":{}}}],["element.target",{"_index":2642,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.text",{"_index":4907,"title":{},"body":{"injectables/ColumnBoardService.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["element.title",{"_index":14376,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.ts",{"_index":5269,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:11",{"_index":5273,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:12",{"_index":5321,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:14",{"_index":5301,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:15",{"_index":5322,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:19",{"_index":5274,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["element.ts:21",{"_index":5337,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:3",{"_index":5326,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:38",{"_index":5338,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:42",{"_index":5339,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:46",{"_index":5340,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:6",{"_index":5328,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.type",{"_index":17686,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["element.unpublish",{"_index":17845,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.updatedat",{"_index":8758,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.url",{"_index":14375,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.url.params.ts",{"_index":5760,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:11",{"_index":5762,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:19",{"_index":17728,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["elementcontentbody",{"_index":8238,"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:112",{"_index":8738,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["elementcontentbody:29",{"_index":9938,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["elementcontentbody:59",{"_index":14362,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["elementcontentbody:78",{"_index":17561,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["elementcontentbody:96",{"_index":19066,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["elementcontroller",{"_index":2699,"title":{"controllers/ElementController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ElementController.html":{}}}],["elementcopystatus",{"_index":3055,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementcopystatus.type",{"_index":3052,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementdata",{"_index":7690,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.copyingsince",{"_index":7698,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.displaycolor",{"_index":7695,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group",{"_index":7700,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group.map((groupmetadata",{"_index":7704,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.groupid",{"_index":7701,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.referencedid",{"_index":7699,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.shorttitle",{"_index":7694,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.title",{"_index":7693,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementid",{"_index":1855,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{}}}],["elementmapper",{"_index":5652,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmapper.maptoresponse(element",{"_index":5657,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmodel",{"_index":7745,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.dashboard",{"_index":7782,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.references.set(references",{"_index":7781,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.title",{"_index":7777,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.xpos",{"_index":7772,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.ypos",{"_index":7774,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elements",{"_index":844,"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":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/TaskCopyService.html":{}}}],["elements.filter((el",{"_index":3646,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["elements.filter((element",{"_index":8174,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.foreach((element",{"_index":8184,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.map((el",{"_index":6430,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elements.map((elementcopystatus",{"_index":3051,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elements.push",{"_index":6757,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["elements.push(this.mapcolumnboard(element.content",{"_index":17689,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maplesson(element.content",{"_index":17688,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maptask(element.content",{"_index":17687,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elementservice",{"_index":4155,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["elementspercard",{"_index":3506,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementspercard.flat",{"_index":3509,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementsstatuses",{"_index":6429,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementsstatuses.filter((status",{"_index":6433,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementstoadd",{"_index":2679,"title":{},"body":{"entities/Board.html":{}}}],["elementtomove",{"_index":7576,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.getreferences",{"_index":7609,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.isgroup",{"_index":7608,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementuc",{"_index":2693,"title":{"injectables/ElementUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["elementwithposition",{"_index":7725,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.x",{"_index":7773,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.y",{"_index":7775,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elemmatch",{"_index":10464,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["em",{"_index":3284,"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":23555,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["em.getreference(role",{"_index":11122,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(schoolentity",{"_index":11106,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(systementity",{"_index":11117,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(user",{"_index":11121,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["email",{"_index":653,"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":23214,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["emailsearchvalues",{"_index":11815,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["embeddable",{"_index":2500,"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":4272,"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":4266,"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":19415,"title":{},"body":{"entities/SystemEntity.html":{}}}],["embodied",{"_index":22608,"title":{},"body":{"license.html":{}}}],["emerg",{"_index":8410,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["emerg(loggable",{"_index":8417,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["employer",{"_index":22946,"title":{},"body":{"license.html":{}}}],["empty",{"_index":1668,"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":15252,"title":{},"body":{"classes/NewsScope.html":{},"classes/Scope.html":{}}}],["emptyresultquerytype",{"_index":6080,"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":12600,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["enable",{"_index":10952,"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":21486,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable.loggable.ts:4",{"_index":21487,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable_ldap_sync_during_migration",{"_index":12211,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enabled",{"_index":1113,"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":10957,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["enableldapsyncduringmigration",{"_index":12212,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enablemigrationstart",{"_index":14136,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["enableoauthmigrationfeature",{"_index":21339,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enableoauthmigrationfeature(schooldo",{"_index":21349,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enables",{"_index":22465,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["encapsulates",{"_index":4649,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/ConverterUtil.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["encoded",{"_index":2156,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FileSystemAdapter.html":{}}}],["encodeuricomponent(token",{"_index":1193,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["encoding",{"_index":10361,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["encouraged",{"_index":22413,"title":{},"body":{"license.html":{}}}],["encrypt",{"_index":11962,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application.html":{}}}],["encrypt(data",{"_index":11965,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encrypted",{"_index":977,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["encryptedstring",{"_index":19016,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["encryption",{"_index":12673,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.interface",{"_index":8341,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.service",{"_index":8343,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryption.service.ts",{"_index":14573,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryption.service.ts:7",{"_index":14576,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryptionmodule",{"_index":8335,"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":8344,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryptionservice",{"_index":9367,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["encryptpassword",{"_index":850,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptpassword(password",{"_index":855,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptsecrets(collectionname",{"_index":11836,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["encryptsecretsinsystems(systems",{"_index":11838,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["end",{"_index":2128,"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":21851,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["end(config",{"_index":2148,"title":{},"body":{"injectables/BBBService.html":{}}}],["end(currentuser",{"_index":21803,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["end(currentuserid",{"_index":21967,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.loggable.ts",{"_index":18362,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:3",{"_index":18364,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:6",{"_index":18365,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.uc.ts",{"_index":21965,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:11",{"_index":21966,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:18",{"_index":21968,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end2end",{"_index":23576,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["enddate",{"_index":12235,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["ended",{"_index":21862,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["endings",{"_index":23606,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["endpoint",{"_index":2032,"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":11391,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["endpointurl",{"_index":12274,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["ends",{"_index":2150,"title":{},"body":{"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["endschoolinmaintenance",{"_index":12750,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(@currentuser",{"_index":12827,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(currentuser",{"_index":12758,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endtime",{"_index":2104,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["enforce",{"_index":20159,"title":{},"body":{"controllers/TeamNewsController.html":{},"license.html":{}}}],["enforces",{"_index":23433,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["enforcing",{"_index":22564,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["enities",{"_index":17599,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enities.map((entity",{"_index":17603,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enrichdatafromexternaltool",{"_index":18270,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichdatafromexternaltool(tool",{"_index":18279,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichedtools",{"_index":18292,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools",{"_index":18271,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools(tools",{"_index":18281,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["ensure",{"_index":9674,"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":3168,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureboardnodetype(boardnode",{"_index":3186,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurecontextpermissions",{"_index":8641,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensurecontextpermissions(userid",{"_index":8650,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureleafnode",{"_index":3169,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureleafnode(boardnode",{"_index":3189,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurepermission",{"_index":9472,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensurepermission(userid",{"_index":9481,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensures",{"_index":22308,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ensureschoolpermissions",{"_index":8642,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureschoolpermissions(userid",{"_index":8652,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensuretokeniswhitelisted",{"_index":13218,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["ensuretoolpermissions",{"_index":20779,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["ensuretoolpermissions(userid",{"_index":20782,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["entered",{"_index":22847,"title":{},"body":{"license.html":{}}}],["enteredpassword",{"_index":14404,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["entire",{"_index":22584,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["entirely",{"_index":22866,"title":{},"body":{"license.html":{}}}],["entities",{"_index":155,"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":10488,"title":{},"body":{"injectables/FilesService.html":{}}}],["entities.length",{"_index":10487,"title":{},"body":{"injectables/FilesService.html":{},"injectables/LtiToolRepo.html":{}}}],["entities.map((entity",{"_index":2302,"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":10056,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["entitiyids",{"_index":9695,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entity",{"_index":154,"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":19470,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.closedat",{"_index":21305,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.config.type",{"_index":9145,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.contextid",{"_index":5960,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["entity.contexttype",{"_index":18817,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.course",{"_index":6860,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["entity.coursegroup",{"_index":14278,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.createdat",{"_index":4400,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.customs",{"_index":14734,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.displayname",{"_index":5962,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.email",{"_index":21019,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.emailsearchvalues",{"_index":21025,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.expiresat",{"_index":18819,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.externalid",{"_index":11119,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.externalsource",{"_index":11112,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.factory.ts",{"_index":8782,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:21",{"_index":8791,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:28",{"_index":8788,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:38",{"_index":8793,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:50",{"_index":8789,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:66",{"_index":8787,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.features",{"_index":14047,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{}}}],["entity.features.includes(feature",{"_index":14097,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["entity.federalstate",{"_index":14056,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.finishedat",{"_index":21306,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.firstname",{"_index":21020,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.firstnamesearchvalues",{"_index":21023,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.forcepasswordchange",{"_index":21027,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.friendlyurl",{"_index":14739,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.frontchannel_logout_uri",{"_index":14741,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.getgrid().map((elementwithposition",{"_index":7785,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getid",{"_index":7792,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getuserid",{"_index":7794,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.gradelevel",{"_index":4395,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.hidden",{"_index":14274,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.id",{"_index":4386,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.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":21022,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.inmaintenancesince",{"_index":14048,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.inusermigration",{"_index":14049,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.invitationlink",{"_index":4393,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.isdraft",{"_index":19954,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.ishidden",{"_index":9154,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.islocal",{"_index":14736,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.istemplate",{"_index":14735,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.key",{"_index":14726,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.language",{"_index":21026,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastloginsystemchange",{"_index":21029,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastname",{"_index":21021,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastnamesearchvalues",{"_index":21024,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.ldapconfig?.active",{"_index":19474,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.ldapdn",{"_index":4396,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lesson",{"_index":19957,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.logo_url",{"_index":14728,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.logobase64",{"_index":9152,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.logourl",{"_index":9151,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.lti_message_type",{"_index":14729,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.lti_version",{"_index":14730,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.mandatorysince",{"_index":21303,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.markfordeletion",{"_index":10492,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.name",{"_index":4387,"title":{},"body":{"classes/ClassMapper.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RoleMapper.html":{}}}],["entity.oauthclientid",{"_index":14738,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.officialschoolnumber",{"_index":14051,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.oidcconfig",{"_index":19491,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["entity.opennewtab",{"_index":9155,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.options.everyattendejoinsmuted",{"_index":22104,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.everybodyjoinsasmoderator",{"_index":22103,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.moderatormustapprovejoinrequests",{"_index":22105,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.organization?.id",{"_index":11115,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.origintoolid",{"_index":14737,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.outdatedsince",{"_index":21030,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.parentid",{"_index":18816,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.parenttype",{"_index":18815,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.permissions",{"_index":17602,"title":{},"body":{"classes/RoleMapper.html":{}}}],["entity.preferences",{"_index":21028,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.previousexternalid",{"_index":14050,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.privacy_permission",{"_index":14733,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.provisioningstrategy",{"_index":19471,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.provisioningurl",{"_index":19472,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.pseudonym",{"_index":9062,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.removepermissionsbyrefid(userid",{"_index":10489,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.resource_link_id",{"_index":14731,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.role.id",{"_index":11125,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.roles",{"_index":14732,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.roles.getitems().map((role",{"_index":21440,"title":{},"body":{"classes/UserMapper.html":{}}}],["entity.roles.isinitialized",{"_index":21031,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.school.id",{"_index":18220,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{}}}],["entity.schoolid",{"_index":18263,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["entity.schoolid.tohexstring",{"_index":4388,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.schooltool.id",{"_index":5959,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltool.school.id",{"_index":6055,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schooltool.school?.id",{"_index":5958,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltoolref.schoolid",{"_index":6056,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schoolyear",{"_index":14052,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.secret",{"_index":14727,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.skipconsent",{"_index":14740,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.source",{"_index":4398,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourceoptions?.tspuid",{"_index":4399,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourcesystem?.id",{"_index":21301,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.startedat",{"_index":21304,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.successor?.tohexstring",{"_index":4397,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.system.id",{"_index":11120,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.systems.getitems().map((system",{"_index":14054,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.systems.isinitialized",{"_index":14053,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.target",{"_index":22101,"title":{},"body":{"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetmodel",{"_index":23798,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetsystem.id",{"_index":21302,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.teacherids.map((teacherid",{"_index":4391,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.teamusers.find((teamuser",{"_index":20200,"title":{},"body":{"injectables/TeamRule.html":{}}}],["entity.token",{"_index":18818,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.tool.id",{"_index":18219,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entity.toolid.tohexstring",{"_index":9063,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.toolversion",{"_index":5963,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entity.ts",{"_index":23263,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["entity.type",{"_index":19469,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.updatedat",{"_index":4401,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.url",{"_index":9150,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.user.id",{"_index":11124,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.userid.tohexstring",{"_index":9064,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.userids?.map((userid",{"_index":4389,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.userloginmigration?.id",{"_index":14055,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.users.map((groupuser",{"_index":11107,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod",{"_index":11109,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.from",{"_index":11110,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.until",{"_index":11111,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.version",{"_index":9156,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.year?.tohexstring",{"_index":4394,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity/course.entity",{"_index":11945,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/import",{"_index":12066,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["entity/pseudonym.scope",{"_index":9046,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["entity/role.entity",{"_index":16647,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity/school.entity",{"_index":11946,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/share",{"_index":18811,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity/team.entity",{"_index":11947,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/user.entity",{"_index":16648,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity[key",{"_index":2324,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entity[prop",{"_index":1677,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["entity_not_found",{"_index":3820,"title":{},"body":{"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{}}}],["entityclass",{"_index":505,"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":10458,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["entitydo",{"_index":2273,"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":21312,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.config.type",{"_index":9169,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.contextref.id",{"_index":5965,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.customs",{"_index":14750,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.displayname",{"_index":5967,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.email",{"_index":21034,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.externalid",{"_index":14057,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.features",{"_index":14058,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.federalstate",{"_index":14069,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.finishedat",{"_index":21313,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.firstname",{"_index":21035,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.forcepasswordchange",{"_index":21041,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.friendlyurl",{"_index":14755,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.frontchannel_logout_uri",{"_index":14757,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.id",{"_index":17141,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["entitydo.inmaintenancesince",{"_index":14059,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.inusermigration",{"_index":14060,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.ishidden",{"_index":9178,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.islocal",{"_index":14752,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.istemplate",{"_index":14751,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.key",{"_index":14742,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.language",{"_index":21040,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastloginsystemchange",{"_index":21043,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastname",{"_index":21036,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.ldapdn",{"_index":21039,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.logo",{"_index":9176,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.logo_url",{"_index":14744,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.logourl",{"_index":9175,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.lti_message_type",{"_index":14745,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.lti_version",{"_index":14746,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.mandatorysince",{"_index":21310,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.name",{"_index":9173,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.oauthclientid",{"_index":14754,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.officialschoolnumber",{"_index":14062,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.opennewtab",{"_index":9179,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.options.everyattendeejoinsmuted",{"_index":22109,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.everybodyjoinsasmoderator",{"_index":22108,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.moderatormustapprovejoinrequests",{"_index":22110,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.origintoolid",{"_index":14753,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.outdatedsince",{"_index":21044,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.preferences",{"_index":21042,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.previousexternalid",{"_index":14061,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.privacy_permission",{"_index":14749,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.pseudonym",{"_index":9065,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entitydo.resource_link_id",{"_index":14747,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles",{"_index":14748,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles.map((roleref",{"_index":21037,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.schoolid",{"_index":18223,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.schooltoolref.schooltoolid",{"_index":5969,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.schoolyear",{"_index":14063,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.secret",{"_index":14743,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.skipconsent",{"_index":14756,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.sourcesystemid",{"_index":21308,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.startedat",{"_index":21311,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.systems",{"_index":14064,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.systems.map((systemid",{"_index":14065,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.target",{"_index":22106,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.targetsystemid",{"_index":21309,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.toolid",{"_index":18225,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.toolversion",{"_index":5970,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.url",{"_index":9174,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.userloginmigrationid",{"_index":14067,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.version",{"_index":9180,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydos",{"_index":2284,"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":2296,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entityfactory",{"_index":2242,"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":2267,"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":{},"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/AutoContextNameStrategy.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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/MetaTagExtractorUc.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":2249,"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":687,"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":291,"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":881,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror('user",{"_index":21014,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitynotfounderror(`account",{"_index":909,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror(`user",{"_index":13625,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["entitynotfounderror(systementity.name",{"_index":19506,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["entitypermissions",{"_index":9689,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entitypermissions.includes(p",{"_index":9693,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entityprops",{"_index":2316,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entityschema",{"_index":2366,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["entitytype",{"_index":15180,"title":{},"body":{"classes/NewsMapper.html":{}}}],["entitywithembeddedfiles",{"_index":6375,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["entitywithid",{"_index":2406,"title":{},"body":{"classes/BaseFactory.html":{}}}],["entries",{"_index":9126,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entries.map",{"_index":9185,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry",{"_index":5485,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/JwtStrategy.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.do.ts",{"_index":7313,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:2",{"_index":7315,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:4",{"_index":7314,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.entity.ts",{"_index":7318,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:6",{"_index":7320,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:9",{"_index":7319,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.name",{"_index":9186,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.params",{"_index":18193,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["entry.params.ts",{"_index":7323,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:12",{"_index":7325,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:7",{"_index":7324,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.response",{"_index":18240,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["entry.response.ts",{"_index":7326,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:5",{"_index":7328,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:9",{"_index":7327,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.value",{"_index":9187,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["enum",{"_index":834,"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/ClassFilterParams.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":14663,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({fieldname",{"_index":12740,"title":{},"body":{"entities/ImportUser.html":{}}}],["enum({items",{"_index":14660,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({nullable",{"_index":6558,"title":{},"body":{"entities/Course.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"entities/ShareToken.html":{}}}],["enumname",{"_index":2860,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ClassFilterParams.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":5170,"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":15014,"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":22974,"title":{},"body":{"todo.html":{}}}],["envirement",{"_index":19754,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["envirements",{"_index":6776,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["envirment",{"_index":18929,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["environment",{"_index":13651,"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":10369,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["eq",{"_index":14288,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["equal",{"_index":19918,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["equivalent",{"_index":22523,"title":{},"body":{"license.html":{}}}],["eric",{"_index":23382,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["erorr",{"_index":19746,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["err",{"_index":1175,"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":23474,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["err?.cause?.name",{"_index":17967,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["err?.code",{"_index":17950,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["error",{"_index":986,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.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":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":3243,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["error('broken",{"_index":3006,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error('error",{"_index":11667,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('gradelevel",{"_index":4279,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["error('idm",{"_index":11607,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('invalid",{"_index":12926,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["error('multiple",{"_index":13610,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error('not",{"_index":2685,"title":{},"body":{"entities/Board.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["error('nothing",{"_index":17233,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["error('resource",{"_index":5349,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["error('rocket",{"_index":1098,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["error('roles",{"_index":12175,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["error('root",{"_index":3108,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["error('unexpected",{"_index":13046,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["error('unknown",{"_index":5974,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["error('user",{"_index":530,"title":{},"body":{"classes/AccountFactory.html":{}}}],["error(`${jwtconstants.jwtoptions.algorithm",{"_index":1412,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["error(`${testreqestconst.errormessage",{"_index":1511,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(`account",{"_index":13603,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error(`boardcopyservice",{"_index":3023,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error(`cannot",{"_index":5756,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["error(`duplicate",{"_index":13693,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["error(`login",{"_index":14420,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["error(`mapping",{"_index":10564,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["error(`metatagextractorservice",{"_index":14887,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["error(`no",{"_index":13790,"title":{},"body":{"injectables/LdapService.html":{}}}],["error(`system",{"_index":19523,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["error(error",{"_index":1508,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(json.stringify(cause",{"_index":3871,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(json.stringify(error",{"_index":8478,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["error(loggable",{"_index":8419,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["error(message",{"_index":12095,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["error(string(cause",{"_index":3872,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(util.inspect(error",{"_index":10920,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.enum",{"_index":1732,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error.exception",{"_index":6577,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["error.filter",{"_index":8452,"title":{},"body":{"modules/ErrorModule.html":{}}}],["error.filter.ts",{"_index":10883,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"todo.html":{}}}],["error.filter.ts:102",{"_index":10906,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:15",{"_index":10892,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:19",{"_index":10895,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:34",{"_index":10897,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:49",{"_index":10908,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:56",{"_index":10899,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:72",{"_index":10903,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:80",{"_index":10901,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:92",{"_index":10905,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getresponse",{"_index":10938,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getstatus",{"_index":8894,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["error.interface.ts",{"_index":9699,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["error.mapper",{"_index":17852,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["error.officialschoolnumberfromsource",{"_index":21423,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.officialschoolnumberfromtarget",{"_index":21424,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.response",{"_index":1250,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts",{"_index":1226,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:10",{"_index":1232,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:21",{"_index":1249,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.ts",{"_index":20901,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.ts:3",{"_index":20902,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.validationerrors.map((e",{"_index":8386,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["error/error",{"_index":21892,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["error/id",{"_index":12647,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["error_debug",{"_index":5491,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_description",{"_index":1720,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error_hint",{"_index":5492,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_uri",{"_index":1721,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["errorcode",{"_index":15459,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["errorhandler",{"_index":16200,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorhandler(error",{"_index":16207,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorloggable",{"_index":8355,"title":{"classes/ErrorLoggable.html":{}},"body":{"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LdapStrategy.html":{}}}],["errorloggable(error",{"_index":10918,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorloggable(unknownerror",{"_index":10921,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorlogger",{"_index":8405,"title":{"injectables/ErrorLogger.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"modules/LoggerModule.html":{}}}],["errorlogmessage",{"_index":8368,"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/UnknownQueryTypeLoggableException.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":8431,"title":{"classes/ErrorMapper.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["errormapper.maprpcerrorresponsetodomainerror(error",{"_index":17860,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["errormessage",{"_index":1444,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["errormessages",{"_index":8385,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errormodule",{"_index":6493,"title":{"modules/ErrorModule.html":{}},"body":{"modules/CoreModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules.html":{}}}],["errorobj",{"_index":8437,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorobj.status",{"_index":8439,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorredirect",{"_index":16254,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('error",{"_index":16256,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('provider",{"_index":16258,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('sourceschoolnumber",{"_index":16264,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('targetschoolnumber",{"_index":16265,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorresponse",{"_index":1215,"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":10936,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorresponse:10",{"_index":1243,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:15",{"_index":1240,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:20",{"_index":1238,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:25",{"_index":1234,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:30",{"_index":1235,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse})@apiresponse({status",{"_index":11040,"title":{},"body":{"controllers/GroupController.html":{}}}],["errorresponse})@get('/class",{"_index":11042,"title":{},"body":{"controllers/GroupController.html":{}}}],["errors",{"_index":1229,"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":13783,"title":{},"body":{"injectables/LdapService.html":{}}}],["errors/school",{"_index":15626,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["errorstatus",{"_index":21891,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["errorstatus.guests_cannot_join_conference",{"_index":22023,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["errortype",{"_index":990,"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":21563,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('sourcesystem",{"_index":21565,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('targetsystem",{"_index":21566,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.tostring",{"_index":21567,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorutils",{"_index":1159,"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":1176,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(error",{"_index":2207,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["errorutils.createhttpexceptionoptions(errorobj",{"_index":8444,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorutils.isbusinesserror(error",{"_index":10929,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isbusinesserror(this.error",{"_index":8381,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isfeatherserror(error",{"_index":10927,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isfeatherserror(this.error",{"_index":8379,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isnesthttpexception(error",{"_index":10931,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isnesthttpexception(this.error",{"_index":8382,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["erweitern",{"_index":4857,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["erwin",{"_index":23046,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["erwinidm",{"_index":23047,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["es",{"_index":12601,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["es256",{"_index":1404,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es384",{"_index":1405,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es512",{"_index":1406,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es6",{"_index":22212,"title":{},"body":{"dependencies.html":{}}}],["escape",{"_index":15026,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["escaped",{"_index":11828,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["escapedclasses",{"_index":13047,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedfirstname",{"_index":13031,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedlastname",{"_index":13039,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedloginname",{"_index":13042,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedname",{"_index":21620,"title":{},"body":{"injectables/UserRepo.html":{}}}],["escapedusername",{"_index":744,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["escapes",{"_index":739,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["eslint",{"_index":992,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{}}}],["eslint/ban",{"_index":21624,"title":{},"body":{"injectables/UserRepo.html":{}}}],["eslint/dot",{"_index":2421,"title":{},"body":{"classes/BaseFactory.html":{}}}],["eslint/no",{"_index":996,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{}}}],["eslint/restrict",{"_index":1072,"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":23117,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["especially",{"_index":23249,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["essential",{"_index":22496,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["etag",{"_index":6341,"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":22310,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["etherpad",{"_index":8497,"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":8479,"title":{"injectables/EtherpadService.html":{}},"body":{"injectables/EtherpadService.html":{},"modules/LessonModule.html":{}}}],["evaluate",{"_index":23366,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evaluated",{"_index":23367,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evans",{"_index":23383,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["even",{"_index":22350,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["event",{"_index":3920,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"license.html":{}}}],["event.data[0",{"_index":3926,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["event.dto",{"_index":3924,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.dto.ts",{"_index":3907,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:2",{"_index":3911,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:4",{"_index":3910,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.interface",{"_index":3922,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.interface.ts",{"_index":11595,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["eventid",{"_index":3945,"title":{},"body":{"injectables/CalendarService.html":{}}}],["events",{"_index":11657,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["everyattendeejoinsmuted",{"_index":8101,"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":21755,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everybodyjoinsasmoderator",{"_index":8102,"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":22365,"title":{},"body":{"license.html":{}}}],["everything",{"_index":23734,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exact",{"_index":12731,"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":21445,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exactmatch",{"_index":705,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["example",{"_index":2430,"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":23644,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["exampleapimodule",{"_index":23239,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplecolor",{"_index":7556,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["examplecontroller",{"_index":23238,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplemodule",{"_index":23229,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examples",{"_index":23725,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exampleuc",{"_index":23237,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exceeded",{"_index":8904,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/HydraOauthUc.html":{}}}],["except",{"_index":15027,"title":{},"body":{"classes/MongoPatterns.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception",{"_index":4483,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"injectables/ClassesRepo.html":{},"injectables/ColumnBoardService.html":{},"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":10942,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.getstatus",{"_index":10939,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.loggable",{"_index":12648,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["exception.loggable.ts",{"_index":12626,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:4",{"_index":12627,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:9",{"_index":12628,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.message",{"_index":10940,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.ts",{"_index":8819,"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/UnknownQueryTypeLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:10",{"_index":18480,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["exception.ts:14",{"_index":15447,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:16",{"_index":10781,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["exception.ts:17",{"_index":8822,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:18",{"_index":20378,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:20",{"_index":8906,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["exception.ts:26",{"_index":14992,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:4",{"_index":8835,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.html":{}}}],["exception.ts:5",{"_index":8821,"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":20377,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:7",{"_index":10780,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:9",{"_index":8836,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.html":{}}}],["exception/not",{"_index":15441,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exceptionfactory",{"_index":10964,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["exceptionfilter",{"_index":10884,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptionname",{"_index":10941,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptions",{"_index":22699,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exceptionshandler",{"_index":19151,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["exchange",{"_index":1117,"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":17173,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["excluded",{"_index":22648,"title":{},"body":{"license.html":{}}}],["excludedraftsofothers",{"_index":19966,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludedraftsofothers(creatorid",{"_index":19982,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers",{"_index":19967,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers(creatorid",{"_index":19984,"title":{},"body":{"classes/TaskScope.html":{}}}],["excluding",{"_index":22851,"title":{},"body":{"license.html":{}}}],["exclusion",{"_index":22935,"title":{},"body":{"license.html":{}}}],["exclusive",{"_index":22810,"title":{},"body":{"license.html":{}}}],["exclusively",{"_index":18693,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["excuse",{"_index":22858,"title":{},"body":{"license.html":{}}}],["exec",{"_index":23655,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["executable",{"_index":22492,"title":{},"body":{"license.html":{}}}],["execute",{"_index":20311,"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":21370,"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":23070,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["executing",{"_index":22456,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["execution",{"_index":13423,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["execution.id",{"_index":13424,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executioncontext",{"_index":8228,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["executionprovider",{"_index":13421,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executionproviders",{"_index":13399,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executions",{"_index":13422,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["exercise",{"_index":22787,"title":{},"body":{"license.html":{}}}],["exercising",{"_index":22560,"title":{},"body":{"license.html":{}}}],["exist",{"_index":1391,"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":2768,"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":13689,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["existingaccounts",{"_index":13686,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts.length",{"_index":13687,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts[0].id",{"_index":13688,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingcourses",{"_index":6733,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingcourses.map((course",{"_index":6735,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingelements",{"_index":2650,"title":{},"body":{"entities/Board.html":{}}}],["existingentities",{"_index":4492,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentities.find((entity",{"_index":4495,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentities.foreach((entity",{"_index":4499,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentities.length",{"_index":4494,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentity",{"_index":11174,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["existinggroup",{"_index":16478,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.externalsource?.systemid",{"_index":16509,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.id",{"_index":16485,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.users",{"_index":16490,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupfromsystem.externalsource?.externalid",{"_index":16514,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser",{"_index":16505,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser.filter",{"_index":16508,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinglessons",{"_index":14187,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existinglessons.map((l",{"_index":14189,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existingmatch",{"_index":21615,"title":{},"body":{"injectables/UserRepo.html":{}}}],["existingnames",{"_index":6422,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["existingnames.includes(composedname",{"_index":6446,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingnames.includes(name",{"_index":6439,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingrooms",{"_index":7594,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingrooms.includes(room",{"_index":7597,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingschool",{"_index":16442,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingschool.externalid",{"_index":18444,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["existingschool.id",{"_index":16482,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existingschool.officialschoolnumber",{"_index":16448,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingtargets",{"_index":4934,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtargets.find((item",{"_index":4940,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtasks",{"_index":19749,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existingtasks.map((t",{"_index":19751,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existinguser",{"_index":15559,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["existinguser.email",{"_index":16467,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.firstname",{"_index":16463,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.lastname",{"_index":16465,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.roles",{"_index":16469,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.schoolid",{"_index":16470,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguserloginmigration",{"_index":14125,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["existinguserloginmigration?.closedat",{"_index":14129,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["exists",{"_index":2775,"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":10409,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["existssync(folderpath",{"_index":10417,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["exitonerror",{"_index":14456,"title":{},"body":{"modules/LoggerModule.html":{}}}],["exp",{"_index":7084,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["expect",{"_index":23210,"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":23475,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazy(x,y,z)).to",{"_index":23456,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazysync(wrong",{"_index":23478,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(mockservice.getuser).tohavebeencalled",{"_index":23521,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).to",{"_index":23459,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).toequal(resultuser",{"_index":23522,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expectation",{"_index":23448,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expected",{"_index":3110,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["expecting",{"_index":23464,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expects",{"_index":22662,"title":{},"body":{"license.html":{}}}],["expensive",{"_index":19926,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["expert",{"_index":23732,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["expiration",{"_index":7097,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtValidationAdapter.html":{}}}],["expire",{"_index":18686,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["expireafterseconds",{"_index":10138,"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":18432,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["expires",{"_index":10274,"title":{},"body":{"injectables/FileRecordRepo.html":{},"controllers/OauthSSOController.html":{}}}],["expiresat",{"_index":159,"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":1419,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{}}}],["expiresindays",{"_index":18683,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["explains",{"_index":23600,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["explanation",{"_index":23724,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicit",{"_index":1932,"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":1003,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":6786,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.service.ts",{"_index":5044,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:140",{"_index":5069,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:148",{"_index":5073,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:18",{"_index":5053,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:25",{"_index":5062,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:41",{"_index":5058,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:65",{"_index":5060,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:85",{"_index":5065,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.uc",{"_index":6688,"title":{},"body":{"controllers/CourseController.html":{}}}],["export.uc.ts",{"_index":6780,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:15",{"_index":6784,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:9",{"_index":6782,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["exportcollection",{"_index":7899,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(@param('collectionname",{"_index":7923,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(collectionname",{"_index":7902,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollections",{"_index":7859,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{}}}],["exportcollections(options",{"_index":7864,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["exportcollectionstofilesystem(collections",{"_index":11777,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportcourse",{"_index":5047,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(courseid",{"_index":5061,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(currentuser",{"_index":6673,"title":{},"body":{"controllers/CourseController.html":{}}}],["exported",{"_index":11755,"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":11781,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportedcollections.push(`${collectionname}:${sortedbsondocuments.length",{"_index":11795,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exporting",{"_index":23062,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["exports",{"_index":209,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":12324,"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":5525,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exposes",{"_index":23356,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["express",{"_index":6683,"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":22890,"title":{},"body":{"license.html":{}}}],["expressions",{"_index":756,"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":22737,"title":{},"body":{"license.html":{}}}],["ext",{"_index":13065,"title":{},"body":{"interfaces/IntrospectResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["ext_official_school_missing",{"_index":18441,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_mismatch",{"_index":18467,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_missing",{"_index":18437,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["extend",{"_index":472,"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":23147,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extended",{"_index":3831,"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":18978,"title":{},"body":{"classes/SortingParams.html":{}}}],["extends",{"_index":180,"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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.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":{},"injectables/ColumnUc.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":{},"injectables/ElementUc.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/SubmissionItemUc.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/UnknownQueryTypeLoggableException.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":23161,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extensions",{"_index":22595,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["extent",{"_index":22474,"title":{},"body":{"license.html":{}}}],["external",{"_index":564,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"modules/BoardModule.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":{},"injectables/RecursiveDeleteVisitor.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_sub",{"_index":7060,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["external_tool_logo_fetch_failed",{"_index":8823,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["external_tool_logo_fetched",{"_index":8832,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["external_tool_logo_not_found",{"_index":8837,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}}}],["external_tool_logo_size_exceeded",{"_index":8907,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["external_tool_logo_wrong_file_type",{"_index":8909,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["external_tools",{"_index":8777,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["externalauthconfig",{"_index":13152,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["externalgroup",{"_index":16429,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalid",{"_index":16480,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalorganizationid",{"_index":16481,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.from",{"_index":16488,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.name",{"_index":16486,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.type",{"_index":16487,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.until",{"_index":16489,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.map(async",{"_index":16494,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupdto",{"_index":8498,"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":18343,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroups",{"_index":15813,"title":{},"body":{"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalgroups.some",{"_index":16513,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuser",{"_index":16495,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuserdto",{"_index":8509,"title":{"classes/ExternalGroupUserDto.html":{}},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["externalid",{"_index":655,"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":7142,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginResponseMapper.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{}}}],["externalorganizationid",{"_index":8501,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalrolename",{"_index":11250,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["externalschool",{"_index":13133,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalschool.externalid",{"_index":16444,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.name",{"_index":16446,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.officialschoolnumber",{"_index":16447,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschooldto",{"_index":8529,"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":13842,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["externalsource",{"_index":8537,"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":11116,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsource.systemid",{"_index":11118,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsourceentity",{"_index":8542,"title":{"classes/ExternalSourceEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["externalsourceentityprops",{"_index":8545,"title":{"interfaces/ExternalSourceEntityProps.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["externalsourcename",{"_index":4330,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["externalsourceresponse",{"_index":8552,"title":{"classes/ExternalSourceResponse.html":{}},"body":{"classes/ExternalSourceResponse.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["externalsub",{"_index":7088,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["externaltool",{"_index":2565,"title":{"classes/ExternalTool.html":{}},"body":{"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":20523,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltool.config",{"_index":9318,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientid",{"_index":9540,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientsecret",{"_index":9543,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.secret",{"_index":9399,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.type",{"_index":9536,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.id",{"_index":8882,"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":8690,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.islti11config(externaltool.config",{"_index":9398,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(externaltool.config",{"_index":9401,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(loadedtool.config",{"_index":9535,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(tool.config",{"_index":9412,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.isoauth2config(toupdate.config",{"_index":9429,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.logo",{"_index":8877,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{}}}],["externaltool.logourl",{"_index":8674,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.name",{"_index":8961,"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":9324,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.parameters",{"_index":8635,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltool.parameters.filter",{"_index":8636,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltool.parameters.foreach((param",{"_index":8963,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["externaltool.url",{"_index":9323,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.version",{"_index":9325,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolconfig",{"_index":2488,"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":2492,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:6",{"_index":2490,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfigcreateparams",{"_index":2509,"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":2511,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:9",{"_index":2513,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigdo",{"_index":9309,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltoolconfigentity",{"_index":2501,"title":{"classes/ExternalToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigparams",{"_index":9208,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolconfigresponse",{"_index":2519,"title":{"classes/ExternalToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:10",{"_index":2521,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:7",{"_index":2522,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigurationservice",{"_index":8588,"title":{"injectables/ExternalToolConfigurationService.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"modules/ToolApiModule.html":{}}}],["externaltoolconfigurationuc",{"_index":8638,"title":{"injectables/ExternalToolConfigurationUc.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["externaltoolcontentbody",{"_index":5711,"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":9202,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams",{"_index":8695,"title":{"classes/ExternalToolCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams.config",{"_index":9267,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.ishidden",{"_index":9275,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.logourl",{"_index":9274,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.name",{"_index":9272,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.opennewtab",{"_index":9276,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.parameters",{"_index":9271,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.url",{"_index":9273,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltooldomapper",{"_index":20542,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolelement",{"_index":2799,"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":5754,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelement.id",{"_index":17377,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementcontent",{"_index":8729,"title":{"classes/ExternalToolElementContent.html":{}},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementcontentbody",{"_index":8251,"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":3142,"title":{"entities/ExternalToolElementNodeEntity.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementnodeentityprops",{"_index":8743,"title":{"interfaces/ExternalToolElementNodeEntityProps.html":{}},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["externaltoolelementprops",{"_index":8727,"title":{"interfaces/ExternalToolElementProps.html":{}},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["externaltoolelementresponse",{"_index":4021,"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":5647,"title":{"classes/ExternalToolElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementresponsemapper.getinstance",{"_index":5639,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["externaltoolelementresponsemapper.instance",{"_index":8756,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolentity",{"_index":8761,"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":9095,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolentityfactory",{"_index":8780,"title":{"classes/ExternalToolEntityFactory.html":{}},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolentityfactory.define",{"_index":8800,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolfactory",{"_index":7377,"title":{"classes/ExternalToolFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolfactory.define(externaltool",{"_index":7388,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolid",{"_index":5805,"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":8808,"title":{"classes/ExternalToolIdParams.html":{}},"body":{"classes/ExternalToolIdParams.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo",{"_index":8809,"title":{"classes/ExternalToolLogo.html":{}},"body":{"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.contenttype",{"_index":8816,"title":{},"body":{"classes/ExternalToolLogo.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.logo",{"_index":8814,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["externaltoollogofetchedloggable",{"_index":8829,"title":{"classes/ExternalToolLogoFetchedLoggable.html":{}},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchedloggable(logourl",{"_index":8889,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception",{"_index":8817,"title":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception(logourl",{"_index":8893,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception",{"_index":8833,"title":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception(toolid",{"_index":8897,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogoservice",{"_index":8648,"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":8861,"title":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["externaltoollogowrongfiletypeloggableexception",{"_index":8862,"title":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["externaltoolmodule",{"_index":5881,"title":{"modules/ExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["externaltoolparametervalidationservice",{"_index":8920,"title":{"injectables/ExternalToolParameterValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolparams",{"_index":20515,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolprops",{"_index":7337,"title":{"interfaces/ExternalToolProps.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolpseudonymentity",{"_index":9000,"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":9056,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["externaltoolpseudonympromise",{"_index":17105,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolpseudonymrepo",{"_index":9014,"title":{"injectables/ExternalToolPseudonymRepo.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["externaltoolpseudonyms",{"_index":17092,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolrepo",{"_index":8921,"title":{"injectables/ExternalToolRepo.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["externaltoolrepomapper",{"_index":5944,"title":{"classes/ExternalToolRepoMapper.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentrydostoentities(entitydo.parameters",{"_index":5971,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.parameters",{"_index":5964,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.schoolparameters",{"_index":18221,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapdotoentityproperties(entitydo",{"_index":9104,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapentitytodo(entity",{"_index":9103,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrequestmapper",{"_index":9188,"title":{"injectables/ExternalToolRequestMapper.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponse",{"_index":9290,"title":{"classes/ExternalToolResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper",{"_index":9301,"title":{"injectables/ExternalToolResponseMapper.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.mapcustomparametertoresponse(externaltool.parameters",{"_index":20458,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(created",{"_index":20545,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(externaltool",{"_index":20557,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(tool",{"_index":20552,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(updated",{"_index":20561,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20539,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20516,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltools",{"_index":8602,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltools.data",{"_index":8682,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["externaltools.data.filter((tool",{"_index":8615,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.find",{"_index":8628,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.map",{"_index":20460,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltools.map((tooldo",{"_index":18253,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["externaltoolscope",{"_index":9094,"title":{"classes/ExternalToolScope.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{}}}],["externaltoolsearchlistresponse",{"_index":9347,"title":{"classes/ExternalToolSearchListResponse.html":{}},"body":{"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20813,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":20527,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolsearchparams",{"_index":9204,"title":{"classes/ExternalToolSearchParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSearchParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolsearchquery",{"_index":9081,"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":6166,"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":5389,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["externaltoolservicemapper",{"_index":8922,"title":{"injectables/ExternalToolServiceMapper.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["externaltoolsortby",{"_index":18962,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["externaltoolsortingmapper",{"_index":9092,"title":{"classes/ExternalToolSortingMapper.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["externaltoolsortingmapper.mapdosortordertoqueryorder",{"_index":9097,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltooluc",{"_index":9471,"title":{"injectables/ExternalToolUc.html":{}},"body":{"injectables/ExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdate",{"_index":9235,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams",{"_index":9233,"title":{"classes/ExternalToolUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams.config",{"_index":9254,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.id",{"_index":9261,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.ishidden",{"_index":9265,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.logourl",{"_index":9264,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.name",{"_index":9262,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.opennewtab",{"_index":9266,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.parameters",{"_index":9260,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.url",{"_index":9263,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolvalidationservice",{"_index":8918,"title":{"injectables/ExternalToolValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolversion",{"_index":18328,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["externaltoolversionservice",{"_index":8919,"title":{"injectables/ExternalToolVersionService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["externaluser",{"_index":13131,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.email",{"_index":16466,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.externalid",{"_index":16471,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.firstname",{"_index":16462,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.lastname",{"_index":16464,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.roles",{"_index":16457,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.includes(rolename.administrator",{"_index":18073,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.push(rolename.teacher",{"_index":18074,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluserdto",{"_index":9619,"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":8522,"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":23797,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["extract",{"_index":12046,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["extractaccount",{"_index":13563,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractaccount(user",{"_index":13569,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue",{"_index":13564,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue(value",{"_index":13572,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractids(users",{"_index":6634,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extracting",{"_index":10962,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["extractjwt",{"_index":13181,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromauthheaderasbearertoken",{"_index":13185,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromextractors",{"_index":13184,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor",{"_index":13182,"title":{},"body":{"injectables/JwtStrategy.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["extractor.config",{"_index":14852,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["extractor.controller.ts",{"_index":14831,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["extractor.controller.ts:20",{"_index":14837,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["extractor.module",{"_index":14829,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["extractor.module.ts",{"_index":14850,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["extractor.response.ts",{"_index":14855,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:15",{"_index":14861,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:19",{"_index":14859,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:23",{"_index":14857,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:27",{"_index":14858,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:5",{"_index":14856,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.service.ts",{"_index":14863,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:15",{"_index":14869,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:25",{"_index":14876,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:44",{"_index":14878,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:58",{"_index":14873,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.ts",{"_index":13166,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.ts:6",{"_index":13169,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.uc.ts",{"_index":14911,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractor.uc.ts:13",{"_index":14914,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractor.uc.ts:7",{"_index":14912,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractor/controller/dto/meta",{"_index":14854,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor/controller/meta",{"_index":14830,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["extractor/controller/post",{"_index":10873,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["extractor/meta",{"_index":14826,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.html":{}}}],["extractor/service/meta",{"_index":14862,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor/uc/meta",{"_index":14910,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractparamsfromrequest",{"_index":13810,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractparamsfromrequest(request",{"_index":13817,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractreferences",{"_index":2937,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extractreferences(statuses",{"_index":2962,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extracts",{"_index":2173,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["extractuserlist(users",{"_index":6646,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extractvalidationerrordetails",{"_index":1230,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["extractvalidationerrordetails(validationerror",{"_index":1247,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["f",{"_index":502,"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":2856,"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":23410,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["facilitating",{"_index":22872,"title":{},"body":{"license.html":{}}}],["facilities",{"_index":22525,"title":{},"body":{"license.html":{}}}],["factories",{"_index":7881,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["factory",{"_index":463,"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":512,"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":2400,"title":{},"body":{"classes/BaseFactory.html":{}}}],["factory/account.factory",{"_index":1436,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["fail",{"_index":22416,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failafter",{"_index":13796,"title":{},"body":{"injectables/LdapService.html":{}}}],["failed",{"_index":595,"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":14421,"title":{},"body":{"injectables/LocalStrategy.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failingfileids",{"_index":8039,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.length",{"_index":8040,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.push(result.fileid",{"_index":8047,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.tostring",{"_index":8052,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["fails",{"_index":11621,"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":11364,"title":{},"body":{"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"license.html":{}}}],["fair",{"_index":22522,"title":{},"body":{"license.html":{}}}],["fallback",{"_index":20069,"title":{},"body":{"injectables/TaskUC.html":{}}}],["fallbackhostname",{"_index":5733,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["fallbackimage",{"_index":14907,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["false",{"_index":145,"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":{},"classes/BaseUc.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/GetMetaTagDataBody.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":{},"injectables/SubmissionItemFactory.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":9973,"title":{},"body":{"entities/FileEntity.html":{}}}],["false})@isoptional",{"_index":21864,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["false})@sanitizehtml",{"_index":17411,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["familiar",{"_index":23730,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["familienname",{"_index":18036,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["family",{"_index":22653,"title":{},"body":{"license.html":{}}}],["fantasy",{"_index":22337,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["far",{"_index":13728,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fashion",{"_index":22444,"title":{},"body":{"license.html":{}}}],["fast",{"_index":23407,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["favicon",{"_index":22272,"title":{},"body":{"dependencies.html":{}}}],["favor",{"_index":22659,"title":{},"body":{"license.html":{}}}],["featherjs",{"_index":7096,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathers",{"_index":1716,"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":9838,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersapp.service(path",{"_index":9845,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersauthorizationservice",{"_index":1696,"title":{"injectables/FeathersAuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/NewsUc.html":{}}}],["feathersauthprovider",{"_index":1701,"title":{"injectables/FeathersAuthProvider.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["featherserror",{"_index":8473,"title":{"interfaces/FeathersError.html":{}},"body":{"classes/ErrorUtils.html":{},"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["featherserror)?.type",{"_index":8476,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["feathersexpress",{"_index":9843,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersexpress.services['nest",{"_index":23324,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersjs/authentication",{"_index":22137,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/configuration",{"_index":22140,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/errors",{"_index":7842,"title":{},"body":{"injectables/DashboardUc.html":{},"dependencies.html":{}}}],["feathersjs/express",{"_index":9832,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"dependencies.html":{}}}],["feathersjs/feathers",{"_index":22141,"title":{},"body":{"dependencies.html":{}}}],["feathersmodule",{"_index":1694,"title":{"modules/FeathersModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/FeathersModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersrosterservice",{"_index":9712,"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":9821,"title":{"interfaces/FeathersService.html":{}},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceparams",{"_index":9825,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceprovider",{"_index":8483,"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":9834,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feature",{"_index":6779,"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":22346,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature/sc",{"_index":22336,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature_disabled_app_will_not_be_created",{"_index":16874,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_disabled_middlewares_will_not_be_created",{"_index":16867,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_identity_management_enabled",{"_index":12014,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_login_enabled",{"_index":12015,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_store_enabled",{"_index":12016,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_imscc_course_export_enabled",{"_index":11865,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["features",{"_index":6539,"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":23501,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["federal",{"_index":12201,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolFactory.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstate",{"_index":9871,"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":6531,"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":14003,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatefactory.build",{"_index":14016,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatenames",{"_index":16438,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstatenames.niedersachen",{"_index":16452,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstaterepo",{"_index":9854,"title":{"injectables/FederalStateRepo.html":{}},"body":{"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{}}}],["federalstates",{"_index":6530,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["federalstateservice",{"_index":9860,"title":{"injectables/FederalStateService.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{}}}],["fee",{"_index":22578,"title":{},"body":{"license.html":{}}}],["feedback",{"_index":4895,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feedbacklink",{"_index":4888,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feel",{"_index":1452,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fetch",{"_index":2656,"title":{},"body":{"entities/Board.html":{},"injectables/CourseCopyService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["fetchbase64logo",{"_index":8841,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchbase64logo(logourl",{"_index":8851,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetched",{"_index":8824,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["fetchedentity",{"_index":2311,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["fetchlogo",{"_index":8842,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchlogo(externaltool",{"_index":8853,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchmetadata",{"_index":14864,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["fetchmetadata(url",{"_index":14868,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["fetchmetadata(userid",{"_index":14913,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["fetchoptions",{"_index":14890,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["few",{"_index":23838,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["ffd8ffe0",{"_index":8864,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffd8ffe1",{"_index":8866,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffffff",{"_index":6812,"title":{},"body":{"classes/CourseFactory.html":{}}}],["field",{"_index":12055,"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":2608,"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":2029,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":8072,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.collectionname",{"_index":11735,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["file.data",{"_index":9883,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.dto.ts",{"_index":6238,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:5",{"_index":6242,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:7",{"_index":6243,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:9",{"_index":6241,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.id",{"_index":8070,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.interface",{"_index":5220,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["file.interface.ts",{"_index":11868,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:2",{"_index":11869,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:3",{"_index":11870,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.isdirectory",{"_index":8067,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.mimetype",{"_index":9884,"title":{},"body":{"classes/FileDto.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.name",{"_index":9882,"title":{},"body":{"classes/FileDto.html":{}}}],["file.storagefilename",{"_index":8074,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.storageprovider",{"_index":8076,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file_could_not_be_copied_hint",{"_index":6378,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filecontent",{"_index":11762,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filecontentbody",{"_index":5712,"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":17247,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopy.map((copyfiledto",{"_index":17254,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservice",{"_index":3269,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservicefactory",{"_index":4768,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["filecopystatus",{"_index":6388,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["filecouldnotbecopied",{"_index":6379,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedto",{"_index":6391,"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":9893,"title":{"classes/FileDtoBuilder.html":{}},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(fileinfo.filename",{"_index":9907,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(name",{"_index":9912,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtos",{"_index":6371,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map",{"_index":6397,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map((filedto",{"_index":6390,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileelement",{"_index":2802,"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":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["fileelement.alternativetext",{"_index":5722,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.caption",{"_index":5719,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.id",{"_index":17364,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["fileelementcontent",{"_index":9931,"title":{"classes/FileElementContent.html":{}},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementcontentbody",{"_index":8244,"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":3145,"title":{"entities/FileElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelementnodeprops",{"_index":9942,"title":{"interfaces/FileElementNodeProps.html":{}},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["fileelementprops",{"_index":9929,"title":{"interfaces/FileElementProps.html":{}},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["fileelementresponse",{"_index":3709,"title":{"classes/FileElementResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{}}}],["fileelementresponse)@apiresponse({status",{"_index":3688,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["fileelementresponsemapper",{"_index":5648,"title":{"classes/FileElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper.getinstance",{"_index":5635,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["fileelementresponsemapper.instance",{"_index":9952,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["fileentity",{"_index":8022,"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":10001,"title":{"interfaces/FileEntityProps.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["filegroupstatus",{"_index":6402,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileid",{"_index":6401,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/DeleteFilesUc.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["fileinfo",{"_index":9903,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfo.mimetype",{"_index":9908,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfos",{"_index":10527,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filename",{"_index":6301,"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":11718,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filename=\"${encodeuri(fileresponse.name",{"_index":10653,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filename=\"${encodeuri(params.fwulearningcontent",{"_index":10827,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["filenameobj",{"_index":10194,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameobj.name",{"_index":10196,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameprefix",{"_index":6289,"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":10391,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filenames.map((filename",{"_index":11716,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filenamewithoutextension",{"_index":10193,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["fileownermodel",{"_index":9983,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["fileownermodel.user",{"_index":10462,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["fileparambuilder",{"_index":6376,"title":{"classes/FileParamBuilder.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileParamBuilder.html":{}}}],["fileparambuilder.build(copyentity.getschoolid",{"_index":6383,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparambuilder.build(originalentity.getschoolid",{"_index":6382,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparams",{"_index":6302,"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":10396,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filepermissionentity",{"_index":9981,"title":{"classes/FilePermissionEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionentityprops",{"_index":10067,"title":{"interfaces/FilePermissionEntityProps.html":{}},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionreferencemodel",{"_index":10072,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filerecord",{"_index":6254,"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":6272,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.deletedsince",{"_index":6278,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.getpreviewstatus",{"_index":6280,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.id",{"_index":6261,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.mimetype",{"_index":6274,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name",{"_index":6262,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.parentid",{"_index":6270,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.parenttype",{"_index":6276,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.schoolid",{"_index":10649,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filerecord.securitycheck.status",{"_index":6268,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.size",{"_index":6266,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordcopy",{"_index":10158,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordcopy.securitycheck",{"_index":10160,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordfactory",{"_index":10197,"title":{"classes/FileRecordFactory.html":{}},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordfactory.define(filerecord",{"_index":10204,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordid",{"_index":6305,"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":6286,"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":10225,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse.map((record",{"_index":10552,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordmapper",{"_index":10209,"title":{"classes/FileRecordMapper.html":{}},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordmapper.maptofilerecordresponse(filerecord",{"_index":10224,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordparams",{"_index":6292,"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":6255,"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":10236,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["filerecordparenttype.boardnode",{"_index":17253,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filerecordparenttype.course",{"_index":10206,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordparenttype.lesson",{"_index":10565,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.submission",{"_index":10567,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.task",{"_index":10566,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordrepo",{"_index":10239,"title":{"injectables/FileRecordRepo.html":{}},"body":{"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{}}}],["filerecordresponse",{"_index":6259,"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":10221,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse.id",{"_index":10557,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.name",{"_index":10558,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.parentid",{"_index":10559,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecords",{"_index":10132,"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":10223,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/PreviewService.html":{}}}],["filerecordscanstatus",{"_index":6281,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordscope",{"_index":10250,"title":{"classes/FileRecordScope.html":{}},"body":{"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(false",{"_index":10267,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(true",{"_index":10269,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byparentid(parentid).bymarkedfordelete(false",{"_index":10270,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(false",{"_index":10272,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(true",{"_index":10273,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().bysecuritycheckrequesttoken(token",{"_index":10276,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordsecuritycheck",{"_index":10105,"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":6353,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["fileresponse",{"_index":10321,"title":{},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"classes/TestHelper.html":{}}}],["fileresponse.contentlength",{"_index":10654,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponse.contenttype",{"_index":10652,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponsebuilder",{"_index":10317,"title":{"classes/FileResponseBuilder.html":{}},"body":{"classes/FileResponseBuilder.html":{},"injectables/PreviewService.html":{}}}],["fileresponsebuilder.build(file",{"_index":16812,"title":{},"body":{"injectables/PreviewService.html":{}}}],["files",{"_index":6258,"title":{},"body":{"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":7982,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:15",{"_index":7993,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:6",{"_index":7986,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.interface",{"_index":13308,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["files.interface.ts",{"_index":12077,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["files.length",{"_index":8048,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.map((file",{"_index":8042,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.service",{"_index":10574,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["files.service.ts",{"_index":6360,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:17",{"_index":6366,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:23",{"_index":6368,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:42",{"_index":6370,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:58",{"_index":6374,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.uc.ts",{"_index":8006,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:106",{"_index":8025,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:12",{"_index":8015,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:22",{"_index":8027,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:66",{"_index":8028,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:76",{"_index":8018,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:91",{"_index":8023,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files_storage_s3_connection",{"_index":11981,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{}}}],["filesdto",{"_index":10551,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesecuritycheckentity",{"_index":9985,"title":{"classes/FileSecurityCheckEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckentityprops",{"_index":10323,"title":{"interfaces/FileSecurityCheckEntityProps.html":{}},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus",{"_index":10328,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus.pending",{"_index":10329,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycontroller",{"_index":10331,"title":{"controllers/FileSecurityController.html":{}},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filesmodule",{"_index":10439,"title":{"modules/FilesModule.html":{}},"body":{"modules/FilesModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["filespreviewevents",{"_index":16709,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{}}}],["filespreviewevents.generate_preview",{"_index":16714,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["filespreviewexchange",{"_index":16707,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["filesrepo",{"_index":8013,"title":{"injectables/FilesRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{}}}],["filesservice",{"_index":10471,"title":{"injectables/FilesService.html":{}},"body":{"injectables/FilesService.html":{}}}],["filesservicebaseurl",{"_index":1115,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["filesstorageamqpmodule",{"_index":10493,"title":{"modules/FilesStorageAMQPModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules.html":{}}}],["filesstorageapimodule",{"_index":10502,"title":{"modules/FilesStorageApiModule.html":{}},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filesstorageclientadapterservice",{"_index":6365,"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":10057,"title":{"classes/FilesStorageClientMapper.html":{}},"body":{"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapcopyfilelistresponsetocopyfilesdto(response",{"_index":10528,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapcopyfileresponsetocopyfiledto(response",{"_index":10555,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapentitytoparenttype(parent",{"_index":10059,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["filesstorageclientmapper.mapfilerecordlistresponsetodomainfilesdto(response",{"_index":10530,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapfilerecordresponsetofiledto(record",{"_index":10553,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapstringtoparenttype(filerecordresponse.parenttype",{"_index":10556,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmodule",{"_index":3530,"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":10498,"title":{"injectables/FilesStorageConsumer.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageConsumer.html":{}}}],["filesstoragecontroller",{"_index":10506,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["filesstorageevents",{"_index":10598,"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":10605,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.delete_files_of_parent",{"_index":10611,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.list_files_of_parent",{"_index":10607,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageexchange",{"_index":10585,"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":1162,"title":{},"body":{"injectables/AntivirusService.html":{},"controllers/FileSecurityController.html":{}}}],["filesstoragemapper",{"_index":10602,"title":{"classes/FilesStorageMapper.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{}}}],["filesstoragemapper.maptofilerecordlistresponse(filerecords",{"_index":10610,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstoragemapper.maptofilerecordresponse(filerecord",{"_index":10650,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filesstoragemodule",{"_index":10497,"title":{"modules/FilesStorageModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["filesstorageproducer",{"_index":10516,"title":{"injectables/FilesStorageProducer.html":{}},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{}}}],["filesstorageservice",{"_index":10580,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["filesstoragetestmodule",{"_index":10726,"title":{"modules/FilesStorageTestModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules.html":{}}}],["filesstorageuc",{"_index":10344,"title":{},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filestatuses",{"_index":6396,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filestorageauthorizationcontext",{"_index":23760,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["filestorageconfig",{"_index":11987,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["filestoragemqproducer",{"_index":10515,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesystem",{"_index":7866,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["filesystemadapter",{"_index":10357,"title":{"injectables/FileSystemAdapter.html":{}},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filesystemmodule",{"_index":10428,"title":{"modules/FileSystemModule.html":{}},"body":{"modules/FileSystemModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filetype",{"_index":17186,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["filetyperesult",{"_index":17189,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["fileupload_enabled=false",{"_index":23705,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["fileurlparams",{"_index":6300,"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":6372,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements",{"_index":6386,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements.foreach",{"_index":19701,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["fill",{"_index":23553,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["filled",{"_index":8972,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["filledtemplate",{"_index":8874,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["filter",{"_index":4321,"title":{},"body":{"classes/ClassFilterParams.html":{},"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":11744,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filter((element",{"_index":6485,"title":{},"body":{"classes/CopyMapper.html":{}}}],["filter((entity",{"_index":19495,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["filter((group",{"_index":18131,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((groupuser",{"_index":11300,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["filter((key",{"_index":9468,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["filter((match",{"_index":13052,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["filter((rolename",{"_index":21461,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["filter((sanisgroupuser",{"_index":18120,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((user",{"_index":13724,"title":{},"body":{"classes/KeycloakSeedService.html":{},"injectables/SanisResponseMapper.html":{}}}],["filter(issubmissionitem",{"_index":8330,"title":{},"body":{"injectables/ElementUc.html":{}}}],["filter.ts",{"_index":15260,"title":{},"body":{"interfaces/NewsTargetFilter.html":{}}}],["filter/global",{"_index":8451,"title":{},"body":{"modules/ErrorModule.html":{}}}],["filterallowed",{"_index":4152,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterallowed(userid",{"_index":4161,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterbypermission",{"_index":8129,"title":{},"body":{"classes/DtoCreator.html":{}}}],["filterbypermission(elements",{"_index":8147,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtercoursesbytoolavailability",{"_index":9720,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["filtercoursesbytoolavailability(courses",{"_index":9734,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["filtered",{"_index":6432,"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":6436,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filtered.length",{"_index":6435,"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":6438,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filteredaccounts",{"_index":938,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts.length",{"_index":942,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts[0].id.tostring",{"_index":949,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredcollectionswithfilepaths",{"_index":11729,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredcollectionswithfilepaths.length",{"_index":11732,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredpathobjects",{"_index":17987,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["filteredtoolreferences",{"_index":20794,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["filteredusers",{"_index":16502,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["filterforavailableexternaltools",{"_index":8591,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableexternaltools(externaltools",{"_index":8599,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools",{"_index":8592,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools(schoolexternaltools",{"_index":8604,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools",{"_index":8593,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools(externaltools",{"_index":8608,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterimportuserparams",{"_index":10739,"title":{"classes/FilterImportUserParams.html":{}},"body":{"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["filtermatchtype",{"_index":10752,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.auto",{"_index":12920,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.manual",{"_index":12922,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.none",{"_index":12924,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filternewsparams",{"_index":10765,"title":{"classes/FilterNewsParams.html":{}},"body":{"classes/FilterNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["filterparametersforscope",{"_index":8594,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparametersforscope(externaltool",{"_index":8611,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparams",{"_index":11037,"title":{},"body":{"controllers/GroupController.html":{},"controllers/SystemController.html":{}}}],["filterparams.onlyoauth",{"_index":19389,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterparams.type",{"_index":11059,"title":{},"body":{"controllers/GroupController.html":{}}}],["filterquery",{"_index":2288,"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":10757,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/RoleNameMapper.html":{}}}],["filterroletype.admin",{"_index":17622,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.student",{"_index":17624,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.teacher",{"_index":17623,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filters",{"_index":6968,"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":19907,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.classes",{"_index":12972,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.finished.value",{"_index":19900,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.firstname",{"_index":12964,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.flagged",{"_index":12976,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.lastname",{"_index":12966,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.loginname",{"_index":12968,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.matches",{"_index":12974,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.name.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":21621,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters.role",{"_index":12970,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters?.afterduedateornone",{"_index":19903,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.availableon",{"_index":19905,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.draft",{"_index":19911,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.finished",{"_index":19898,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.hidden",{"_index":14239,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["filters?.name",{"_index":21618,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters?.nofutureavailabledate",{"_index":19913,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.onlyactivecourses",{"_index":6995,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["filtersubmissionsbypermission",{"_index":19312,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtersubmissionsbypermission(submissions",{"_index":19316,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtertoolswithpermissions",{"_index":6118,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filtertoolswithpermissions(userid",{"_index":6130,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filterundefined",{"_index":14644,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["filteruserparams",{"_index":10776,"title":{"classes/FilterUserParams.html":{}},"body":{"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/UserMatchMapper.html":{}}}],["final",{"_index":11393,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["finally",{"_index":14970,"title":{},"body":{"classes/MigrationResponse.html":{},"license.html":{}}}],["find",{"_index":4691,"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":{},"injectables/SubmissionItemUc.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":8331,"title":{},"body":{"injectables/ElementUc.html":{}}}],["find(@query",{"_index":19386,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(filterparams",{"_index":19364,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(params",{"_index":9828,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["find(query",{"_index":5921,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["findaccountbydbcaccountid",{"_index":12692,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcaccountid(accountdbcaccountid",{"_index":12706,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid",{"_index":12693,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid(accountdbcuserid",{"_index":12710,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid",{"_index":264,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid(accountid",{"_index":12713,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["findaccountbyid(currentuser",{"_index":295,"title":{},"body":{"controllers/AccountController.html":{}}}],["findaccountbyid(id",{"_index":13576,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername",{"_index":12694,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername(username",{"_index":12715,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findall",{"_index":15067,"title":{},"body":{"controllers/NewsController.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findall(currentuser",{"_index":15073,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TaskController.html":{}}}],["findall(userid",{"_index":20032,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallbyconfigtype",{"_index":9076,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbyconfigtype(type",{"_index":9083,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbycontext",{"_index":6090,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycontext(contextref",{"_index":6098,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycourseids",{"_index":14226,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbycourseids(courseids",{"_index":14229,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbyparentids",{"_index":19824,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyparentids(parentids",{"_index":19830,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyschoolid",{"_index":4473,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbyschoolid(schoolid",{"_index":4476,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbytask",{"_index":19284,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{}}}],["findallbytask(taskid",{"_index":19289,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findallbytask(userid",{"_index":19318,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["findallbytaskids",{"_index":19232,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbytaskids(taskids",{"_index":19236,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbyuser",{"_index":7037,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuser(userid",{"_index":7039,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuserid",{"_index":4428,"title":{},"body":{"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallbyuserid(userid",{"_index":4434,"title":{},"body":{"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallcoursegroupsbyuserid",{"_index":6864,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursegroupsbyuserid(userid",{"_index":6869,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursesbyuserid",{"_index":7022,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallcoursesbyuserid(userid",{"_index":7027,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallfinished",{"_index":19624,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findallfinished(currentuser",{"_index":19634,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallfinished(userid",{"_index":20034,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallfinishedbyparentids",{"_index":19825,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallfinishedbyparentids(parentids",{"_index":19834,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallforstudent",{"_index":20024,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforstudent(user",{"_index":20036,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher",{"_index":6963,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/TaskUC.html":{}}}],["findallforteacher(user",{"_index":20038,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher(userid",{"_index":6971,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher",{"_index":6964,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher(userid",{"_index":6973,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findallforteam",{"_index":20153,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforteam(urlparams",{"_index":20154,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforuser",{"_index":15262,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallforuser(userid",{"_index":15272,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallimportusers",{"_index":12751,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallimportusers(currentuser",{"_index":12761,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findalllessonsbyuserid",{"_index":14292,"title":{},"body":{"injectables/LessonService.html":{}}}],["findalllessonsbyuserid(userid",{"_index":14299,"title":{},"body":{"injectables/LessonService.html":{}}}],["findallpublished",{"_index":15194,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallpublished(targets",{"_index":15197,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findalltasks",{"_index":19625,"title":{},"body":{"controllers/TaskController.html":{}}}],["findalltasks(currentuser",{"_index":19637,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallunmatchedusers",{"_index":12752,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunmatchedusers(currentuser",{"_index":12764,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunpublishedbyuser",{"_index":15195,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallunpublishedbyuser(targets",{"_index":15200,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findandcount",{"_index":10241,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findandcount(scope",{"_index":10249,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findboard",{"_index":3777,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboard(userid",{"_index":3785,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext",{"_index":3778,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext(userid",{"_index":3787,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findbyclassandid",{"_index":3273,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclassandid(doclass",{"_index":3286,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclientidandislocal",{"_index":14708,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(clientid",{"_index":14761,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(oauthclientid",{"_index":14711,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbycourseid",{"_index":3622,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseid(courseid",{"_index":3627,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseids",{"_index":6842,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbycourseids(courseids",{"_index":6843,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbydescendant",{"_index":4816,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbydescendant(boarddo",{"_index":4828,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyemail",{"_index":21594,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyemail(email",{"_index":21598,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid",{"_index":14028,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid(externalid",{"_index":14032,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalidorfail",{"_index":20981,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalidorfail(externalid",{"_index":20988,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalsource",{"_index":11155,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternalsource(externalid",{"_index":11159,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternaltoolid",{"_index":18200,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyexternaltoolid(toolid",{"_index":18209,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyfilter",{"_index":19510,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyfilter(type",{"_index":19512,"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":4830,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyid(cardid",{"_index":4107,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyid(columnid",{"_index":5005,"title":{},"body":{"injectables/ColumnService.html":{}}}],["findbyid(contextexternaltoolid",{"_index":6100,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findbyid(courseid",{"_index":7029,"title":{},"body":{"injectables/CourseService.html":{}}}],["findbyid(elementid",{"_index":5667,"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":14302,"title":{},"body":{"injectables/LessonService.html":{}}}],["findbyid(schoolexternaltoolid",{"_index":18283,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findbyid(submissionid",{"_index":19292,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findbyid(taskid",{"_index":20002,"title":{},"body":{"injectables/TaskService.html":{}}}],["findbyids",{"_index":3274,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyids(cardids",{"_index":4110,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyids(ids",{"_index":3291,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyname",{"_index":9077,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbyname(name",{"_index":9085,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbynames",{"_index":17630,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbynames(names",{"_index":17633,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbyoauth2configclientid",{"_index":9078,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauth2configclientid(clientid",{"_index":9087,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauthclientid",{"_index":14709,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyoauthclientid(oauthclientid",{"_index":14714,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyowneruserid",{"_index":10445,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyowneruserid(owneruserid",{"_index":10449,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyparentid",{"_index":10242,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyparentid(parentid",{"_index":10252,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbypermissionrefid",{"_index":10446,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbypermissionrefid(permissionrefid",{"_index":10452,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyschoolid",{"_index":18201,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolid(schoolid",{"_index":18211,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolidandparentid",{"_index":10243,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentid(schoolid",{"_index":10254,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete",{"_index":10244,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete(schoolid",{"_index":10256,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolnumber",{"_index":14029,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyschoolnumber(officialschoolnumber",{"_index":14034,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyscopeandscopeid",{"_index":22085,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbyscopeandscopeid(scopeid",{"_index":22086,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbysecuritycheckrequesttoken",{"_index":10245,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysecuritycheckrequesttoken(token",{"_index":10258,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysingleparent",{"_index":19826,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbysingleparent(creatorid",{"_index":19836,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbytype",{"_index":19542,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbytype(type",{"_index":19546,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbyuser",{"_index":11156,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuser(user",{"_index":11162,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuserandtoolorthrow",{"_index":17063,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findbyuserandtoolorthrow(user",{"_index":15410,"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":9019,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolid(userid",{"_index":9031,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail",{"_index":9020,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail(userid",{"_index":9033,"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":4153,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcards(userid",{"_index":4164,"title":{},"body":{"injectables/CardUc.html":{}}}],["findclasses",{"_index":11035,"title":{},"body":{"controllers/GroupController.html":{}}}],["findclasses(pagination",{"_index":11036,"title":{},"body":{"controllers/GroupController.html":{}}}],["findclassesforschool",{"_index":4429,"title":{},"body":{"injectables/ClassService.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findclassesforschool(schoolid",{"_index":4436,"title":{},"body":{"injectables/ClassService.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findcontextexternaltools",{"_index":6091,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcontextexternaltools(query",{"_index":6102,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcurrentyear",{"_index":18523,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["finddescendants",{"_index":3583,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendants(node",{"_index":3587,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany",{"_index":3584,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany(nodes",{"_index":3589,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddocumentsofcollection",{"_index":7938,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["finddocumentsofcollection(collectionname",{"_index":7950,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["findevent",{"_index":3941,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findevent(userid",{"_index":3944,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findexistinggridelement",{"_index":7713,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistinggridelement(elementwithposition",{"_index":7726,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistingtargets",{"_index":4925,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexistingtargets(columnboardids",{"_index":4929,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexternaltool",{"_index":9473,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["findexternaltool(currentuser",{"_index":20525,"title":{},"body":{"controllers/ToolController.html":{}}}],["findexternaltool(userid",{"_index":9483,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["findexternaltoolbyname",{"_index":9359,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname(name",{"_index":9377,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid",{"_index":9360,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid(clientid",{"_index":9379,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolpseudonymsbyuserid",{"_index":17064,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltoolpseudonymsbyuserid(userid",{"_index":17078,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltools",{"_index":9361,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltools(query",{"_index":9381,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findfederalstatebyname",{"_index":9864,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfederalstatebyname(name",{"_index":9867,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfilesaccessiblebyuser",{"_index":10473,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesaccessiblebyuser(userid",{"_index":10478,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser",{"_index":10474,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser(userid",{"_index":10480,"title":{},"body":{"injectables/FilesService.html":{}}}],["findforcleanup",{"_index":10447,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforcleanup(thresholddate",{"_index":10455,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforuser",{"_index":6672,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findforuser(@currentuser",{"_index":7453,"title":{},"body":{"controllers/DashboardController.html":{}}}],["findforuser(currentuser",{"_index":6678,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findidsbyexternalreference",{"_index":3275,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findidsbyexternalreference(reference",{"_index":3293,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findimportusers",{"_index":12943,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusers(school",{"_index":12949,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount",{"_index":12944,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount(query",{"_index":12951,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["finding",{"_index":3602,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["findlegacyltitool",{"_index":15346,"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":21340,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyschool(schoolid",{"_index":21351,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser",{"_index":21341,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser(userid",{"_index":21353,"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":15196,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnewsandcount(query",{"_index":15202,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnextcloudtool",{"_index":15347,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findone",{"_index":6965,"title":{},"body":{"injectables/CourseRepo.html":{},"controllers/NewsController.html":{}}}],["findone(@param",{"_index":15101,"title":{},"body":{"controllers/NewsController.html":{}}}],["findone(courseid",{"_index":6976,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findone(urlparams",{"_index":15076,"title":{},"body":{"controllers/NewsController.html":{}}}],["findonebyid",{"_index":10246,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyid(id",{"_index":10260,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyidforuser",{"_index":15263,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidforuser(id",{"_index":15277,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidmarkedfordelete",{"_index":10247,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebyidmarkedfordelete(id",{"_index":10262,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebytoken",{"_index":18804,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findonebytoken(token",{"_index":18805,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findoneorfail",{"_index":10248,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfail(scope",{"_index":10264,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfailhandler",{"_index":10689,"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":17065,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatepseudonym(user",{"_index":17080,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatetargets",{"_index":4926,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findorcreatetargets(columnboardids",{"_index":4932,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findparentofid",{"_index":3276,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{}}}],["findparentofid(childid",{"_index":3296,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findparentofid(elementid",{"_index":5669,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["findpseudonym",{"_index":9021,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonym(query",{"_index":9035,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonymbypseudonym",{"_index":9022,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{}}}],["findpseudonymbypseudonym(pseudonym",{"_index":9038,"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":17116,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["findpseudonymsbyuserid",{"_index":17066,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findpseudonymsbyuserid(userid",{"_index":17084,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["finds",{"_index":692,"title":{},"body":{"injectables/AccountRepo.html":{},"controllers/SystemController.html":{},"injectables/TeamsRepo.html":{}}}],["findschoolexternaltools",{"_index":18272,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["findschoolexternaltools(query",{"_index":18284,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findschoolexternaltools(userid",{"_index":18313,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["findstatusesbytask",{"_index":19081,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findstatusesbytask(currentuser",{"_index":19085,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findsubmissionitems",{"_index":19199,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsubmissionitems(userid",{"_index":19203,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findtasksandcount",{"_index":19827,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findtasksandcount(query",{"_index":19838,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findteambyid",{"_index":4680,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findteambyid(teamid",{"_index":4688,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findtoolbyclientid",{"_index":16067,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["findtoolbyclientid(clientid",{"_index":16071,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["finduserafterprovisioningorthrow",{"_index":15503,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserafterprovisioningorthrow(externaluserid",{"_index":15520,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserdatafromteams",{"_index":20205,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserdatafromteams(userid",{"_index":20210,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserloginmigrationbyschool",{"_index":21127,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["finduserloginmigrationbyschool(user",{"_index":21140,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["finduserloginmigrationbyschool(userid",{"_index":21399,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["findusers",{"_index":21670,"title":{},"body":{"injectables/UserService.html":{}}}],["findusers(query",{"_index":21681,"title":{},"body":{"injectables/UserService.html":{}}}],["findwithoutimportuser",{"_index":21595,"title":{},"body":{"injectables/UserRepo.html":{}}}],["findwithoutimportuser(school",{"_index":21602,"title":{},"body":{"injectables/UserRepo.html":{}}}],["fine",{"_index":23441,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["finish",{"_index":19626,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(@param",{"_index":19664,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(urlparams",{"_index":19639,"title":{},"body":{"controllers/TaskController.html":{}}}],["finishcoursecopying",{"_index":6712,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishcoursecopying(coursecopy",{"_index":6723,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finished",{"_index":8004,"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":19767,"title":{},"body":{"classes/TaskFactory.html":{}}}],["finishedat",{"_index":18433,"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":6740,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishedcourseids",{"_index":19851,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["finishedids",{"_index":12496,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids",{"_index":12494,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids.map((id",{"_index":12497,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserid",{"_index":12508,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids",{"_index":12504,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids.some((finisheduserid",{"_index":12507,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishforuser(user",{"_index":12557,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishing",{"_index":18431,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["first",{"_index":359,"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":16401,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["firstchar",{"_index":6657,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["firstclass",{"_index":12843,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["firstname",{"_index":651,"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":13032,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["firstnamesearchvalues",{"_index":11813,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["firstvaluefrom",{"_index":2183,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["firstvaluefrom(observable",{"_index":2197,"title":{},"body":{"injectables/BBBService.html":{}}}],["firstvaluefrom(respobservable",{"_index":11587,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["fishery",{"_index":525,"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":5486,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["fitness",{"_index":22893,"title":{},"body":{"license.html":{}}}],["fix",{"_index":1685,"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":23113,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["fixed",{"_index":6954,"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":22985,"title":{},"body":{"todo.html":{}}}],["fixing",{"_index":23830,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["fixme",{"_index":4440,"title":{},"body":{"injectables/ClassService.html":{},"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":23536,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fixups",{"_index":23603,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["flag",{"_index":10774,"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":20862,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flag.params.ts:7",{"_index":20864,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flagged",{"_index":10742,"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":7879,"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":18388,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["flexible",{"_index":23188,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["flow",{"_index":13394,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["flow.id",{"_index":13408,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flow.service",{"_index":12651,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["flow.service.ts",{"_index":16066,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:11",{"_index":16070,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:18",{"_index":16072,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:39",{"_index":16074,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.uc",{"_index":16009,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["flow.uc.ts",{"_index":15926,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:106",{"_index":16096,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:15",{"_index":15932,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:19",{"_index":16088,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:21",{"_index":15936,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:26",{"_index":15938,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:28",{"_index":16092,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:33",{"_index":16094,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:48",{"_index":16090,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:50",{"_index":15941,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:58",{"_index":15934,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:6",{"_index":16122,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:80",{"_index":15944,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:9",{"_index":16124,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:94",{"_index":16098,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flowalias",{"_index":13391,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["flows",{"_index":13404,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flows.find((tempflow",{"_index":13406,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flush",{"_index":681,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["fn",{"_index":3484,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fn(i",{"_index":3520,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fname",{"_index":972,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["folder",{"_index":7890,"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":11348,"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":15380,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foldername",{"_index":15391,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["folderpath",{"_index":10374,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["folders",{"_index":15394,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["folgendem",{"_index":4897,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["follow",{"_index":5514,"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":8051,"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":23626,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["foo",{"_index":23132,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["foractivecourses",{"_index":6986,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forallgrouptypes",{"_index":7011,"title":{},"body":{"classes/CourseScope.html":{}}}],["forallgrouptypes(userid",{"_index":6981,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forbid",{"_index":22558,"title":{},"body":{"license.html":{}}}],["forbidden",{"_index":10791,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/ToolLaunchController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["forbidden'})@apibadrequestresponse({description",{"_index":20580,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["forbidden_exception",{"_index":10784,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["forbidden_operation",{"_index":10790,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["forbiddenexception",{"_index":2468,"title":{},"body":{"classes/BaseUc.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/ErrorMapper.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/H5PEditorController.html":{},"injectables/LessonCopyUC.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/RoomsUc.html":{},"controllers/ShareTokenController.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":15961,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["forbiddenexception('accessing",{"_index":21410,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["forbiddenexception('could",{"_index":14197,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["forbiddenexception('some",{"_index":23374,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["forbiddenexception('user",{"_index":2478,"title":{},"body":{"classes/BaseUc.html":{}}}],["forbiddenexception('you",{"_index":17841,"title":{},"body":{"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["forbiddenexception(`cannot",{"_index":2762,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["forbiddenexception(errorobj.message",{"_index":8441,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["forbiddenexception(errorstatus.guests_cannot_join_conference",{"_index":22000,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["forbiddenexception(errorstatus.insufficient_permission",{"_index":21915,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["forbiddenexception})@apiresponse({status",{"_index":2876,"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":4006,"title":{},"body":{"controllers/CardController.html":{}}}],["forbiddenexception})@get(':submissioncontainerid",{"_index":3697,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["forbiddenloggableexception",{"_index":1789,"title":{"classes/ForbiddenLoggableException.html":{}},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenloggableexception(user.id",{"_index":1820,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenloggableexception(userid",{"_index":1792,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenoperationerror",{"_index":288,"title":{"classes/ForbiddenOperationError.html":{}},"body":{"controllers/AccountController.html":{},"classes/ForbiddenOperationError.html":{},"controllers/LoginController.html":{}}}],["forbidnonwhitelisted",{"_index":10961,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["forbidunknownvalues",{"_index":10963,"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":3817,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force.error.ts:5",{"_index":3819,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force_subject_identifier",{"_index":132,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["forcepasswordchange",{"_index":12596,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["forcepathstyle",{"_index":8061,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["forceserverobjectid",{"_index":7965,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["forceupdate",{"_index":6319,"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":7012,"title":{},"body":{"classes/CourseScope.html":{}}}],["forcourseid(courseid",{"_index":6990,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["foreach((key",{"_index":9470,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["foreign",{"_index":13848,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["foreignfield",{"_index":21626,"title":{},"body":{"injectables/UserRepo.html":{}}}],["form",{"_index":13559,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"license.html":{}}}],["format",{"_index":348,"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":20471,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["format.'})@apiresponse({status",{"_index":286,"title":{},"body":{"controllers/AccountController.html":{},"controllers/LoginController.html":{}}}],["format.types",{"_index":12456,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/RichText.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["formatted",{"_index":571,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["formattedjwt",{"_index":1457,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["formatting",{"_index":23111,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["forms",{"_index":22604,"title":{},"body":{"license.html":{}}}],["forroot",{"_index":1102,"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":1103,"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":18654,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forteacher",{"_index":7013,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacher(userid",{"_index":6985,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher",{"_index":7014,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher(userid",{"_index":6984,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forwardref",{"_index":1764,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/MetaTagExtractorApiModule.html":{},"modules/PseudonymModule.html":{},"injectables/SubmissionItemUc.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["found",{"_index":292,"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":8351,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.error.ts:4",{"_index":8353,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.exception",{"_index":8663,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["found.loggable",{"_index":15442,"title":{},"body":{"classes/NotFoundLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["found.loggable.ts",{"_index":18338,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:4",{"_index":18339,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:7",{"_index":18340,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["foundaccount.systemid",{"_index":940,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{}}}],["foundaccounts",{"_index":438,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/KeycloakMigrationService.html":{}}}],["foundation",{"_index":22362,"title":{},"body":{"license.html":{}}}],["foundentry",{"_index":5426,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.name",{"_index":5480,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.value",{"_index":5477,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry?.value",{"_index":5473,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundpseudonym",{"_index":17118,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundpseudonym.userid",{"_index":17120,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundschool",{"_index":18516,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundschool.id",{"_index":18518,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundtools",{"_index":15432,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools.length",{"_index":15434,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools[0",{"_index":15437,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundusers",{"_index":927,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["foundusers.length",{"_index":941,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers[0].id.tostring",{"_index":947,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["frame",{"_index":11381,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["free",{"_index":1453,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["freedom",{"_index":22380,"title":{},"body":{"license.html":{}}}],["freejoin",{"_index":2123,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["freeport",{"_index":22222,"title":{},"body":{"dependencies.html":{}}}],["freuen",{"_index":4891,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["friendly",{"_index":7375,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["friendlyurl",{"_index":7199,"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":21863,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["from.options",{"_index":22122,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.permission",{"_index":22120,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.url",{"_index":22121,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["fromcookie",{"_index":13167,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromcookie(name",{"_index":13168,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromgroup",{"_index":10969,"title":{},"body":{"classes/GridElement.html":{}}}],["fromgroup(title",{"_index":7546,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedgroup",{"_index":10970,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedgroup(id",{"_index":7544,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedreference",{"_index":10971,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedreference(id",{"_index":7543,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["fromsinglereference",{"_index":10972,"title":{},"body":{"classes/GridElement.html":{}}}],["fromsinglereference(reference",{"_index":7545,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["front",{"_index":14547,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["frontchannel",{"_index":15711,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["frontchannel_logout_uri",{"_index":7202,"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":7350,"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":10410,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.accountsfile",{"_index":13731,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.usersfile",{"_index":13733,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.rm",{"_index":10423,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fsp",{"_index":10408,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fulfil",{"_index":23563,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fulfill",{"_index":23199,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fulfilling",{"_index":22544,"title":{},"body":{"license.html":{}}}],["fulfills",{"_index":23386,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["fulfils",{"_index":23842,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["full",{"_index":10382,"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":17444,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fullname",{"_index":2055,"title":{},"body":{"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["fullpath",{"_index":17417,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fully",{"_index":21419,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["function",{"_index":474,"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":6500,"title":{},"body":{"modules/CoreModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["functionalities",{"_index":23610,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["functionality",{"_index":20116,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["functioning",{"_index":22673,"title":{},"body":{"license.html":{}}}],["functions",{"_index":21357,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["funktionen",{"_index":4862,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["further",{"_index":22629,"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":23500,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fut.somefunction",{"_index":23520,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["future",{"_index":1752,"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":{},"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":10799,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["fwu_content_s3_connection",{"_index":10852,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["fwulearningcontent",{"_index":10863,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["fwulearningcontentscontroller",{"_index":10794,"title":{"controllers/FwuLearningContentsController.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["fwulearningcontentsmodule",{"_index":10829,"title":{"modules/FwuLearningContentsModule.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules.html":{}}}],["fwulearningcontentstestmodule",{"_index":10840,"title":{"modules/FwuLearningContentsTestModule.html":{}},"body":{"modules/FwuLearningContentsTestModule.html":{},"modules.html":{}}}],["fwulearningcontentsuc",{"_index":10804,"title":{"injectables/FwuLearningContentsUc.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["g",{"_index":6394,"title":{},"body":{"injectables/CopyFilesService.html":{},"additional-documentation/nestjs-application.html":{}}}],["gates",{"_index":23114,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["general",{"_index":20117,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["generall",{"_index":2347,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["generally",{"_index":22506,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["generate",{"_index":500,"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":16770,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generatearray",{"_index":3471,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatearray(length",{"_index":3483,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatebrokersystems",{"_index":19543,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatebrokersystems(systems",{"_index":19548,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatechecksum",{"_index":2129,"title":{},"body":{"injectables/BBBService.html":{}}}],["generatechecksum(callname",{"_index":2151,"title":{},"body":{"injectables/BBBService.html":{}}}],["generateconfig",{"_index":11496,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generateconfig(oauthclientid",{"_index":11504,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generated",{"_index":6317,"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":2405,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedid.tohexstring",{"_index":2408,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedsystem",{"_index":19576,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.id",{"_index":19578,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig",{"_index":19579,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.idphint",{"_index":19580,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.redirecturi",{"_index":19582,"title":{},"body":{"injectables/SystemService.html":{}}}],["generateemptydashboard",{"_index":7810,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generateemptydashboard(userid",{"_index":7823,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generategroupfoldername",{"_index":15348,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupfoldername(teamid",{"_index":15359,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid",{"_index":15349,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid(dto",{"_index":15363,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generatejwt",{"_index":1516,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatejwt(user",{"_index":1526,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatelaunchrequest",{"_index":20659,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatelaunchrequest(toollaunchdata",{"_index":20664,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatepreview",{"_index":16702,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(@rabbitpayload",{"_index":16715,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generatepreview(params",{"_index":16744,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(payload",{"_index":16706,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generates",{"_index":15361,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generateseeddata",{"_index":11683,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generateseeddata((s",{"_index":11742,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generatesharetoken",{"_index":20359,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generating",{"_index":23122,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["generator",{"_index":506,"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":16750,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.builder.ts",{"_index":16697,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.builder.ts:6",{"_index":16699,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.consumer",{"_index":16723,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["generator.consumer.ts",{"_index":16701,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:10",{"_index":16705,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:20",{"_index":16708,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.service",{"_index":16712,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/ShareTokenService.html":{}}}],["generator.service.ts",{"_index":16735,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/TokenGenerator.html":{}}}],["generator.service.ts:12",{"_index":16740,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:18",{"_index":16745,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:37",{"_index":16742,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:43",{"_index":16747,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:7",{"_index":20360,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generator/interface/preview",{"_index":16685,"title":{},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["generator/interface/preview.ts",{"_index":16688,"title":{},"body":{"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["generator/loggable/preview",{"_index":16658,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["generator/preview",{"_index":16696,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["generator/preview.producer.ts",{"_index":16768,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:11",{"_index":16769,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:23",{"_index":16771,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generatorfn",{"_index":507,"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":23826,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["generic",{"_index":23164,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["genericdata",{"_index":983,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["genericsortfunction",{"_index":18969,"title":{},"body":{"classes/SortHelper.html":{}}}],["genericsortfunction(a",{"_index":18970,"title":{},"body":{"classes/SortHelper.html":{}}}],["geogebra",{"_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":{},"additional-documentation/nestjs-application/git.html":{}}}],["geschlecht",{"_index":18043,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["get('*/:fwulearningcontent",{"_index":10802,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get('/:contentid/edit",{"_index":11390,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contentid/play",{"_index":11387,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contexttype/:contextid",{"_index":20747,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:contexttype/:contextid')@apioperation({summary",{"_index":20739,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:externaltoolid/logo",{"_index":20564,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo')@apioperation({summary",{"_index":20533,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:groupid",{"_index":11064,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/:groupid')@apioperation({summary",{"_index":11046,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/class",{"_index":11057,"title":{},"body":{"controllers/GroupController.html":{}}}],["get(':boardid",{"_index":2910,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':boardid/context",{"_index":2914,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':contextexternaltoolid",{"_index":20505,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apinotfoundresponse()@apiokresponse({description",{"_index":20478,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid",{"_index":20500,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid')@apiforbiddenresponse()@apiunauthorizedresponse()@apiokresponse({description",{"_index":20483,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid/available",{"_index":20406,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get(':courseid/export",{"_index":6676,"title":{},"body":{"controllers/CourseController.html":{}}}],["get(':externaltoolid",{"_index":20554,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':externaltoolid')@apioperation({summary",{"_index":20530,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':id",{"_index":351,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':id')@apioperation({summary",{"_index":296,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':newsid",{"_index":15077,"title":{},"body":{"controllers/NewsController.html":{}}}],["get(':pseudonym",{"_index":17019,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':pseudonym')@apifoundresponse({description",{"_index":17009,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':roomid/board",{"_index":17770,"title":{},"body":{"controllers/RoomsController.html":{}}}],["get(':schoolexternaltoolid",{"_index":20824,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20809,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolid/migration",{"_index":13971,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':schoolid/migration')@authenticate('jwt')@apifoundresponse({description",{"_index":13942,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':scope/:scopeid",{"_index":21960,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid')@apioperation({summary",{"_index":21938,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid/end",{"_index":21850,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/end')@apioperation({summary",{"_index":21806,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info",{"_index":21847,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info')@apioperation({summary",{"_index":21812,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join",{"_index":21844,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join')@apioperation({summary",{"_index":21816,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':submissioncontainerid",{"_index":3714,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["get(':teamid/news",{"_index":20156,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["get(':token",{"_index":18738,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["get('auth/:oauthclientid",{"_index":16301,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/:oauthclientid')@authenticate('jwt",{"_index":16226,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/sessions/consent",{"_index":16054,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('baseurl",{"_index":15986,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients",{"_index":16022,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients/:id",{"_index":16019,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('consentrequest/:challenge",{"_index":16047,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('context",{"_index":20415,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["get('context/:contextexternaltoolid/launch",{"_index":20587,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('context/:contextexternaltoolid/launch')@apioperation({summary",{"_index":20576,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('finished",{"_index":19635,"title":{},"body":{"controllers/TaskController.html":{}}}],["get('hydra/:oauthclientid",{"_index":16297,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('hydra/:oauthclientid')@authenticate('jwt",{"_index":16216,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('login/:systemid",{"_index":16212,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('loginrequest/:challenge",{"_index":15982,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('me",{"_index":20926,"title":{},"body":{"controllers/UserController.html":{}}}],["get('oauth",{"_index":16231,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration",{"_index":16307,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration')@authenticate('jwt')@apiokresponse({description",{"_index":16219,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('page",{"_index":21473,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["get('public",{"_index":19385,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public')@apioperation({summary",{"_index":19366,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid",{"_index":19391,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid')@apioperation({summary",{"_index":19372,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('school",{"_index":20421,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('school/:schoolid/available",{"_index":20411,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('schools/:schoolid",{"_index":21193,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('schools/:schoolid')@apiforbiddenresponse()@apiokresponse({description",{"_index":21141,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('status/task/:taskid",{"_index":19087,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["get('unassigned",{"_index":12765,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["get()@apiforbiddenresponse()@apioperation({summary",{"_index":21147,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get()@apifoundresponse({description",{"_index":20526,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["get()@apioperation({summary",{"_index":312,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(`${this.options.uri}${path",{"_index":1074,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10346,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["get(id",{"_index":9830,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["get(path",{"_index":1070,"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":10800,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get(subpath",{"_index":1464,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["get(url",{"_index":11506,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["get/post",{"_index":11401,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getadditionalerrorinfo",{"_index":13098,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadditionalerrorinfo(email",{"_index":13104,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadminidandtoken",{"_index":1084,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getadminuser",{"_index":13255,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getallaccounts",{"_index":12695,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getalternativetext",{"_index":9919,"title":{},"body":{"classes/FileElement.html":{}}}],["getancestorids",{"_index":3277,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getancestorids(boarddo",{"_index":3299,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getandpseudonyms",{"_index":9721,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getandpseudonyms(users",{"_index":9737,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getapiresponsetimemetriclabels",{"_index":17446,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getapiresponsetimemetriclabels(req",{"_index":17462,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getasadmin(path",{"_index":1068,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getauthenticationurl",{"_index":15504,"title":{},"body":{"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{}}}],["getauthenticationurl(oauthconfig",{"_index":15522,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getauthenticationurl(session",{"_index":16209,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getavailabletoolsforcontext",{"_index":8643,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(currentuser",{"_index":20405,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(userid",{"_index":8654,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getavailabletoolsforschool",{"_index":8644,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(currentuser",{"_index":20410,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(userid",{"_index":8656,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getbaseurl",{"_index":2175,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig",{"_index":2130,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig(presentationurl",{"_index":2160,"title":{},"body":{"injectables/BBBService.html":{}}}],["getboard",{"_index":17823,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboard(roomid",{"_index":17827,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboardauthorizable",{"_index":3085,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardauthorizable(boarddo",{"_index":3091,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardcontext",{"_index":2866,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardcontext(urlparams",{"_index":2884,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardobjecttitlesbyid",{"_index":4817,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardobjecttitlesbyid(boardids",{"_index":4833,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardskeleton",{"_index":2867,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardskeleton(urlparams",{"_index":2888,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardvalue",{"_index":1846,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getboardvalue(elementid",{"_index":1853,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getbydraftforcreatorquery",{"_index":19968,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftforcreatorquery(creatorid",{"_index":19986,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery",{"_index":19969,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery(isdraft",{"_index":19988,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbyid(externaltoolpseudonymentity.name",{"_index":9054,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["getbyid(pseudonymentity.name",{"_index":17138,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["getbytargetid(id",{"_index":2640,"title":{},"body":{"entities/Board.html":{}}}],["getcaption",{"_index":9917,"title":{},"body":{"classes/FileElement.html":{}}}],["getcards",{"_index":3987,"title":{},"body":{"controllers/CardController.html":{}}}],["getcards(currentuser",{"_index":4001,"title":{},"body":{"controllers/CardController.html":{}}}],["getchildren",{"_index":2752,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["getchildren(boardnode",{"_index":3191,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["getclientid",{"_index":13256,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getclientsecret",{"_index":13257,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getcollectdefaultmetrics",{"_index":16841,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcollectionnames",{"_index":7939,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getcollectmetricsroutemetrics",{"_index":16843,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcompleted",{"_index":19124,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["getconfigurationtemplateforcontext",{"_index":20403,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforcontext(currentuser",{"_index":20414,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool",{"_index":20404,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool(currentuser",{"_index":20420,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconsentrequest",{"_index":15928,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(@param",{"_index":16048,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getconsentrequest(challenge",{"_index":15935,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(params",{"_index":15978,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getcontent",{"_index":7525,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getcontentfile",{"_index":11396,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getcontext",{"_index":4756,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["getcontextexternaltool",{"_index":6119,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(currentuser",{"_index":20477,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(userid",{"_index":6133,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcontextexternaltoolid",{"_index":8719,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["getcontextexternaltoolsforcontext",{"_index":6120,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(currentuser",{"_index":20482,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(userid",{"_index":6135,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcopiesforchildrenof",{"_index":17199,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopiesforchildrenof(original",{"_index":17207,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopyname",{"_index":19713,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopyname(originaltaskname",{"_index":19724,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopystatusesforchildrenof",{"_index":17200,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopystatusesforchildrenof(original",{"_index":17209,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcoursegroupitems",{"_index":6650,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getcoursegroupstudentids",{"_index":12306,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getcoursesfromuserspseudonym",{"_index":9722,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getcoursesfromuserspseudonym(pseudonym",{"_index":9739,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getcoursevalue",{"_index":1847,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getcoursevalue(courseid",{"_index":1856,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getcreatedat",{"_index":2754,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["getcurrentschoolyear",{"_index":18530,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["getdashboardbyid",{"_index":7797,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdashboardbyid(id",{"_index":7801,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdata",{"_index":13099,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(currentuser",{"_index":14832,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["getdata(input",{"_index":13106,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(systemid",{"_index":16942,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getdatabasecollection",{"_index":7940,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdatabasecollection(collectionname",{"_index":7953,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdb",{"_index":7957,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdefaultmaxduedate",{"_index":20025,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getdescription",{"_index":14340,"title":{},"body":{"classes/LinkElement.html":{}}}],["getdestinationcourse",{"_index":19714,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationcourse(courseid",{"_index":19728,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson",{"_index":19715,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson(lessonid",{"_index":19730,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdisplayname",{"_index":21671,"title":{},"body":{"injectables/UserService.html":{}}}],["getdisplayname(user",{"_index":21683,"title":{},"body":{"injectables/UserService.html":{}}}],["getduedate",{"_index":19052,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["geteditor",{"_index":11371,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getelement",{"_index":7470,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getelement(position",{"_index":7495,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getelements",{"_index":2643,"title":{},"body":{"entities/Board.html":{}}}],["getelementwithwritepermission",{"_index":8300,"title":{},"body":{"injectables/ElementUc.html":{}}}],["getelementwithwritepermission(userid",{"_index":8307,"title":{},"body":{"injectables/ElementUc.html":{}}}],["getentityname",{"_index":718,"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":9668,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getentitypermissions(userid",{"_index":9676,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["geteol",{"_index":10406,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["getestet",{"_index":4868,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getexternalid",{"_index":580,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalid(id",{"_index":587,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalsource",{"_index":11007,"title":{},"body":{"classes/Group.html":{}}}],["getexternalsubclientmapperconfiguration",{"_index":13339,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getexternaltool",{"_index":9474,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["getexternaltool(currentuser",{"_index":20529,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltool(userid",{"_index":9485,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["getexternaltoolbinarylogo",{"_index":8843,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoolbinarylogo(toolid",{"_index":8855,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoollogo",{"_index":20513,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(@param",{"_index":20565,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(params",{"_index":20532,"title":{},"body":{"controllers/ToolController.html":{}}}],["getfile",{"_index":6340,"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":10320,"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":10578,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(@rabbitpayload",{"_index":10608,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(payload",{"_index":10591,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilteredgroupusers",{"_index":16421,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfilteredgroupusers(externalgroup",{"_index":16427,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfinisheduserids",{"_index":12491,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getfirstopenindex",{"_index":7471,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getflowexecutionsrequest",{"_index":13410,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getflowsrequest",{"_index":13400,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getformat",{"_index":16678,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getformat(previewparams.outputformat",{"_index":16680,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getfwulearningcontentparams",{"_index":10801,"title":{"classes/GetFwuLearningContentParams.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{}}}],["getgradedsubmissions",{"_index":12520,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getgradelevel",{"_index":4228,"title":{},"body":{"classes/Class.html":{}}}],["getgrid",{"_index":7472,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getgroup",{"_index":9723,"title":{},"body":{"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{}}}],["getgroup(courseid",{"_index":9741,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getgroup(currentuser",{"_index":11044,"title":{},"body":{"controllers/GroupController.html":{}}}],["getgroupdata(groupname",{"_index":1050,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmembers(groupname",{"_index":1048,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmoderators(groupname",{"_index":1046,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getheight",{"_index":3971,"title":{},"body":{"classes/Card.html":{}}}],["gethello",{"_index":18558,"title":{},"body":{"classes/ServerConsole.html":{},"controllers/ServerController.html":{}}}],["gethydraoauthtoken",{"_index":16201,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["gethydraoauthtoken(query",{"_index":16214,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getid",{"_index":7473,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getidpmapperconfiguration",{"_index":13340,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getidpmapperconfiguration(idpalias",{"_index":13365,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getiframesubject",{"_index":17067,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getiframesubject(pseudonym",{"_index":17086,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getimageurl",{"_index":14344,"title":{},"body":{"classes/LinkElement.html":{}}}],["getinout",{"_index":18559,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinout(whatever",{"_index":18562,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinputformat",{"_index":17544,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getinstance",{"_index":8753,"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":581,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinternalid(id",{"_index":596,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinvitationlink",{"_index":4224,"title":{},"body":{"classes/Class.html":{}}}],["getisenabled",{"_index":16835,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getitems",{"_index":21032,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["getjwtforuser",{"_index":16316,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtforuser(userid",{"_index":16320,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtfromresponse",{"_index":20273,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getjwtfromresponse(response",{"_index":1505,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getlaunchdata",{"_index":20660,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getlaunchdata(userid",{"_index":20666,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getldapdn",{"_index":4230,"title":{},"body":{"classes/Class.html":{}}}],["getlessoncomponents",{"_index":11919,"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":11920,"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":11921,"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":11394,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getlogindata",{"_index":14561,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getlogindata(userinfo",{"_index":14564,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getloginrequest",{"_index":15967,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(@param",{"_index":16036,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginrequest(challenge",{"_index":16091,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(params",{"_index":15981,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginurl",{"_index":21498,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getloginurl(system",{"_index":21506,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getlogmessage",{"_index":1277,"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/UnknownQueryTypeLoggableException.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":12498,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getmeetinginfo",{"_index":2131,"title":{},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["getmeetinginfo(config",{"_index":2162,"title":{},"body":{"injectables/BBBService.html":{}}}],["getmeetinginfo(currentuserid",{"_index":21989,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getmetadata",{"_index":6661,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"classes/UsersList.html":{}}}],["getmetadatastorage",{"_index":8363,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getmetatagdatabody",{"_index":10870,"title":{"classes/GetMetaTagDataBody.html":{}},"body":{"classes/GetMetaTagDataBody.html":{},"controllers/MetaTagExtractorController.html":{}}}],["getmigration",{"_index":13938,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolid",{"_index":14113,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolparams",{"_index":13940,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["getmigrationconsentpageredirect",{"_index":21499,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationconsentpageredirect(officialschoolnumber",{"_index":21508,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationpagedetails",{"_index":21471,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(@query",{"_index":21478,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(pagetypequery",{"_index":21472,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationredirecturi",{"_index":21500,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrations",{"_index":21128,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["getmigrations(user",{"_index":21145,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["getmigrations(userid",{"_index":21401,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["getname",{"_index":4216,"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":15264,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnewspermissions(userid",{"_index":15279,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnumberofdrafttasks",{"_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":{}}}],["getnumberofplannedtasks",{"_index":11917,"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":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":{}}}],["getoauth2client",{"_index":15896,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getoauth2client(currentuser",{"_index":15905,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["getoauth2client(id",{"_index":16169,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["getoauthconfig",{"_index":12682,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["getoauthtoken",{"_index":11423,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getoauthtoken(oauthclientid",{"_index":11430,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getobjectcommand",{"_index":17929,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["getobjectreference",{"_index":682,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getobjectreference(entityname",{"_index":700,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getorconstructdashboardmodelentity",{"_index":7714,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorconstructdashboardmodelentity(entity",{"_index":7728,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorcreatecourseboard",{"_index":3623,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorcreatecourseboard(courseid",{"_index":3630,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorganization",{"_index":5317,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getorganizationid",{"_index":11009,"title":{},"body":{"classes/Group.html":{}}}],["getpagecontent",{"_index":21395,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getpagecontent(pagetype",{"_index":21403,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getparametervalue",{"_index":2541,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparametervalue(customparameter",{"_index":2578,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparent",{"_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":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentdata",{"_index":12550,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentinfo",{"_index":10181,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpath",{"_index":20274,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getpath(routenameinput",{"_index":1497,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getpermittedcourses",{"_index":20026,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedcourses(user",{"_index":20041,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedentities",{"_index":9669,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedentities(userid",{"_index":9678,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedlessonids",{"_index":20083,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons",{"_index":20027,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons(user",{"_index":20044,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedschools",{"_index":9631,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedschools(userid",{"_index":9637,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedtargets",{"_index":9632,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getpermittedtargets(userid",{"_index":9639,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getplayer",{"_index":11372,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getport",{"_index":16839,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getpostloginredirecturl",{"_index":15505,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpostloginredirecturl(idtoken",{"_index":15524,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpresentationurl",{"_index":2179,"title":{},"body":{"injectables/BBBService.html":{}}}],["getpreviewfile",{"_index":16780,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile(params",{"_index":16790,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname",{"_index":16795,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname(filerecord",{"_index":16809,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewstatus",{"_index":10182,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpropertyvalue",{"_index":8359,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getpropertyvalue(e",{"_index":8370,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getprops",{"_index":1604,"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":17642,"title":{},"body":{"injectables/RoleService.html":{}}}],["getprovisioningstrategy",{"_index":16932,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getprovisioningstrategy(systemstrategy",{"_index":16944,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getpseudonym",{"_index":16986,"title":{},"body":{"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{}}}],["getpseudonym(params",{"_index":17007,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["getpublickey",{"_index":7075,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OauthAdapterService.html":{}}}],["getpublickey(jwksuri",{"_index":15668,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["getquery",{"_index":18544,"title":{},"body":{"classes/Scope.html":{}}}],["getredirecturi",{"_index":15506,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getredirecturi(migration",{"_index":15527,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getreferences",{"_index":7530,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getreferencesfromposition",{"_index":7474,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getreferencesfromposition(position",{"_index":7503,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getrepository",{"_index":17068,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrepository(tool",{"_index":17088,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrequiredpermissions",{"_index":15265,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequiredpermissions(unpublished",{"_index":15283,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequireduserrole",{"_index":3063,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getresolveduser",{"_index":21672,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolveduser(userid",{"_index":21685,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolvedvalues",{"_index":2983,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresolvedvalues(results",{"_index":3025,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresources",{"_index":5319,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getresponse",{"_index":1204,"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":17760,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroomboard(urlparams",{"_index":17769,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroute",{"_index":16837,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["gets",{"_index":481,"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":2177,"title":{},"body":{"injectables/BBBService.html":{}}}],["getschemapath",{"_index":3705,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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/SubmissionItemResponse.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(basictoolconfigparams",{"_index":8711,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(externaltoolelementcontentbody",{"_index":8260,"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":4046,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(fileelementcontentbody",{"_index":8256,"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":3729,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{}}}],["getschemapath(linkelementcontentbody",{"_index":8257,"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":4047,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(lti11toolconfigcreateparams",{"_index":8712,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(lti11toolconfigupdateparams",{"_index":9513,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(oauth2toolconfigcreateparams",{"_index":8713,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(oauth2toolconfigupdateparams",{"_index":9514,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(richtextelementcontentbody",{"_index":8258,"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":3728,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{}}}],["getschemapath(submissioncontainerelementcontentbody",{"_index":8259,"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":4048,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschool",{"_index":20230,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["getschoolbyexternalid",{"_index":14077,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyexternalid(externalid",{"_index":14084,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid",{"_index":14078,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid(id",{"_index":14086,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber",{"_index":14079,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber(schoolnumber",{"_index":14088,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolexternaltool",{"_index":18304,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(currentuser",{"_index":20808,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(userid",{"_index":18315,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["getschoolexternaltools",{"_index":20800,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltools(currentuser",{"_index":20811,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolid",{"_index":4218,"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":10155,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getseedfolder",{"_index":11698,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["getservice",{"_index":9846,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["getservice(path",{"_index":9837,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["getshorttitle",{"_index":6655,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["getsource",{"_index":4234,"title":{},"body":{"classes/Class.html":{}}}],["getsourceoptions",{"_index":4236,"title":{},"body":{"classes/Class.html":{}}}],["getstoretype",{"_index":3875,"title":{},"body":{"injectables/CacheService.html":{}}}],["getstudentids",{"_index":6627,"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":6638,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubmissionitems",{"_index":3682,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissionitems(currentuser",{"_index":3693,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["getsubmittedsubmissions",{"_index":12514,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmitterids",{"_index":12325,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getsubstitutionteacherids",{"_index":6631,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubstitutionteacherslist",{"_index":6644,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsuccessor",{"_index":4232,"title":{},"body":{"classes/Class.html":{}}}],["getsystem",{"_index":19363,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(@param",{"_index":19392,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(params",{"_index":19371,"title":{},"body":{"controllers/SystemController.html":{}}}],["gettargetfilters",{"_index":15266,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfilters(userid",{"_index":15286,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfolder(toseedfolder",{"_index":11700,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["gettasksitems",{"_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":{}}}],["getteacherids",{"_index":4222,"title":{},"body":{"classes/Class.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteacherslist",{"_index":6642,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteammemberids",{"_index":12309,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["gettempfile",{"_index":11398,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["gettemplateforcontextexternaltool",{"_index":8645,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforcontextexternaltool(userid",{"_index":8658,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool",{"_index":8646,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool(userid",{"_index":8660,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getter",{"_index":6594,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["gettext",{"_index":17540,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getting",{"_index":22291,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{}}],["gettitle",{"_index":3967,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/LinkElement.html":{}}}],["gettitlesbyids",{"_index":3278,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettitlesbyids(id",{"_index":3301,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettoolid",{"_index":16988,"title":{},"body":{"classes/Pseudonym.html":{}}}],["gettoollaunchrequest",{"_index":20573,"title":{},"body":{"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["gettoollaunchrequest(currentuser",{"_index":20574,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["gettoollaunchrequest(userid",{"_index":20692,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["gettoolreference",{"_index":20731,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreference(contextexternaltoolid",{"_index":20774,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["gettoolreference(currentuser",{"_index":20733,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreference(userid",{"_index":20784,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext",{"_index":20732,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext(currentuser",{"_index":20738,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreferencesforcontext(userid",{"_index":20786,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettspuid",{"_index":4463,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["gettype",{"_index":11011,"title":{},"body":{"classes/Group.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getunitofwork",{"_index":9053,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["getupdatedat",{"_index":2756,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["geturl",{"_index":1140,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/LinkElement.html":{},"controllers/OauthProviderController.html":{}}}],["geturl(callname",{"_index":2164,"title":{},"body":{"injectables/BBBService.html":{}}}],["geturl(path",{"_index":1151,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["getuser",{"_index":9633,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/TeamUserEntity.html":{},"injectables/UserService.html":{}}}],["getuser(id",{"_index":21687,"title":{},"body":{"injectables/UserService.html":{}}}],["getuser(userid",{"_index":9641,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserattribute",{"_index":12696,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserattribute(userid",{"_index":12719,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getusergroups",{"_index":9724,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusergroups(pseudonym",{"_index":9744,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getuserid",{"_index":7475,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/Pseudonym.html":{},"classes/SubmissionItem.html":{}}}],["getuserids",{"_index":4220,"title":{},"body":{"classes/Class.html":{}}}],["getuserlist(querystring",{"_index":1026,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getuserparams",{"_index":20905,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["getuserparams(params",{"_index":658,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["getuserrole",{"_index":9725,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getuserrole(user",{"_index":9746,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusers",{"_index":3061,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"classes/Group.html":{}}}],["getuserschoolpermissions",{"_index":9634,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserschoolpermissions(userid",{"_index":9643,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getusersdashboard",{"_index":7798,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersdashboard(userid",{"_index":7803,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersmetadata",{"_index":9726,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusersmetadata(pseudonym",{"_index":9748,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusertargetpermissions",{"_index":9635,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["getusertargetpermissions(userid",{"_index":9645,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserwithpermissions",{"_index":1800,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getuserwithpermissions(userid",{"_index":1809,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getvalue",{"_index":1834,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["getvalue(schoolexternaltool",{"_index":1835,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["getversion",{"_index":5769,"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":21987,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getvideoconferenceoptions(scope",{"_index":21991,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getwellknownurl",{"_index":13258,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getyear",{"_index":4226,"title":{},"body":{"classes/Class.html":{}}}],["ghcr.io/hpi",{"_index":23051,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ghcr.io/soluto/oidc",{"_index":23634,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["gi",{"_index":15024,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["gid",{"_index":11152,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["git",{"_index":22298,"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":22230,"title":{},"body":{"dependencies.html":{}}}],["git://github.com/leeroybrun/mongoose",{"_index":22246,"title":{},"body":{"dependencies.html":{}}}],["github",{"_index":22294,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["give",{"_index":22575,"title":{},"body":{"license.html":{}}}],["given",{"_index":274,"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":{},"injectables/MetaTagExtractorService.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["givenname",{"_index":12407,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["gives",{"_index":9705,"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":22581,"title":{},"body":{"license.html":{}}}],["global",{"_index":6506,"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":10877,"title":{"interfaces/GlobalConstants.html":{}},"body":{"interfaces/GlobalConstants.html":{}}}],["globalerrorfilter",{"_index":8450,"title":{"classes/GlobalErrorFilter.html":{}},"body":{"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["globally",{"_index":13057,"title":{},"body":{"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["globalparameter",{"_index":7369,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["globals",{"_index":10879,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["globalsetup",{"_index":23286,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalteardown",{"_index":23287,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalvalidationpipe",{"_index":10946,"title":{"classes/GlobalValidationPipe.html":{}},"body":{"classes/GlobalValidationPipe.html":{},"modules/ValidationModule.html":{}}}],["gm",{"_index":16749,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"dependencies.html":{}}}],["gnu",{"_index":22355,"title":{},"body":{"license.html":{}}}],["go",{"_index":21859,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["goal",{"_index":23008,"title":{},"body":{"todo.html":{}}}],["goals",{"_index":22426,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["golevelup",{"_index":23497,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["golevelup/nestjs",{"_index":1156,"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":20299,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["gonna",{"_index":23184,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["good",{"_index":13849,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["governed",{"_index":22701,"title":{},"body":{"license.html":{}}}],["gpl",{"_index":22427,"title":{},"body":{"license.html":{}}}],["grace",{"_index":18429,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["graceperiodduration",{"_index":21376,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["grade",{"_index":12117,"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":12287,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["graded",{"_index":3757,"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":12521,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradelevel",{"_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":{}}}],["grant",{"_index":1324,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/TokenRequestMapper.html":{},"license.html":{}}}],["grant_access_token_audience",{"_index":113,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_scope",{"_index":114,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_type",{"_index":1328,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/TokenRequestMapper.html":{}}}],["grant_types",{"_index":15705,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["granted",{"_index":22514,"title":{},"body":{"license.html":{}}}],["grants",{"_index":22765,"title":{},"body":{"license.html":{}}}],["granttype",{"_index":11572,"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":14881,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"dependencies.html":{},"modules.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["gratis",{"_index":22628,"title":{},"body":{"license.html":{}}}],["greatest",{"_index":22928,"title":{},"body":{"license.html":{}}}],["grep",{"_index":23682,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["grid",{"_index":6895,"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":7811,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["gridelement",{"_index":7535,"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":7754,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.fromsinglereference(referenceforindex",{"_index":7612,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.fromsinglereference(room",{"_index":7603,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.getcontent().title",{"_index":7778,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.getid",{"_index":7771,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.hasid",{"_index":7769,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.isgroup",{"_index":7776,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.setgroupname(params",{"_index":7853,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["gridelementcontent",{"_index":7526,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelements",{"_index":7642,"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":7501,"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":7476,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["gridindexfromposition(pos",{"_index":7507,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridposition",{"_index":7496,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridpositionwithgroupindex",{"_index":7504,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["group",{"_index":970,"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":{},"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":11169,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group(savedprops",{"_index":11180,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group.adduser(user",{"_index":16492,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.dto",{"_index":15821,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["group.dto.ts",{"_index":8500,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:10",{"_index":17485,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:11",{"_index":8504,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:12",{"_index":17486,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:13",{"_index":8508,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:14",{"_index":17482,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:15",{"_index":8507,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:16",{"_index":17481,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:17",{"_index":8502,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:5",{"_index":8503,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:6",{"_index":17483,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:7",{"_index":8505,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:8",{"_index":17484,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:9",{"_index":8510,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.externalsource",{"_index":11198,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.getprops",{"_index":11096,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["group.gruppe.bezeichnung",{"_index":18127,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.id",{"_index":18130,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.bis",{"_index":18129,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.von",{"_index":18128,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppenzugehoerigkeit.rollen",{"_index":18119,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.id",{"_index":11195,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.isempty",{"_index":16517,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.module",{"_index":11033,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["group.name",{"_index":1054,"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":11200,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.params.ts",{"_index":16604,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.params.ts:14",{"_index":16606,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.removeuser(user",{"_index":16516,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.rule",{"_index":14267,"title":{},"body":{"injectables/LessonRule.html":{}}}],["group.rule.ts",{"_index":6853,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:11",{"_index":6856,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:17",{"_index":6855,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:8",{"_index":6854,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.type",{"_index":11196,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.users",{"_index":11197,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group_id",{"_index":9764,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["groupapimodule",{"_index":11024,"title":{"modules/GroupApiModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["groupcontroller",{"_index":11031,"title":{"controllers/GroupController.html":{}},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{}}}],["groupdata",{"_index":7557,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupdomainmapper",{"_index":11068,"title":{"classes/GroupDomainMapper.html":{}},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapdomainobjecttoentityproperties(domainobject",{"_index":11172,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(entity",{"_index":11168,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(savedentity",{"_index":11179,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapgroupusertogroupuserentity(groupuser",{"_index":11104,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupelements",{"_index":7652,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["groupentity",{"_index":6581,"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":11173,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupentityprops",{"_index":11078,"title":{"interfaces/GroupEntityProps.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes",{"_index":11090,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes.class",{"_index":11093,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypestogrouptypesmapping",{"_index":11092,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping[entity.type",{"_index":11114,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupfolder",{"_index":15354,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupfolders",{"_index":11345,"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":11349,"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":11347,"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":7534,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"classes/GroupIdParams.html":{},"interfaces/IGridElement.html":{},"injectables/NextcloudStrategy.html":{}}}],["groupidparams",{"_index":11045,"title":{"classes/GroupIdParams.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupIdParams.html":{}}}],["groupids",{"_index":6560,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["groupindex",{"_index":7559,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["groupinfo",{"_index":1035,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupinfo.group._id",{"_index":1039,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["grouping",{"_index":3610,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["groupmetadata",{"_index":7554,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupmodule",{"_index":11028,"title":{"modules/GroupModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/ProvisioningModule.html":{},"modules.html":{}}}],["groupname",{"_index":1031,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupnameidtuple",{"_index":11150,"title":{"interfaces/GroupNameIdTuple.html":{}},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["groupprops",{"_index":11013,"title":{"interfaces/GroupProps.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{}}}],["grouprepo",{"_index":11148,"title":{"injectables/GroupRepo.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["groupresponse",{"_index":11052,"title":{"classes/GroupResponse.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper",{"_index":11053,"title":{"classes/GroupResponseMapper.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper.maptoclassinfostolistresponse",{"_index":11063,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponsemapper.maptogroupresponse(group",{"_index":11067,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponse})@apiresponse({status",{"_index":11048,"title":{},"body":{"controllers/GroupController.html":{}}}],["grouprolemapping",{"_index":18098,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprolemapping[relation.rollen[0",{"_index":18132,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable",{"_index":11239,"title":{"classes/GroupRoleUnknownLoggable.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable(relation",{"_index":18133,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprule",{"_index":1702,"title":{"injectables/GroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/GroupRule.html":{},"injectables/RuleManager.html":{}}}],["groups",{"_index":6540,"title":{},"body":{"entities/Course.html":{},"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"injectables/GroupService.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":11147,"title":{"injectables/GroupService.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupService.html":{},"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem",{"_index":16507,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem.filter((existinggroupfromsystem",{"_index":16511,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupswithoutuser",{"_index":16510,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupswithoutuser.map(async",{"_index":16515,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["grouptype",{"_index":18114,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping",{"_index":18101,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping[group.gruppe.typ",{"_index":18115,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptyperesponse",{"_index":11188,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["grouptyperesponse.class",{"_index":11214,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["grouptypes",{"_index":8506,"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":11094,"title":{},"body":{"classes/GroupDomainMapper.html":{},"classes/GroupResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypestogroupentitytypesmapping",{"_index":11095,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["grouptypestogroupentitytypesmapping[props.type",{"_index":11100,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuc",{"_index":11029,"title":{},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{}}}],["groupucmapper",{"_index":11280,"title":{"classes/GroupUcMapper.html":{}},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser",{"_index":11000,"title":{"classes/GroupUser.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["groupuser.role.name",{"_index":11301,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.roleid",{"_index":11123,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser.user.lastname",{"_index":11303,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.userid",{"_index":11019,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{}}}],["groupuserentity",{"_index":11086,"title":{"classes/GroupUserEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserentityprops",{"_index":11323,"title":{"interfaces/GroupUserEntityProps.html":{}},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserids",{"_index":15402,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.filter((userid",{"_index":15415,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.includes(userid",{"_index":15421,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserresponse",{"_index":11190,"title":{"classes/GroupUserResponse.html":{}},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{}}}],["groupusers",{"_index":11336,"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":11091,"title":{"classes/GroupValidPeriodEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["groupvalidperiodentityprops",{"_index":11351,"title":{"interfaces/GroupValidPeriodEntityProps.html":{}},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["gruppe",{"_index":18017,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["gruppen",{"_index":18025,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["gruppenzugehoerige",{"_index":18030,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["gruppenzugehoerigkeit",{"_index":18026,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["gruppenzugehoerigkeiten",{"_index":18123,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["gt",{"_index":3595,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/NewsScope.html":{}}}],["gte",{"_index":6989,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["guarantee",{"_index":577,"title":{},"body":{"injectables/AccountLookupService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guard",{"_index":23301,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["guardagainst",{"_index":11354,"title":{"classes/GuardAgainst.html":{}},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined",{"_index":14419,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(account.password",{"_index":14416,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(jwt",{"_index":14414,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(password",{"_index":14424,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(username",{"_index":14423,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guards",{"_index":11361,"title":{},"body":{"classes/GuardAgainst.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guest",{"_index":2056,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["guest:guest",{"_index":23037,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["guestpolicy",{"_index":1958,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["guests",{"_index":22024,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["guide",{"_index":23567,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["gzip",{"_index":18067,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["h5p",{"_index":11370,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["h5peditorcontroller",{"_index":11366,"title":{"controllers/H5PEditorController.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{}}}],["h5peditormodule",{"_index":11402,"title":{"modules/H5PEditorModule.html":{}},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["h5peditortestmodule",{"_index":11411,"title":{"modules/H5PEditorTestModule.html":{}},"body":{"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["halper",{"_index":20870,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["handed",{"_index":8249,"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":3022,"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":17800,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handlecolumnboardintegration(roomid",{"_index":17804,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handled",{"_index":3851,"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":115,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["handleexceptions",{"_index":14459,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handleparameterstoinclude",{"_index":2542,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handleparameterstoinclude(propertydata",{"_index":2582,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handler",{"_index":22997,"title":{},"body":{"todo.html":{}}}],["handlerejections",{"_index":14460,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handles",{"_index":23552,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handling",{"_index":6503,"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":15563,"title":{},"body":{"injectables/OAuthService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["happened",{"_index":23321,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["hard",{"_index":11851,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasaccesstoentity",{"_index":1636,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstoentity(user",{"_index":1641,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstosubmission",{"_index":19254,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasaccesstosubmission(user",{"_index":19260,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasallpermissions",{"_index":1637,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CourseGroupRule.html":{}}}],["hasallpermissions(user",{"_index":1645,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasallpermissionsbyrole",{"_index":1638,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasallpermissionsbyrole(role",{"_index":1647,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasbeenforciblyended",{"_index":2047,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasbodyproperty",{"_index":2600,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["haschangedparameternames",{"_index":9551,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameternames(oldparams",{"_index":9562,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex",{"_index":9552,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex(newparams",{"_index":9564,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope",{"_index":9553,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope(newparams",{"_index":9567,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes",{"_index":9554,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes(newparams",{"_index":9569,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters",{"_index":9555,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters(newparams",{"_index":9571,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschild",{"_index":2729,"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":2745,"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":8623,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["hascoursepermission",{"_index":17751,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{}}}],["hascoursereadpermission",{"_index":17733,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursereadpermission(user",{"_index":17737,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission",{"_index":17734,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission(user",{"_index":17739,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasduplicateattributes",{"_index":8927,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicateattributes(customparameter",{"_index":8938,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["haserror",{"_index":10171,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasfeature",{"_index":14080,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hasfeature(schoolid",{"_index":14091,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hash",{"_index":10858,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{}}}],["hash_function",{"_index":14584,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashiterations",{"_index":13685,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["hashiterations(310000",{"_index":13299,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["hashkey",{"_index":14586,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashkey).tostring(cryptojs.enc.base64",{"_index":14588,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hasid",{"_index":7524,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["hasjoinedvoice",{"_index":2120,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haslessonpermission",{"_index":14268,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["haslessonreadpermission",{"_index":17735,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["haslessonreadpermission(user",{"_index":17741,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasmatch",{"_index":12945,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmatch(user",{"_index":12953,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmigrated",{"_index":14942,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["hasname",{"_index":10167,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasname(name",{"_index":10166,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasnewrequiredparameter",{"_index":9556,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewrequiredparameter(oldparams",{"_index":9573,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewspermission",{"_index":23795,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasoneofpermissions",{"_index":1639,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasoneofpermissions(user",{"_index":1649,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasparent",{"_index":3577,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["hasparentpermission",{"_index":19946,"title":{},"body":{"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasparentpermission(user",{"_index":19948,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasparentreadpermission",{"_index":14275,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasparenttaskreadaccess",{"_index":19255,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskreadaccess(user",{"_index":19262,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess",{"_index":19256,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess(user",{"_index":19264,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparentwritepermission",{"_index":14277,"title":{},"body":{"injectables/LessonRule.html":{}}}],["haspath",{"_index":17419,"title":{},"body":{"classes/RequestInfo.html":{}}}],["haspath(reqroute",{"_index":17426,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["haspermission",{"_index":1672,"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":1813,"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":1780,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissionbyreferences(userid",{"_index":1786,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissions",{"_index":9691,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"injectables/PermissionService.html":{}}}],["hasreadaccess",{"_index":19257,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasreadaccess(user",{"_index":19267,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasrequiredpermission",{"_index":19953,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasscanstatuserror",{"_index":10170,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasscanstatuswontcheck",{"_index":10173,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasschoolmigrated",{"_index":18394,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrated(sourceexternalid",{"_index":18407,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser",{"_index":4535,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser(schoolid",{"_index":18411,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hastaskreadpermission",{"_index":17736,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hastaskreadpermission(user",{"_index":17743,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasuserallschoolpermissions",{"_index":16635,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserallschoolpermissions(user",{"_index":16637,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserjoined",{"_index":2048,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasusermigrated",{"_index":21390,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["hasuserpermission",{"_index":14272,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasvideo",{"_index":2121,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haswontcheckstatus",{"_index":10174,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["haswriteaccess",{"_index":19258,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["haswriteaccess(user",{"_index":19269,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["having",{"_index":3562,"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":1423,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"controllers/OauthSSOController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["headerconst",{"_index":1437,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headerconst.json",{"_index":1482,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headercookies",{"_index":11546,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["headers",{"_index":1075,"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/MetaTagExtractorService.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":22412,"title":{},"body":{"license.html":{}}}],["height",{"_index":3213,"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/CardUc.html":{},"injectables/ColumnBoardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SetHeightBodyParams.html":{}}}],["height(height",{"_index":3979,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["height.body.params",{"_index":4024,"title":{},"body":{"controllers/CardController.html":{}}}],["height.body.params.ts",{"_index":18670,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height.body.params.ts:10",{"_index":18672,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height=100",{"_index":5369,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hell",{"_index":6597,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["help",{"_index":5520,"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":2982,"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":19619,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["helper.module.ts",{"_index":6410,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service",{"_index":6412,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service.ts",{"_index":6414,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:10",{"_index":6425,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:28",{"_index":6423,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:45",{"_index":6419,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.ts",{"_index":18968,"title":{},"body":{"classes/SortHelper.html":{},"classes/TestHelper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:13",{"_index":20705,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:21",{"_index":20319,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper.ts:26",{"_index":20706,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:4",{"_index":18971,"title":{},"body":{"classes/SortHelper.html":{}}}],["helper.ts:51",{"_index":20707,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:6",{"_index":20318,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper/copy",{"_index":6409,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/TaskApiModule.html":{}}}],["helper/dto/copy.response.ts",{"_index":6217,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:17",{"_index":6229,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:22",{"_index":6232,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:29",{"_index":6233,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:34",{"_index":6224,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:41",{"_index":6231,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:47",{"_index":6228,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:7",{"_index":6222,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/mapper/copy.mapper.ts",{"_index":6454,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:10",{"_index":6466,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:30",{"_index":6459,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:39",{"_index":6463,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/service/copy",{"_index":6413,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper/types/copy.types",{"_index":6234,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helpers",{"_index":23285,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["helpful",{"_index":23465,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helplink",{"_index":4872,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["helps",{"_index":23450,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helpto",{"_index":23095,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["hendt/xml2json",{"_index":6203,"title":{},"body":{"injectables/ConverterUtil.html":{},"dependencies.html":{}}}],["here",{"_index":2365,"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":22807,"title":{},"body":{"license.html":{}}}],["hex",{"_index":575,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["hh:mm:ss.sss",{"_index":14466,"title":{},"body":{"modules/LoggerModule.html":{}}}],["hidden",{"_index":3414,"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":4867,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hierarchy",{"_index":5332,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["high",{"_index":23245,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["higher",{"_index":23172,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["highly",{"_index":23736,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hilfebereich",{"_index":4884,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hint",{"_index":5530,"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":22967,"title":{},"body":{"todo.html":{}}}],["historywindows",{"_index":23605,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["hmac",{"_index":14583,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["holder",{"_index":22744,"title":{},"body":{"license.html":{}}}],["holders",{"_index":22707,"title":{},"body":{"license.html":{}}}],["holds",{"_index":23814,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["homepage",{"_index":22956,"title":{},"body":{"properties.html":{}}}],["homework",{"_index":23262,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["homeworkid",{"_index":12290,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["homeworkid'})@index",{"_index":19047,"title":{},"body":{"entities/Submission.html":{}}}],["homeworks",{"_index":12465,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["hook",{"_index":23824,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hookfn",{"_index":470,"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":22217,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hope",{"_index":6598,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"license.html":{}}}],["horizontal",{"_index":23242,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["host",{"_index":1127,"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":10914,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host.switchtohttp",{"_index":10924,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host=http://localhost:4000",{"_index":23623,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["hostname",{"_index":1133,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["hosts",{"_index":22635,"title":{},"body":{"license.html":{}}}],["hosturl",{"_index":12618,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["hot",{"_index":23001,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["household",{"_index":22654,"title":{},"body":{"license.html":{}}}],["hpi",{"_index":2018,"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":5111,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hs256",{"_index":1398,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs384",{"_index":1399,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs512",{"_index":1400,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["html",{"_index":5119,"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":17533,"title":{},"body":{"classes/RichText.html":{}}}],["htmlcontent",{"_index":1303,"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":1305,"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":1227,"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":12098,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["http(s",{"_index":23822,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["http://:4011",{"_index":23621,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://fsf.org",{"_index":22364,"title":{},"body":{"license.html":{}}}],["http://localhost:3030",{"_index":13429,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["http://localhost:3030/api/v1/sync?target=ldap",{"_index":23643,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://localhost:3030/api/v3/sso/oauth",{"_index":13542,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["http://localhost:8080",{"_index":23614,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/manifest",{"_index":5296,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/resource",{"_index":5297,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/manifest",{"_index":5283,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/resource",{"_index":5285,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://mock.de",{"_index":19448,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/auth",{"_index":19437,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/jwks",{"_index":19441,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/logout",{"_index":19439,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/mock/auth/public/mocktoken",{"_index":19435,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mockhost:3030/api/v3/sso/oauth",{"_index":19436,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://www.gnu.org/licenses",{"_index":22949,"title":{},"body":{"license.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd",{"_index":5299,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lommanifest_v1p0.xsd",{"_index":5300,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lomresource_v1p0.xsd",{"_index":5298,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd",{"_index":5291,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd",{"_index":5289,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd",{"_index":5372,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lommanifest_v1p0.xsd",{"_index":5290,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lomresource_v1p0.xsd",{"_index":5288,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsbasiclti_v1p0",{"_index":5246,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1",{"_index":5295,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1",{"_index":5373,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2",{"_index":5287,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1",{"_index":5281,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3",{"_index":5371,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3",{"_index":5244,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3.xsd",{"_index":5252,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticm_v1p0",{"_index":5248,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticp_v1p0",{"_index":5250,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.w3.org/2001/xmlschema",{"_index":5229,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["httpargumenthost",{"_index":10923,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpargumenthost.getresponse",{"_index":10925,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpcode",{"_index":2899,"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":{},"controllers/UserLoginMigrationController.html":{}}}],["httpcode(201",{"_index":8289,"title":{},"body":{"controllers/ElementController.html":{}}}],["httpcode(204",{"_index":2919,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["httpcode(httpstatus.no_content",{"_index":20498,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(httpstatus.ok",{"_index":14510,"title":{},"body":{"controllers/LoginController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["httpexception",{"_index":3668,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoService.html":{},"classes/GlobalErrorFilter.html":{}}}],["httpexception(`unsupported",{"_index":4996,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["httpexceptionoptions",{"_index":8468,"title":{},"body":{"classes/ErrorUtils.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["httpexceptions",{"_index":23360,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["httpmodule",{"_index":3936,"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/MetaTagExtractorModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/RocketChatModule.html":{},"modules/VideoConferenceModule.html":{}}}],["httponly",{"_index":16285,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["https://${scdomain",{"_index":13430,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["https://${scdomain}/api/v3/sso/oauth",{"_index":13543,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["https://dbildungscloud.de",{"_index":22957,"title":{},"body":{"properties.html":{}}}],["https://docs.nestjs.com/first",{"_index":23289,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://example.com/tool",{"_index":20655,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["https://github.com/goldbergyoni/javascript",{"_index":23569,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["https://github.com/hpi",{"_index":22981,"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":10134,"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":2382,"title":{},"body":{"classes/BaseFactory.html":{}}}],["https://hpi",{"_index":23004,"title":{},"body":{"todo.html":{}}}],["https://jestjs.io",{"_index":23137,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://khalilstemmler.com/articles/software",{"_index":23330,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://logo.com",{"_index":7391,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://logourl.com",{"_index":8801,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["https://mikro",{"_index":23138,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://min.io",{"_index":23140,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://mock.tld/auth",{"_index":19443,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/logout",{"_index":19446,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/token",{"_index":19444,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/userinfo",{"_index":19445,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://nestjs.com",{"_index":23136,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://provisioningurl.de",{"_index":19450,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://stackoverflow.com/a/61909588",{"_index":22966,"title":{},"body":{"todo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/arc",{"_index":2330,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/bc",{"_index":17857,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/n21",{"_index":14118,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["https://url.com",{"_index":7389,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.basic",{"_index":7343,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.fallback",{"_index":5734,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["https://www.frontchannel.com",{"_index":7351,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.geogebra.org/m/${content.content.materialid",{"_index":5122,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd",{"_index":5374,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["https://www.lti11",{"_index":7363,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.npmjs.com/package/@golevelup/nestjs",{"_index":17161,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["https://www.oauth2",{"_index":7359,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.rabbitmq.com",{"_index":23141,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://www.redirect.com",{"_index":7353,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["httpservice",{"_index":958,"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":1216,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BoardResponseMapper.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.bad_gateway",{"_index":13774,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["httpstatus.bad_request",{"_index":1223,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.conflict",{"_index":3867,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["httpstatus.forbidden",{"_index":10793,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.internal_server_error",{"_index":8825,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.not_found",{"_index":8354,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["httpstatus.ok",{"_index":11056,"title":{},"body":{"controllers/GroupController.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.too_many_requests",{"_index":3821,"title":{},"body":{"classes/BruteForceError.html":{}}}],["httpstatus.unauthorized",{"_index":1633,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/SchoolInMigrationError.html":{}}}],["httpstatus.unprocessable_entity",{"_index":3674,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["human",{"_index":5528,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["hydra",{"_index":11579,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydra_public_uri",{"_index":11420,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraadapter",{"_index":16188,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["hydracookies",{"_index":6207,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydracookies.includes(cookie",{"_index":11559,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydracookies.push(cookie",{"_index":11560,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig",{"_index":11452,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig.redirecturi",{"_index":11456,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraoauthuc",{"_index":11417,"title":{"injectables/HydraOauthUc.html":{}},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["hydraredirectdto",{"_index":11442,"title":{"classes/HydraRedirectDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["hydraredirectdto(dto",{"_index":11531,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrassoservice",{"_index":11428,"title":{"injectables/HydraSsoService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"modules/OauthModule.html":{}}}],["hydrauc",{"_index":16248,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["hydrauri",{"_index":11568,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/.well",{"_index":11575,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/auth",{"_index":11570,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/sessions/logout",{"_index":11578,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/token",{"_index":11585,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["i...properties",{"_index":6601,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["i.name",{"_index":11807,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["i.width",{"_index":14906,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["iaccountconfig",{"_index":11588,"title":{"interfaces/IAccountConfig.html":{}},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["iat",{"_index":7083,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["ibbbsettings",{"_index":2137,"title":{"interfaces/IBbbSettings.html":{}},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["icalendarevent",{"_index":3918,"title":{"interfaces/ICalendarEvent.html":{}},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"interfaces/ICalendarEvent.html":{}}}],["iclassentityprops",{"_index":4275,"title":{"interfaces/IClassEntityProps.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"interfaces/IClassEntityProps.html":{}}}],["icleanoptions",{"_index":11596,"title":{"interfaces/ICleanOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["icollaborativestoragestrategy",{"_index":4558,"title":{"interfaces/ICollaborativeStorageStrategy.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["icollectionfilepath",{"_index":11679,"title":{"interfaces/ICollectionFilePath.html":{}},"body":{"interfaces/ICollectionFilePath.html":{}}}],["icolumnboardproperties",{"_index":4798,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["icommoncartridgeconfig",{"_index":11863,"title":{"interfaces/ICommonCartridgeConfig.html":{}},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icommoncartridgeelement",{"_index":5171,"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":5213,"title":{"interfaces/ICommonCartridgeFile.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["icommoncartridgefilebuilder",{"_index":5147,"title":{"interfaces/ICommonCartridgeFileBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefilebuilderoptions",{"_index":5154,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeltiresourceprops",{"_index":5215,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["icommoncartridgemanifestprops",{"_index":5270,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["icommoncartridgemetadataprops",{"_index":5272,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["icommoncartridgeorganizationbuilder",{"_index":5163,"title":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeorganizationprops",{"_index":5161,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeresourceprops",{"_index":5067,"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":5074,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["icommoncartridgeweblinkresourceprops",{"_index":5344,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["icomponentetherpadproperties",{"_index":11875,"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":11885,"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":11890,"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":11887,"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":11889,"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":5064,"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":11884,"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":23577,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["icontextexternaltoolproperties",{"_index":5853,"title":{"interfaces/IContextExternalToolProperties.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["icopyfiledo",{"_index":10599,"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":6240,"title":{"interfaces/ICopyFileDomainObjectProps.html":{}},"body":{"classes/CopyFileDto.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{}}}],["icopyfilesofparentparams",{"_index":10701,"title":{"interfaces/ICopyFilesOfParentParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfilesrequestinfo",{"_index":6351,"title":{"interfaces/ICopyFilesRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["icoremoduleconfig",{"_index":11938,"title":{"interfaces/ICoreModuleConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icoursegroupproperties",{"_index":6823,"title":{"interfaces/ICourseGroupProperties.html":{}},"body":{"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["icourseproperties",{"_index":6591,"title":{"interfaces/ICourseProperties.html":{}},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["icreatenews",{"_index":11942,"title":{"interfaces/ICreateNews.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["icurrentuser",{"_index":270,"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/MetaTagExtractorController.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/ClassesRepo.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":{},"injectables/SubmissionItemUc.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":{},"classes/UserLoginMigrationMapper.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":20577,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["id.'})@apiresponse({status",{"_index":11047,"title":{},"body":{"controllers/GroupController.html":{}}}],["id.body.params.ts",{"_index":234,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:15",{"_index":244,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:26",{"_index":242,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:35",{"_index":240,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.id",{"_index":13596,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["id.loggable.ts",{"_index":18348,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:11",{"_index":18353,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:4",{"_index":18351,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.params",{"_index":19380,"title":{},"body":{"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["id.params.ts",{"_index":256,"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":258,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/SystemIdParams.html":{}}}],["id.params.ts:7",{"_index":5873,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["id.params.ts:8",{"_index":5876,"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":23312,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["id.strategy.ts",{"_index":1833,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{}}}],["id.strategy.ts:8",{"_index":1838,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{}}}],["id.token.claim",{"_index":13494,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["id.tostring",{"_index":910,"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":5554,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["id/challenge",{"_index":5590,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["id='${child.id",{"_index":2769,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["id_token",{"_index":126,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["id_token_hint_claims",{"_index":16384,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["idashboardmodelproperties",{"_index":7641,"title":{"interfaces/IDashboardModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["idashboardrepo",{"_index":7814,"title":{"interfaces/IDashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["idea",{"_index":2342,"title":{},"body":{"classes/BaseDomainObject.html":{},"injectables/TaskUC.html":{}}}],["idempotent",{"_index":2144,"title":{},"body":{"injectables/BBBService.html":{}}}],["identical",{"_index":13211,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["identifiable",{"_index":22830,"title":{},"body":{"license.html":{}}}],["identified",{"_index":23369,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiedreference",{"_index":2356,"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":1245,"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":15444,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["identifierref",{"_index":5238,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["identifiers",{"_index":12025,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/JwtValidationAdapter.html":{}}}],["identifies",{"_index":18937,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["identify",{"_index":5555,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["identities",{"_index":23611,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["identity",{"_index":2774,"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":616,"title":{"modules/IdentityManagementModule.html":{}},"body":{"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/IdentityManagementModule.html":{},"modules/SystemModule.html":{},"modules.html":{}}}],["identitymanagementoauthservice",{"_index":12672,"title":{"classes/IdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["identitymanagementoauthservice:24",{"_index":13534,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:54",{"_index":13535,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:61",{"_index":13537,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementservice",{"_index":583,"title":{"classes/IdentityManagementService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:113",{"_index":13578,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:126",{"_index":13579,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:131",{"_index":13568,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:136",{"_index":13580,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:14",{"_index":13566,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:152",{"_index":13581,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:46",{"_index":13583,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:62",{"_index":13585,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:76",{"_index":13577,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:84",{"_index":13574,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:98",{"_index":13575,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identityprovideralias",{"_index":13484,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapper",{"_index":13483,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapperrepresentation",{"_index":13367,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityproviderrepresentation",{"_index":13370,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["idhierarchy",{"_index":4839,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["idhierarchy[0",{"_index":4840,"title":{},"body":{"injectables/ColumnBoardService.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":630,"title":{},"body":{"modules/AccountModule.html":{}}}],["idm/dev:latest",{"_index":23053,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idmaccount",{"_index":543,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmaccountproperties",{"_index":176,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{}}}],["idmaccountupdate",{"_index":12701,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmoauthservice",{"_index":14399,"title":{},"body":{"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["idmreferenceid",{"_index":378,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSaveDto.html":{}}}],["idmservice",{"_index":586,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["idmuserrepresentation",{"_index":13681,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["idp",{"_index":11953,"title":{},"body":{"interfaces/ICurrentUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OauthCurrentUser.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idpalias",{"_index":13360,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["idparams",{"_index":12621,"title":{"classes/IdParams.html":{}},"body":{"classes/IdParams.html":{},"controllers/OauthProviderController.html":{}}}],["idphint",{"_index":12371,"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":565,"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":4004,"title":{},"body":{"controllers/CardController.html":{}}}],["ids.map((id",{"_index":2647,"title":{},"body":{"entities/Board.html":{}}}],["ids.map(async",{"_index":2336,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["ids.params.ts",{"_index":4054,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids.params.ts:10",{"_index":4058,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids[0",{"_index":3102,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["idtoken",{"_index":121,"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":16416,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["idtoken.uuid",{"_index":13117,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["idtokencreationloggableexception",{"_index":12624,"title":{"classes/IdTokenCreationLoggableException.html":{}},"body":{"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{}}}],["idtokencreationloggableexception(clientid",{"_index":12664,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["idtokenservice",{"_index":12632,"title":{"injectables/IdTokenService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["iencryptionservice",{"_index":9368,"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":2349,"title":{"interfaces/IEntity.html":{}},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ientitywithschool",{"_index":6578,"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":11970,"title":{"interfaces/IEntityWithTimestamps.html":{}},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ierror",{"_index":8435,"title":{"interfaces/IError.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["ierrortype",{"_index":3855,"title":{"interfaces/IErrorType.html":{}},"body":{"classes/BusinessError.html":{},"interfaces/IErrorType.html":{}}}],["iexternaltoolproperties",{"_index":8776,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["iexternaltoolpseudonymentityprops",{"_index":9008,"title":{"interfaces/IExternalToolPseudonymEntityProps.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["if/else",{"_index":23434,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ifederalstateproperties",{"_index":6522,"title":{"interfaces/IFederalStateProperties.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ifiledo",{"_index":10600,"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":9886,"title":{"interfaces/IFileDomainObjectProps.html":{}},"body":{"classes/FileDto-1.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["ifilerecordparams",{"_index":10705,"title":{"interfaces/IFileRecordParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifilerecordproperties",{"_index":10130,"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":10122,"title":{"interfaces/IFileRecordSecurityCheckProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerequestinfo",{"_index":6349,"title":{"interfaces/IFileRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{}}}],["ifilesstorageclientconfig",{"_index":10713,"title":{"interfaces/IFilesStorageClientConfig.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IServerConfig.html":{}}}],["ifilestorageconfig",{"_index":11976,"title":{"interfaces/IFileStorageConfig.html":{}},"body":{"interfaces/IFileStorageConfig.html":{}}}],["ifindoptions",{"_index":6969,"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":11153,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["iframe_restrict_access=false",{"_index":23709,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["iframesubject",{"_index":12666,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/PseudonymService.html":{}}}],["ignore",{"_index":2278,"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":2373,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ignoreexpiration",{"_index":13187,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["igridelement",{"_index":7498,"title":{"interfaces/IGridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["iidentitymanagementconfig",{"_index":12011,"title":{"interfaces/IIdentityManagementConfig.html":{}},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{}}}],["iimportuserproperties",{"_index":12017,"title":{"interfaces/IImportUserProperties.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{}}}],["iimportuserrolename",{"_index":12023,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/RoleNameMapper.html":{}}}],["iimportuserscope",{"_index":12063,"title":{"interfaces/IImportUserScope.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["iinterceptorconfig",{"_index":11940,"title":{"interfaces/IInterceptorConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IInterceptorConfig.html":{},"modules/InterceptorModule.html":{}}}],["ijsonaccount",{"_index":12069,"title":{"interfaces/IJsonAccount.html":{}},"body":{"interfaces/IJsonAccount.html":{},"classes/KeycloakSeedService.html":{}}}],["ijsonuser",{"_index":12073,"title":{"interfaces/IJsonUser.html":{}},"body":{"interfaces/IJsonUser.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloakconfigurationinputfiles",{"_index":12075,"title":{"interfaces/IKeycloakConfigurationInputFiles.html":{}},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloaksettings",{"_index":12082,"title":{"interfaces/IKeycloakSettings.html":{}},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["ilearnroom",{"_index":6579,"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":2620,"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":12088,"title":{"interfaces/ILegacyLogger.html":{}},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["ilessonparent",{"_index":6587,"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":11879,"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":11941,"title":{"interfaces/ILoggerConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/ILoggerConfig.html":{},"modules/LoggerModule.html":{}}}],["iltitoolproperties",{"_index":7170,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["im",{"_index":4883,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["image",{"_index":14885,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["image/gif",{"_index":8870,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/jpeg",{"_index":8865,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/png",{"_index":8868,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["image/webp",{"_index":20322,"title":{},"body":{"classes/TestHelper.html":{}}}],["imagebuffer",{"_index":8850,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagebuffer.tostring('hex",{"_index":8902,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagemagick",{"_index":16736,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["imageobject",{"_index":14871,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["images",{"_index":14874,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["images[0",{"_index":14908,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["images[0].width",{"_index":14909,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["imagesignature",{"_index":8901,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imageurl",{"_index":3221,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["imageurl(value",{"_index":14352,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["imageurlobject",{"_index":5736,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["imageurlobject.origin",{"_index":5738,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["imateapotexception",{"_index":9833,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imateapotexception('this",{"_index":9844,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imaterialproperties",{"_index":12107,"title":{"interfaces/IMaterialProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["imigrationoptions",{"_index":11612,"title":{"interfaces/IMigrationOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["immediately",{"_index":9711,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["immutable",{"_index":9539,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["impact",{"_index":22312,"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":23597,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["impersonated",{"_index":7165,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impersonates",{"_index":11952,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impl",{"_index":3307,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["impl.ts",{"_index":3164,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:113",{"_index":3182,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:128",{"_index":3183,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:142",{"_index":3184,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:157",{"_index":3185,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:175",{"_index":3180,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:189",{"_index":3175,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:194",{"_index":3192,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:200",{"_index":3190,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:205",{"_index":3188,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:30",{"_index":3171,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:39",{"_index":3179,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:43",{"_index":3177,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:60",{"_index":3176,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:75",{"_index":3173,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:99",{"_index":3181,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["implemenation",{"_index":23831,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implement",{"_index":13908,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implementation",{"_index":2432,"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":23171,"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":13157,"title":{},"body":{"interfaces/JwtConstants.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implemented.loggable",{"_index":16597,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["implementing",{"_index":23203,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implements",{"_index":1276,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"classes/UnknownQueryTypeLoggableException.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":23341,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["implicit",{"_index":23727,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implicitly",{"_index":23748,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implied",{"_index":22852,"title":{},"body":{"license.html":{}}}],["implies",{"_index":5574,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["import",{"_index":95,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":18770,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:13",{"_index":18774,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:22",{"_index":18773,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.module.ts",{"_index":12937,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["import.uc",{"_index":12794,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["import/controller/dto/filter",{"_index":10740,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["import/controller/dto/import",{"_index":12844,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{}}}],["import/controller/dto/sort",{"_index":18973,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["import/controller/dto/update",{"_index":20861,"title":{},"body":{"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{}}}],["import/controller/dto/user",{"_index":21441,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["import/controller/import",{"_index":12747,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["import/export",{"_index":23657,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["import/loggable/migration",{"_index":14959,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["import/loggable/school",{"_index":18347,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["import/loggable/user",{"_index":21485,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["import/mapper/import",{"_index":12865,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["import/mapper/match.mapper.ts",{"_index":12912,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:12",{"_index":12918,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:5",{"_index":12916,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/role",{"_index":17612,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["import/mapper/user",{"_index":21446,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["import/uc/ldap",{"_index":13735,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["import/user",{"_index":12936,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["important",{"_index":353,"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":7900,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollection(@param('collectionname",{"_index":7920,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollection(collectionname",{"_index":7908,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollections",{"_index":7901,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(@query('with",{"_index":7918,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(withindexes",{"_index":7911,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["imported",{"_index":11775,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/ShareTokenImportBodyParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["importeddocumentsamount",{"_index":11772,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["importhash",{"_index":12603,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["importing",{"_index":22798,"title":{},"body":{"license.html":{}}}],["imports",{"_index":225,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":13645,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["importsharetoken",{"_index":18703,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["importsharetoken(currentuser",{"_index":18710,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["importsharetoken(userid",{"_index":18888,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["importuser",{"_index":12029,"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":12886,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.firstname",{"_index":12882,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.flagged",{"_index":12887,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.id",{"_index":12880,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.lastname",{"_index":12883,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.loginname",{"_index":12881,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.matchedby",{"_index":12889,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.rolenames.map((role",{"_index":12884,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.scope",{"_index":12958,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuser.user",{"_index":12888,"title":{},"body":{"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["importuser.user).filter((user",{"_index":12984,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importusercontroller",{"_index":12746,"title":{"controllers/ImportUserController.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["importuserentities",{"_index":12980,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserentities.map((importuser",{"_index":12983,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserfactory",{"_index":12829,"title":{"classes/ImportUserFactory.html":{}},"body":{"classes/ImportUserFactory.html":{}}}],["importuserfactory.define(importuser",{"_index":12837,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["importuserid",{"_index":12860,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserlist",{"_index":12804,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlist.map((importuser",{"_index":12807,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlistresponse",{"_index":12795,"title":{"classes/ImportUserListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["importuserlistresponse(dtolist",{"_index":12809,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper",{"_index":12786,"title":{"classes/ImportUserMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["importusermapper.mapimportuserfilterquerytodomain(scope",{"_index":12803,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.mapsortingquerytodomain(sortingquery",{"_index":12802,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(importuser",{"_index":12808,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(result",{"_index":12813,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermatchmapper",{"_index":12874,"title":{"classes/ImportUserMatchMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["importusermatchmapper.mapimportusermatchscopetodomain(match",{"_index":12909,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusermatchmapper.mapmatchcreatortoresponse(matchcreator",{"_index":21462,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["importusermodule",{"_index":12931,"title":{"modules/ImportUserModule.html":{}},"body":{"modules/ImportUserModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["importuserrepo",{"_index":12935,"title":{"injectables/ImportUserRepo.html":{}},"body":{"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{}}}],["importuserresponse",{"_index":12796,"title":{"classes/ImportUserResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{}}}],["importusers",{"_index":12028,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"injectables/UserRepo.html":{}}}],["importuserschoolid",{"_index":18350,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserscope",{"_index":12957,"title":{"classes/ImportUserScope.html":{}},"body":{"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{}}}],["importusersortorder",{"_index":12873,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["importusersortorder.firstname",{"_index":12877,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusersortorder.lastname",{"_index":12878,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuserurlparams",{"_index":12768,"title":{"classes/ImportUserUrlParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserUrlParams.html":{}}}],["impose",{"_index":22729,"title":{},"body":{"license.html":{}}}],["imposed",{"_index":22855,"title":{},"body":{"license.html":{}}}],["impossile",{"_index":15257,"title":{},"body":{"classes/NewsScope.html":{}}}],["improvements",{"_index":22407,"title":{},"body":{"license.html":{}}}],["improves",{"_index":23394,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ims",{"_index":5302,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["imsbasiclti_v1p0p1.xsd",{"_index":5255,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticm_v1p0.xsd",{"_index":5254,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticp_v1p0.xsd",{"_index":5253,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["in.'})@apioperation({summary",{"_index":20522,"title":{},"body":{"controllers/ToolController.html":{}}}],["in/out",{"_index":23265,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["inability",{"_index":22908,"title":{},"body":{"license.html":{}}}],["inaccurate",{"_index":22911,"title":{},"body":{"license.html":{}}}],["inamematch",{"_index":12067,"title":{"interfaces/INameMatch.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["inc",{"_index":22363,"title":{},"body":{"license.html":{}}}],["incidental",{"_index":22905,"title":{},"body":{"license.html":{}}}],["include",{"_index":2358,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["included",{"_index":6226,"title":{},"body":{"classes/CopyApiResponse.html":{},"license.html":{}}}],["includes",{"_index":15353,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["including",{"_index":10402,"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":22603,"title":{},"body":{"license.html":{}}}],["incoming",{"_index":10953,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["incoming_request_timeout",{"_index":11985,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["incoming_request_timeout_copy_api",{"_index":11988,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incomplete",{"_index":11392,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["incorporate",{"_index":22411,"title":{},"body":{"license.html":{}}}],["incorporated",{"_index":22873,"title":{},"body":{"license.html":{}}}],["incorporation",{"_index":22656,"title":{},"body":{"license.html":{}}}],["increase",{"_index":9594,"title":{},"body":{"injectables/ExternalToolVersionService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["increaseversionofnewtoolifnecessary",{"_index":9557,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["increaseversionofnewtoolifnecessary(oldtool",{"_index":9575,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["indefinitely",{"_index":5511,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["indemnification",{"_index":22725,"title":{},"body":{"license.html":{}}}],["independent",{"_index":22593,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["index",{"_index":7,"title":{"index.html":{}},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":10103,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@enum(undefined",{"_index":3554,"title":{},"body":{"entities/BoardNode.html":{}}}],["index()@manytomany('course",{"_index":7624,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytomany('user",{"_index":6569,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{}}}],["index()@manytomany({fieldname",{"_index":20895,"title":{},"body":{"entities/User.html":{}}}],["index()@manytoone('course",{"_index":6815,"title":{},"body":{"entities/CourseGroup.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone('dashboardmodelentity",{"_index":7622,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytoone('lessonentity",{"_index":19604,"title":{},"body":{"entities/Task.html":{}}}],["index()@manytoone('user",{"_index":7708,"title":{},"body":{"entities/DashboardModelEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone(undefined",{"_index":6564,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["index()@property",{"_index":14204,"title":{},"body":{"entities/LessonEntity.html":{}}}],["index()@property({fieldname",{"_index":10095,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@property({nullable",{"_index":3550,"title":{},"body":{"entities/BoardNode.html":{},"entities/Course.html":{}}}],["index({options",{"_index":10098,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["index.ts",{"_index":22963,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["indexes",{"_index":7872,"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":11806,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["indicate",{"_index":22769,"title":{},"body":{"license.html":{}}}],["indicating",{"_index":7126,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["individual",{"_index":22601,"title":{},"body":{"license.html":{}}}],["individuals",{"_index":22442,"title":{},"body":{"license.html":{}}}],["industrial",{"_index":22665,"title":{},"body":{"license.html":{}}}],["inestapplication",{"_index":1434,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inewsproperties",{"_index":6919,"title":{"interfaces/INewsProperties.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["inewsscope",{"_index":11950,"title":{"interfaces/INewsScope.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["inferrable",{"_index":12864,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["info",{"_index":3,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":21811,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["info(loggable",{"_index":14434,"title":{},"body":{"injectables/Logger.html":{}}}],["info(text",{"_index":5604,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["info.dto.ts",{"_index":4329,"title":{},"body":{"classes/ClassInfoDto.html":{},"interfaces/ShareTokenInfoDto.html":{}}}],["info.dto.ts:10",{"_index":4336,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:12",{"_index":4341,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:14",{"_index":4340,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:16",{"_index":4338,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:18",{"_index":4335,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:4",{"_index":4337,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:6",{"_index":4343,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:8",{"_index":4339,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.interface.ts",{"_index":12241,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["info.mapper",{"_index":15151,"title":{},"body":{"classes/NewsMapper.html":{}}}],["info.mapper.ts",{"_index":18374,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.mapper.ts:5",{"_index":18376,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.reponse.ts",{"_index":18778,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:13",{"_index":18782,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:16",{"_index":18781,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:20",{"_index":18780,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:5",{"_index":18779,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.response",{"_index":4370,"title":{},"body":{"classes/ClassInfoSearchListResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{}}}],["info.response.ts",{"_index":2100,"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":21984,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:12",{"_index":4362,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:13",{"_index":18382,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:14",{"_index":21108,"title":{},"body":{"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:15",{"_index":4359,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:18",{"_index":4364,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:19",{"_index":21107,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:21",{"_index":4363,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:24",{"_index":4361,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:27",{"_index":4358,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:3",{"_index":18381,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:6",{"_index":4360,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:9",{"_index":4365,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.ts",{"_index":11937,"title":{},"body":{"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"classes/VideoConferenceInfo.html":{}}}],["info.ts:6",{"_index":21977,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["info.uc.ts",{"_index":21986,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:12",{"_index":21988,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:19",{"_index":21990,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:74",{"_index":21992,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["infodto",{"_index":21950,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["infodto.state",{"_index":21952,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["inform",{"_index":22641,"title":{},"body":{"license.html":{}}}],["information",{"_index":1239,"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":4875,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["infra",{"_index":14791,"title":{},"body":{"modules/ManagementModule.html":{}}}],["infrastructure",{"_index":23275,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["infrastucture",{"_index":18660,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["infringe",{"_index":22767,"title":{},"body":{"license.html":{}}}],["infringed",{"_index":22795,"title":{},"body":{"license.html":{}}}],["infringement",{"_index":22453,"title":{},"body":{"license.html":{}}}],["inherit",{"_index":2360,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritance",{"_index":23731,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritances",{"_index":15222,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["inherited",{"_index":382,"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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Card.html":{},"injectables/CardUc.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":{},"injectables/ColumnUc.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":{},"injectables/ElementUc.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/SubmissionItemUc.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":3846,"title":{},"body":{"classes/Builder.html":{}}}],["initauth",{"_index":11497,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initauth(oauthconfig",{"_index":11508,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initialdelay",{"_index":13793,"title":{},"body":{"injectables/LdapService.html":{}}}],["initialized",{"_index":17165,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["initializes3clientmap",{"_index":8011,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["initiate",{"_index":22790,"title":{},"body":{"license.html":{}}}],["initiated",{"_index":11955,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["initresponse",{"_index":11434,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["initresponse.config",{"_index":11470,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["inject",{"_index":639,"title":{},"body":{"modules/AccountModule.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/ColumnUc.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":1166,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["inject('dashboard_repo",{"_index":7844,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["inject('icollaborativestoragestrategy",{"_index":4584,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["inject('mail_service_options",{"_index":14776,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["inject('rocket_chat_options",{"_index":1015,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["inject(bbbsettings",{"_index":2185,"title":{},"body":{"injectables/BBBService.html":{}}}],["inject(cache_manager",{"_index":13220,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["inject(defaultencryptionservice",{"_index":9397,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["inject(files_storage_s3_connection",{"_index":16796,"title":{},"body":{"injectables/PreviewService.html":{}}}],["inject(forwardref",{"_index":3095,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["inject(fwu_content_s3_connection",{"_index":10853,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["inject(keycloakconfigurationinputfiles",{"_index":13714,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inject(keycloaksettings",{"_index":13277,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["inject(ldapencryptionservice",{"_index":11691,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["inject(redis_client",{"_index":18655,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["inject(s3_client",{"_index":17936,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(s3_config",{"_index":17937,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(toolfeatures",{"_index":8871,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["inject(your_s3_uniq_connection_token",{"_index":23853,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injectable",{"_index":539,"title":{"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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/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/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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/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":541,"title":{},"body":{"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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/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":9707,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["injectenvvars(json",{"_index":11823,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["injecting",{"_index":23846,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injection",{"_index":13910,"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":23804,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inline",{"_index":1297,"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":1296,"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":12193,"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":5336,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["innerpermissions",{"_index":12179,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerrole.resolvepermissions",{"_index":12180,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles",{"_index":12176,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles.foreach((innerrole",{"_index":12178,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["input",{"_index":2158,"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":18066,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.dto.ts",{"_index":15828,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:4",{"_index":15830,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:6",{"_index":15831,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:8",{"_index":15829,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.mapper",{"_index":16954,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["input.mapper.ts",{"_index":16978,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.mapper.ts:6",{"_index":16981,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.system",{"_index":13136,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.provisioningurl",{"_index":18065,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.systemid",{"_index":13122,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["inputdto",{"_index":16962,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["inputfiles",{"_index":13703,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inputformat",{"_index":3224,"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":17551,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["inputformat.plain_text",{"_index":5721,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["inputformat.rich_text_ck4",{"_index":12471,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"classes/TaskWithStatusVo.html":{}}}],["inputformat.rich_text_ck5",{"_index":3518,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/TaskMapper.html":{}}}],["inputpath",{"_index":1493,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputpath.charat(pos",{"_index":1490,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputroles",{"_index":16646,"title":{},"body":{"injectables/PermissionService.html":{}}}],["insensitive",{"_index":13014,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["insertedcount",{"_index":7963,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["inside",{"_index":3853,"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":23681,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["inspired",{"_index":23568,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["install",{"_index":22502,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["installation",{"_index":22669,"title":{},"body":{"license.html":{}}}],["installed",{"_index":22686,"title":{},"body":{"license.html":{}}}],["instance",{"_index":5230,"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":604,"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":{},"injectables/ColumnBoardService.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":5753,"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":6600,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["instead",{"_index":2334,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseUc.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/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":23282,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["instructor",{"_index":7173,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["intact",{"_index":22570,"title":{},"body":{"license.html":{}}}],["integration",{"_index":11382,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["intend",{"_index":11853,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["intended",{"_index":4142,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["intendeduse",{"_index":5117,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["intention",{"_index":22563,"title":{},"body":{"license.html":{}}}],["interact",{"_index":22942,"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":22868,"title":{},"body":{"license.html":{}}}],["interaction",{"_index":22468,"title":{},"body":{"license.html":{}}}],["interactions",{"_index":23215,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interactive",{"_index":22471,"title":{},"body":{"license.html":{}}}],["intercept",{"_index":8225,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["intercept(context",{"_index":8227,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["interceptor",{"_index":6511,"title":{},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interceptormodule",{"_index":6494,"title":{"modules/InterceptorModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"modules.html":{}}}],["interchange",{"_index":22613,"title":{},"body":{"license.html":{}}}],["interest",{"_index":22783,"title":{},"body":{"license.html":{}}}],["interface",{"_index":105,"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/AutoParameterStrategy.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/AutoParameterStrategy.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":{},"classes/ClassFilterParams.html":{},"interfaces/ClassProps.html":{},"classes/ClassSortParams.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":3879,"title":{},"body":{"injectables/CacheService.html":{}}}],["interface/calendar",{"_index":3950,"title":{},"body":{"injectables/CalendarService.html":{}}}],["interface/json",{"_index":13711,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["interface/jwt",{"_index":1550,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{}}}],["interface/keycloak",{"_index":13235,"title":{},"body":{"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["interface/learnroom",{"_index":12457,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["interface/oauth",{"_index":1337,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["interface/oidc",{"_index":16905,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["interface/page",{"_index":16573,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["interface/preview",{"_index":10109,"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":17400,"title":{},"body":{"modules/RedisModule.html":{}}}],["interface/sso",{"_index":1730,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["interfaces",{"_index":107,"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/AutoParameterStrategy.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":6352,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{}}}],["interfaces/legacy",{"_index":13905,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["interfered",{"_index":22675,"title":{},"body":{"license.html":{}}}],["intermediate",{"_index":1751,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["internal",{"_index":563,"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",{"_index":20857,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["internal_server_error_exception",{"_index":12629,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["internalaxiosrequestconfig",{"_index":1913,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["internalid",{"_index":874,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["internally",{"_index":17939,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["internalmeetingid",{"_index":2049,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["internalrepo",{"_index":23226,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["internalservererrorexception",{"_index":1158,"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":{},"controllers/MetaTagExtractorController.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":{},"classes/UnknownQueryTypeLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["internalservererrorexception('cannot",{"_index":3561,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/UserLoginMigrationService.html":{}}}],["internalservererrorexception('copy",{"_index":6778,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["internalservererrorexception('courses",{"_index":6652,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["internalservererrorexception('expected",{"_index":4789,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["internalservererrorexception('feature",{"_index":10812,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["internalservererrorexception('import",{"_index":18932,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["internalservererrorexception('lessons",{"_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":{}}}],["internalservererrorexception('multiple_matches_are_not_allowed",{"_index":17896,"title":{},"body":{"injectables/RuleManager.html":{}}}],["internalservererrorexception('provisioning",{"_index":16967,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["internalservererrorexception('s3clientadapter:copy",{"_index":17981,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:create",{"_index":17960,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:delete",{"_index":17969,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:get",{"_index":17954,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:restore",{"_index":17974,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('submissions",{"_index":12489,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('task.finished",{"_index":12493,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('tool",{"_index":16108,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception('unknown",{"_index":7763,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["internalservererrorexception('user",{"_index":4442,"title":{},"body":{"injectables/ClassService.html":{},"injectables/PseudonymService.html":{}}}],["internalservererrorexception(`${bbbresp.response.messagekey",{"_index":2204,"title":{},"body":{"injectables/BBBService.html":{}}}],["internalservererrorexception(`cannot",{"_index":16106,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception(`multiple",{"_index":14043,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["internalservererrorexception(`redirect",{"_index":11476,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["internalservererrorexception(errorobj.message",{"_index":8443,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["internalservererrorexception(null",{"_index":1189,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/ErrorMapper.html":{}}}],["internalservererrorexception(oauthclientid",{"_index":11566,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["internalservererrorexception})@apiresponse({status",{"_index":18716,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@get('/:contentid/edit",{"_index":11376,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get('/:contentid/play",{"_index":11378,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get(':token",{"_index":18722,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@post",{"_index":14836,"title":{},"body":{"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{}}}],["internalservice",{"_index":23227,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interpretation",{"_index":22917,"title":{},"body":{"license.html":{}}}],["interpreter",{"_index":22501,"title":{},"body":{"license.html":{}}}],["intimate",{"_index":22510,"title":{},"body":{"license.html":{}}}],["introduce",{"_index":9708,"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":23320,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introducing",{"_index":23021,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["introduction",{"_index":22960,"title":{},"body":{"todo.html":{}}}],["introspectoauth2token",{"_index":16156,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectoauth2token(token",{"_index":16171,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectresponse",{"_index":13063,"title":{"interfaces/IntrospectResponse.html":{}},"body":{"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{}}}],["inusermigration",{"_index":12194,"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":285,"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":13074,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["invalid_request",{"_index":5515,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["invalidate",{"_index":22590,"title":{},"body":{"license.html":{}}}],["invalidoriginforlogouturlloggableexception",{"_index":13070,"title":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/VideoConferenceController.html":{}}}],["invalidoriginforlogouturlloggableexception(params.logouturl",{"_index":21839,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["inversion",{"_index":23169,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["invitationlink",{"_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":{}}}],["inviteusertogroup(groupname",{"_index":1040,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["invoke",{"_index":23645,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["ip",{"_index":23680,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipaddress",{"_index":23683,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipagination",{"_index":9044,"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":10131,"title":{"interfaces/IParentInfo.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iprimarykey",{"_index":10662,"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":12114,"title":{"interfaces/IRelatedResourceProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["irepoloader",{"_index":12134,"title":{"interfaces/IRepoLoader.html":{}},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["iretryoptions",{"_index":11609,"title":{"interfaces/IRetryOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["iroleproperties",{"_index":12170,"title":{"interfaces/IRoleProperties.html":{}},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["irrevocable",{"_index":22516,"title":{},"body":{"license.html":{}}}],["isactive",{"_index":8180,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isallowedaschild",{"_index":2730,"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":19123,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isallowedaschild(domainobject",{"_index":2747,"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":5676,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isanycontentelement(element",{"_index":5680,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isapplicable",{"_index":3349,"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":3353,"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":8215,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["isarray",{"_index":5536,"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":15646,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isarray()@ismongoid({each",{"_index":16628,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["isarray()@isoptional()@isstring({each",{"_index":5551,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{}}}],["isarray()@isstring({each",{"_index":5494,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["isatleastpartialsuccessfull",{"_index":6427,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isatleastpartialsuccessfull(status",{"_index":6437,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isauthenticated",{"_index":23839,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["isauthenticationresponse",{"_index":1502,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthenticationresponse(body",{"_index":1501,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthorizedstudent",{"_index":2454,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["isauthorizedstudent(userid",{"_index":2465,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["isautoparameterglobal",{"_index":8928,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isautoparameterglobal(customparameter",{"_index":8940,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isblocked",{"_index":10168,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isboolean",{"_index":147,"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":7400,"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":7125,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["isboolean()@isoptional()@apiproperty({description",{"_index":5498,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/MigrationBody.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":139,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["isbreakout",{"_index":2105,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["isbusinesserror",{"_index":8463,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isbusinesserror(error",{"_index":8469,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["iscard(reference",{"_index":3984,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["ischoolexternaltoolproperties",{"_index":12183,"title":{"interfaces/ISchoolExternalToolProperties.html":{}},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["ischoolproperties",{"_index":12191,"title":{"interfaces/ISchoolProperties.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ischoolyearproperties",{"_index":12233,"title":{"interfaces/ISchoolYearProperties.html":{}},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["isclientidunique",{"_index":9515,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["isclientidunique(externaltool",{"_index":9520,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["iscolumn(reference",{"_index":4748,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["iscolumnboard",{"_index":4772,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(copystatus.copyentity",{"_index":4788,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(reference",{"_index":4765,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["iscolumnboardfeatureflagactive",{"_index":8130,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["iscolumnboardtarget",{"_index":2973,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(element.target",{"_index":3017,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(reference",{"_index":4921,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["iscopeinfo",{"_index":12239,"title":{"interfaces/IScopeInfo.html":{}},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["iscopyfrom",{"_index":10093,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iscoursefinished",{"_index":12509,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["iscreator",{"_index":17749,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iscustomparameternameempty",{"_index":8929,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iscustomparameternameempty(param",{"_index":8942,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdate",{"_index":802,"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":7105,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isdefaultvalueofvalidregex",{"_index":8930,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidregex(param",{"_index":8944,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype",{"_index":8931,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype(param",{"_index":8946,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdirectory",{"_index":9961,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["isdraft",{"_index":3758,"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":251,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/PatchMyAccountParams.html":{}}}],["isemail()@isoptional()@apiproperty({description",{"_index":16611,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["isempty",{"_index":10997,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["isemptyqueryallowed",{"_index":6084,"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":16824,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["isenum",{"_index":847,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassFilterParams.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":848,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(accountsearchtype)@apiproperty({description",{"_index":833,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(classsortby",{"_index":4458,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isenum(contentelementtype",{"_index":7046,"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":7055,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isenum(contentelementtype)@apiproperty({enum",{"_index":8241,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["isenum(customparameterlocationparams",{"_index":7415,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterlocationparams)@apiproperty",{"_index":7403,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams",{"_index":7414,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams)@apiproperty",{"_index":7409,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams",{"_index":7416,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams)@apiproperty",{"_index":7412,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(externaltoolsortby",{"_index":18965,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isenum(filerecordparenttype",{"_index":6299,"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":10763,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(filterroletype",{"_index":10764,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(importusersortorder",{"_index":18975,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isenum(inputformat",{"_index":8246,"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":17535,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["isenum(languagetype",{"_index":4203,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["isenum(ltimessagetype",{"_index":14609,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltimessagetype)@apiproperty",{"_index":14602,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission",{"_index":14610,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission)@apiproperty",{"_index":14604,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(newstargetmodel",{"_index":7120,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["isenum(newstargetmodel)@apiproperty({enum",{"_index":7113,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isenum(pagetypes",{"_index":16574,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["isenum(previewoutputmimetypes",{"_index":6312,"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":6314,"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(schoolyearquerytype",{"_index":4326,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["isenum(sharetokenparenttype",{"_index":18695,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sharetokenparenttype)@apiproperty({description",{"_index":18690,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sortorder",{"_index":18980,"title":{},"body":{"classes/SortingParams.html":{}}}],["isenum(ssoauthenticationerror",{"_index":1733,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isenum(subjecttypeenum",{"_index":15740,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(subjecttypeenum)@isoptional()@apiproperty({description",{"_index":15726,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(systemtypeenum",{"_index":19458,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["isenum(tokenauthmethod",{"_index":15739,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenauthmethod)@isoptional()@apiproperty({description",{"_index":15731,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenendpointauthmethod",{"_index":15652,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(tokenendpointauthmethod)@apiproperty",{"_index":15650,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype",{"_index":2515,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype)@apiproperty",{"_index":2512,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolcontexttype",{"_index":5837,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{}}}],["isenum(toolcontexttype)@apiproperty",{"_index":5891,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({enum",{"_index":5834,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({type",{"_index":6195,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["isenum(videoconferencescope",{"_index":22128,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["iserv",{"_index":13113,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{}}}],["iserverconfig",{"_index":601,"title":{"interfaces/IServerConfig.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["iservlogouturl",{"_index":15579,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('id_token_hint",{"_index":15581,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('post_logout_redirect_uri",{"_index":15582,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.tostring",{"_index":15584,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservmapper",{"_index":13079,"title":{"classes/IservMapper.html":{}},"body":{"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternalschooldto(ldapschool",{"_index":13134,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternaluserdto(ldapuser",{"_index":13132,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservprovisioningstrategy",{"_index":13096,"title":{"injectables/IservProvisioningStrategy.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["iservstrategy",{"_index":16937,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["isession",{"_index":15856,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["isexternaltoolelement(reference",{"_index":8728,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["isexternaluser",{"_index":7092,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["isfeatherserror",{"_index":8464,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfeatherserror(error",{"_index":8471,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfileelement",{"_index":19131,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isfileelement(child",{"_index":19136,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isfileelement(element",{"_index":19144,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isfileelement(reference",{"_index":9930,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["isfileelementresponse",{"_index":5644,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["isfileelementresponse(result",{"_index":5659,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["isfinished",{"_index":3759,"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":12511,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser(user",{"_index":12503,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isflagged",{"_index":13005,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isflagged(flagged",{"_index":13023,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isglobal",{"_index":8999,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid",{"_index":8932,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid(customparameter",{"_index":8948,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isgraceperiodexpired",{"_index":4511,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraceperiodexpired(userloginmigration",{"_index":4519,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraded",{"_index":12335,"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":12338,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isgradedforuser(user",{"_index":12336,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgroup",{"_index":7527,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["isguest",{"_index":21996,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["isharetokenproperties",{"_index":12261,"title":{"interfaces/IShareTokenProperties.html":{}},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{}}}],["ishidden",{"_index":7203,"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":11535,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["isinfected",{"_index":1167,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["isinstancealive",{"_index":16157,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["isinstanceofloggable",{"_index":14471,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isinstanceofloggable(object",{"_index":14476,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isint",{"_index":5537,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isint()@isoptional()@apiproperty({description",{"_index":5506,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["isint()@isoptional()@ispositive()@apiproperty({description",{"_index":18685,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isint()@min(0)@apipropertyoptional({description",{"_index":843,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["isint()@min(1)@max(100)@apipropertyoptional({description",{"_index":837,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["islatest",{"_index":5394,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islatest(tool1",{"_index":5398,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islesson",{"_index":2974,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(element.target",{"_index":3014,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(reference",{"_index":11928,"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":14356,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["islisteningonly",{"_index":2119,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["islocal",{"_index":7192,"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":14608,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocale()@apiproperty",{"_index":14600,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocalhost",{"_index":1121,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["islti11config",{"_index":8558,"title":{},"body":{"classes/ExternalTool.html":{}}}],["islti11config(config",{"_index":8569,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["ismandatory",{"_index":18389,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ismarked",{"_index":10302,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["ismarkedfordeletion",{"_index":10024,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ismatched",{"_index":3357,"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":12318,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["ismongoid",{"_index":803,"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":5875,"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":3814,"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":5872,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/GroupIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["ismongoid()@apiproperty({pattern",{"_index":7110,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ImportUserResponse.html":{}}}],["ismongoid()@apiproperty({required",{"_index":15033,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["ismongoid()@isoptional()@apipropertyoptional",{"_index":8693,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["ismongoid({each",{"_index":4055,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["isnameunique",{"_index":8933,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnameunique(externaltool",{"_index":8950,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnan",{"_index":5448,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnan(number(val",{"_index":5441,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnesthttpexception",{"_index":8465,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnesthttpexception(error",{"_index":8474,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnextcloud",{"_index":16083,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool",{"_index":16068,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool(tool",{"_index":16073,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnotcontained",{"_index":2673,"title":{},"body":{"entities/Board.html":{}}}],["isnotempty",{"_index":804,"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":19032,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnotemptystring(value",{"_index":19033,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnumber",{"_index":3431,"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":5532,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["isnumber()@min(0)@apiproperty",{"_index":3428,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@apiproperty({required",{"_index":15035,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty",{"_index":3425,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty({description",{"_index":14387,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isnumber()@min(0)@isoptional()@apipropertyoptional({description",{"_index":15049,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@max(500)@isoptional()@apiproperty({description",{"_index":14383,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isoauth2config",{"_index":8559,"title":{},"body":{"classes/ExternalTool.html":{}}}],["isoauth2config(config",{"_index":8571,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["isoauthconfigavailable",{"_index":12683,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["isoauthprovisioningenabledforschool",{"_index":15507,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15529,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isolate",{"_index":23722,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["isolated",{"_index":23482,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isolation",{"_index":23417,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isopen",{"_index":6792,"title":{},"body":{"classes/CourseFactory.html":{}}}],["isoptional",{"_index":249,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/BoardLessonResponse.html":{},"classes/ClassFilterParams.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":5558,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@apiproperty({description",{"_index":5549,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@isboolean",{"_index":386,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isboolean()@apiproperty",{"_index":18011,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isboolean()@apiproperty({description",{"_index":235,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":10773,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/PreviewParams.html":{}}}],["isoptional()@isdate",{"_index":390,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isdate()@apipropertyoptional({description",{"_index":20874,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isenum(classsortby)@apipropertyoptional({enum",{"_index":4453,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isoptional()@isenum(externaltoolsortby)@apipropertyoptional({enum",{"_index":18963,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isoptional()@isenum(filterroletype)@apipropertyoptional({enum",{"_index":10758,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isenum(importusersortorder)@apipropertyoptional({enum",{"_index":18974,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isoptional()@isenum(schoolyearquerytype)@apipropertyoptional({enum",{"_index":4324,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["isoptional()@isenum(sortorder)@apipropertyoptional({enum",{"_index":4456,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["isoptional()@isenum(ssoauthenticationerror",{"_index":1725,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isint()@min(0)@apipropertyoptional({description",{"_index":7051,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isoptional()@ismongoid",{"_index":396,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@ismongoid()@apipropertyoptional({pattern",{"_index":10768,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["isoptional()@isstring",{"_index":388,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@apiproperty",{"_index":18013,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isstring()@apiproperty({description",{"_index":18771,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["isoptional()@isstring()@isemail()@apiproperty({description",{"_index":243,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isstring()@isenum(newstargetmodel)@apipropertyoptional({enum",{"_index":10771,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["isoptional()@isstring()@isnotempty",{"_index":1722,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@isnotempty()@apipropertyoptional({type",{"_index":10744,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isstring()@sanitizehtml()@apipropertyoptional({description",{"_index":20876,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isstring()@sanitizehtml(inputformat.rich_text)@apipropertyoptional({description",{"_index":20872,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoutdated",{"_index":18450,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserScope.html":{}}}],["isoutdated(isoutdated",{"_index":21659,"title":{},"body":{"classes/UserScope.html":{}}}],["isoutdated(query.isoutdated",{"_index":21001,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["isowner",{"_index":21654,"title":{},"body":{"injectables/UserRule.html":{}}}],["ispending",{"_index":10176,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isplanned",{"_index":12513,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["ispositive",{"_index":18673,"title":{},"body":{"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["ispositive()@apiproperty({required",{"_index":18671,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["ispossible",{"_index":18390,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ispresenter",{"_index":2118,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["ispreviewpossible",{"_index":10179,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ispropertyprivacyprotected",{"_index":8360,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["ispropertyprivacyprotected(target",{"_index":8372,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["isprotecteduser",{"_index":21715,"title":{},"body":{"injectables/UserService.html":{}}}],["ispublished",{"_index":12512,"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":8934,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexcommentmandatoryandfilled(customparameter",{"_index":8952,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid",{"_index":8935,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid(param",{"_index":8954,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isrelativeurl",{"_index":5732,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["isrelativeurl(this.content.imageurl",{"_index":5739,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["isrequiredtool",{"_index":9809,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["isrichtextelement",{"_index":19132,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isrichtextelement(child",{"_index":19137,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isrichtextelement(element",{"_index":19143,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isrichtextelement(reference",{"_index":17555,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["isrichtextelementresponse",{"_index":5645,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["isrichtextelementresponse(result",{"_index":5660,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["iss",{"_index":7061,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["issatisfiedby(t",{"_index":23387,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["isschoolnumberunique",{"_index":18510,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isschoolnumberunique(school",{"_index":18512,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isslash",{"_index":1489,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isslash(inputpath",{"_index":1487,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isstring",{"_index":248,"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/MetaTagExtractorResponse.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":2510,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RichTextContentBody.html":{}}}],["isstring()@apiproperty({description",{"_index":257,"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":17042,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["isstring()@apiproperty({required",{"_index":17410,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["isstring()@ismongoid()@isoptional()@apipropertyoptional({description",{"_index":19757,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@isnotempty",{"_index":400,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{}}}],["isstring()@isnotempty()@apiproperty",{"_index":7398,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{}}}],["isstring()@isoptional()@apiproperty",{"_index":14328,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["isstring()@isoptional()@apiproperty({description",{"_index":5513,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{}}}],["isstring()@isoptional()@apipropertyoptional",{"_index":5893,"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":19759,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@matches(undefined)@apiproperty({description",{"_index":6958,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["isstring()@sanitizehtml()@apiproperty({description",{"_index":7116,"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":7103,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isstring(value",{"_index":19035,"title":{},"body":{"classes/StringValidator.html":{}}}],["isstudent",{"_index":6982,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["issubmissioncontainerelement",{"_index":8311,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(reference",{"_index":19059,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["issubmissioncontainerelement(submissioncontainerelement",{"_index":8323,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(submissioncontainterelement",{"_index":19195,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["issubmissionitem",{"_index":8312,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissionitem(child",{"_index":8327,"title":{},"body":{"injectables/ElementUc.html":{}}}],["issubmissionitem(parent",{"_index":8320,"title":{},"body":{"injectables/ElementUc.html":{}}}],["issubmissionitem(reference",{"_index":19141,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["issubmissionitemcontent",{"_index":19142,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["issubmitted",{"_index":12316,"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":12321,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["issubmittedforuser(user",{"_index":12317,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubstitutionteacher",{"_index":3760,"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":1421,"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":23110,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["istanbul",{"_index":3019,"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":2975,"title":{},"body":{"injectables/BoardCopyService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["istask(element.target",{"_index":3010,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["istask(reference",{"_index":12561,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isteacher",{"_index":6983,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isteamuser",{"_index":20199,"title":{},"body":{"injectables/TeamRule.html":{}}}],["istemplate",{"_index":7191,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["istoolstatuslatestorthrow",{"_index":20661,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istoolstatuslatestorthrow(userid",{"_index":20668,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istorageproviderproperties",{"_index":12272,"title":{"interfaces/IStorageProviderProperties.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["isubmissionproperties",{"_index":12285,"title":{"interfaces/ISubmissionProperties.html":{}},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{}}}],["isuniqueemail",{"_index":915,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemail(email",{"_index":919,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount",{"_index":916,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount(email",{"_index":921,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser",{"_index":917,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser(email",{"_index":923,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isupgradable",{"_index":4331,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["isurl",{"_index":8243,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/GetMetaTagDataBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MetaTagExtractorResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["isurl()@apiproperty",{"_index":14332,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["isurl()@apiproperty({required",{"_index":10875,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["isuserinfinisheduser",{"_index":12506,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isuseringroup",{"_index":16512,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["isuserreferenced",{"_index":1640,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isuserreferenced(user",{"_index":1651,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isusersubmitter(user",{"_index":12332,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isusersubstitutionteacher(user",{"_index":6648,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["isusersubstitutionteacherincourse(user",{"_index":12535,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isvalid",{"_index":3249,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isvaluevalidfortype",{"_index":5417,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isvaluevalidfortype(type",{"_index":5434,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isverified",{"_index":10177,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isvisible",{"_index":14273,"title":{},"body":{"injectables/LessonRule.html":{}}}],["iswhitelisted",{"_index":13200,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["iswhitelisted(accountid",{"_index":13207,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["isystemproperties",{"_index":12339,"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":23451,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["it(\"should",{"_index":23416,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('bad",{"_index":23455,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('good",{"_index":23457,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('should",{"_index":23519,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["itargetgroupproperties",{"_index":12115,"title":{"interfaces/ITargetGroupProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["itask",{"_index":12445,"title":{"interfaces/ITask.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["itaskcreate",{"_index":12449,"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":6589,"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":12450,"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":3753,"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":12448,"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":12562,"title":{"interfaces/ITeamProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{}}}],["iteamuserproperties",{"_index":12567,"title":{"interfaces/ITeamUserProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["item",{"_index":3160,"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":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["item.'})@apiextramodels(richtextelementresponse",{"_index":3687,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.'})@apiresponse({status",{"_index":3701,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.body.params.ts",{"_index":7124,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.body.params.ts:10",{"_index":7128,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.columnboardid",{"_index":4941,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["item.do",{"_index":2823,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"injectables/SubmissionItemFactory.html":{}}}],["item.do.ts",{"_index":19120,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["item.do.ts:10",{"_index":19127,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:14",{"_index":19128,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:18",{"_index":19130,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:6",{"_index":19125,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.factory.ts",{"_index":19146,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.factory.ts:7",{"_index":19147,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.name.tolocalelowercase",{"_index":8988,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["item.response",{"_index":19337,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item.response.ts",{"_index":19156,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:16",{"_index":19160,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:19",{"_index":19161,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:22",{"_index":19158,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:25",{"_index":19162,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:33",{"_index":19159,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:6",{"_index":19157,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.service",{"_index":8314,"title":{},"body":{"injectables/ElementUc.html":{}}}],["item.service.ts",{"_index":19183,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:11",{"_index":19184,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:14",{"_index":19187,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:24",{"_index":19186,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:44",{"_index":19189,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.split(';')[0",{"_index":11557,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["item.uc",{"_index":2705,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["item.uc.ts",{"_index":19198,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:27",{"_index":19200,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:38",{"_index":19204,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:64",{"_index":19206,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:76",{"_index":19202,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.url.params.ts",{"_index":19218,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.url.params.ts:11",{"_index":19219,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.userid",{"_index":8332,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["item/create",{"_index":7123,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{}}}],["item/submission",{"_index":19075,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["item/submissions.response",{"_index":3708,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item/submissions.response.ts",{"_index":19331,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:14",{"_index":19334,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:19",{"_index":19335,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:5",{"_index":19333,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/update",{"_index":20878,"title":{},"body":{"classes/UpdateSubmissionItemBodyParams.html":{}}}],["itemindex",{"_index":8985,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["items",{"_index":822,"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":{},"classes/SubmissionItemResponse.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["itemsperpage",{"_index":11343,"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":8596,"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":2544,"title":{"interfaces/IToolLaunchParams.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["itoollaunchstrategy",{"_index":12588,"title":{"interfaces/IToolLaunchStrategy.html":{}},"body":{"interfaces/IToolLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["itself",{"_index":1756,"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":11949,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["iuserconfig",{"_index":12244,"title":{"interfaces/IUserConfig.html":{}},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["iuserloginmigration",{"_index":21246,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["iuserproperties",{"_index":12594,"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":7387,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ivideoconferenceproperties",{"_index":21762,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ivideoconferencesettings",{"_index":12616,"title":{"interfaces/IVideoConferenceSettings.html":{}},"body":{"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["javascript",{"_index":2174,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BsonConverter.html":{}}}],["jest",{"_index":20300,"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":23119,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["jest.fn",{"_index":23530,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.resetallmocks",{"_index":23507,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.restoreallmocks",{"_index":23515,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.spyon",{"_index":23527,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jira",{"_index":22331,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["job",{"_index":7989,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["job_init_idm.yml.j2",{"_index":13652,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["john",{"_index":21057,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["john${sequence",{"_index":12840,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["join",{"_index":2076,"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":2168,"title":{},"body":{"injectables/BBBService.html":{}}}],["join(currentuser",{"_index":21815,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["join(currentuserid",{"_index":22012,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.config",{"_index":2088,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["join.config.ts",{"_index":2054,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:18",{"_index":2059,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:20",{"_index":2062,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:22",{"_index":2063,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:24",{"_index":2060,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:26",{"_index":2061,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:8",{"_index":2058,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.response.ts",{"_index":2093,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["join.response.ts:5",{"_index":22009,"title":{},"body":{"classes/VideoConferenceJoinResponse.html":{}}}],["join.ts",{"_index":22004,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:5",{"_index":22007,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:7",{"_index":22006,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:9",{"_index":22005,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.uc.ts",{"_index":22010,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:11",{"_index":22011,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:18",{"_index":22013,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder",{"_index":22015,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.asguest(true",{"_index":22022,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.withrole(bbbrole.moderator",{"_index":22020,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joining",{"_index":21818,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["joinpath",{"_index":10364,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(...paths",{"_index":10385,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(path",{"_index":3580,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["joins",{"_index":22075,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["jose",{"_index":22226,"title":{},"body":{"dependencies.html":{}}}],["jpeg",{"_index":8910,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["js",{"_index":6595,"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":1438,"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":13732,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["json.parse(filecontent",{"_index":11765,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace",{"_index":11825,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace(/\\\\\\$/g",{"_index":11829,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify",{"_index":11733,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(collections",{"_index":7888,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["json.stringify(e.constraints",{"_index":8389,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["json.stringify(payload",{"_index":2599,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["json.stringify(response.body",{"_index":1510,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(response.error",{"_index":1507,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(sortedbsondocuments",{"_index":11792,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(where",{"_index":18578,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["jsondocuments",{"_index":3841,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["jsondocuments.length",{"_index":7961,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["jsonwebtoken",{"_index":1378,"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":1558,"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":15677,"title":{},"body":{"injectables/OauthAdapterService.html":{},"classes/OauthConfigResponse.html":{},"dependencies.html":{}}}],["jwksendpoint",{"_index":11574,"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":15676,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.jwksclient",{"_index":15679,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.signingkey",{"_index":15680,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksuri",{"_index":15670,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwt",{"_index":1413,"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":13116,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwt.decode(jwttoken",{"_index":1565,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwt.sign",{"_index":7078,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwt.verify(idtoken",{"_index":15573,"title":{},"body":{"injectables/OAuthService.html":{}}}],["jwt=${jwt",{"_index":11469,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["jwtauthguard",{"_index":13145,"title":{"injectables/JwtAuthGuard.html":{}},"body":{"injectables/JwtAuthGuard.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["jwtconstants",{"_index":1379,"title":{"interfaces/JwtConstants.html":{}},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions",{"_index":13189,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions.algorithm",{"_index":1416,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.audience",{"_index":1418,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.expiresin",{"_index":1420,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.header",{"_index":1424,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.issuer",{"_index":1422,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.secret",{"_index":1427,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor",{"_index":13164,"title":{"classes/JwtExtractor.html":{}},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor.fromcookie('jwt",{"_index":13186,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequest",{"_index":13183,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequestfunction",{"_index":13170,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["jwtfromresponse",{"_index":1484,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["jwtid",{"_index":1562,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtmodule",{"_index":1366,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmodule.register(jwtmoduleoptions",{"_index":1429,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmoduleoptions",{"_index":1367,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtoptions",{"_index":13151,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["jwtpayload",{"_index":1547,"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":7160,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.isexternaluser",{"_index":7167,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.roles",{"_index":7162,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.schoolid",{"_index":7163,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.support",{"_index":7166,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.systemid",{"_index":7161,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.userid",{"_index":7164,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtservice",{"_index":1522,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtstrategy",{"_index":1358,"title":{"injectables/JwtStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwttestfactory",{"_index":7074,"title":{"classes/JwtTestFactory.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwttoicurrentuser",{"_index":7132,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoicurrentuser(jwtpayload",{"_index":7136,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoken",{"_index":1537,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtvalidationadapter",{"_index":1359,"title":{"injectables/JwtValidationAdapter.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["k",{"_index":1643,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["kann",{"_index":4866,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["kc",{"_index":13288,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.clients.addprotocolmapper",{"_index":13460,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.create(cr",{"_index":13436,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.find",{"_index":13291,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.getclientsecret",{"_index":13293,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kc.clients.listprotocolmappers",{"_index":13452,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.update",{"_index":13437,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.updateprotocolmapper",{"_index":13457,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.create",{"_index":13471,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.createmapper",{"_index":13482,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.del",{"_index":13476,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.find",{"_index":13439,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.findmappers",{"_index":13477,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.update",{"_index":13474,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.updatemapper",{"_index":13478,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realmname",{"_index":13405,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.makerequest",{"_index":13401,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.update",{"_index":13295,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.users.count",{"_index":13613,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create",{"_index":13588,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create(idmuserrepresentation",{"_index":13691,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.del",{"_index":13726,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.del(id",{"_index":13598,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.find",{"_index":13614,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.findone",{"_index":13624,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.resetpassword",{"_index":13595,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.update",{"_index":13629,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadmin",{"_index":13347,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadminclient",{"_index":13265,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["kcadminservice",{"_index":13533,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["kcsettings",{"_index":13263,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.baseurl",{"_index":13279,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.realmname",{"_index":13280,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kebab",{"_index":23589,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["keep",{"_index":11774,"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":8255,"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":23068,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["kennung",{"_index":18040,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{}}}],["kernel",{"_index":22497,"title":{},"body":{"license.html":{}}}],["key",{"_index":1922,"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":15682,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["keycloak",{"_index":568,"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":13242,"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":12677,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak/service/keycloak",{"_index":12679,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak:/tmp/realms",{"_index":23664,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloakadminclient",{"_index":13241,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakadministration",{"_index":13227,"title":{"classes/KeycloakAdministration.html":{}},"body":{"classes/KeycloakAdministration.html":{}}}],["keycloakadministrationmodule",{"_index":12670,"title":{"modules/KeycloakAdministrationModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules.html":{}}}],["keycloakadministrationservice",{"_index":13239,"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":13302,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["keycloakconfigservice",{"_index":13498,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfiguration",{"_index":13245,"title":{"classes/KeycloakConfiguration.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloakinputfiles",{"_index":13329,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloaksettings",{"_index":13248,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["keycloakconfigurationinputfiles",{"_index":12080,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakconfigurationmodule",{"_index":13309,"title":{"modules/KeycloakConfigurationModule.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["keycloakconfigurationservice",{"_index":13314,"title":{"injectables/KeycloakConfigurationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfigurationuc",{"_index":11603,"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":11616,"title":{"classes/KeycloakConsole.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakconsole.retryflags",{"_index":11633,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakidentitymanagementoauthservice",{"_index":12678,"title":{"injectables/KeycloakIdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakidentitymanagementservice",{"_index":12680,"title":{"injectables/KeycloakIdentityManagementService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakinputfiles",{"_index":13304,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["keycloakmanagementcontroller",{"_index":13318,"title":{"controllers/KeycloakManagementController.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakmanagementuc",{"_index":13657,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["keycloakmigrationservice",{"_index":13316,"title":{"injectables/KeycloakMigrationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{}}}],["keycloakmodule",{"_index":12671,"title":{"modules/KeycloakModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["keycloakseedservice",{"_index":13315,"title":{"classes/KeycloakSeedService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloaksettings",{"_index":12085,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakuser",{"_index":13601,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers",{"_index":13605,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.length",{"_index":13609,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.map((user",{"_index":13621,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keypair",{"_index":7065,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.privatekey.export",{"_index":7073,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.publickey.export",{"_index":7070,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypairkeyobjectresult",{"_index":7064,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keys",{"_index":567,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/JwtConstants.html":{},"license.html":{}}}],["keyvalue",{"_index":1589,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["keywords",{"_index":22954,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["kickuserfromgroup(groupname",{"_index":1034,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["kind",{"_index":22464,"title":{},"body":{"license.html":{}}}],["kinds",{"_index":22371,"title":{},"body":{"license.html":{}}}],["kiss",{"_index":23175,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["know",{"_index":22393,"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":23216,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["knowingly",{"_index":22820,"title":{},"body":{"license.html":{}}}],["knowledge",{"_index":22827,"title":{},"body":{"license.html":{}}}],["known",{"_index":11849,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["known/jwks.json",{"_index":11576,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["known/openid",{"_index":13285,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kontinuierlich",{"_index":4859,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ktid",{"_index":18117,"title":{},"body":{"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["kurse",{"_index":6603,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["l.course.isfinished()).map((l",{"_index":20057,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.id",{"_index":20058,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.name",{"_index":14190,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["label",{"_index":22339,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["labelnames",{"_index":17459,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["labels",{"_index":17461,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["language",{"_index":4199,"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":11822,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["languagetype",{"_index":4200,"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":4201,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["largely",{"_index":23431,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["larger",{"_index":22596,"title":{},"body":{"license.html":{}}}],["last",{"_index":7053,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{}}}],["lastauthorizationtime",{"_index":13252,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["lastloginsystemchange",{"_index":12597,"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":18469,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangebetweenstart",{"_index":18468,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangesmallerthan",{"_index":18451,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastmodifytimestamp",{"_index":12397,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastname",{"_index":652,"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":13040,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["lastnamesearchvalues",{"_index":11814,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["lastsuccessfulfullsync",{"_index":12395,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsuccessfulpartialsync",{"_index":12396,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsyncattempt",{"_index":12394,"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":3675,"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":960,"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":15689,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["lastvaluefrom(this.httpservice.get>(wellknownurl))).data",{"_index":13541,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["later",{"_index":3393,"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":15276,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/ToolConfigurationController.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["laufzeit",{"_index":18019,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["launch",{"_index":2589,"title":{},"body":{"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":20397,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch.controller.ts",{"_index":20572,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.controller.ts:28",{"_index":20583,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.mapper.ts",{"_index":20600,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:24",{"_index":20606,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:29",{"_index":20611,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:34",{"_index":20608,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:39",{"_index":20614,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.module.ts",{"_index":20636,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch.params.ts",{"_index":20641,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.params.ts:7",{"_index":20642,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.service.ts",{"_index":20658,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:22",{"_index":20663,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:38",{"_index":20665,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:51",{"_index":20667,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:73",{"_index":20671,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:86",{"_index":20669,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.strategy",{"_index":2588,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts",{"_index":2527,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.uc.ts",{"_index":20689,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:11",{"_index":20691,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:18",{"_index":20693,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch/controller/dto/tool",{"_index":20640,"title":{},"body":{"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launch/controller/tool",{"_index":20396,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["launch/error/missing",{"_index":14989,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["launch/error/parameter",{"_index":16596,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launch/error/tool",{"_index":20837,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launch/mapper/lti",{"_index":14629,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["launch/mapper/tool",{"_index":20599,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch/service/auto",{"_index":1831,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["launch/service/launch",{"_index":2525,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch/service/lti11",{"_index":14572,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["launch/service/tool",{"_index":20657,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch/settings",{"_index":22980,"title":{},"body":{"todo.html":{}}}],["launch/tool",{"_index":20635,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch/types/authentication",{"_index":1587,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["launch/types/property",{"_index":16897,"title":{},"body":{"classes/PropertyData.html":{}}}],["launch/types/tool",{"_index":20591,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{}}}],["launch/uc",{"_index":20398,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch/uc/tool",{"_index":20688,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch_presentation_locale",{"_index":7367,"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":5234,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["launchdata",{"_index":20684,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launchdatatype",{"_index":20609,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launched",{"_index":20582,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launching",{"_index":16601,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launchrequest",{"_index":20679,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["launchrequestmethod",{"_index":2551,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.get",{"_index":2603,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.post",{"_index":2602,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["law",{"_index":22455,"title":{},"body":{"license.html":{}}}],["laws",{"_index":22434,"title":{},"body":{"license.html":{}}}],["lawsuit",{"_index":22793,"title":{},"body":{"license.html":{}}}],["lax",{"_index":16289,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["layer",{"_index":20708,"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":23328,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["layers",{"_index":22962,"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":16642,"title":{},"body":{"injectables/PermissionService.html":{}}}],["ldap",{"_index":12940,"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":14490,"title":{},"body":{"controllers/LoginController.html":{}}}],["ldap_connection_failed",{"_index":13773,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["ldap_password_encryption_key",{"_index":8349,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["ldap_univention_migration",{"_index":12205,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapactive",{"_index":19396,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{}}}],["ldapalreadypersistedexception",{"_index":13734,"title":{"classes/LdapAlreadyPersistedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["ldapauthorizationbodyparams",{"_index":13748,"title":{"classes/LdapAuthorizationBodyParams.html":{}},"body":{"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{}}}],["ldapconfig",{"_index":12342,"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":12374,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.federalstate",{"_index":12375,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastmodifytimestamp",{"_index":12383,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulfullsync",{"_index":12379,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulpartialsync",{"_index":12381,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsyncattempt",{"_index":12377,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provider",{"_index":12391,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provideroptions",{"_index":12393,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.rootpath",{"_index":12386,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuser",{"_index":12388,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuserpassword",{"_index":12390,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.url",{"_index":12384,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconnectionerror",{"_index":13768,"title":{"classes/LdapConnectionError.html":{}},"body":{"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{}}}],["ldapdn",{"_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":{},"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":8340,"title":{},"body":{"modules/EncryptionModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{}}}],["ldapid",{"_index":12052,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["ldapjs",{"_index":13782,"title":{},"body":{"injectables/LdapService.html":{},"dependencies.html":{}}}],["ldapjs.git",{"_index":22232,"title":{},"body":{"dependencies.html":{}}}],["ldaps:mock.de:389",{"_index":19442,"title":{},"body":{"classes/SystemFactory.html":{}}}],["ldapschool",{"_index":13127,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapschoolidentifier",{"_index":12217,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapservice",{"_index":1360,"title":{"injectables/LdapService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{}}}],["ldapservice:connect",{"_index":13801,"title":{},"body":{"injectables/LdapService.html":{}}}],["ldapstrategy",{"_index":1361,"title":{"injectables/LdapStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["ldapuniventionmigrationschool",{"_index":12206,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapuser",{"_index":13120,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapuser.roles.map((roleref",{"_index":13129,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapusermigrationexception",{"_index":13737,"title":{"classes/LdapUserMigrationException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["lead",{"_index":4147,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{}}}],["leads",{"_index":19922,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["leaf",{"_index":3244,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["lean",{"_index":22241,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["learn",{"_index":23057,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["learner",{"_index":7172,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["learning",{"_index":10796,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{}}}],["learningmodules",{"_index":5333,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["learnroom",{"_index":3543,"title":{},"body":{"modules/BoardModule.html":{},"injectables/DashboardModelMapper.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["learnroom.module",{"_index":13872,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["learnroomapimodule",{"_index":13857,"title":{"modules/LearnroomApiModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["learnroommetadata",{"_index":6583,"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":13861,"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":6584,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["learnroomtypes.course",{"_index":6662,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["leave",{"_index":6181,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["leaves",{"_index":20328,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["left",{"_index":23243,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["legacy",{"_index":945,"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":23800,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/feathers",{"_index":23123,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/feathers/mocha",{"_index":23100,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/nest",{"_index":23009,"title":{},"body":{"todo.html":{}}}],["legacylogger",{"_index":2251,"title":{"injectables/LegacyLogger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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":13922,"title":{"modules/LegacySchoolApiModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["legacyschoolcontroller",{"_index":13931,"title":{"controllers/LegacySchoolController.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["legacyschooldo",{"_index":1902,"title":{"classes/LegacySchoolDo.html":{}},"body":{"injectables/AutoSchoolNumberStrategy.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":14007,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory",{"_index":14000,"title":{"classes/LegacySchoolFactory.html":{}},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory.define(legacyschooldo",{"_index":14008,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolmodule",{"_index":5380,"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":1362,"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":1703,"title":{"injectables/LegacySchoolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/RuleManager.html":{}}}],["legacyschoolservice",{"_index":1897,"title":{"injectables/LegacySchoolService.html":{}},"body":{"injectables/AutoSchoolNumberStrategy.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":13927,"title":{"injectables/LegacySchoolUc.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["legal",{"_index":22401,"title":{},"body":{"license.html":{}}}],["legayschoolrule",{"_index":17871,"title":{},"body":{"injectables/RuleManager.html":{}}}],["legend",{"_index":205,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":3486,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GroupUcMapper.html":{}}}],["lernstore",{"_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":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lernstore_view",{"_index":12215,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["lesson",{"_index":2634,"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":23788,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson.contents.foreach((content",{"_index":5099,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lesson.contents.map((c",{"_index":14310,"title":{},"body":{"injectables/LessonService.html":{}}}],["lesson.course",{"_index":17758,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRepo.html":{}}}],["lesson.course.name",{"_index":8200,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.coursegroup",{"_index":19845,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["lesson.coursename",{"_index":17717,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.createdat",{"_index":8198,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.entity",{"_index":2623,"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":8203,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofplannedtasks",{"_index":8205,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofpublishedtasks",{"_index":8201,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.hidden",{"_index":8197,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["lesson.id",{"_index":8196,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.module",{"_index":14148,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["lesson.name",{"_index":5097,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofdrafttasks",{"_index":17715,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofplannedtasks",{"_index":17716,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofpublishedtasks",{"_index":17714,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.response",{"_index":3409,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["lesson.response.ts",{"_index":3413,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:27",{"_index":3423,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:31",{"_index":3424,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:35",{"_index":3420,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:40",{"_index":3429,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:46",{"_index":3426,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:5",{"_index":3418,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:52",{"_index":3427,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:55",{"_index":3421,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:58",{"_index":3430,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:61",{"_index":3422,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.rule",{"_index":19952,"title":{},"body":{"injectables/TaskRule.html":{}}}],["lesson.updatedat",{"_index":8199,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson/task",{"_index":18772,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["lessonapimodule",{"_index":14141,"title":{"modules/LessonApiModule.html":{}},"body":{"modules/LessonApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["lessonboardelement",{"_index":2633,"title":{"entities/LessonBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/LessonBoardElement.html":{}}}],["lessoncontroller",{"_index":14147,"title":{"controllers/LessonController.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{}}}],["lessoncopyapiparams",{"_index":6458,"title":{"classes/LessonCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"classes/LessonCopyApiParams.html":{},"controllers/RoomsController.html":{}}}],["lessoncopyparentparams",{"_index":6460,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/LessonCopyUC.html":{}}}],["lessoncopyservice",{"_index":2943,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/ShareTokenUC.html":{}}}],["lessoncopyuc",{"_index":13863,"title":{"injectables/LessonCopyUC.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{}}}],["lessonelement",{"_index":3041,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["lessonelements",{"_index":3649,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["lessonentity",{"_index":2622,"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":14210,"title":{"classes/LessonFactory.html":{}},"body":{"classes/LessonFactory.html":{}}}],["lessonfactory.define",{"_index":14212,"title":{},"body":{"classes/LessonFactory.html":{}}}],["lessonhidden",{"_index":12464,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonid",{"_index":5066,"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":19887,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["lessonidsoffinishedcourses",{"_index":19852,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonidsofopencourses",{"_index":19850,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonmetadata",{"_index":8162,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lessonmodule",{"_index":13862,"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":12463,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonreadpermission",{"_index":14251,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonreadpermission(user",{"_index":14261,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonrepo",{"_index":1742,"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":1704,"title":{"injectables/LessonRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{}}}],["lessons",{"_index":5091,"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":20056,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.foreach((lesson",{"_index":5093,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lessons.map((l",{"_index":20079,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.map((lesson",{"_index":14309,"title":{},"body":{"injectables/LessonService.html":{}}}],["lessonscope",{"_index":14234,"title":{"classes/LessonScope.html":{}},"body":{"injectables/LessonRepo.html":{},"classes/LessonScope.html":{}}}],["lessonservice",{"_index":5051,"title":{"injectables/LessonService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/ShareTokenService.html":{}}}],["lessonuc",{"_index":14145,"title":{"injectables/LessonUC.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonUC.html":{}}}],["lessonurlparams",{"_index":14154,"title":{"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{}},"body":{"controllers/LessonController.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"controllers/RoomsController.html":{}}}],["lessonwritepermission",{"_index":14252,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonwritepermission(user",{"_index":14263,"title":{},"body":{"injectables/LessonRule.html":{}}}],["letter",{"_index":743,"title":{},"body":{"injectables/AccountRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["letters",{"_index":23583,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["letting",{"_index":22419,"title":{},"body":{"license.html":{}}}],["level",{"_index":3548,"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":3594,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["levels",{"_index":14453,"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":22710,"title":{},"body":{"license.html":{}}}],["liable",{"_index":22452,"title":{},"body":{"license.html":{}}}],["libraries",{"_index":22491,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["libraries/:ubername/:file",{"_index":11395,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["library",{"_index":22649,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["license",{"_index":12109,"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":22438,"title":{},"body":{"license.html":{}}}],["licensee",{"_index":22439,"title":{},"body":{"license.html":{}}}],["licensees",{"_index":22441,"title":{},"body":{"license.html":{}}}],["licenses",{"_index":22377,"title":{},"body":{"license.html":{}}}],["licensing",{"_index":22771,"title":{},"body":{"license.html":{}}}],["licensors",{"_index":22718,"title":{},"body":{"license.html":{}}}],["likes",{"_index":23593,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["likewise",{"_index":22763,"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/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":22902,"title":{},"body":{"license.html":{}}}],["limited",{"_index":22891,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["limiting",{"_index":22709,"title":{},"body":{"license.html":{}}}],["line",{"_index":994,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"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":23154,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["link",{"_index":2170,"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":{},"classes/GetMetaTagDataBody.html":{},"modules/ImportUserModule.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/MetaTagExtractorController.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":5713,"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":22508,"title":{},"body":{"license.html":{}}}],["linkedtool",{"_index":17315,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["linkelement",{"_index":2805,"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":5729,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["linkelement.id",{"_index":17366,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.imageurl",{"_index":5740,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.title",{"_index":5727,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.url",{"_index":5725,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementcontent",{"_index":14357,"title":{"classes/LinkElementContent.html":{}},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementcontentbody",{"_index":8245,"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":8280,"title":{},"body":{"controllers/ElementController.html":{}}}],["linkelementnode",{"_index":3148,"title":{"entities/LinkElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementnodeprops",{"_index":14365,"title":{"interfaces/LinkElementNodeProps.html":{}},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["linkelementprops",{"_index":14355,"title":{"interfaces/LinkElementProps.html":{}},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["linkelementresponse",{"_index":3993,"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":5649,"title":{"classes/LinkElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementresponsemapper.getinstance",{"_index":5636,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["linkelementresponsemapper.instance",{"_index":14374,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["linkid",{"_index":7366,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["linter",{"_index":22996,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["liskov",{"_index":23162,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["list",{"_index":319,"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":19378,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["list.response.ts",{"_index":809,"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":4061,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:4",{"_index":4059,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:5",{"_index":813,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["list.response.ts:6",{"_index":5802,"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":9348,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list_files_of_parent",{"_index":11933,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["listconsentsessions",{"_index":15968,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["listconsentsessions(@currentuser",{"_index":16055,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(currentuser",{"_index":15988,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(user",{"_index":16174,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listconsentsessions(userid",{"_index":16192,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["listenercount",{"_index":2106,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["listening",{"_index":1286,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["listfilesofparent",{"_index":10514,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent(param",{"_index":10522,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["listfilesofparent(payload",{"_index":10704,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:finished",{"_index":10722,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:started",{"_index":10720,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listoauth2clients",{"_index":15897,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["listoauth2clients(currentuser",{"_index":15907,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["listoauth2clients(limit",{"_index":16176,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listoauthclientsparams",{"_index":14379,"title":{"classes/ListOauthClientsParams.html":{}},"body":{"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{}}}],["listobjectscommand",{"_index":17930,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["listresponse",{"_index":19099,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["lists",{"_index":10390,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/ToolConfigurationController.html":{}}}],["listsequal",{"_index":2653,"title":{},"body":{"entities/Board.html":{}}}],["literal",{"_index":120,"title":{},"body":{"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":22791,"title":{},"body":{"license.html":{}}}],["load",{"_index":1758,"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":22973,"title":{},"body":{"todo.html":{}}}],["load/persist",{"_index":23271,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["loadaccount",{"_index":1517,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccount(username",{"_index":1529,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccounts",{"_index":13701,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["loadallcollectionsfromdatabase(targetfolder",{"_index":11708,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadallcollectionsfromfilesystem(basedir",{"_index":11714,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadauthorizableobject",{"_index":12164,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["loadauthorizableobject(objectname",{"_index":17405,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11722,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loaded",{"_index":4057,"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":9496,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loaded.version",{"_index":9497,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loadedexternaltool",{"_index":5422,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedexternaltool.parameters",{"_index":5462,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["loadedexternaltool.version",{"_index":18335,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedoauthclient",{"_index":9393,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedoauthclient.client_id",{"_index":9435,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedpseudonym",{"_index":9766,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["loadedschoolexternaltool",{"_index":6174,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedtool",{"_index":9384,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.clientid",{"_index":9541,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.type",{"_index":9537,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loader",{"_index":1680,"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":20709,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loadings",{"_index":20711,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["loads",{"_index":4548,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{}}}],["loadtoolhierarchy",{"_index":20662,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadtoolhierarchy(schoolexternaltoolid",{"_index":20670,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadusers",{"_index":13702,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["local",{"_index":1447,"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":14392,"title":{"classes/LocalAuthorizationBodyParams.html":{}},"body":{"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{}}}],["localcookies",{"_index":6208,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["localcookies.includes(cookie",{"_index":11561,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localcookies.push(cookie",{"_index":11562,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto",{"_index":11530,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig",{"_index":11554,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig.headers",{"_index":11549,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies",{"_index":11543,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.hydracookies.join",{"_index":11547,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.localcookies.join",{"_index":11548,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.currentredirect",{"_index":11555,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.referer",{"_index":11550,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response",{"_index":11552,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers",{"_index":11533,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers.location",{"_index":11532,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers['set",{"_index":11541,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localfallback",{"_index":1131,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["localfield",{"_index":21625,"title":{},"body":{"injectables/UserRepo.html":{}}}],["localhost",{"_index":1123,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["localhost:15672",{"_index":23036,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["localhost:27017\"}]})start",{"_index":23677,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["localhost:3030",{"_index":23073,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["locally",{"_index":10693,"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":1363,"title":{"injectables/LocalStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LocalStrategy.html":{}}}],["locate",{"_index":23339,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["located",{"_index":23253,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["location",{"_index":7275,"title":{},"body":{"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":11534,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["location.startswith(configuration.get('hydra_public_uri",{"_index":11536,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["locationmapping",{"_index":9240,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterdo.location",{"_index":9334,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterparam.location",{"_index":9283,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["locations",{"_index":11537,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["lockid",{"_index":9970,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["lodash",{"_index":646,"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":8390,"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":12101,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["log/response",{"_index":22998,"title":{},"body":{"todo.html":{}}}],["loggable",{"_index":1271,"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/UnknownQueryTypeLoggableException.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":21255,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:13",{"_index":21257,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:8",{"_index":21256,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.getlogmessage",{"_index":14480,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["loggable.ts",{"_index":1267,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:10",{"_index":1288,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:13",{"_index":1289,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:3",{"_index":8830,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:6",{"_index":8831,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable/error.loggable",{"_index":10911,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["loggable/news",{"_index":15291,"title":{},"body":{"injectables/NewsUc.html":{}}}],["loggable/oauth",{"_index":11445,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{}}}],["loggable/preview",{"_index":16710,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["loggables",{"_index":12091,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logged",{"_index":20521,"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":2250,"title":{"injectables/Logger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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/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":16882,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.error(error",{"_index":3901,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.info",{"_index":16896,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.info(`could",{"_index":23469,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["logger.interface",{"_index":13906,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.interface.ts",{"_index":12090,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:11",{"_index":12100,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:12",{"_index":12102,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:13",{"_index":12097,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:14",{"_index":12104,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:15",{"_index":12094,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.log(msg",{"_index":3904,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.service",{"_index":14451,"title":{},"body":{"modules/LoggerModule.html":{}}}],["logger.service.ts",{"_index":13884,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:22",{"_index":13888,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:26",{"_index":13894,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:30",{"_index":13899,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:34",{"_index":13891,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:38",{"_index":13893,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:42",{"_index":13892,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:50",{"_index":13896,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:54",{"_index":13890,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:58",{"_index":13898,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.setcontext(durationlogginginterceptor.name",{"_index":8233,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logger.setcontext(redismodule.name",{"_index":17401,"title":{},"body":{"modules/RedisModule.html":{}}}],["logger.setcontext(servermodule.name",{"_index":18656,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.setcontext(servertestmodule.name",{"_index":18664,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.ts",{"_index":8407,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:12",{"_index":8418,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:17",{"_index":8414,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:22",{"_index":8416,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:27",{"_index":8420,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:9",{"_index":8412,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.warn",{"_index":18638,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger/interfaces",{"_index":8374,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logger/types",{"_index":8375,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["loggermodule",{"_index":214,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":6504,"title":{"additional-documentation/nestjs-application/logging.html":{}},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logging.error",{"_index":17479,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts",{"_index":8223,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:10",{"_index":8226,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:12",{"_index":17467,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:15",{"_index":8230,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:9",{"_index":17466,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.utils",{"_index":8424,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils",{"_index":8423,"title":{"classes/LoggingUtils.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{}}}],["loggingutils.createmessagewithcontext(loggable",{"_index":8426,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils.isinstanceofloggable(error",{"_index":10917,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["logic",{"_index":12323,"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":128,"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":1479,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["login.query.ts",{"_index":18010,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:13",{"_index":18012,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:8",{"_index":18014,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.response",{"_index":15836,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts",{"_index":15833,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts:9",{"_index":15834,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login_block_time",{"_index":1573,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["login_challenge",{"_index":5541,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["login_hint",{"_index":16385,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["login_required",{"_index":5516,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["login_session_id",{"_index":5542,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["loginchallenge",{"_index":5561,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["logincontroller",{"_index":1318,"title":{"controllers/LoginController.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["logindto",{"_index":1552,"title":{"classes/LoginDto.html":{}},"body":{"injectables/AuthenticationService.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{}}}],["logindto.accesstoken",{"_index":14559,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["loginldap",{"_index":14484,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(@currentuser",{"_index":14512,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(user",{"_index":14487,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal",{"_index":14485,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(@currentuser",{"_index":14518,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(user",{"_index":14494,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginname",{"_index":10743,"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":13043,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["loginoauth2",{"_index":14486,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginoauth2(user",{"_index":14498,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginpath",{"_index":1442,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["loginrequestbody",{"_index":14527,"title":{"classes/LoginRequestBody.html":{}},"body":{"classes/LoginRequestBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember",{"_index":16136,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember_for",{"_index":16137,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginresponse",{"_index":14491,"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":16116,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse.client.client_id",{"_index":16105,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse:5",{"_index":15835,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["loginresponsemapper",{"_index":14505,"title":{"classes/LoginResponseMapper.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{}}}],["loginresponsemapper.maptologinresponse(logindto",{"_index":14514,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginresponsemapper.maptooauthloginresponse(logindto",{"_index":14521,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginsessionid",{"_index":5564,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["loginuc",{"_index":1316,"title":{"injectables/LoginUc.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{}}}],["loginurl",{"_index":21496,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('migration",{"_index":21572,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('postloginredirect",{"_index":21571,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.tostring",{"_index":21573,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginuseruc",{"_index":23304,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["logmessage",{"_index":1272,"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/UnknownQueryTypeLoggableException.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":8380,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logmessagedata",{"_index":1273,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/NewsMapper.html":{}}}],["logmessagewithcontext",{"_index":14475,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["logmigrationinformation",{"_index":21396,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logmigrationinformation(userid",{"_index":21405,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logo",{"_index":7386,"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":9528,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["logo.service.ts",{"_index":8838,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:114",{"_index":8849,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:26",{"_index":8845,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:34",{"_index":8847,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:46",{"_index":8859,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:61",{"_index":8854,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:73",{"_index":8852,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:97",{"_index":8856,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.ts",{"_index":8810,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:2",{"_index":8813,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:4",{"_index":8812,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo_url",{"_index":7184,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["logobase64",{"_index":8763,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["logobinarydata",{"_index":8898,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logourl",{"_index":5806,"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":11956,"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":11577,"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":16121,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflow(challenge",{"_index":16123,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflowuc",{"_index":16017,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["logoutresponse",{"_index":16125,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logouturl",{"_index":1959,"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":1024,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["logs",{"_index":5526,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["lokalisierung",{"_index":18044,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["long",{"_index":5508,"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":23581,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["look",{"_index":13155,"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":14388,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["looks",{"_index":23194,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lookup",{"_index":11993,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/UserRepo.html":{}}}],["lookup.service",{"_index":633,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["lookup.service.ts",{"_index":559,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:15",{"_index":585,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:27",{"_index":597,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:44",{"_index":588,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookupsharetoken",{"_index":18704,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["lookupsharetoken(currentuser",{"_index":18720,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["lookupsharetoken(userid",{"_index":18890,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["lookuptoken",{"_index":18838,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptoken(token",{"_index":18847,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname",{"_index":18839,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname(token",{"_index":18849,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["loop",{"_index":11471,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["loss",{"_index":22909,"title":{},"body":{"license.html":{}}}],["losses",{"_index":22912,"title":{},"body":{"license.html":{}}}],["lot",{"_index":23532,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["low",{"_index":23248,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lower",{"_index":23173,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lowercase",{"_index":12053,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lt",{"_index":21667,"title":{},"body":{"classes/UserScope.html":{}}}],["lte",{"_index":3597,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/FilesRepo.html":{},"classes/NewsScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{}}}],["lti",{"_index":5211,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/NextcloudStrategy.html":{}}}],["lti11config",{"_index":9118,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.baseurl",{"_index":9158,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.key",{"_index":9163,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.launch_presentation_locale",{"_index":9168,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.lti_message_type",{"_index":9165,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.privacy_permission",{"_index":9167,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.resource_link_id",{"_index":9166,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.secret",{"_index":9164,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.type",{"_index":9157,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11encryptionservice",{"_index":14571,"title":{"injectables/Lti11EncryptionService.html":{}},"body":{"injectables/Lti11EncryptionService.html":{},"modules/ToolLaunchModule.html":{}}}],["lti11toolconfig",{"_index":7338,"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":9215,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigcreateparams",{"_index":8698,"title":{"classes/Lti11ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Lti11ToolConfigCreateParams.html":{}}}],["lti11toolconfigentity",{"_index":8765,"title":{"classes/Lti11ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfigEntity.html":{}}}],["lti11toolconfigfactory",{"_index":7360,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigfactory.build(customparam",{"_index":7381,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigresponse",{"_index":9294,"title":{"classes/Lti11ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["lti11toolconfigupdate",{"_index":9219,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigupdateparams",{"_index":9217,"title":{"classes/Lti11ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["lti11toollaunchstrategy",{"_index":20634,"title":{},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["lti_message_type",{"_index":7185,"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":7186,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["ltimessagetype",{"_index":7335,"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":7365,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission",{"_index":7179,"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":7188,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalToolEntityFactory.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{}}}],["ltiprivacypermission.name",{"_index":14697,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiprivacypermission.pseudonymous",{"_index":7364,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltirepo",{"_index":11503,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["ltirole",{"_index":14634,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.administrator",{"_index":14639,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.instructor",{"_index":14638,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.learner",{"_index":14637,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirolemapper",{"_index":14628,"title":{"classes/LtiRoleMapper.html":{}},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles",{"_index":14641,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles.filter",{"_index":14645,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroletype",{"_index":7171,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["ltiroletype.instructor",{"_index":14698,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype.learner",{"_index":14699,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype})@property({nullable",{"_index":14664,"title":{},"body":{"entities/LtiTool.html":{}}}],["ltitool",{"_index":7183,"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":14721,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["ltitooldo",{"_index":7250,"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":14689,"title":{"classes/LtiToolFactory.html":{}},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolfactory.define(ltitool",{"_index":14695,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolmodule",{"_index":14700,"title":{"modules/LtiToolModule.html":{}},"body":{"modules/LtiToolModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["ltitoolpromise",{"_index":15430,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ltitoolrepo",{"_index":4615,"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":7182,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["ltitoolservice",{"_index":14704,"title":{"injectables/LtiToolService.html":{}},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["ltitoolstabenabled",{"_index":12578,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["lumieducation/h5p",{"_index":22146,"title":{},"body":{"dependencies.html":{}}}],["m=256m",{"_index":23669,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["machine",{"_index":22606,"title":{},"body":{"license.html":{}}}],["made",{"_index":22408,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["magic",{"_index":16081,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["mail",{"_index":1306,"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":14775,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mail.service",{"_index":14769,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mail_service_options",{"_index":14770,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailattachment",{"_index":1292,"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":1300,"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":14764,"title":{"modules/MailModule.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["mailmodule.forroot",{"_index":18623,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mailmoduleoptions",{"_index":14766,"title":{"interfaces/MailModuleOptions.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailservice",{"_index":14768,"title":{"injectables/MailService.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mailserviceoptions",{"_index":14772,"title":{"interfaces/MailServiceOptions.html":{}},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["main",{"_index":22343,"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":9840,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["maintain",{"_index":22632,"title":{},"body":{"license.html":{}}}],["maintainability",{"_index":23145,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["maintenance",{"_index":14964,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["major",{"_index":22494,"title":{},"body":{"license.html":{}}}],["make",{"_index":1665,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"modules/CommonToolModule.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserScope.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/PermissionService.html":{},"classes/RecursiveSaveVisitor.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":22535,"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":20871,"title":{},"body":{"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["makse",{"_index":14196,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["manage",{"_index":10088,"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":14517,"title":{},"body":{"controllers/LoginController.html":{}}}],["managed.'})@apiresponse({status",{"_index":14496,"title":{},"body":{"controllers/LoginController.html":{}}}],["management",{"_index":600,"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":12013,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{}}}],["management.console",{"_index":14785,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.console.ts",{"_index":3440,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["management.console.ts:12",{"_index":7863,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:14",{"_index":3450,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:31",{"_index":7870,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:58",{"_index":7867,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:7",{"_index":3445,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:72",{"_index":7875,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.controller",{"_index":14788,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.controller.ts",{"_index":7897,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:18",{"_index":7910,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:23",{"_index":7907,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:28",{"_index":7904,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:33",{"_index":7916,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:9",{"_index":7913,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.integration.spec.ts",{"_index":23648,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.module",{"_index":14797,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/SystemModule.html":{}}}],["management.module.ts",{"_index":7931,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{}}}],["management.service",{"_index":7932,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["management.service.integration.spec.tsseeding",{"_index":23650,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.service.ts",{"_index":7933,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:100",{"_index":12726,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:11",{"_index":7958,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:15",{"_index":7954,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:17",{"_index":12702,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:170",{"_index":13571,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:186",{"_index":13573,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:20",{"_index":7955,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:26",{"_index":12728,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:32",{"_index":7951,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:35",{"_index":12730,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:38",{"_index":7943,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:43",{"_index":12714,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:44",{"_index":7952,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:51",{"_index":12707,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:52",{"_index":7945,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:58",{"_index":7947,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:59",{"_index":12711,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:62",{"_index":7949,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:66",{"_index":7956,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:67",{"_index":12717,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:74",{"_index":12718,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:8",{"_index":7941,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:81",{"_index":12705,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:89",{"_index":12721,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:9",{"_index":13565,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.uc",{"_index":3456,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["management.uc.ts",{"_index":3466,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["management.uc.ts:13",{"_index":3473,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:16",{"_index":3474,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:39",{"_index":3478,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:49",{"_index":3476,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:60",{"_index":3480,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:71",{"_index":3485,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:75",{"_index":3489,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:79",{"_index":3482,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management/database",{"_index":7898,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management/identity",{"_index":12012,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["management/idm",{"_index":13644,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["management/keycloak",{"_index":11598,"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":18573,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["management/keycloak/keycloak.module.ts",{"_index":13699,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["management/keycloak/service/keycloak",{"_index":13528,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["managementmodule",{"_index":14778,"title":{"modules/ManagementModule.html":{}},"body":{"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["managementservermodule",{"_index":14792,"title":{"modules/ManagementServerModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["managementservertestmodule",{"_index":14799,"title":{"modules/ManagementServerTestModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["manager",{"_index":1818,"title":{},"body":{"injectables/AuthorizationService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["manager.ts",{"_index":17867,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:23",{"_index":17872,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:57",{"_index":17876,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:64",{"_index":17874,"title":{},"body":{"injectables/RuleManager.html":{}}}],["mandatory",{"_index":11855,"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":21261,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:11",{"_index":21263,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:4",{"_index":21262,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.params",{"_index":21184,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["mandatory.params.ts",{"_index":21266,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory.params.ts:7",{"_index":21267,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory/optional",{"_index":21167,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"todo.html":{}}}],["mandatorysince",{"_index":21214,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["manifest",{"_index":5174,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["manner",{"_index":22808,"title":{},"body":{"license.html":{}}}],["manual",{"_index":10761,"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":23357,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["manufacture",{"_index":8131,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["many",{"_index":20374,"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":2615,"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":2612,"title":{},"body":{"entities/Board.html":{}}}],["manytomany('course",{"_index":7639,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytomany('material",{"_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":{}}}],["manytomany('user",{"_index":6606,"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":6546,"title":{},"body":{"entities/Course.html":{},"entities/SchoolEntity.html":{}}}],["manytomany({entity",{"_index":17587,"title":{},"body":{"entities/Role.html":{}}}],["manytoone",{"_index":5039,"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":5037,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["manytoone('course",{"_index":6824,"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":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/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["manytoone('dashboardmodelentity",{"_index":7640,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytoone('lessonentity",{"_index":12467,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytoone('task",{"_index":12289,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["manytoone('teamentity",{"_index":6956,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["manytoone('user",{"_index":6931,"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":6818,"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":8740,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{}}}],["map",{"_index":2585,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"injectables/DeleteFilesUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageMapper.html":{},"classes/GridElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"classes/MetadataTypeMapper.html":{},"injectables/OAuth2ToolLaunchStrategy.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":6483,"title":{},"body":{"classes/CopyMapper.html":{}}}],["map((elementwithposition",{"_index":7688,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["map((entity",{"_index":19494,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["map((group",{"_index":18113,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((groupuser",{"_index":11302,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["map((match",{"_index":13051,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["map((relation",{"_index":18124,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((role",{"_index":21033,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["map((rolename",{"_index":21460,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["map((teacher",{"_index":5131,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["map(async",{"_index":11747,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["map.set(key",{"_index":6450,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map.set(status.originalentity.id",{"_index":6452,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map[node.id",{"_index":3327,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["map[node.pathofchildren",{"_index":3618,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["map[node.pathofchildren].push(desc",{"_index":3619,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["mapaccountstodto",{"_index":414,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapaccountstodto(accounts",{"_index":417,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapbasictoolconfigdotoentity",{"_index":9106,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoentity(lti11config",{"_index":9116,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoresponse",{"_index":9302,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigdotoresponse(externaltoolconfigdo",{"_index":9307,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigtodo",{"_index":9107,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigtodo(lti11config",{"_index":9119,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapboardelements",{"_index":17669,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapbodytodto",{"_index":20179,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapbodytodto(body",{"_index":20180,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapclasstoclassinfodto",{"_index":11283,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapclasstoclassinfodto(clazz",{"_index":11286,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapcolumnboard",{"_index":17670,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapcolumnboardelement",{"_index":8132,"title":{},"body":{"classes/DtoCreator.html":{}}}],["mapcolumnboardelement(element",{"_index":8152,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mapconsentresponse",{"_index":16138,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentresponse(consent",{"_index":16143,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse",{"_index":16139,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse(session",{"_index":16145,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapcontenttoresource",{"_index":5048,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontenttoresource(lessonid",{"_index":5063,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontextexternaltoolrequest",{"_index":5978,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolrequest(request",{"_index":5980,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolresponse",{"_index":6018,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontextexternaltoolresponse(contextexternaltool",{"_index":6021,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontexttypetodotype",{"_index":5910,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetodotype(type",{"_index":5924,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype",{"_index":5911,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype(type",{"_index":5926,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto",{"_index":10533,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto(copyfilelistresponse",{"_index":10539,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto",{"_index":10534,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto(response",{"_index":10541,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcourseteacherstocopyrightowners",{"_index":5049,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseteacherstocopyrightowners(course",{"_index":5068,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseuserstousergroup",{"_index":3086,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcourseuserstousergroup(course",{"_index":3093,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcreateacceptloginrequestbody",{"_index":16133,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreateacceptloginrequestbody(loginrequestbody",{"_index":16134,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreatenewstodomain",{"_index":15136,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreatenewstodomain(params",{"_index":15140,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreaterequest",{"_index":9190,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcreaterequest(externaltoolcreateparams",{"_index":9200,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcurrentusertocreatejwtpayload",{"_index":7133,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcurrentusertocreatejwtpayload(currentuser",{"_index":7138,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcustomparameterdostoentities",{"_index":9108,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterdostoentities(customparameters",{"_index":9121,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities",{"_index":9109,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities(entries",{"_index":9124,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos",{"_index":9110,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos(entries",{"_index":9127,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos",{"_index":9111,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos(customparameters",{"_index":9129,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparametertoresponse",{"_index":9303,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapcustomparametertoresponse(customparameters",{"_index":9310,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapdashboardtoentity",{"_index":7715,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtoentity(modelentity",{"_index":7730,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel",{"_index":7716,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel(entity",{"_index":7733,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdomainobjecttoentityproperties",{"_index":9023,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(entitydo",{"_index":9040,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(group",{"_index":11076,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapdomaintoadapter",{"_index":4592,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoadapter(team",{"_index":4593,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoresponse",{"_index":23277,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapdosortordertoqueryorder",{"_index":9462,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdosortordertoqueryorder(sort",{"_index":9463,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdotoentityproperties",{"_index":2243,"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":18807,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["mapdotoentityproperties(entitydo",{"_index":2271,"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":9449,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdotoprovideroauthclient(name",{"_index":9450,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdtotoresponse",{"_index":14950,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapdtotoresponse(dto",{"_index":14951,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapelementtoentity",{"_index":7717,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapelementtoentity(modelentity",{"_index":7735,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapentitytodo",{"_index":2244,"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":2274,"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":9024,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobject(entity",{"_index":9042,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobjectproperties",{"_index":11071,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodomainobjectproperties(entity",{"_index":11079,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodto",{"_index":20139,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytodto(teamentity",{"_index":20140,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytoparenttype",{"_index":10535,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapentitytoparenttype(entity",{"_index":10543,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapexternalsourceentitytoexternalsource",{"_index":11072,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourceentitytoexternalsource(entity",{"_index":11081,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity",{"_index":11073,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity(externalsource",{"_index":11083,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery",{"_index":9191,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery(params",{"_index":9203,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto",{"_index":10536,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto(filerecordlistresponse",{"_index":10545,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto",{"_index":10537,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto(filerecordresponse",{"_index":10547,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordtofilerecordparams",{"_index":10618,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfilerecordtofilerecordparams(filerecord",{"_index":10622,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfootodomain",{"_index":23278,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapfromdtotolistresponse",{"_index":19526,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotolistresponse(systems",{"_index":19529,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse",{"_index":19527,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse(system",{"_index":19530,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromentitiestodtos",{"_index":17595,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitiestodtos(enities",{"_index":17597,"title":{},"body":{"classes/RoleMapper.html":{}}}],["mapfromentitiestodtos(entities",{"_index":19464,"title":{},"body":{"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitytodto",{"_index":17596,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromentitytodto(entity",{"_index":17600,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromoauthconfigdtotoresponse",{"_index":19528,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigdtotoresponse(oauthconfigdto",{"_index":19531,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigentitytodto",{"_index":19463,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoauthconfigentitytodto(oauthconfig",{"_index":19467,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoidcconfigentitytodto",{"_index":19485,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapfromoidcconfigentitytodto(systemid",{"_index":19488,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapgridelement",{"_index":7679,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelement(data",{"_index":7681,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelementtomodel",{"_index":7718,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgridelementtomodel(elementwithposition",{"_index":7737,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgrouptoclassinfodto",{"_index":11284,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgrouptoclassinfodto(group",{"_index":11288,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgroupuserentitytogroupuser",{"_index":11074,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupuserentitytogroupuser(entity",{"_index":11085,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity",{"_index":11075,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity(groupuser",{"_index":11088,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapimportuserfilterquerytodomain",{"_index":12866,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportuserfilterquerytodomain(query",{"_index":12867,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportusermatchscopetodomain",{"_index":12913,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapimportusermatchscopetodomain(match",{"_index":12915,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["maplearnroom",{"_index":7680,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplearnroom(metadata",{"_index":7683,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplesson",{"_index":17671,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maplessoncopytodomain",{"_index":6455,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessoncopytodomain(params",{"_index":6457,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessonelement",{"_index":8133,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maplessonelement(element",{"_index":8154,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maploginresponse",{"_index":16140,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maploginresponse(providerloginresponse",{"_index":16146,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maplti11toolconfigdotoentity",{"_index":9112,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoentity(lti11config",{"_index":9133,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoresponse",{"_index":9304,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigdotoresponse(externaltoolconfigdo",{"_index":9312,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigtodo",{"_index":9113,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigtodo(lti11config",{"_index":9135,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapmatchcreatortoresponse",{"_index":12914,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapmatchcreatortoresponse(matchcreator",{"_index":12917,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapnewsscopetodomain",{"_index":15137,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapnewsscopetodomain(query",{"_index":15142,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapoauth2configdotoentity",{"_index":9114,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configdotoentity(oauth2config",{"_index":9137,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo",{"_index":9115,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo(oauth2config",{"_index":9140,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2toolconfigdotoresponse",{"_index":9305,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauth2toolconfigdotoresponse(externaltoolconfigdo",{"_index":9314,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauthclientresponse",{"_index":16141,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapoauthclientresponse(oauthclient",{"_index":16148,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapped",{"_index":4486,"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":{},"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":20547,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["mappedcolumnboard",{"_index":17719,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedconfig",{"_index":9253,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedcustomparameter",{"_index":9258,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappeddata",{"_index":11215,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["mappedelements",{"_index":7784,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mappedelements.includes(el",{"_index":7788,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mappedentity",{"_index":19504,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["mappedlesson",{"_index":17713,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedlocation",{"_index":20623,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mappedtask",{"_index":17696,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.availabledate",{"_index":17705,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.coursename",{"_index":17703,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.description",{"_index":17711,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.displaycolor",{"_index":17709,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.duedate",{"_index":17707,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtools",{"_index":20459,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{}}}],["mappedtype",{"_index":20625,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mapper",{"_index":631,"title":{},"body":{"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":5654,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapper.interface",{"_index":5646,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["mapper.interface.ts",{"_index":2443,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:5",{"_index":2448,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:7",{"_index":2446,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.mapsubmissionitemtoresponse(submissionitem",{"_index":8298,"title":{},"body":{"controllers/ElementController.html":{}}}],["mapper.maptoresponse(submissionitems",{"_index":3720,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["mapper.name",{"_index":13455,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mapper.ts",{"_index":23276,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper/account",{"_index":925,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["mapper/course.mapper",{"_index":6691,"title":{},"body":{"controllers/CourseController.html":{}}}],["mapper/dashboard.mapper",{"_index":7447,"title":{},"body":{"controllers/DashboardController.html":{}}}],["mapper/identity",{"_index":13322,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["mapper/import",{"_index":12787,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["mapper/login",{"_index":14506,"title":{},"body":{"controllers/LoginController.html":{}}}],["mapper/migration.mapper",{"_index":13935,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["mapper/news.mapper",{"_index":15085,"title":{},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/TeamNewsController.html":{}}}],["mapper/oauth",{"_index":15888,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/provisioning",{"_index":16953,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["mapper/pseudonym.mapper",{"_index":17014,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["mapper/role.mapper",{"_index":17649,"title":{},"body":{"injectables/RoleService.html":{}}}],["mapper/room",{"_index":13873,"title":{},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["mapper/system",{"_index":19382,"title":{},"body":{"controllers/SystemController.html":{}}}],["mapper/team.mapper",{"_index":4705,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["mapper/token",{"_index":15541,"title":{},"body":{"injectables/OAuthService.html":{}}}],["mapper/tool",{"_index":20425,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["mapper/user",{"_index":12790,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/user.mapper",{"_index":21699,"title":{},"body":{"injectables/UserService.html":{}}}],["mapper/vc",{"_index":21941,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["mapper/video",{"_index":21827,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["mapperid",{"_index":13458,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mappers",{"_index":5633,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mapping",{"_index":23251,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mappseudonymtouserdata",{"_index":9727,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["mappseudonymtouserdata(pseudonym",{"_index":9750,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["mapredirectresponse",{"_index":16142,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapredirectresponse(redirect",{"_index":16149,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapreferencetoentity",{"_index":7719,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetoentity(modelentity",{"_index":7739,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel",{"_index":7720,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel(reference",{"_index":7741,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["maprequesttobasictoolconfig",{"_index":9192,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttobasictoolconfig(externaltoolconfigparams",{"_index":9206,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo",{"_index":9193,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo(customparameterparams",{"_index":9210,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo",{"_index":5979,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo(customparameterparams",{"_index":5983,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate",{"_index":9194,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate(externaltoolconfigparams",{"_index":9213,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate",{"_index":9195,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate(externaltoolconfigparams",{"_index":9216,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate",{"_index":9196,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate(externaltoolconfigparams",{"_index":9220,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate",{"_index":9197,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate(externaltoolconfigparams",{"_index":9223,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprolestoltiroles",{"_index":14631,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprolestoltiroles(rolenames",{"_index":14632,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprpcerrorresponsetodomainerror",{"_index":8433,"title":{},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["maprpcerrorresponsetodomainerror(errorobj",{"_index":8434,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["maps",{"_index":4595,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["mapsanisroletorolename",{"_index":18080,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapsanisroletorolename(source",{"_index":18084,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapscanresultparamstodto",{"_index":10211,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapscanresultparamstodto(scanresultparams",{"_index":10214,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapschoolexternaltoolrequest",{"_index":18228,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapschoolexternaltoolrequest(request",{"_index":18230,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapsearchparamstoquery",{"_index":21270,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchparamstoquery(searchparams",{"_index":21272,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchresult",{"_index":415,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsearchresult(accountentities",{"_index":419,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsessiontodto",{"_index":15854,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsessiontodto(session",{"_index":15855,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsortingquerytodomain",{"_index":9198,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapsortingquerytodomain(sortingquery",{"_index":9227,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapstringtoparenttype",{"_index":10538,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapstringtoparenttype(input",{"_index":10549,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapsubmissioncontenttoresponse",{"_index":5634,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapsubmissioncontenttoresponse(element",{"_index":5640,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapsubmissionitemtoresponse",{"_index":19164,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapsubmissionitemtoresponse(submissionitem",{"_index":19166,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptask",{"_index":17672,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maptaskcopytodomain",{"_index":6456,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcopytodomain(params",{"_index":6461,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcreatetodomain",{"_index":19781,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskcreatetodomain(params",{"_index":19783,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskelement",{"_index":8134,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptaskelement(element",{"_index":8156,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptasktowebcontentresource",{"_index":5050,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptasktowebcontentresource(task",{"_index":5072,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptaskupdatetodomain",{"_index":19782,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskupdatetodomain(params",{"_index":19785,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoallowedauthorizationentitytype",{"_index":10619,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowedauthorizationentitytype(type",{"_index":10624,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowemetadatatype",{"_index":14919,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptoallowemetadatatype(type",{"_index":14920,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptobaseresponse",{"_index":22113,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptobaseresponse(from",{"_index":22116,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoboardelement",{"_index":2676,"title":{},"body":{"entities/Board.html":{}}}],["maptoclassinfostolistresponse",{"_index":11202,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfostolistresponse(classinfos",{"_index":11205,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse",{"_index":11203,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse(classinfo",{"_index":11208,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse",{"_index":20444,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse(toolinfos",{"_index":20448,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse",{"_index":20445,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse(toolinfo",{"_index":20451,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocustomparameterentryresponse",{"_index":18244,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptocustomparameterentryresponse(entries",{"_index":18247,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptodo",{"_index":4373,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodo(entity",{"_index":4377,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodomain",{"_index":17614,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptodomain(query",{"_index":21448,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["maptodomain(rolename",{"_index":17615,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptodos",{"_index":4374,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodos(entities",{"_index":4379,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodto",{"_index":416,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/CalendarMapper.html":{}}}],["maptodto(account",{"_index":422,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["maptodto(event",{"_index":3917,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["maptoelementdtos",{"_index":8135,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptoelementdtos(elements",{"_index":8158,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptoentities",{"_index":4375,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentities(domainobjects",{"_index":4381,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity",{"_index":4376,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity(domainobject",{"_index":4383,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoexternalgroupdtos",{"_index":18081,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupdtos(source",{"_index":18086,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser",{"_index":18082,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser(relation",{"_index":18088,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto",{"_index":13082,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto(schooldo",{"_index":13084,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptoexternalschooldto(source",{"_index":18090,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaltoolresponse",{"_index":9306,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaltoolresponse(externaltool",{"_index":9316,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaluserdto",{"_index":13083,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(source",{"_index":18091,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(userdo",{"_index":13087,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptofilerecordlistresponse",{"_index":10212,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordlistresponse(filerecords",{"_index":10217,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse",{"_index":10213,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse(filerecord",{"_index":10219,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptogroupresponse",{"_index":11204,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptogroupresponse(resolvedgroup",{"_index":11211,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoinforesponse",{"_index":22114,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoinforesponse(from",{"_index":22117,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptointernal",{"_index":16979,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptointernal(dto",{"_index":16980,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptojoinresponse",{"_index":22115,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptojoinresponse(from",{"_index":22118,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptokenresponsetodto",{"_index":20364,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokenresponsetodto(response",{"_index":20367,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokeycloakidentityprovider",{"_index":16395,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptokeycloakidentityprovider(oidcconfig",{"_index":16398,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptologinresponse",{"_index":14553,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologinresponse(logindto",{"_index":14555,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologmessagedata",{"_index":15138,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptologmessagedata(news",{"_index":15144,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptometadataresponse",{"_index":6876,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptometadataresponse(course",{"_index":6877,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptooauthcurrentuser",{"_index":7134,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthcurrentuser(accountid",{"_index":7140,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthloginresponse",{"_index":14554,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptooauthloginresponse(logindto",{"_index":14557,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptoparameterlocation",{"_index":20601,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoparameterlocation(location",{"_index":20605,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoresolvedgroupdto",{"_index":11285,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["maptoresolvedgroupdto(group",{"_index":11293,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["maptoresponse",{"_index":778,"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":780,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponse(board",{"_index":3666,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["maptoresponse(card",{"_index":4086,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["maptoresponse(column",{"_index":4992,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["maptoresponse(copystatus",{"_index":6465,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptoresponse(dashboard",{"_index":7685,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maptoresponse(element",{"_index":2447,"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":12870,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["maptoresponse(news",{"_index":15146,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptoresponse(pseudonym",{"_index":17030,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["maptoresponse(rolename",{"_index":17617,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptoresponse(schoolinfo",{"_index":18375,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["maptoresponse(sharetoken",{"_index":18830,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["maptoresponse(sharetokeninfo",{"_index":18785,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["maptoresponse(status",{"_index":3752,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["maptoresponse(submissionitems",{"_index":19167,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptoresponse(target",{"_index":19592,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["maptoresponse(taskwithstatus",{"_index":19788,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoresponse(user",{"_index":17491,"title":{},"body":{"classes/ResolvedUserMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponsefromentity",{"_index":779,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponsefromentity(account",{"_index":782,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse",{"_index":20446,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse(externaltools",{"_index":20454,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse",{"_index":20447,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse(externaltool",{"_index":20456,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolresponse",{"_index":18245,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":18249,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse",{"_index":18246,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse(externaltools",{"_index":18250,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosinglefileparams",{"_index":10620,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptosinglefileparams(params",{"_index":10628,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostatusresponse",{"_index":19221,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostatusresponse(submission",{"_index":19222,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostreamablefile",{"_index":10621,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostreamablefile(fileresponse",{"_index":10630,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptotoolconfigtype",{"_index":20602,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolconfigtype(launchdatatype",{"_index":20607,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype",{"_index":20603,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype(configtype",{"_index":20610,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse",{"_index":20604,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20613,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolreference",{"_index":20754,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreference(externaltool",{"_index":20755,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreferenceresponse",{"_index":6019,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponse(toolreference",{"_index":6023,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses",{"_index":6020,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses(toolreferences",{"_index":6027,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapupdatenewstodomain",{"_index":15139,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdatenewstodomain(params",{"_index":15148,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdaterequest",{"_index":9199,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapupdaterequest(externaltoolupdateparams",{"_index":9232,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapuserloginmigrationdotoresponse",{"_index":21271,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserloginmigrationdotoresponse(domainobject",{"_index":21275,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserstoresponse",{"_index":19165,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapuserstoresponse(user",{"_index":19168,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["march",{"_index":22849,"title":{},"body":{"license.html":{}}}],["marked",{"_index":7990,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["markedfordelete",{"_index":10199,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["markfilesownedbyuserfordeletion",{"_index":10475,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfilesownedbyuserfordeletion(userid",{"_index":10482,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfordelete",{"_index":10161,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["markfordeletion",{"_index":10021,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["marks",{"_index":22724,"title":{},"body":{"license.html":{}}}],["markunmigratedusersasoutdated",{"_index":18395,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["markunmigratedusersasoutdated(schoolid",{"_index":18413,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["masks",{"_index":22436,"title":{},"body":{"license.html":{}}}],["master",{"_index":23652,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["match",{"_index":361,"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":12791,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["match.mapper.ts",{"_index":21447,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:20",{"_index":21450,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:8",{"_index":21449,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.params.ts",{"_index":20865,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.params.ts:7",{"_index":20867,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.response",{"_index":12848,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["match.response.ts",{"_index":21442,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["match.response.ts:19",{"_index":21470,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:22",{"_index":21467,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:25",{"_index":21465,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:28",{"_index":21466,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:35",{"_index":21469,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:41",{"_index":21468,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:44",{"_index":21443,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["match.response.ts:7",{"_index":21464,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match_matchedby",{"_index":12058,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["match_userid",{"_index":12056,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/UserRepo.html":{}}}],["matchancestors",{"_index":3611,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchancestors(desc",{"_index":3616,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchcreator",{"_index":12022,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["matchcreator.auto",{"_index":12929,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreator.manual",{"_index":12927,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreatorscope",{"_index":12065,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.auto",{"_index":12921,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.manual",{"_index":12923,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.none",{"_index":12925,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matched",{"_index":3865,"title":{},"body":{"classes/BusinessError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{}}}],["matched(matchedby",{"_index":12832,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["matchedby",{"_index":12020,"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":250,"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":6960,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["matches(passwordpattern",{"_index":254,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["matches.groups",{"_index":6443,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.length",{"_index":12050,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matches[1",{"_index":12051,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matching",{"_index":104,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":{}}}],["matchingparameterentry",{"_index":2579,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["matchingparams",{"_index":9565,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchingparams.some((param",{"_index":9613,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchsinglerule",{"_index":17868,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchsinglerule(rules",{"_index":17873,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchtype",{"_index":12919,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["matchtype.auto",{"_index":12930,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchtype.manual",{"_index":12928,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["material",{"_index":11877,"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":14813,"title":{"classes/MaterialFactory.html":{}},"body":{"classes/MaterialFactory.html":{}}}],["materialfactory.define(material",{"_index":14816,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["materialid",{"_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":{}}}],["materialids",{"_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":{}}}],["materially",{"_index":22690,"title":{},"body":{"license.html":{}}}],["materials",{"_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":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/Material.html":{}}}],["materials.entity",{"_index":11878,"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":14817,"title":{"injectables/MaterialsRepo.html":{}},"body":{"injectables/MaterialsRepo.html":{}}}],["math.ceil(timedifference",{"_index":1576,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["math.floor(index",{"_index":7565,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["math.floor(math.random",{"_index":3521,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["math.round(math.random",{"_index":10205,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["matter",{"_index":23578,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["max",{"_index":3488,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["max(100",{"_index":16586,"title":{},"body":{"classes/PaginationParams.html":{}}}],["max(500",{"_index":14391,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["max_file_size",{"_index":11978,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["max_redirects",{"_index":11421,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["max_security_check_file_size",{"_index":11979,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["maxage",{"_index":18653,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["maxdelay",{"_index":13794,"title":{},"body":{"injectables/LdapService.html":{}}}],["maxexternaltoollogosizeinbytes",{"_index":8905,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["maximum",{"_index":840,"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":11635,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["maxredirects",{"_index":11461,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["maxsubmission",{"_index":12501,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxsubmissions",{"_index":3761,"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":2107,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["maybe",{"_index":9143,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["md",{"_index":23002,"title":{},"body":{"todo.html":{}}}],["me(@currentuser",{"_index":20930,"title":{},"body":{"controllers/UserController.html":{}}}],["me(authtoken",{"_index":1016,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["me(currentuser",{"_index":20925,"title":{},"body":{"controllers/UserController.html":{}}}],["me(userid",{"_index":21689,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["meaning",{"_index":22732,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["meaningful",{"_index":22349,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["means",{"_index":22316,"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":22543,"title":{},"body":{"license.html":{}}}],["measures",{"_index":22318,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mechanism",{"_index":23225,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["medium",{"_index":22567,"title":{},"body":{"license.html":{}}}],["meet",{"_index":22579,"title":{},"body":{"license.html":{}}}],["meeting",{"_index":2099,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{}}}],["meeting.config",{"_index":1977,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["meeting.config.ts",{"_index":1939,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:1",{"_index":1942,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:6",{"_index":1943,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting_id",{"_index":2095,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["meetingid",{"_index":1940,"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":2108,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["meets",{"_index":22482,"title":{},"body":{"license.html":{}}}],["member",{"_index":998,"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":12329,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["memberids.some((id",{"_index":12334,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["members",{"_index":1053,"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":10735,"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":18641,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mention",{"_index":23601,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["mentioned",{"_index":23196,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mentor",{"_index":7176,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["menu",{"_index":22480,"title":{},"body":{"license.html":{}}}],["merchantability",{"_index":22892,"title":{},"body":{"license.html":{}}}],["mere",{"_index":22467,"title":{},"body":{"license.html":{}}}],["merge",{"_index":22354,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mergeelementintoposition",{"_index":7477,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["mergeelementintoposition(element",{"_index":7509,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["merging",{"_index":22780,"title":{},"body":{"license.html":{}}}],["merlinreference",{"_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/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["message",{"_index":1021,"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/UnknownQueryTypeLoggableException.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":11972,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["messagekey",{"_index":1949,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["messages",{"_index":23596,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["messagewithcontext",{"_index":14482,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["met",{"_index":22518,"title":{},"body":{"license.html":{}}}],["meta",{"_index":11341,"title":{"interfaces/Meta.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["meta_bbb",{"_index":1960,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["metadata",{"_index":2109,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalValidationPipe.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["metadata.response.ts",{"_index":6890,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:28",{"_index":6906,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:33",{"_index":6909,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:38",{"_index":6907,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:43",{"_index":6905,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:48",{"_index":6908,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:5",{"_index":6903,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:53",{"_index":6910,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:58",{"_index":6904,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:61",{"_index":6891,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["metadata.type",{"_index":7762,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["metadataprops",{"_index":5271,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["metadatas",{"_index":8397,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatas.some",{"_index":8401,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatatypemapper",{"_index":14916,"title":{"classes/MetadataTypeMapper.html":{}},"body":{"classes/MetadataTypeMapper.html":{}}}],["metatagextractorapimodule",{"_index":14820,"title":{"modules/MetaTagExtractorApiModule.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["metatagextractorconfig",{"_index":14851,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["metatagextractorcontroller",{"_index":14827,"title":{"controllers/MetaTagExtractorController.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{}}}],["metatagextractormodule",{"_index":14824,"title":{"modules/MetaTagExtractorModule.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["metatagextractorresponse",{"_index":14838,"title":{"classes/MetaTagExtractorResponse.html":{}},"body":{"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{}}}],["metatagextractorresponse})@apiresponse({status",{"_index":14834,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["metatagextractorservice",{"_index":14849,"title":{"injectables/MetaTagExtractorService.html":{}},"body":{"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["metatagextractoruc",{"_index":14825,"title":{"injectables/MetaTagExtractorUc.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["method",{"_index":591,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/ClassService.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":15738,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["methodes",{"_index":23823,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["methodnotallowedexception",{"_index":8118,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["methods",{"_index":8,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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/UnknownQueryTypeLoggableException.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":16872,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics",{"_index":16869,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts",{"_index":16859,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:19",{"_index":16862,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:22",{"_index":16863,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["micro",{"_index":23753,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["microservice",{"_index":23082,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["microservices",{"_index":23816,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["middleware",{"_index":16873,"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":18595,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["middlewares",{"_index":16870,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["migrate",{"_index":11655,"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":11658,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["migrate(skip",{"_index":13504,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["migrate(start",{"_index":13669,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migrate(userjwt",{"_index":16322,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated",{"_index":15395,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated.'})@apiresponse({type",{"_index":16221,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migratedaccounts",{"_index":13673,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migratedusers",{"_index":18458,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migratedusers.data.foreach((user",{"_index":18459,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrates",{"_index":21416,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrateschool",{"_index":18396,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateschool(externalid",{"_index":18415,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateuser",{"_index":16202,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{}}}],["migrateuser(currentuserid",{"_index":21513,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migrateuser(jwt",{"_index":16218,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrateuserlogin",{"_index":21129,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrateuserlogin(jwt",{"_index":21151,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrating",{"_index":21248,"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/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":21122,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.controller.ts",{"_index":21125,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:115",{"_index":21173,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:139",{"_index":21161,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:167",{"_index":21168,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:17",{"_index":21474,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:201",{"_index":21139,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:218",{"_index":21154,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:59",{"_index":21150,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:89",{"_index":21144,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.do.ts",{"_index":21213,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:11",{"_index":21219,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:13",{"_index":21222,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:15",{"_index":21218,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:17",{"_index":21217,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:5",{"_index":21220,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:7",{"_index":21221,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:9",{"_index":21223,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.dto",{"_index":13958,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{}}}],["migration.dto.ts",{"_index":15862,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:10",{"_index":15863,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:2",{"_index":15867,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:4",{"_index":15866,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:6",{"_index":15865,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:8",{"_index":15864,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.entity",{"_index":12199,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["migration.entity.ts",{"_index":21237,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:11",{"_index":21241,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:15",{"_index":21242,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:18",{"_index":21244,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:21",{"_index":21240,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:24",{"_index":21243,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:27",{"_index":21238,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:30",{"_index":21239,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.error",{"_index":15627,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{}}}],["migration.error.ts",{"_index":13736,"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":13741,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.error.ts:12",{"_index":15468,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:14",{"_index":15462,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:17",{"_index":14986,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:22",{"_index":14987,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:28",{"_index":14923,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:33",{"_index":14924,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:4",{"_index":18359,"title":{},"body":{"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:6",{"_index":13739,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.mapper",{"_index":16242,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migration.mapper.ts",{"_index":21269,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:13",{"_index":21276,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.mapper.ts:5",{"_index":21490,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:6",{"_index":21273,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.module",{"_index":21123,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.module.ts",{"_index":21288,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["migration.params",{"_index":21181,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.params.ts",{"_index":15617,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:13",{"_index":15618,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:17",{"_index":15620,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:8",{"_index":15619,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.repo.ts",{"_index":21292,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:14",{"_index":21293,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:19",{"_index":21297,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:27",{"_index":21294,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.response",{"_index":16239,"title":{},"body":{"controllers/OauthSSOController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration.response.ts",{"_index":21315,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:1",{"_index":21493,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:10",{"_index":21320,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:15",{"_index":21322,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:20",{"_index":21319,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:25",{"_index":21321,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:30",{"_index":21317,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:35",{"_index":21316,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:5",{"_index":21318,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:6",{"_index":21494,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.rule.ts",{"_index":21332,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:11",{"_index":21335,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:17",{"_index":21334,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:8",{"_index":21333,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.service",{"_index":13328,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts",{"_index":13664,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:106",{"_index":18423,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:111",{"_index":21360,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:119",{"_index":21517,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:12",{"_index":18400,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:129",{"_index":21344,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:130",{"_index":18406,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:135",{"_index":21505,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:141",{"_index":18418,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:147",{"_index":18403,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:149",{"_index":21346,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:158",{"_index":18409,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:159",{"_index":21502,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:165",{"_index":18412,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:169",{"_index":21507,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:171",{"_index":21364,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:18",{"_index":13670,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:180",{"_index":21350,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:188",{"_index":21352,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:194",{"_index":21354,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:20",{"_index":18425,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:21",{"_index":21520,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:214",{"_index":21348,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:23",{"_index":21522,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:25",{"_index":21519,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:27",{"_index":21521,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:28",{"_index":18416,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:29",{"_index":21358,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:42",{"_index":21510,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:43",{"_index":18421,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:48",{"_index":13668,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:54",{"_index":21512,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:81",{"_index":18414,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:82",{"_index":21362,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:9",{"_index":13666,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:91",{"_index":21511,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:95",{"_index":21356,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:97",{"_index":21514,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.uc",{"_index":21476,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.uc.ts",{"_index":4509,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:11",{"_index":4516,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:14",{"_index":17514,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:15",{"_index":20351,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:155",{"_index":21406,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:18",{"_index":21398,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:19",{"_index":4518,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:21",{"_index":18988,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:23",{"_index":20354,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:24",{"_index":17517,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:30",{"_index":21404,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:40",{"_index":21402,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:42",{"_index":18986,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:47",{"_index":17515,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:51",{"_index":20352,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:58",{"_index":4521,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:60",{"_index":21400,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:78",{"_index":21407,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/controller/dto/oauth2",{"_index":15616,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration/controller/dto/request/page",{"_index":16562,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["migration/controller/dto/request/school",{"_index":18357,"title":{},"body":{"classes/SchoolIdParams.html":{}}}],["migration/controller/dto/request/user",{"_index":21265,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["migration/controller/dto/response/page",{"_index":16575,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["migration/controller/dto/response/user",{"_index":21314,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration/controller/user",{"_index":21124,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration/error",{"_index":21558,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/error/oauth",{"_index":15456,"title":{},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{}}}],["migration/error/school",{"_index":18384,"title":{},"body":{"classes/SchoolMigrationError.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["migration/error/user",{"_index":21109,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["migration/loggable/user",{"_index":21260,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["migration/mapper/page",{"_index":16553,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["migration/mapper/user",{"_index":21268,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration/service",{"_index":16332,"title":{},"body":{"injectables/OauthUc.html":{}}}],["migration/service/dto",{"_index":16233,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/UserMigrationMapper.html":{}}}],["migration/service/dto/migration.dto.ts",{"_index":14944,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/migration.dto.ts:2",{"_index":14946,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/page",{"_index":16542,"title":{},"body":{"classes/PageContentDto.html":{}}}],["migration/service/dto/school",{"_index":18387,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["migration/service/migration",{"_index":14930,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["migration/service/school",{"_index":18391,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration/service/user",{"_index":21323,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration/success",{"_index":21562,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/uc/close",{"_index":4508,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration/uc/dto/user",{"_index":21290,"title":{},"body":{"interfaces/UserLoginMigrationQuery.html":{}}}],["migration/uc/restart",{"_index":17512,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration/uc/start",{"_index":18982,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration/uc/toggle",{"_index":20349,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration/uc/user",{"_index":21394,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/user",{"_index":18612,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationalreadyactivatedexception",{"_index":13747,"title":{"classes/MigrationAlreadyActivatedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["migrationbody",{"_index":13948,"title":{"classes/MigrationBody.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/MigrationBody.html":{}}}],["migrationbody.oauthmigrationfinished",{"_index":13969,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationmandatory",{"_index":13968,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationpossible",{"_index":13967,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationcheckservice",{"_index":14929,"title":{"injectables/MigrationCheckService.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationconsentredirect",{"_index":15554,"title":{},"body":{"injectables/OAuthService.html":{}}}],["migrationdto",{"_index":13964,"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":21431,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationdto.redirect.includes('migration/error",{"_index":21430,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationerror",{"_index":16260,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromsource",{"_index":16262,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromtarget",{"_index":16263,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler",{"_index":16203,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler(error",{"_index":16223,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationflags",{"_index":13943,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationmapper",{"_index":13928,"title":{"injectables/MigrationMapper.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{}}}],["migrationmaybecompleted",{"_index":14958,"title":{"classes/MigrationMayBeCompleted.html":{}},"body":{"classes/MigrationMayBeCompleted.html":{}}}],["migrationmaynotbecompleted",{"_index":14966,"title":{"classes/MigrationMayNotBeCompleted.html":{}},"body":{"classes/MigrationMayNotBeCompleted.html":{}}}],["migrationpage",{"_index":21187,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.data.map",{"_index":21190,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.total",{"_index":21192,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse",{"_index":13959,"title":{"classes/MigrationResponse.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{}}}],["migrationresponses",{"_index":21189,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse})@apiunauthorizedresponse",{"_index":13950,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationresponse})@apiunauthorizedresponse()@apinotfoundresponse({description",{"_index":13944,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrations",{"_index":21126,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationsflags",{"_index":13945,"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":7874,"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":22994,"title":{},"body":{"todo.html":{}}}],["mikroormmodule",{"_index":10663,"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":10691,"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":15013,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmoduleasyncoptions",{"_index":15008,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmodulesyncoptions",{"_index":10664,"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":23250,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["milliseconds",{"_index":18457,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["mime",{"_index":10110,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["mimetype",{"_index":1295,"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":3432,"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":3437,"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":16585,"title":{},"body":{"classes/PaginationParams.html":{}}}],["mind",{"_index":23728,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["minimum",{"_index":839,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["minio",{"_index":23029,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_password=miniouser",{"_index":23043,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_user=`miniouser",{"_index":23042,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minios3storage",{"_index":23039,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minus",{"_index":15030,"title":{},"body":{"classes/MongoPatterns.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["minwidth",{"_index":14872,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["misrepresentation",{"_index":22716,"title":{},"body":{"license.html":{}}}],["missed",{"_index":7095,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["missing",{"_index":931,"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":18478,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing_tool_parameter_value",{"_index":14993,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["missingentityids.tostring",{"_index":4498,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["missingschoolnumberexception",{"_index":13744,"title":{"classes/MissingSchoolNumberException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["missingtoolparametervalueloggableexception",{"_index":14988,"title":{"classes/MissingToolParameterValueLoggableException.html":{}},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["mission",{"_index":15256,"title":{},"body":{"classes/NewsScope.html":{}}}],["missmatches",{"_index":19916,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["mixing",{"_index":13847,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mixwith",{"_index":22234,"title":{},"body":{"dependencies.html":{}}}],["mkdir",{"_index":10413,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdir(folderpath",{"_index":10418,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp",{"_index":10414,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp(dirpath",{"_index":10422,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mm",{"_index":14464,"title":{},"body":{"modules/LoggerModule.html":{}}}],["mnf:copyrightandotherrestrictions",{"_index":5309,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:description",{"_index":5311,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:general",{"_index":5305,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:lom",{"_index":5304,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:rights",{"_index":5308,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:string",{"_index":5307,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:title",{"_index":5306,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:value",{"_index":5310,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mocha",{"_index":23126,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mocha's",{"_index":23420,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mock",{"_index":8797,"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":16411,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock/oidc",{"_index":16410,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock:0.6.0powershell",{"_index":23635,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock:0.6.0setup",{"_index":23636,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock_issuer",{"_index":19440,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mock_type",{"_index":19438,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockbaseurl",{"_index":8794,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mockcomment",{"_index":8799,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mocked",{"_index":23525,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocking",{"_index":23485,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockreturnvalueonce",{"_index":23523,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocks",{"_index":23447,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocksecret",{"_index":19434,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockservice",{"_index":23502,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockservice.getuser.mockreturnvalueonce(resultuser",{"_index":23518,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mode",{"_index":14965,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["model",{"_index":7114,"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":7732,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["modelentity.gridelements.init",{"_index":7757,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.isinitialized",{"_index":7756,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.remove(el",{"_index":7789,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.references.loaditems",{"_index":7749,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.title",{"_index":7755,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.user.id",{"_index":7761,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.xpos",{"_index":7752,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.ypos",{"_index":7753,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["models",{"_index":15321,"title":{},"body":{"injectables/NewsUc.html":{}}}],["moderator",{"_index":2064,"title":{},"body":{"classes/BBBJoinConfig.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["moderatorcount",{"_index":2110,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["moderatormustapprovejoinrequests",{"_index":8103,"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":1963,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["modification",{"_index":22432,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["modifications",{"_index":22485,"title":{},"body":{"license.html":{}}}],["modified",{"_index":21132,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["modifies",{"_index":22583,"title":{},"body":{"license.html":{}}}],["modify",{"_index":22403,"title":{},"body":{"license.html":{}}}],["modifying",{"_index":22458,"title":{},"body":{"license.html":{}}}],["modularization",{"_index":23024,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["modularize",{"_index":19012,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["module",{"_index":201,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":23506,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(featureundertest",{"_index":23503,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(mockservice",{"_index":23504,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.ts",{"_index":23280,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/application",{"_index":23483,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module/repo",{"_index":23310,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/uc",{"_index":23305,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduleref",{"_index":23491,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(catscontroller",{"_index":23495,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(sampleservice",{"_index":23494,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["modules",{"_index":203,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":1372,"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":18597,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/account/account.module",{"_index":16925,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/account/services/account.service",{"_index":13671,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{}}}],["modules/account/services/dto",{"_index":1540,"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":784,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["modules/authentication",{"_index":2901,"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":18598,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/authentication/authentication.module",{"_index":10507,"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":11380,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["modules/authentication/interface",{"_index":16333,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserService.html":{}}}],["modules/authentication/interface/user",{"_index":17469,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["modules/authentication/mapper",{"_index":21698,"title":{},"body":{"injectables/UserService.html":{}}}],["modules/authentication/services/authentication.service",{"_index":16330,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/authorization",{"_index":2469,"title":{},"body":{"classes/BaseUc.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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":{},"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":{},"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":{},"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":10508,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["modules/authorization/authorization.module.ts",{"_index":23317,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/authorization/domain",{"_index":3798,"title":{},"body":{"injectables/BoardUc.html":{},"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":1768,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsService.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/board/board",{"_index":18599,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/board/service/column",{"_index":2977,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["modules/class",{"_index":11032,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["modules/class/domain",{"_index":11296,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["modules/class/entity",{"_index":4308,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["modules/class/entity/class.entity",{"_index":6580,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/collaborative",{"_index":4575,"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":2981,"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":23315,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers.module.ts",{"_index":23316,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/files",{"_index":1163,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.html":{},"modules/BoardModule.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":18574,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/group",{"_index":8511,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisResponseMapper.html":{}}}],["modules/group/entity/group.entity",{"_index":6582,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/group/group",{"_index":18600,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom",{"_index":1860,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/PseudonymModule.html":{},"injectables/ShareTokenUC.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/learnroom/common",{"_index":12247,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["modules/learnroom/controller/dto/lesson/lesson",{"_index":6467,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/learnroom/learnroom",{"_index":18601,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom/service",{"_index":9759,"title":{},"body":{"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":3407,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["modules/legacy",{"_index":1901,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"modules/CommonToolModule.html":{},"modules/GroupApiModule.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":13868,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{}}}],["modules/lesson/lesson",{"_index":18602,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/lesson/service",{"_index":2985,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/lesson/types",{"_index":6469,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/lti",{"_index":16075,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{}}}],["modules/management/management.module",{"_index":18575,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/management/uc/database",{"_index":20303,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["modules/meta",{"_index":18603,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/news",{"_index":18604,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/oauth",{"_index":122,"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":11517,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["modules/oauth/loggable",{"_index":13110,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["modules/oauth/oauth",{"_index":18605,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/oauth/oauth.module",{"_index":1373,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["modules/oauth/service/dto/cookies.dto",{"_index":11485,"title":{},"body":{"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/dto/hydra.redirect.dto",{"_index":11443,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/oauth.service",{"_index":15624,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning",{"_index":15537,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning/dto",{"_index":15538,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/pseudonym",{"_index":4623,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolLaunchModule.html":{}}}],["modules/pseudonym/pseudonym",{"_index":18606,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/pseudonym/service",{"_index":16101,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["modules/rocketchat",{"_index":18607,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/role",{"_index":1374,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{}}}],["modules/role/role.module",{"_index":4676,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/UserModule.html":{}}}],["modules/role/service/dto/role.dto",{"_index":4583,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleMapper.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/service/role.service",{"_index":4704,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"modules/RoleModule.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/uc/role.uc",{"_index":17611,"title":{},"body":{"modules/RoleModule.html":{}}}],["modules/server",{"_index":1544,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["modules/server/server.config",{"_index":602,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["modules/sharing/domainobject/share",{"_index":18766,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["modules/sharing/sharing.module",{"_index":18608,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system",{"_index":1375,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.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":17154,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/controller/dto/system.filter.params",{"_index":19375,"title":{},"body":{"controllers/SystemController.html":{}}}],["modules/system/controller/system.controller",{"_index":19359,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/system/mapper/system",{"_index":19501,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["modules/system/mapper/system.mapper",{"_index":19552,"title":{},"body":{"injectables/SystemService.html":{}}}],["modules/system/service",{"_index":13387,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/UserMigrationService.html":{}}}],["modules/system/service/dto",{"_index":12690,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["modules/system/service/dto/oauth",{"_index":19406,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/service/dto/oidc",{"_index":19490,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["modules/system/service/dto/system.dto",{"_index":16331,"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":13388,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["modules/system/service/system.service",{"_index":19480,"title":{},"body":{"modules/SystemModule.html":{},"injectables/SystemUc.html":{}}}],["modules/system/system",{"_index":18609,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system/system.module",{"_index":16926,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/system/uc/system.uc",{"_index":19360,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/task",{"_index":13882,"title":{},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{}}}],["modules/task/controller/dto/task",{"_index":6470,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/task/service",{"_index":2986,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/task/task",{"_index":18610,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/task/types",{"_index":6471,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/teams/teams",{"_index":18611,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/teams/teams.module",{"_index":20250,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["modules/tool",{"_index":1766,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{}}}],["modules/tool/common/domain",{"_index":5868,"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":9142,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["modules/tool/common/enum",{"_index":5869,"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":5940,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["modules/tool/common/interface",{"_index":9093,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["modules/tool/context",{"_index":3540,"title":{},"body":{"modules/BoardModule.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IRepoLoader.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/external",{"_index":7340,"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":5943,"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":16076,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/user",{"_index":3541,"title":{},"body":{"modules/BoardModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.html":{},"modules/GroupApiModule.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":20994,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["modules/user/uc/dto/user.dto",{"_index":21439,"title":{},"body":{"classes/UserMapper.html":{}}}],["modules/user/user",{"_index":18613,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/video",{"_index":18614,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["moduluslength",{"_index":7067,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["moment",{"_index":15368,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mongo",{"_index":573,"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":13026,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["mongo_url=mongodb://172.29.173.128:27030/rocketchat",{"_index":23686,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongod",{"_index":23030,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mongodatabasemoduleoptions",{"_index":10731,"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":751,"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":11766,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongoimport",{"_index":11753,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongomemorydatabasemodule",{"_index":10729,"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":10738,"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":23288,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongoose",{"_index":10009,"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":13025,"title":{"classes/MongoPatterns.html":{}},"body":{"classes/ImportUserScope.html":{},"classes/MongoPatterns.html":{},"injectables/UserRepo.html":{}}}],["moodle",{"_index":22248,"title":{},"body":{"dependencies.html":{}}}],["more",{"_index":1666,"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":22752,"title":{},"body":{"license.html":{}}}],["mostly",{"_index":23819,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mount",{"_index":22311,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounted",{"_index":22303,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounts",{"_index":22976,"title":{},"body":{"todo.html":{}}}],["mountsdescription",{"_index":1270,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["move",{"_index":3368,"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":4112,"title":{},"body":{"injectables/CardService.html":{}}}],["move(child",{"_index":3372,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["move(column",{"_index":5007,"title":{},"body":{"injectables/ColumnService.html":{}}}],["move(element",{"_index":5671,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["moveable",{"_index":23747,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["movecard",{"_index":3988,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{}}}],["movecard(urlparams",{"_index":4008,"title":{},"body":{"controllers/CardController.html":{}}}],["movecard(userid",{"_index":5023,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["movecardbodyparams",{"_index":4009,"title":{"classes/MoveCardBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/MoveCardBodyParams.html":{}}}],["movecolumn",{"_index":3779,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["movecolumn(urlparams",{"_index":4960,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumn(userid",{"_index":3789,"title":{},"body":{"injectables/BoardUc.html":{}}}],["movecolumnbodyparams",{"_index":4961,"title":{"classes/MoveColumnBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/MoveColumnBodyParams.html":{}}}],["movecontentelementbody",{"_index":8275,"title":{"classes/MoveContentElementBody.html":{}},"body":{"controllers/ElementController.html":{},"classes/MoveContentElementBody.html":{}}}],["moved",{"_index":16315,"title":{},"body":{"injectables/OauthUc.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["moveelement",{"_index":4154,"title":{},"body":{"injectables/CardUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"controllers/ElementController.html":{}}}],["moveelement(from",{"_index":7511,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["moveelement(undefined",{"_index":7436,"title":{},"body":{"controllers/DashboardController.html":{}}}],["moveelement(urlparams",{"_index":8274,"title":{},"body":{"controllers/ElementController.html":{}}}],["moveelement(userid",{"_index":4166,"title":{},"body":{"injectables/CardUc.html":{}}}],["moveelementondashboard",{"_index":7829,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementondashboard(dashboardid",{"_index":7835,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementparams",{"_index":7438,"title":{"classes/MoveElementParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moveelementpositionparams",{"_index":15046,"title":{"classes/MoveElementPositionParams.html":{}},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moves",{"_index":11654,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["movetotrash",{"_index":17904,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["movetotrash(paths",{"_index":17920,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["moving",{"_index":23829,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mps",{"_index":11634,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["ms",{"_index":11669,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TimeoutInterceptor.html":{}}}],["msg",{"_index":3903,"title":{},"body":{"modules/CacheWrapperModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/RedisModule.html":{}}}],["msgs",{"_index":973,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["much",{"_index":23428,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["multi",{"_index":3449,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["multiple",{"_index":2033,"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":13493,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["muted",{"_index":22076,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["muteonstart",{"_index":1964,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["mutex",{"_index":22181,"title":{},"body":{"dependencies.html":{}}}],["n/a",{"_index":21432,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["n21",{"_index":1772,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/FederalStateService.html":{},"injectables/IdTokenService.html":{},"classes/LegacySchoolDo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{},"injectables/UserLoginMigrationUc.html":{},"modules/VideoConferenceModule.html":{}}}],["name",{"_index":31,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":8796,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["name.length",{"_index":10164,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["name.mapper",{"_index":12876,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["name.mapper.ts",{"_index":17613,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:12",{"_index":17616,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:5",{"_index":17618,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.match",{"_index":6441,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["name.strategy.ts",{"_index":1845,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:12",{"_index":1852,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:19",{"_index":1859,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:42",{"_index":1857,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:48",{"_index":1854,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.tolowercase",{"_index":5454,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["named",{"_index":22345,"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":23608,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nameonly",{"_index":7971,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["names",{"_index":5071,"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":23587,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["naming",{"_index":23017,"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":11518,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/OauthUc.html":{},"injectables/TokenGenerator.html":{},"dependencies.html":{}}}],["nanoid(12",{"_index":20361,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["nanoid(15",{"_index":11526,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["nanoid(16",{"_index":16335,"title":{},"body":{"injectables/OauthUc.html":{}}}],["narrowed",{"_index":11365,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["native",{"_index":22266,"title":{},"body":{"dependencies.html":{}}}],["nature",{"_index":22594,"title":{},"body":{"license.html":{}}}],["nbf",{"_index":13066,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ne",{"_index":10310,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["necessary",{"_index":19917,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["need",{"_index":760,"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":1761,"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":20042,"title":{},"body":{"injectables/TaskUC.html":{}}}],["needs",{"_index":1757,"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":7873,"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":356,"title":{},"body":{"controllers/AccountController.html":{}}}],["nest/legacy",{"_index":23007,"title":{},"body":{"todo.html":{}}}],["nest:build",{"_index":23066,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:build:all",{"_index":23069,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console",{"_index":23093,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console:dev",{"_index":23094,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:build",{"_index":23088,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:serve",{"_index":23089,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint",{"_index":23109,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint:fix",{"_index":23112,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:prebuild",{"_index":23065,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start",{"_index":23072,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:debug",{"_index":23077,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:dev",{"_index":23074,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:files",{"_index":23084,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:prod",{"_index":23079,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test",{"_index":23102,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:all",{"_index":23103,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:api",{"_index":23104,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:cov",{"_index":23106,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:debug",{"_index":23108,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:unit",{"_index":23105,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:watch",{"_index":23107,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest_log_level",{"_index":11983,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["nestapp.get(rocketchatservice",{"_index":23325,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["nested",{"_index":16641,"title":{},"body":{"injectables/PermissionService.html":{}}}],["nestexpress.set('feathersapp",{"_index":9842,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["nestinterceptor",{"_index":8231,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["nestjs",{"_index":3454,"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":959,"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":{},"modules/MetaTagExtractorModule.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":3890,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{}}}],["nestjs/clithen",{"_index":23131,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nestjs/common",{"_index":226,"title":{},"body":{"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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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":{},"classes/UnknownQueryTypeLoggableException.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":15675,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["nestjs/common/decorators/core/injectable.decorator",{"_index":4523,"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":6576,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["nestjs/common/exceptions/not",{"_index":8662,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["nestjs/config",{"_index":598,"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/MetaTagExtractorModule.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":8449,"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":1368,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"dependencies.html":{}}}],["nestjs/microservices",{"_index":22155,"title":{},"body":{"dependencies.html":{}}}],["nestjs/passport",{"_index":1370,"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":22157,"title":{},"body":{"dependencies.html":{}}}],["nestjs/swagger",{"_index":150,"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/ClassFilterParams.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":{},"classes/GetMetaTagDataBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.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":20302,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["nestjs/testing.test",{"_index":23486,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nestmodule",{"_index":18616,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nestwinston",{"_index":23351,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["net",{"_index":22323,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["network",{"_index":22376,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["neuen",{"_index":4851,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["never",{"_index":8119,"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":236,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BaseUc.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":{},"controllers/BoardSubmissionController.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationMapper.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"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":13467,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfig.idphint",{"_index":13465,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs",{"_index":13373,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.foreach((newconfig",{"_index":13462,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.some((newconfig",{"_index":13469,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newelement",{"_index":7602,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newentity",{"_index":2304,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/GroupRepo.html":{}}}],["newentity._id",{"_index":2320,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newentity.id",{"_index":2319,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newfactory",{"_index":2411,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newgroupname",{"_index":7558,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newid",{"_index":6392,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newid}/${name",{"_index":6395,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newlanguage",{"_index":21692,"title":{},"body":{"injectables/UserService.html":{}}}],["newlist",{"_index":2681,"title":{},"body":{"entities/Board.html":{}}}],["newname",{"_index":6727,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["newnonoptionalparamnames",{"_index":9607,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.includes(name",{"_index":9610,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.some((name",{"_index":9611,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams",{"_index":9605,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams.map((parameter",{"_index":9608,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam",{"_index":9596,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.isoptional",{"_index":9597,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.name",{"_index":9586,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.regex",{"_index":9616,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.scope",{"_index":9618,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.type",{"_index":9617,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams",{"_index":9559,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.filter((parameter",{"_index":9606,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.find((p",{"_index":9614,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some",{"_index":9595,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some((newparam",{"_index":9584,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newpath",{"_index":1191,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["newpropsfactory",{"_index":2409,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newresource",{"_index":5184,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newresource.caninline",{"_index":5187,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newrooms",{"_index":7582,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newrooms.foreach((room",{"_index":7584,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["news",{"_index":6925,"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":15159,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.controller",{"_index":15191,"title":{},"body":{"modules/NewsModule.html":{}}}],["news.controller.ts",{"_index":20152,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.controller.ts:19",{"_index":20157,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.createdat",{"_index":15165,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.createinstance(targetmodel",{"_index":15300,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news.displayat",{"_index":15160,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.id",{"_index":15157,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.params.ts",{"_index":7100,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["news.params.ts:14",{"_index":10772,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["news.params.ts:15",{"_index":7117,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:17",{"_index":20877,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:22",{"_index":7104,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:25",{"_index":20873,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:30",{"_index":7109,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:32",{"_index":20875,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:37",{"_index":7115,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:44",{"_index":7112,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.permissions",{"_index":15167,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.source",{"_index":15161,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.sourcedescription",{"_index":15162,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.target.id",{"_index":15163,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.targetmodel",{"_index":15164,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.title",{"_index":15158,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updatedat",{"_index":15166,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updater",{"_index":15168,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news[key",{"_index":15315,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news].params.ts",{"_index":23338,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news].response.dto",{"_index":23340,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news_edit",{"_index":15317,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news_sources",{"_index":15125,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["news_sources[number",{"_index":15129,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["newscontroller",{"_index":15065,"title":{"controllers/NewsController.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["newscount",{"_index":15306,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable",{"_index":15108,"title":{"classes/NewsCrudOperationLoggable.html":{}},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.create",{"_index":15302,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.delete",{"_index":15319,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.update",{"_index":15316,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsentities",{"_index":15219,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentities.filter((news",{"_index":15223,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentity",{"_index":15215,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsid",{"_index":15333,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["newslist",{"_index":15096,"title":{},"body":{"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map((news",{"_index":15099,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map(async",{"_index":15309,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newslistresponse",{"_index":15088,"title":{"classes/NewsListResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"controllers/TeamNewsController.html":{}}}],["newslistresponse(dtolist",{"_index":15100,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper",{"_index":15084,"title":{"classes/NewsMapper.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.mapcreatenewstodomain(params",{"_index":15094,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapnewsscopetodomain(scope",{"_index":15098,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.maptologmessagedata(this.news",{"_index":15118,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["newsmapper.maptoresponse(news",{"_index":15095,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapupdatenewstodomain(params",{"_index":15105,"title":{},"body":{"controllers/NewsController.html":{}}}],["newsmodule",{"_index":15181,"title":{"modules/NewsModule.html":{}},"body":{"modules/NewsModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["newspermission",{"_index":15281,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsrepo",{"_index":15186,"title":{"injectables/NewsRepo.html":{}},"body":{"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["newsresponse",{"_index":15089,"title":{"classes/NewsResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{}}}],["newsrule",{"_index":23791,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newsscope",{"_index":15208,"title":{"classes/NewsScope.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{}}}],["newstarget",{"_index":6916,"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":15198,"title":{"interfaces/NewsTargetFilter.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["newstargetmodel",{"_index":6917,"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":6943,"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":6948,"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":6945,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newsuc",{"_index":15086,"title":{"injectables/NewsUc.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newsuc.getrequiredpermissions(ispublished",{"_index":15312,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsuc.getrequiredpermissions(unpublished",{"_index":15304,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsurlparams",{"_index":15070,"title":{"classes/NewsUrlParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsUrlParams.html":{}}}],["newtool",{"_index":9576,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.parameters",{"_index":9580,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.version",{"_index":9582,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newuser",{"_index":23773,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newvar",{"_index":1089,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["nexboard",{"_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":{},"entities/LessonEntity.html":{},"injectables/NexboardService.html":{}}}],["nexboard.id",{"_index":15343,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.publiclink",{"_index":15344,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardresponse",{"_index":15340,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardservice",{"_index":14222,"title":{"injectables/NexboardService.html":{}},"body":{"modules/LessonModule.html":{},"injectables/NexboardService.html":{}}}],["next",{"_index":521,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/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":17476,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["next.handle().pipe(tap",{"_index":8235,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["nextcloud",{"_index":11583,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISchoolProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["nextcloud.client",{"_index":15377,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudclient",{"_index":4616,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudgroups",{"_index":11338,"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":15375,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy",{"_index":4617,"title":{"injectables/NextcloudStrategy.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy.generategroupfoldername(team.id",{"_index":15392,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudtool",{"_index":15404,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ni_",{"_index":18093,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["node",{"_index":3245,"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/ContentElementService.html":{},"injectables/FileSystemAdapter.html":{},"todo.html":{}}}],["node.entity",{"_index":3159,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.entity.ts",{"_index":4064,"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":8741,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"entities/RichTextElementNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:12",{"_index":9940,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{}}}],["node.entity.ts:13",{"_index":17563,"title":{},"body":{"entities/RichTextElementNode.html":{}}}],["node.entity.ts:15",{"_index":14364,"title":{},"body":{"entities/LinkElementNode.html":{}}}],["node.entity.ts:16",{"_index":4065,"title":{},"body":{"entities/CardNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:23",{"_index":4804,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:26",{"_index":4802,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:9",{"_index":9941,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{},"entities/SubmissionContainerElementNode.html":{}}}],["node.js",{"_index":22300,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["node.level",{"_index":3596,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.pathofchildren",{"_index":3598,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo",{"_index":3308,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.repo.ts",{"_index":3582,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:19",{"_index":3588,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:30",{"_index":3590,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:6",{"_index":3585,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:9",{"_index":3586,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.title",{"_index":3328,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["node.usedobuilder(this",{"_index":3235,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["node:fs/promises",{"_index":13710,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["node_env",{"_index":12245,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["node_env=test",{"_index":18662,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nodeclam",{"_index":1107,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["nodeclam().init",{"_index":1124,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["nodeenvtype",{"_index":12248,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["nodejs.timeout",{"_index":17992,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nodeps",{"_index":22245,"title":{},"body":{"dependencies.html":{}}}],["nodeps.git",{"_index":22247,"title":{},"body":{"dependencies.html":{}}}],["nodes",{"_index":3591,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.filter((n",{"_index":3612,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.map((node",{"_index":3600,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nofutureavailabledate",{"_index":19909,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{}}}],["non",{"_index":8325,"title":{},"body":{"injectables/ElementUc.html":{},"classes/MongoPatterns.html":{},"classes/StorageProviderEncryptedStringType.html":{},"license.html":{},"todo.html":{}}}],["noncommercially",{"_index":22623,"title":{},"body":{"license.html":{}}}],["none",{"_index":1410,"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":15326,"title":{},"body":{"injectables/NewsUc.html":{}}}],["nonoptionalparamnames",{"_index":9602,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.includes(name",{"_index":9612,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.some((name",{"_index":9609,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams",{"_index":9599,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams.map((parameter",{"_index":9603,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["normal",{"_index":1763,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"license.html":{}}}],["normalizepassword",{"_index":1518,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizepassword(password",{"_index":1531,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername",{"_index":1519,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername(username",{"_index":1533,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normally",{"_index":22652,"title":{},"body":{"license.html":{}}}],["nosuchbucket",{"_index":17957,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nosuchkey",{"_index":17951,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["not_found",{"_index":15448,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["notation",{"_index":2422,"title":{},"body":{"classes/BaseFactory.html":{}}}],["note",{"_index":749,"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":20076,"title":{},"body":{"injectables/TaskUC.html":{}}}],["notfound",{"_index":7841,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["notfounderror",{"_index":14719,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfounderror(`ltitool",{"_index":14723,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfoundexception",{"_index":2619,"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/SubmissionItemUc.html":{},"injectables/TaskCopyUC.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserMigrationService.html":{}}}],["notfoundexception('board",{"_index":2662,"title":{},"body":{"entities/Board.html":{}}}],["notfoundexception('could",{"_index":8691,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskCopyUC.html":{}}}],["notfoundexception('no",{"_index":7575,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["notfoundexception('nosuchkey",{"_index":17953,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["notfoundexception('some",{"_index":4124,"title":{},"body":{"injectables/CardService.html":{}}}],["notfoundexception('there",{"_index":5682,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["notfoundexception(`school",{"_index":21528,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["notfoundexception(`the",{"_index":10690,"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":3316,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["notfoundexception(`unable",{"_index":16079,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["notfoundexception})@apibody({required",{"_index":4954,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["notfoundexception})@apiresponse({status",{"_index":18715,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notfoundexception})@get(':boardid",{"_index":2891,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@get(':boardid/context",{"_index":2886,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(201)@patch(':contentelementid/content",{"_index":8281,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':boardid",{"_index":2882,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':cardid",{"_index":3999,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':columnid",{"_index":4958,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':contentelementid",{"_index":8272,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':boardid/title",{"_index":2897,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/height",{"_index":4014,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/title",{"_index":4017,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':columnid/title",{"_index":4965,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':submissionitemid",{"_index":3702,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundexception})@httpcode(204)@put(':cardid/position",{"_index":4010,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@put(':columnid/position",{"_index":4962,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@put(':contentelementid/position",{"_index":8276,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@post(':boardid/columns",{"_index":2877,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@post(':cardid/elements",{"_index":3995,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@post(':submissionitemid/elements",{"_index":3691,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundloggableexception",{"_index":4481,"title":{"classes/NotFoundLoggableException.html":{}},"body":{"injectables/ClassesRepo.html":{},"injectables/ColumnBoardService.html":{},"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":21413,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception(class.name",{"_index":4497,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["notfoundloggableexception(columnboard.name",{"_index":4841,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["notfoundloggableexception(contextexternaltool.name",{"_index":9817,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(externaltool.name",{"_index":9812,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(group.name",{"_index":11273,"title":{},"body":{"injectables/GroupService.html":{}}}],["notfoundloggableexception(pseudonym.name",{"_index":9805,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(schoolexternaltool.name",{"_index":9815,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(userdo.name",{"_index":16504,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["nothing",{"_index":22764,"title":{},"body":{"license.html":{}}}],["notice",{"_index":14429,"title":{},"body":{"injectables/Logger.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["notice(loggable",{"_index":14436,"title":{},"body":{"injectables/Logger.html":{}}}],["notices",{"_index":22473,"title":{},"body":{"license.html":{}}}],["notifies",{"_index":22753,"title":{},"body":{"license.html":{}}}],["notify",{"_index":22749,"title":{},"body":{"license.html":{}}}],["notimplementedexception",{"_index":3193,"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":14271,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{}}}],["notimplementedexception('copy",{"_index":18916,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('import",{"_index":18935,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('only",{"_index":4777,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["notimplementedexception('repo_or_service_not_implement",{"_index":12163,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["notimplementedexception('rooms",{"_index":17753,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["notimplementedexception(`invalid",{"_index":3253,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["notimplementedexception(`unknown",{"_index":5631,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["notimplementedexception(`unsupported",{"_index":5655,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["notimplementedexception})@post(':token/import')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":18718,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notmigratedusers",{"_index":18448,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notmigratedusers.data.foreach((user",{"_index":18452,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notwithstanding",{"_index":22706,"title":{},"body":{"license.html":{}}}],["nountildate",{"_index":6987,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["november",{"_index":22358,"title":{},"body":{"license.html":{}}}],["now",{"_index":1755,"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":11704,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["now.getmonth",{"_index":11705,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["nowplusdays",{"_index":18871,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["nowplusdays(days",{"_index":18892,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["now}ms",{"_index":8237,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["npm",{"_index":22968,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["npx",{"_index":23649,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["null",{"_index":593,"title":{},"body":{"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":144,"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":{},"classes/GetMetaTagDataBody.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":19014,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["nullorundefined",{"_index":11357,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["nullorundefined(value",{"_index":11358,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["num",{"_index":6440,"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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"interfaces/ClassProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"injectables/MetaTagExtractorService.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"interfaces/OcsResponse.html":{},"classes/Page.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/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":14902,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["number(b.width",{"_index":14903,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["number(batchsize",{"_index":8002,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["number(matches.groups.number",{"_index":6444,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number(options.pagesize",{"_index":11639,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number(options.skip",{"_index":11661,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number.isnan(this.deletedat.gettime",{"_index":10025,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["number.strategy.ts",{"_index":1895,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{}}}],["number.strategy.ts:12",{"_index":1900,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{}}}],["number.strategy.ts:9",{"_index":1898,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{}}}],["numbered",{"_index":22883,"title":{},"body":{"license.html":{}}}],["numberofdrafttasks",{"_index":3415,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberoffailingfilesinbatch",{"_index":8044,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberoffilesinbatch",{"_index":8037,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofplannedtasks",{"_index":3416,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofprocessedfiles",{"_index":8038,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofpublishedtasks",{"_index":3417,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofstudents",{"_index":6799,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["numberofsubmitters",{"_index":12533,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofsubmitterswithgrade",{"_index":12541,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofteachers",{"_index":6802,"title":{},"body":{"classes/CourseFactory.html":{}}}],["numberofteammembers",{"_index":19112,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["numbers",{"_index":15028,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["numerous",{"_index":23430,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nuxt",{"_index":23622,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nvmrc",{"_index":23025,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["o",{"_index":7880,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["o.id",{"_index":3335,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["oauth",{"_index":5500,"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":15702,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["oauth.service",{"_index":12674,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/SystemService.html":{}}}],["oauth.service.ts",{"_index":12681,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:13",{"_index":13532,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:15",{"_index":12686,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:23",{"_index":12688,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:50",{"_index":13536,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:9",{"_index":12685,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.uc",{"_index":16236,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauth.uc.ts",{"_index":11419,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:14",{"_index":11429,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:23",{"_index":11439,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:25",{"_index":11438,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:27",{"_index":11431,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:47",{"_index":11440,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:49",{"_index":11436,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:66",{"_index":11433,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth2",{"_index":5496,"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":21152,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["oauth2.0",{"_index":14542,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["oauth2authorizationbodyparams",{"_index":14499,"title":{"classes/Oauth2AuthorizationBodyParams.html":{}},"body":{"controllers/LoginController.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2clientid",{"_index":9742,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["oauth2config",{"_index":9139,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.baseurl",{"_index":9160,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.clientid",{"_index":9161,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.clientsecret",{"_index":9452,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.frontchannellogouturi",{"_index":9458,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.redirecturis",{"_index":9457,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.scope",{"_index":9453,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.skipconsent",{"_index":9162,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.tokenendpointauthmethod",{"_index":9455,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.type",{"_index":9159,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2migrationparams",{"_index":15615,"title":{"classes/Oauth2MigrationParams.html":{}},"body":{"classes/Oauth2MigrationParams.html":{},"controllers/UserLoginMigrationController.html":{}}}],["oauth2params",{"_index":7356,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2strategy",{"_index":1364,"title":{"injectables/Oauth2Strategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2toolconfig",{"_index":7339,"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":9222,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigcreateparams",{"_index":8699,"title":{"classes/Oauth2ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["oauth2toolconfigentity",{"_index":8764,"title":{"classes/Oauth2ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["oauth2toolconfigfactory",{"_index":7345,"title":{"classes/Oauth2ToolConfigFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.build(customparam",{"_index":7379,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.define(oauth2toolconfig",{"_index":7357,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigresponse",{"_index":9293,"title":{"classes/Oauth2ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["oauth2toolconfigupdate",{"_index":9226,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigupdateparams",{"_index":9224,"title":{"classes/Oauth2ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["oauth2toollaunchstrategy",{"_index":15452,"title":{"injectables/OAuth2ToolLaunchStrategy.html":{}},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["oauth_provisioning_enabled",{"_index":12207,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthadapterservice",{"_index":15510,"title":{"injectables/OauthAdapterService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{}}}],["oauthapimodule",{"_index":15692,"title":{"modules/OauthApiModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthclient",{"_index":9402,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.client_secret",{"_index":16151,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.frontchannel_logout_uri",{"_index":9447,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.redirect_uris",{"_index":9445,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.scope",{"_index":9441,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.token_endpoint_auth_method",{"_index":9443,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclientbody",{"_index":15703,"title":{"classes/OauthClientBody.html":{}},"body":{"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{}}}],["oauthclientid",{"_index":7198,"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":5557,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthconfig",{"_index":11441,"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":12362,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientid",{"_index":11524,"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":12352,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.granttype",{"_index":12358,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.idphint",{"_index":12354,"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":12368,"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":12370,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.logoutendpoint",{"_index":12366,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.provider",{"_index":12364,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.redirecturi",{"_index":11525,"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":11522,"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":11523,"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":12356,"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":12689,"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":15777,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientid",{"_index":15771,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientsecret",{"_index":15772,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["oauthconfigdto.granttype",{"_index":15775,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.idphint",{"_index":15773,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.issuer",{"_index":15782,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.jwksendpoint",{"_index":15783,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.logoutendpoint",{"_index":15781,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.provider",{"_index":15780,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.redirecturi",{"_index":15774,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.responsetype",{"_index":15778,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.scope",{"_index":15779,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.tokenendpoint",{"_index":15776,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse",{"_index":15784,"title":{"classes/OauthConfigResponse.html":{}},"body":{"classes/OauthConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse.authendpoint",{"_index":15804,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.clientid",{"_index":15799,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.granttype",{"_index":15802,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.idphint",{"_index":15800,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.issuer",{"_index":15809,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.jwksendpoint",{"_index":15810,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.logoutendpoint",{"_index":15808,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.provider",{"_index":15807,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.redirecturi",{"_index":15801,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.responsetype",{"_index":15805,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.scope",{"_index":15806,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.tokenendpoint",{"_index":15803,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigs",{"_index":9438,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthcurrentuser",{"_index":7144,"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":13135,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.externalid",{"_index":21434,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.officialschoolnumber",{"_index":21433,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externaluser.externalid",{"_index":21435,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatadto",{"_index":13102,"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":13107,"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":11501,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["oauthgranttype",{"_index":1336,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthgranttype.authorization_code_grant",{"_index":1333,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthloginresponse",{"_index":14504,"title":{"classes/OauthLoginResponse.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/OauthLoginResponse.html":{}}}],["oauthloginstate",{"_index":16268,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.provider",{"_index":16296,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.state",{"_index":16270,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstatedto",{"_index":15839,"title":{"classes/OauthLoginStateDto.html":{}},"body":{"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthloginstatedto(session.oauthloginstate",{"_index":15860,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["oauthloginstatemapper",{"_index":15851,"title":{"classes/OauthLoginStateMapper.html":{}},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["oauthloginstatemapper.mapsessiontodto(session",{"_index":16269,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthmigrationdto",{"_index":13956,"title":{"classes/OauthMigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationerror",{"_index":15455,"title":{"classes/OAuthMigrationError.html":{}},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthmigrationfailed",{"_index":15463,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthmigrationfinalfinish",{"_index":14134,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationfinished",{"_index":14013,"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":14011,"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":14012,"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":1354,"title":{"modules/OauthModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["oauthprocessdto",{"_index":15475,"title":{"classes/OAuthProcessDto.html":{}},"body":{"classes/OAuthProcessDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthprocessdto.jwt",{"_index":16283,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthproviderapimodule",{"_index":15874,"title":{"modules/OauthProviderApiModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthproviderclientcruduc",{"_index":15879,"title":{"injectables/OauthProviderClientCrudUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderconsentflowuc",{"_index":15880,"title":{"injectables/OauthProviderConsentFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthprovidercontroller",{"_index":15886,"title":{"controllers/OauthProviderController.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderloginflowservice",{"_index":12639,"title":{"injectables/OauthProviderLoginFlowService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["oauthproviderloginflowuc",{"_index":15881,"title":{"injectables/OauthProviderLoginFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderlogoutflowuc",{"_index":15882,"title":{"injectables/OauthProviderLogoutFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["oauthprovidermodule",{"_index":15878,"title":{"modules/OauthProviderModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["oauthproviderrequestmapper",{"_index":16099,"title":{"classes/OauthProviderRequestMapper.html":{}},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["oauthproviderrequestmapper.mapcreateacceptloginrequestbody",{"_index":16114,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderresponsemapper",{"_index":15883,"title":{"injectables/OauthProviderResponseMapper.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthproviderservice",{"_index":9366,"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":8916,"title":{"modules/OauthProviderServiceModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules.html":{}}}],["oauthprovideruc",{"_index":15884,"title":{"injectables/OauthProviderUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthprovisioningenabled",{"_index":12208,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthrejectablebody",{"_index":5490,"title":{"classes/OAuthRejectableBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthrejectablebody:13",{"_index":5518,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:23",{"_index":5527,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:32",{"_index":5529,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:41",{"_index":5531,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:50",{"_index":5535,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthscope",{"_index":12649,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["oauthservice",{"_index":11427,"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":15699,"title":{"controllers/OauthSSOController.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["oauthssoerror",{"_index":11444,"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":13118,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["oauthssoerror('requesting",{"_index":15690,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["oauthssoerror(`requested",{"_index":15547,"title":{},"body":{"injectables/OAuthService.html":{}}}],["oauthssoerror:10",{"_index":15464,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:11",{"_index":21585,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:4",{"_index":15467,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:5",{"_index":21588,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:6",{"_index":15466,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:7",{"_index":21587,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:8",{"_index":15465,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:9",{"_index":21586,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthsystems",{"_index":19555,"title":{},"body":{"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthsystems.find((system",{"_index":21379,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["oauthtoken",{"_index":16299,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthtokendto",{"_index":11447,"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":15543,"title":{"interfaces/OauthTokenResponse.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"interfaces/OauthTokenResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthtokens",{"_index":11454,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{}}}],["oauthuc",{"_index":15697,"title":{"injectables/OauthUc.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["obfuscated",{"_index":10966,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["obfuscated_subject",{"_index":13067,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["obj.id",{"_index":2777,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["object",{"_index":133,"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":2407,"title":{},"body":{"classes/BaseFactory.html":{}}}],["object.assign(this",{"_index":3396,"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":1821,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["object.defineproperty(entity",{"_index":8109,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["object.entries(params",{"_index":15314,"title":{},"body":{"injectables/NewsUc.html":{}}}],["object.factory.ts",{"_index":8116,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["object.keys(entity).foreach((key",{"_index":2322,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["object.keys(object).foreach((key",{"_index":2224,"title":{},"body":{"injectables/BBBService.html":{}}}],["object.keys(payload).length",{"_index":2598,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["object.keys(queryordermap",{"_index":9467,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["object.setprototypeof(this",{"_index":1004,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["object.ts",{"_index":1599,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BaseDomainObject.html":{},"classes/DomainObject.html":{}}}],["object.ts:14",{"_index":8113,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:18",{"_index":8112,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:8",{"_index":8111,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:9",{"_index":2341,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["object.values(filerecordparenttype",{"_index":10562,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["object.values(newstargetmodel",{"_index":15127,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{}}}],["object.values(previewinputmimetypes).includes(this.mimetype",{"_index":10180,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["object.values(validationerror.constraints",{"_index":1259,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["object],[object",{"_index":2262,"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":4126,"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":7813,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"classes/UserDoFactory.html":{}}}],["objectid(account.attdbcaccountid",{"_index":610,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["objectid(accountdto.systemid",{"_index":888,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(accountdto.userid",{"_index":885,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(domainobject.id",{"_index":2321,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["objectid(domainobject.schoolid",{"_index":4403,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.successor",{"_index":4413,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.year",{"_index":4409,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(entitydo.toolid",{"_index":9066,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(entitydo.userid",{"_index":9067,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(id",{"_index":606,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{}}}],["objectid(id).tohexstring",{"_index":18767,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["objectid(owneruserid",{"_index":10461,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(parentid",{"_index":10309,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(permissionrefid",{"_index":10465,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(props.columnboardid",{"_index":4917,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["objectid(props.context.id",{"_index":4810,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["objectid(props.contextid",{"_index":12271,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.creatorid",{"_index":10047,"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":10148,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.lockid",{"_index":10051,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.origintoolid",{"_index":7229,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["objectid(props.ownerid",{"_index":10043,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.parentid",{"_index":10041,"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":10076,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["objectid(props.schoolid",{"_index":10145,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(reference.id",{"_index":3331,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["objectid(refid",{"_index":10017,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(schoolid",{"_index":4485,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/FileRecordScope.html":{}}}],["objectid(systemid",{"_index":729,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["objectid(teacherid",{"_index":4405,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(toolid",{"_index":9048,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(user.id",{"_index":11171,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["objectid(userid",{"_index":724,"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":7633,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.createfromhexstring(props.id",{"_index":7643,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.isvalid(courseid",{"_index":3458,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["objectid.isvalid(id",{"_index":605,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/ImportUserRepo.html":{}}}],["objectid.isvalid(schoolid",{"_index":13028,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["objectid.isvalid(userid",{"_index":13030,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["objectids",{"_index":725,"title":{},"body":{"injectables/AccountRepo.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectids.map((id",{"_index":6637,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectives",{"_index":23719,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["objectname",{"_index":12165,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["objects",{"_index":3832,"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":22862,"title":{},"body":{"license.html":{}}}],["obligated",{"_index":22637,"title":{},"body":{"license.html":{}}}],["obligations",{"_index":22545,"title":{},"body":{"license.html":{}}}],["observable",{"_index":2182,"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":21422,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["occasionally",{"_index":22622,"title":{},"body":{"license.html":{}}}],["occur",{"_index":354,"title":{},"body":{"controllers/AccountController.html":{}}}],["occurred",{"_index":4641,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["occurring",{"_index":22761,"title":{},"body":{"license.html":{}}}],["occurs",{"_index":22676,"title":{},"body":{"license.html":{}}}],["ocs",{"_index":11340,"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":11339,"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":15274,"title":{},"body":{"injectables/NewsUc.html":{}}}],["offer",{"_index":22400,"title":{},"body":{"license.html":{}}}],["offered",{"_index":22643,"title":{},"body":{"license.html":{}}}],["offering",{"_index":22626,"title":{},"body":{"license.html":{}}}],["offers",{"_index":23091,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["offical",{"_index":21529,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["official",{"_index":13746,"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":18402,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["officialschoolnumber",{"_index":8531,"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":15460,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["officialschoolnumberfromtarget",{"_index":15461,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["offline",{"_index":7348,"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":14879,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["oid",{"_index":12072,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["oidc",{"_index":13396,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/LoginResponse-1.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidc.mapper",{"_index":19502,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.mapper.ts",{"_index":19484,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:12",{"_index":19489,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:26",{"_index":19486,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:5",{"_index":19487,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.service",{"_index":13389,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{}}}],["oidc.service.ts",{"_index":19497,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:12",{"_index":19500,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:21",{"_index":19499,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:9",{"_index":19498,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc/oidc.strategy",{"_index":18060,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc/service/oidc",{"_index":18061,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc_context",{"_index":5543,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["oidcconfig",{"_index":12343,"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":12421,"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":12417,"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":12418,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["oidcconfig.defaultscopes",{"_index":12428,"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":12419,"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":12424,"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":12423,"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":12426,"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":19493,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.idphint",{"_index":13470,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcconfigdto",{"_index":13356,"title":{"classes/OidcConfigDto.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["oidcconfigdto.authorizationurl",{"_index":16377,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientid",{"_index":16374,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientsecret",{"_index":16375,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.defaultscopes",{"_index":16381,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.idphint",{"_index":16376,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.logouturl",{"_index":16380,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.parentsystemid",{"_index":16373,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.tokenurl",{"_index":16378,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.userinfourl",{"_index":16379,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidccontextresponse",{"_index":5566,"title":{"classes/OidcContextResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["oidcexternalsubmappername",{"_index":13397,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcidentityprovidermapper",{"_index":13321,"title":{"classes/OidcIdentityProviderMapper.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["oidcinternalname",{"_index":4627,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["oidcmock__base_url",{"_index":23620,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidcmockprovisioningstrategy",{"_index":16408,"title":{"injectables/OidcMockProvisioningStrategy.html":{}},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["oidcmockstrategy",{"_index":16938,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["oidcprovisioningservice",{"_index":16418,"title":{"injectables/OidcProvisioningService.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcprovisioningstrategy",{"_index":16519,"title":{"injectables/OidcProvisioningStrategy.html":{}},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcsystems",{"_index":19557,"title":{},"body":{"injectables/SystemService.html":{}}}],["oidcuserattributemappername",{"_index":13395,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["ok",{"_index":21861,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["okay",{"_index":19925,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["old",{"_index":6400,"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":13464,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs",{"_index":13369,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.foreach((oldconfig",{"_index":13468,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.some((oldconfig",{"_index":13463,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["older",{"_index":22423,"title":{},"body":{"license.html":{}}}],["oldparam.name",{"_index":9585,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams",{"_index":9561,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.every((oldparam",{"_index":9598,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((oldparam",{"_index":9583,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((parameter",{"_index":9600,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool",{"_index":9578,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool.parameters",{"_index":9579,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["once",{"_index":17391,"title":{},"body":{"classes/RedirectResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["one",{"_index":9688,"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":6805,"title":{},"body":{"classes/CourseFactory.html":{}}}],["oneof",{"_index":3726,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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/SubmissionItemResponse.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ones",{"_index":6182,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["onetomany",{"_index":6575,"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":6552,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["onetomany('dashboardgridelementmodel",{"_index":7648,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["onetomany('submission",{"_index":12468,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('task",{"_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":{}}}],["onetoone",{"_index":2616,"title":{},"body":{"entities/Board.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone(undefined",{"_index":18154,"title":{},"body":{"entities/SchoolEntity.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone({type",{"_index":2607,"title":{},"body":{"entities/Board.html":{}}}],["oneweekago",{"_index":20101,"title":{},"body":{"injectables/TaskUC.html":{}}}],["oneweekago.setdate(oneweekago.getdate",{"_index":20102,"title":{},"body":{"injectables/TaskUC.html":{}}}],["ongoing",{"_index":6902,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["onlyactivecourses",{"_index":6993,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardUc.html":{}}}],["onlyexistingreferences",{"_index":2668,"title":{},"body":{"entities/Board.html":{}}}],["onlyfactories",{"_index":7878,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["onlyoauth",{"_index":19452,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemUc.html":{}}}],["onlyreadcourses",{"_index":20095,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onlywritecoursesids",{"_index":20094,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onmoduledestroy",{"_index":15006,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["onupdate",{"_index":2372,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["open",{"_index":14880,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["open/closed",{"_index":23159,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["openapi",{"_index":12863,"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":19849,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["opencourses",{"_index":20073,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opencourses.map((c",{"_index":20078,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opened",{"_index":20765,"title":{},"body":{"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["openid",{"_index":7349,"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":21764,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["openinnewtab",{"_index":6046,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["openldap",{"_index":23638,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["opennewtab",{"_index":7201,"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/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":22914,"title":{},"body":{"license.html":{}}}],["operated",{"_index":22630,"title":{},"body":{"license.html":{}}}],["operates",{"_index":23395,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["operating",{"_index":22499,"title":{},"body":{"license.html":{}}}],["operation",{"_index":10792,"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":21808,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["operation.error.ts",{"_index":10788,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.error.ts:4",{"_index":10789,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.loggable",{"_index":15292,"title":{},"body":{"injectables/NewsUc.html":{}}}],["operation.loggable.ts",{"_index":15110,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:13",{"_index":15114,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:6",{"_index":15113,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operations",{"_index":23737,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["operator",{"_index":762,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/Scope.html":{},"license.html":{}}}],["operators",{"_index":23390,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["oplogsize",{"_index":23674,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["opportunity",{"_index":22870,"title":{},"body":{"license.html":{}}}],["ops",{"_index":22995,"title":{},"body":{"todo.html":{}}}],["opt/keycloak/bin/kc.sh",{"_index":23054,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optimal",{"_index":13845,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["optimisation",{"_index":23182,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["option",{"_index":22703,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optional",{"_index":33,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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/ColumnUc.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":{},"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/LinkContentBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":16391,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["optionaldatathere",{"_index":23363,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["optionally",{"_index":11720,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["options",{"_index":490,"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":7883,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.do",{"_index":4241,"title":{},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{}}}],["options.do.ts",{"_index":4460,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["options.do.ts:12",{"_index":4464,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.do.ts:6",{"_index":4462,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.enabled",{"_index":1114,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.entity",{"_index":4274,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["options.entity.ts",{"_index":4467,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["options.entity.ts:10",{"_index":4469,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{}}}],["options.everyattendeejoinsmuted",{"_index":21912,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.everyattendejoinsmuted",{"_index":21757,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["options.everybodyjoinsasmoderator",{"_index":21759,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.exchange",{"_index":1118,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.filesservicebaseurl",{"_index":1116,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.hostname",{"_index":1122,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.moderatormustapprovejoinrequests",{"_index":21761,"title":{},"body":{"entities/VideoConference.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.onlyfactories",{"_index":7884,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.order",{"_index":12801,"title":{},"body":{"controllers/ImportUserController.html":{},"injectables/NewsUc.html":{},"controllers/ToolController.html":{}}}],["options.port",{"_index":1129,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.response",{"_index":21985,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["options.response.ts",{"_index":22073,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:14",{"_index":22078,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:20",{"_index":22074,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:8",{"_index":22077,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.retrycount",{"_index":11641,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.retrydelay",{"_index":11642,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.routingkey",{"_index":1120,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.skip",{"_index":11660,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.ts",{"_index":12003,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["options.verbose",{"_index":11662,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options?.collection",{"_index":7882,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.context",{"_index":18854,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.exact",{"_index":13615,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.expiresat",{"_index":18855,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.expiresindays",{"_index":18902,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.limit",{"_index":13617,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.order",{"_index":9098,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{}}}],["options?.override",{"_index":7892,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.pagination",{"_index":9068,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["options?.schoolexclusive",{"_index":18898,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.skip",{"_index":13616,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["orchestrate",{"_index":23752,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["orchestrates",{"_index":23200,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["orchestration",{"_index":23241,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["order",{"_index":2031,"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":9102,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["order.firstname",{"_index":21635,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.lastname",{"_index":21639,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.params.ts",{"_index":16627,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["order.params.ts:13",{"_index":16630,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["orderby",{"_index":767,"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":11788,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["orderedlist",{"_index":17830,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["orderquery",{"_index":21634,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.firstname",{"_index":21636,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.lastname",{"_index":21640,"title":{},"body":{"injectables/UserRepo.html":{}}}],["org",{"_index":5329,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organisation",{"_index":18039,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["organization",{"_index":5106,"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":5197,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organization.resources).concat(this.resources",{"_index":5199,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder",{"_index":5094,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder.addresourcetoorganization(resourceprops",{"_index":5102,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationbuilder.addresourcetoorganization(this.maptasktowebcontentresource(task",{"_index":5108,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationelement.transform",{"_index":5335,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationelements",{"_index":5327,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationid",{"_index":10998,"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":5148,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["orgid",{"_index":18020,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["origin",{"_index":1961,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["original",{"_index":3268,"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":17231,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.alternativetext",{"_index":17246,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.caption",{"_index":17245,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.children.foreach((child",{"_index":17272,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.context",{"_index":17236,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.duedate",{"_index":17265,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.height",{"_index":17243,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.id",{"_index":17250,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.imageurl",{"_index":17260,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.inputformat",{"_index":17263,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.text",{"_index":17262,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.title",{"_index":17235,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.url",{"_index":17259,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["originalboard",{"_index":2988,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["originalboard.context.type",{"_index":4776,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["originalboard.getelements",{"_index":2989,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["originalcolumnboardid",{"_index":3034,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["originalcourse",{"_index":6722,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.color",{"_index":6745,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.getcoursegroupitems().length",{"_index":6756,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.name",{"_index":6737,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalentity",{"_index":2996,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["originallesson",{"_index":2958,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallesson.course",{"_index":14185,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["originallesson.id",{"_index":3029,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallessonid",{"_index":3028,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["originalschooldo",{"_index":18419,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["originaltask",{"_index":2961,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.description",{"_index":19697,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.descriptioninputformat",{"_index":19698,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.id",{"_index":3032,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.name",{"_index":19696,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.teamsubmissions",{"_index":19699,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltaskid",{"_index":3031,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltaskname",{"_index":19727,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["originfilepath",{"_index":10859,"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":12118,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["originsystemid",{"_index":21509,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["origintool",{"_index":7193,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["origintoolid",{"_index":7196,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["orm",{"_index":6952,"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":23139,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["orm/core",{"_index":173,"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":23537,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["orm/issues/1230",{"_index":10136,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["orm/issues/2165",{"_index":12569,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mikro",{"_index":10135,"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":10665,"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":5752,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["orphanremoval",{"_index":6553,"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":10384,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["os.eol",{"_index":10416,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["other.name.tolocalelowercase",{"_index":8989,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["otherindex",{"_index":8987,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["othermodule",{"_index":23231,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["otherparams",{"_index":19430,"title":{},"body":{"classes/SystemFactory.html":{}}}],["others",{"_index":10960,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["otherwise",{"_index":1396,"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":23295,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["out",{"_index":220,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":23409,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outdated",{"_index":20581,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"todo.html":{}}}],["outdated.loggable",{"_index":20838,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["outdatedsince",{"_index":12598,"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":23437,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outgoing",{"_index":23211,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["output",{"_index":10967,"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":6313,"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":7563,"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":19732,"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":23654,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["overenginiering",{"_index":23180,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["overridden",{"_index":15017,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["override",{"_index":2026,"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":20309,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrideprovider(databasemanagementuc",{"_index":20307,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrides",{"_index":8448,"title":{},"body":{"modules/ErrorModule.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["overrides/configures",{"_index":6505,"title":{},"body":{"modules/CoreModule.html":{}}}],["overriding",{"_index":23487,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["overview",{"_index":23096,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["overwrite_setting_show_setup_wizard='completed",{"_index":23711,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["overwritten",{"_index":23489,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["owned",{"_index":22804,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owner",{"_index":9972,"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":10002,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ownership",{"_index":15133,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owneruserid",{"_index":10451,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["owns",{"_index":19832,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["p",{"_index":2268,"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":17986,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p.name",{"_index":9615,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["p.sourcepath",{"_index":17972,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p27030:27017",{"_index":23670,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["package",{"_index":22135,"title":{"dependencies.html":{},"properties.html":{}},"body":{"todo.html":{}}}],["packaged",{"_index":22589,"title":{},"body":{"license.html":{}}}],["packages",{"_index":22969,"title":{},"body":{"todo.html":{}}}],["packaging",{"_index":22493,"title":{},"body":{"license.html":{}}}],["pad",{"_index":8493,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["pad.data.padid",{"_index":8495,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padid",{"_index":8490,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padname",{"_index":8491,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padresponse",{"_index":8489,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["page",{"_index":817,"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":{},"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":21412,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["page(entitydos",{"_index":9074,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["pagecontentdto",{"_index":16541,"title":{"classes/PageContentDto.html":{}},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{}}}],["pagecontentmapper",{"_index":16552,"title":{"injectables/PageContentMapper.html":{}},"body":{"injectables/PageContentMapper.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentqueryparams",{"_index":16561,"title":{"classes/PageContentQueryParams.html":{}},"body":{"classes/PageContentQueryParams.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentresponse",{"_index":16556,"title":{"classes/PageContentResponse.html":{}},"body":{"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"controllers/UserMigrationController.html":{}}}],["paged",{"_index":318,"title":{},"body":{"controllers/AccountController.html":{}}}],["pages",{"_index":845,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["pagesize",{"_index":11601,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{}}}],["pagetype",{"_index":16564,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypequery",{"_index":21475,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.pagetype",{"_index":21480,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.sourcesystem",{"_index":21481,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.targetsystem",{"_index":21482,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypes",{"_index":16567,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system",{"_index":21542,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system_mandatory",{"_index":21544,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_target_system",{"_index":21536,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes})@isenum(pagetypes",{"_index":16568,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["paginate",{"_index":9661,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["pagination",{"_index":6679,"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":11061,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination.skip",{"_index":11060,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination?.limit",{"_index":6999,"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":6998,"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":831,"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":842,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationparams:8",{"_index":846,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationresponse",{"_index":810,"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":815,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["paginationresponse:136",{"_index":15121,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["paginationresponse:14",{"_index":826,"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":825,"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":820,"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":21444,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["paginationresponse:63",{"_index":10208,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["paginationresponse:68",{"_index":6892,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["paginationresponse:7",{"_index":9349,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["paginationresponse:71",{"_index":12846,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["paginationresponse:74",{"_index":19775,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["paginationresponse:91",{"_index":6253,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["pairwise",{"_index":9460,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["papaparse",{"_index":22255,"title":{},"body":{"dependencies.html":{}}}],["paper",{"_index":22941,"title":{},"body":{"license.html":{}}}],["paragraph",{"_index":22741,"title":{},"body":{"license.html":{}}}],["paragraphs",{"_index":22813,"title":{},"body":{"license.html":{}}}],["parallel",{"_index":23535,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param",{"_index":333,"title":{},"body":{"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":16298,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["param('scope",{"_index":21948,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('scopeid",{"_index":21949,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('token",{"_index":10355,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["param)).rejects.tothrow(badrequestexception",{"_index":23479,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param)).tothrow(badrequestexception",{"_index":23477,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param.builder.ts",{"_index":6347,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.builder.ts:6",{"_index":6350,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.default",{"_index":8991,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["param.description",{"_index":9182,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.displayname",{"_index":8981,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.isoptional",{"_index":5474,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.location",{"_index":9184,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.name",{"_index":5476,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.name.tolowercase",{"_index":5465,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["param.regex",{"_index":5482,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.regexcomment",{"_index":9183,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.scope",{"_index":5466,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.type",{"_index":5481,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["paramdisplayat",{"_index":15299,"title":{},"body":{"injectables/NewsUc.html":{}}}],["parameter",{"_index":363,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"modules/ToolLaunchModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parameter.do.ts",{"_index":7274,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:10",{"_index":7278,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:12",{"_index":7283,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:14",{"_index":7284,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:16",{"_index":7285,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:18",{"_index":7281,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:20",{"_index":7286,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:22",{"_index":7277,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:4",{"_index":7282,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:6",{"_index":7280,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:8",{"_index":7279,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.entity.ts",{"_index":7302,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:10",{"_index":7306,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:13",{"_index":7305,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:16",{"_index":7304,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:19",{"_index":7309,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:22",{"_index":7310,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:25",{"_index":7311,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:28",{"_index":7307,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:31",{"_index":7312,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:34",{"_index":7303,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:7",{"_index":7308,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.isoptional",{"_index":9601,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["parameter.name",{"_index":9604,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["parameter.params",{"_index":8709,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["parameter.params.ts",{"_index":7394,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:13",{"_index":7405,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:18",{"_index":7399,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:23",{"_index":7397,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:28",{"_index":7396,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:33",{"_index":7406,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:38",{"_index":7407,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:42",{"_index":7410,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:46",{"_index":7404,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:50",{"_index":7413,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:54",{"_index":7401,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.response",{"_index":5816,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["parameter.response.ts",{"_index":7418,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:10",{"_index":7424,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:13",{"_index":7422,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:16",{"_index":7421,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:19",{"_index":7420,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:22",{"_index":7425,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:25",{"_index":7426,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:28",{"_index":7427,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:31",{"_index":7423,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:34",{"_index":7428,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:37",{"_index":7419,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.scope",{"_index":8637,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["parameter.strategy",{"_index":1842,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["parameter.strategy.ts",{"_index":1888,"title":{},"body":{"interfaces/AutoParameterStrategy.html":{}}}],["parameter.strategy.ts:5",{"_index":1889,"title":{},"body":{"interfaces/AutoParameterStrategy.html":{}}}],["parameter/custom",{"_index":7301,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter_type_not_implemented",{"_index":16600,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parameterkeys",{"_index":14996,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames",{"_index":14998,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames.join",{"_index":15001,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameters",{"_index":29,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":21809,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["parameters.map((param",{"_index":14997,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameterstoinclude",{"_index":2583,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["parametertype",{"_index":16599,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parametertypenotimplementedloggableexception",{"_index":1868,"title":{"classes/ParameterTypeNotImplementedLoggableException.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["params",{"_index":271,"title":{},"body":{"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":514,"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":3954,"title":{},"body":{"injectables/CalendarService.html":{}}}],["params.append(key",{"_index":2225,"title":{},"body":{"injectables/BBBService.html":{}}}],["params.availabledate",{"_index":19814,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.challenge",{"_index":16041,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client",{"_index":16063,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client_name",{"_index":16026,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.clientid",{"_index":9289,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["params.confirmpassword",{"_index":374,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.content",{"_index":15176,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.contents",{"_index":14214,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contents.foreach((element",{"_index":14215,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contextexternaltoolid",{"_index":20440,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contextid",{"_index":20433,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contexttype",{"_index":20434,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.copyname",{"_index":19695,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["params.course",{"_index":14213,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.courseid",{"_index":6487,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.description",{"_index":19813,"title":{},"body":{"classes/TaskMapper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params.displayat",{"_index":15177,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.dto",{"_index":23206,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["params.duedate",{"_index":19815,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.elements",{"_index":17791,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params.enablemigrationstart",{"_index":14985,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.everyattendeejoinsmuted",{"_index":21955,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.everybodyjoinsasmoderator",{"_index":21956,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.externalid",{"_index":13988,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.externaltoolid",{"_index":20556,"title":{},"body":{"controllers/ToolController.html":{}}}],["params.features",{"_index":13989,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.federalstate",{"_index":13999,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.filerecordid",{"_index":10647,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["params.flagged",{"_index":12816,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.from",{"_index":7458,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.groupid",{"_index":11066,"title":{},"body":{"controllers/GroupController.html":{}}}],["params.hidden",{"_index":14217,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.id",{"_index":13987,"title":{},"body":{"classes/LegacySchoolDo.html":{},"controllers/OauthProviderController.html":{}}}],["params.inmaintenancesince",{"_index":13990,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.interface",{"_index":2590,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["params.interface.ts",{"_index":12587,"title":{},"body":{"interfaces/IToolLaunchParams.html":{}}}],["params.inusermigration",{"_index":13991,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.language",{"_index":21735,"title":{},"body":{"injectables/UserUc.html":{}}}],["params.lessonid",{"_index":6488,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.limit",{"_index":16024,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.logouturl",{"_index":21836,"title":{},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.moderatormustapprovejoinrequests",{"_index":21957,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.name",{"_index":9288,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/TaskMapper.html":{}}}],["params.oauthmigrationfinalfinish",{"_index":14983,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationfinished",{"_index":14981,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationmandatory",{"_index":14979,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationpossible",{"_index":14977,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.officialschoolnumber",{"_index":13993,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.offset",{"_index":16025,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.originalboard",{"_index":2997,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["params.owner",{"_index":16027,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.parenttype",{"_index":18505,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.password",{"_index":373,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.previewoptions",{"_index":16756,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["params.previewparams.forceupdate",{"_index":16806,"title":{},"body":{"injectables/PreviewService.html":{}}}],["params.previousexternalid",{"_index":13992,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.pseudonym",{"_index":17021,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["params.schoolexternaltoolid",{"_index":20437,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["params.schoolid",{"_index":20430,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["params.schoolyear",{"_index":13994,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.sourceparentid",{"_index":18504,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.systemid",{"_index":16274,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["params.systems",{"_index":13996,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.target",{"_index":15296,"title":{},"body":{"injectables/NewsUc.html":{}}}],["params.targetid",{"_index":15179,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetmodel",{"_index":15178,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetparentid",{"_index":18507,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.taskid",{"_index":19095,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["params.title",{"_index":7464,"title":{},"body":{"controllers/DashboardController.html":{},"classes/NewsMapper.html":{}}}],["params.to",{"_index":7459,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.ts",{"_index":4322,"title":{},"body":{"classes/ClassFilterParams.html":{},"classes/ClassSortParams.html":{},"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.ts:7",{"_index":11143,"title":{},"body":{"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.ts:9",{"_index":4325,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["params.userid",{"_index":12812,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.userloginmigrationid",{"_index":13998,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.visibility",{"_index":17789,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params?.accountid",{"_index":7086,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.aud",{"_index":7082,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.external_sub",{"_index":7087,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.iss",{"_index":7081,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.privatekey",{"_index":7089,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.sub",{"_index":7079,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params].ts",{"_index":23267,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["paranoid",{"_index":943,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["parent",{"_index":3304,"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":{},"injectables/ElementUc.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":4128,"title":{},"body":{"injectables/CardService.html":{}}}],["parent.addchild(column",{"_index":5012,"title":{},"body":{"injectables/ColumnService.html":{}}}],["parent.addchild(element",{"_index":5684,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["parent.children.findindex((obj",{"_index":17381,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.children.foreach((child",{"_index":17380,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.getstudentids",{"_index":11927,"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":12502,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.id",{"_index":10060,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["parent.removechild(domainobject",{"_index":3377,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["parentcourseid",{"_index":19725,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["parentdata",{"_index":17348,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.boardnode",{"_index":17357,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.position",{"_index":17358,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentid",{"_index":3570,"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":3573,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/TaskRepo.html":{}}}],["parentids.courseids",{"_index":19893,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.creatorid",{"_index":19891,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.lessonids",{"_index":19895,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope",{"_index":19890,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bycourseids(parentids.courseids",{"_index":19894,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bylessonids(parentids.lessonids",{"_index":19896,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.byonlycreatorid(parentids.creatorid",{"_index":19892,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentmeetingid",{"_index":2050,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["parentname",{"_index":18777,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["parentnode",{"_index":17331,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentparams",{"_index":14176,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentparams.courseid",{"_index":14183,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentpermission",{"_index":14253,"title":{},"body":{"injectables/LessonRule.html":{}}}],["parentpermission(user",{"_index":14265,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parentpropertypath",{"_index":1248,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["parentrule",{"_index":23796,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["parents",{"_index":4779,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/TaskRepo.html":{}}}],["parentsfinished",{"_index":19857,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bycourseids(parentids.finishedcourseids",{"_index":19858,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bylessonids(parentids.lessonidsoffinishedcourses",{"_index":19859,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsmap",{"_index":17322,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentsopen",{"_index":19854,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bycourseids(parentids.opencourseids",{"_index":19855,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bylessonids(parentids.lessonidsofopencourses",{"_index":19856,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsystemid",{"_index":16364,"title":{},"body":{"classes/OidcConfigDto.html":{},"classes/SystemOidcMapper.html":{}}}],["parenttype",{"_index":6284,"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":23311,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parsed",{"_index":23337,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parseobjectidpipe",{"_index":23313,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parser",{"_index":22188,"title":{},"body":{"dependencies.html":{}}}],["part",{"_index":1750,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/BaseUc.html":{},"classes/ImportUserScope.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":484,"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":12057,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["partialtype",{"_index":20869,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["participantcount",{"_index":2111,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["particular",{"_index":19927,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{}}}],["parties",{"_index":22466,"title":{},"body":{"license.html":{}}}],["parts",{"_index":22512,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["party",{"_index":22631,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["party's",{"_index":22781,"title":{},"body":{"license.html":{}}}],["pascalcase",{"_index":23296,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["pass",{"_index":754,"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":487,"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":23755,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["passport",{"_index":13171,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["passportmodule",{"_index":1369,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["passportstrategy",{"_index":13180,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passportstrategy(strategy",{"_index":13175,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passthrough",{"_index":6699,"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":307,"title":{},"body":{"controllers/AccountController.html":{}}}],["password.params.ts",{"_index":16620,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:15",{"_index":16625,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:25",{"_index":16624,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.trim",{"_index":1584,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["passwordnew",{"_index":16609,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordold",{"_index":16610,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordpattern",{"_index":252,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["passwordpolicy",{"_index":13298,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["past",{"_index":6926,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["paste",{"_index":23556,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["patch",{"_index":334,"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":20923,"title":{},"body":{"controllers/UserController.html":{}}}],["patch(':boardid/title",{"_index":2920,"title":{},"body":{"controllers/BoardController.html":{}}}],["patch(':cardid/height",{"_index":4038,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':cardid/title",{"_index":4041,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':columnid/title",{"_index":4975,"title":{},"body":{"controllers/ColumnController.html":{}}}],["patch(':contentelementid/content",{"_index":8290,"title":{},"body":{"controllers/ElementController.html":{}}}],["patch(':dashboardid/element",{"_index":7444,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':dashboardid/moveelement",{"_index":7439,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':id",{"_index":367,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':id')@apioperation({summary",{"_index":325,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':importuserid/flag",{"_index":12784,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':importuserid/match",{"_index":12776,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':newsid",{"_index":15082,"title":{},"body":{"controllers/NewsController.html":{}}}],["patch(':roomid/board/order",{"_index":17776,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':roomid/elements/:elementid/visibility",{"_index":17773,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':submissionitemid",{"_index":3721,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["patch(':taskid/finish",{"_index":19640,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/restore",{"_index":19643,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/revertpublished",{"_index":19646,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch('consentrequest/:challenge",{"_index":16052,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('loginrequest/:challenge",{"_index":16039,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('logoutrequest/:challenge",{"_index":16043,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('me",{"_index":364,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me')@apioperation({summary",{"_index":329,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password",{"_index":371,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password')@apioperation({summary",{"_index":300,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions",{"_index":4659,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions')@apiresponse({status",{"_index":4639,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch(path",{"_index":1477,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patch(subpath",{"_index":1476,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patchconsentrequest",{"_index":15929,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["patchconsentrequest(challenge",{"_index":15937,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["patchconsentrequest(params",{"_index":15993,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchelementvisibility",{"_index":17761,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchelementvisibility(urlparams",{"_index":17772,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchgroup",{"_index":7434,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroup(urlparams",{"_index":7441,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroupparams",{"_index":7443,"title":{"classes/PatchGroupParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/PatchGroupParams.html":{}}}],["patching",{"_index":16605,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["patchlanguage",{"_index":21673,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchlanguage(userid",{"_index":21691,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchloginrequest",{"_index":15969,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(currentuserid",{"_index":16093,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(params",{"_index":15996,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchmyaccountparams",{"_index":328,"title":{"classes/PatchMyAccountParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyAccountParams.html":{}}}],["patchmypasswordparams",{"_index":299,"title":{"classes/PatchMyPasswordParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyPasswordParams.html":{}}}],["patchorderingofelements",{"_index":17762,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderingofelements(urlparams",{"_index":17775,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderparams",{"_index":16626,"title":{"classes/PatchOrderParams.html":{}},"body":{"classes/PatchOrderParams.html":{},"controllers/RoomsController.html":{}}}],["patchvisibilityparams",{"_index":16631,"title":{"classes/PatchVisibilityParams.html":{}},"body":{"classes/PatchVisibilityParams.html":{},"controllers/RoomsController.html":{}}}],["patent",{"_index":22740,"title":{},"body":{"license.html":{}}}],["patents",{"_index":22799,"title":{},"body":{"license.html":{}}}],["path",{"_index":360,"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/MetaTagExtractorService.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":10427,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["path.parse(this.name",{"_index":10195,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["path.replace(':token",{"_index":1192,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["path.slice(1",{"_index":1496,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["path.targetpath",{"_index":17979,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path_separator",{"_index":3557,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathobjects",{"_index":17982,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathobjects.filter((p",{"_index":17988,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathofchildren",{"_index":3575,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathproperties",{"_index":2562,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["pathqueries",{"_index":3599,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["pathqueries.length",{"_index":3601,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["paths",{"_index":10387,"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":17968,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((p",{"_index":17983,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((path",{"_index":16802,"title":{},"body":{"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["paths.map(async",{"_index":17976,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathtofile",{"_index":16743,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["path}${id}${path_separator",{"_index":3581,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pattern",{"_index":253,"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":23385,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["pattern.test(firstchar",{"_index":6660,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["pattern_login_from_dn",{"_index":12044,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["payload",{"_index":1551,"title":{},"body":{"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":18713,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["payload.completed",{"_index":19190,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["payload.parentid",{"_index":18800,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.parenttype",{"_index":18799,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.response",{"_index":18828,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["payload.response.ts",{"_index":18794,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:11",{"_index":18798,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:14",{"_index":18797,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:4",{"_index":18796,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.ts",{"_index":7091,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["payload[property.name",{"_index":2596,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["payment",{"_index":22842,"title":{},"body":{"license.html":{}}}],["peer",{"_index":22639,"title":{},"body":{"license.html":{}}}],["peers",{"_index":22642,"title":{},"body":{"license.html":{}}}],["pem",{"_index":7072,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["pending",{"_index":10112,"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":8333,"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":18427,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["perfectly",{"_index":23440,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["performance",{"_index":18426,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["performance.now",{"_index":18445,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["performing",{"_index":15116,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"license.html":{}}}],["period",{"_index":18430,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["period.entity",{"_index":11136,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["period.entity.ts",{"_index":11350,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["period.entity.ts:12",{"_index":11353,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["period.entity.ts:15",{"_index":11352,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["permanently",{"_index":22748,"title":{},"body":{"license.html":{}}}],["permission",{"_index":643,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BaseUc.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":{},"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/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":4645,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permission(s",{"_index":23757,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_create",{"_index":18919,"title":{},"body":{"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_edit",{"_index":23787,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_view",{"_index":8179,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["permission.create_user",{"_index":23772,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.entity",{"_index":10000,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.entity.ts",{"_index":10064,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["permission.entity.ts:18",{"_index":10071,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:21",{"_index":10073,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:24",{"_index":10074,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:27",{"_index":10070,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:30",{"_index":10069,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:33",{"_index":10068,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.enum",{"_index":23815,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.homework_create",{"_index":18921,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.includes('news",{"_index":15331,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.join_meeting",{"_index":22044,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.news_create",{"_index":15298,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_edit",{"_index":15294,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_view",{"_index":15293,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.nextcloud_user",{"_index":16111,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["permission.oauth_client_edit",{"_index":15919,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.oauth_client_view",{"_index":15916,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.refid.equals(refobjectid",{"_index":10020,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.school_create",{"_index":23768,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.start_meeting",{"_index":22043,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.task_dashboard_teacher_view_v3",{"_index":20049,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.task_dashboard_view_v3",{"_index":20050,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.tool_admin",{"_index":9490,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["permission.topic_create",{"_index":18920,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.topic_edit",{"_index":14321,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.topic_view",{"_index":14319,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.user_login_migration_admin",{"_index":4528,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["permissioncontext",{"_index":19327,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["permissioncontexts.create",{"_index":23765,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissionmapper",{"_index":4723,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionmapping",{"_index":21970,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["permissionmapping[bbbrole",{"_index":21976,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["permissionmapping[role",{"_index":22027,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["permissionrefid",{"_index":10454,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["permissions",{"_index":1660,"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":4647,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissions.body.params",{"_index":4653,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.body.params.ts",{"_index":20164,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:11",{"_index":20169,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:15",{"_index":20165,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:19",{"_index":20166,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:23",{"_index":20168,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:7",{"_index":20167,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.create",{"_index":4606,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.delete",{"_index":4607,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.dto",{"_index":4577,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.dto.ts",{"_index":20170,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:10",{"_index":20171,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["permissions.dto.ts:2",{"_index":20174,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:4",{"_index":20175,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:6",{"_index":20172,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:8",{"_index":20173,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.every((p",{"_index":9692,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.filter((permission",{"_index":15330,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permissions.includes(p",{"_index":1662,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["permissions.length",{"_index":9686,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.mapper",{"_index":4672,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["permissions.mapper.ts",{"_index":20178,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.mapper.ts:12",{"_index":20181,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.read",{"_index":4604,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.refid",{"_index":10003,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permissions.share",{"_index":4608,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.write",{"_index":4605,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissionsbody",{"_index":4637,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissionsdto",{"_index":4729,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionservice",{"_index":216,"title":{"injectables/PermissionService.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/PermissionService.html":{}}}],["permissive",{"_index":22572,"title":{},"body":{"license.html":{}}}],["permit",{"_index":22602,"title":{},"body":{"license.html":{}}}],["permits",{"_index":22418,"title":{},"body":{"license.html":{}}}],["permitted",{"_index":22366,"title":{},"body":{"license.html":{}}}],["permittedcourses",{"_index":20084,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedlessons",{"_index":20100,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedmatch",{"_index":21616,"title":{},"body":{"injectables/UserRepo.html":{}}}],["permittedsubmissions",{"_index":19321,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["perpetuity",{"_index":22681,"title":{},"body":{"license.html":{}}}],["persist",{"_index":7195,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"injectables/DashboardRepo.html":{},"interfaces/ICollectionFilePath.html":{},"entities/LtiTool.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["persist(entity",{"_index":7805,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush",{"_index":7799,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush(entity",{"_index":7807,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persisted",{"_index":13743,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["persistent",{"_index":1188,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["person",{"_index":18042,"title":{},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["personal",{"_index":22651,"title":{},"body":{"license.html":{}}}],["personenkontext",{"_index":18047,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["personenkontexte",{"_index":18076,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["personenstatus",{"_index":18048,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["perspective",{"_index":23738,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pertinent",{"_index":22860,"title":{},"body":{"license.html":{}}}],["physical",{"_index":22609,"title":{},"body":{"license.html":{}}}],["physically",{"_index":22621,"title":{},"body":{"license.html":{}}}],["pickimage",{"_index":14865,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["pickimage(images",{"_index":14870,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["pid",{"_index":18077,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["piece",{"_index":23157,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["pieces",{"_index":22391,"title":{},"body":{"license.html":{}}}],["pilot",{"_index":21488,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["pipe",{"_index":1078,"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":21747,"title":{},"body":{"modules/ValidationModule.html":{}}}],["pipeline",{"_index":10463,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{},"injectables/UserRepo.html":{}}}],["pipeline.push",{"_index":21641,"title":{},"body":{"injectables/UserRepo.html":{}}}],["pipes",{"_index":23284,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["pkcs1",{"_index":7071,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["place",{"_index":19920,"title":{},"body":{"injectables/TaskRepo.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["placeholder",{"_index":11689,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholder.length",{"_index":11827,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholders",{"_index":11854,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["placeholdervalue",{"_index":11833,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["places",{"_index":23193,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plain",{"_index":3833,"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":1304,"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":1302,"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":10632,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["plaintoclass(filerecordparams",{"_index":10648,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["player",{"_index":11389,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["please",{"_index":2333,"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":23561,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["plus",{"_index":22785,"title":{},"body":{"license.html":{}}}],["png",{"_index":8911,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["point",{"_index":7106,"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":22936,"title":{},"body":{"license.html":{}}}],["pointing",{"_index":3007,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["policy",{"_index":23834,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pool",{"_index":22284,"title":{},"body":{"dependencies.html":{}}}],["populate",{"_index":4689,"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":19840,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["populateboard",{"_index":3624,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populateboard(board",{"_index":3632,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populated",{"_index":3392,"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":19233,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populatereferences(submissions",{"_index":19241,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populateroles",{"_index":20256,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["populateroles(roles",{"_index":20258,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["port",{"_index":1128,"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":22646,"title":{},"body":{"license.html":{}}}],["pos",{"_index":1488,"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":7561,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["pos.y",{"_index":7564,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position",{"_index":2742,"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":7607,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position.x",{"_index":7696,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["position.y",{"_index":7697,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["positionfromgridindex",{"_index":7478,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["positionfromgridindex(index",{"_index":7513,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["possesses",{"_index":22618,"title":{},"body":{"license.html":{}}}],["possession",{"_index":22587,"title":{},"body":{"license.html":{}}}],["possibility",{"_index":22916,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["possible",{"_index":2431,"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":2900,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.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/MetaTagExtractorController.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":20558,"title":{},"body":{"controllers/ToolController.html":{}}}],["post('/:externaltoolid')@apiokresponse({description",{"_index":20538,"title":{},"body":{"controllers/ToolController.html":{}}}],["post(':boardid/columns",{"_index":2926,"title":{},"body":{"controllers/BoardController.html":{}}}],["post(':cardid/elements",{"_index":4049,"title":{},"body":{"controllers/CardController.html":{}}}],["post(':columnid/cards",{"_index":4980,"title":{},"body":{"controllers/ColumnController.html":{}}}],["post(':contentelementid/submissions",{"_index":8296,"title":{},"body":{"controllers/ElementController.html":{}}}],["post(':roomid/copy",{"_index":17792,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':roomid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17764,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':scope/:scopeid",{"_index":21947,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':scope/:scopeid')@apioperation({summary",{"_index":21933,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':submissionitemid/elements",{"_index":3730,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["post(':taskid/copy",{"_index":19669,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':taskid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":19629,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':token/import",{"_index":18743,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["post('clients",{"_index":16029,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["post('close",{"_index":21205,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('close')@httpcode(httpstatus.ok)@apiunprocessableentityresponse({description",{"_index":21131,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('export",{"_index":7906,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('export/:collectionname",{"_index":7903,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('ldap",{"_index":14511,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('lessons/:lessonid/copy",{"_index":17796,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('lessons/:lessonid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17767,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('local",{"_index":14516,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('migrate",{"_index":12772,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["post('oauth2",{"_index":14520,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('seed",{"_index":13646,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["post('seed/:collectionname",{"_index":7909,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('start",{"_index":21195,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('start')@apiunprocessableentityresponse({description",{"_index":21170,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('startsync",{"_index":12759,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('startusermigration",{"_index":12780,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('sync",{"_index":7915,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post()@apicreatedresponse({description",{"_index":20469,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["post(`${this.options.uri}${path",{"_index":1083,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(`${this.options.uri}/api/v1/login",{"_index":1090,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(path",{"_index":1082,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{}}}],["post(subpath",{"_index":1478,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["post.params.ts",{"_index":5888,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:10",{"_index":5900,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:14",{"_index":5890,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:15",{"_index":18191,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:18",{"_index":5892,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:22",{"_index":18189,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:23",{"_index":5894,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:26",{"_index":18192,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:30",{"_index":5899,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:34",{"_index":5902,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["postasadmin(path",{"_index":1063,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["postloginredirect",{"_index":15525,"title":{},"body":{"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"classes/SSOLoginQuery.html":{},"injectables/UserMigrationService.html":{}}}],["potential",{"_index":6731,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["potentially",{"_index":23847,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["povider",{"_index":22988,"title":{},"body":{"todo.html":{}}}],["power",{"_index":22557,"title":{},"body":{"license.html":{}}}],["powershell",{"_index":23613,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["pr",{"_index":22330,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["practical",{"_index":22378,"title":{},"body":{"license.html":{}}}],["practice",{"_index":22817,"title":{},"body":{"license.html":{}}}],["practices",{"_index":23570,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["practices/layers/orm",{"_index":22993,"title":{},"body":{"todo.html":{}}}],["preamble",{"_index":22369,"title":{},"body":{"license.html":{}}}],["precise",{"_index":4148,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{}}}],["preconditions",{"_index":22295,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["predecessor",{"_index":22782,"title":{},"body":{"license.html":{}}}],["predefined",{"_index":23359,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["preexisting",{"_index":23419,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["preferences",{"_index":12599,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["preferred",{"_index":22484,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["prefetch",{"_index":17168,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefetchcount",{"_index":17171,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefix",{"_index":261,"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/MetaTagExtractorController.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":11614,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["premature",{"_index":23181,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["preparation",{"_index":23439,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepare",{"_index":13902,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["preparebbbcreateconfigbuilder",{"_index":21874,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["preparebbbcreateconfigbuilder(scope",{"_index":21884,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["prepared",{"_index":23446,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepended",{"_index":22321,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prerendering",{"_index":4143,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["present",{"_index":22877,"title":{},"body":{"license.html":{}}}],["presentationurl",{"_index":2135,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["presents",{"_index":22479,"title":{},"body":{"license.html":{}}}],["preservation",{"_index":22713,"title":{},"body":{"license.html":{}}}],["preset",{"_index":21763,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["prettier",{"_index":23116,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["prevent",{"_index":2367,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["prevented",{"_index":22674,"title":{},"body":{"license.html":{}}}],["prevention",{"_index":1578,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["preview",{"_index":6316,"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":16734,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["preview.resize(width",{"_index":16761,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview.stream(format",{"_index":16762,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview_not_possible_scan_status_blocked",{"_index":10120,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_error",{"_index":10118,"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":10119,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_wrong_mime_type",{"_index":10121,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_possible",{"_index":10116,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewactionsloggable",{"_index":16656,"title":{"classes/PreviewActionsLoggable.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewgeneratorconsumer.generatepreview",{"_index":16717,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:end",{"_index":16758,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:start",{"_index":16752,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewproducer.generate:finished",{"_index":16775,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewproducer.generate:started",{"_index":16773,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewbuilder",{"_index":16667,"title":{"classes/PreviewBuilder.html":{}},"body":{"classes/PreviewBuilder.html":{},"injectables/PreviewService.html":{}}}],["previewbuilder.buildparams(filerecord",{"_index":16799,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewbuilder.buildpayload(params",{"_index":16813,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewconfig",{"_index":16684,"title":{"interfaces/PreviewConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["previewfileoptions",{"_index":16660,"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":10857,"title":{"interfaces/PreviewFileParams.html":{}},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["previewfilepath",{"_index":10860,"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":16690,"title":{"modules/PreviewGeneratorAMQPModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules.html":{}}}],["previewgeneratorbuilder",{"_index":16695,"title":{"classes/PreviewGeneratorBuilder.html":{}},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorbuilder.buildfile(preview",{"_index":16755,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorconsumer",{"_index":16700,"title":{"injectables/PreviewGeneratorConsumer.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewgeneratorconsumermodule",{"_index":16693,"title":{"modules/PreviewGeneratorConsumerModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules.html":{}}}],["previewgeneratorconsumermodule.register",{"_index":16694,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["previewgeneratorproducermodule",{"_index":10669,"title":{"modules/PreviewGeneratorProducerModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules.html":{}}}],["previewgeneratorservice",{"_index":16704,"title":{"injectables/PreviewGeneratorService.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorservice(storageclient",{"_index":16724,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewinputmimetypes",{"_index":10108,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewmoduleconfig",{"_index":16687,"title":{"interfaces/PreviewModuleConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewProducer.html":{}}}],["previewoptions",{"_index":16663,"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":16665,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoptions.width",{"_index":16666,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoutputmimetypes",{"_index":6297,"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":16764,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previewparams",{"_index":6311,"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":16810,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewparams.width",{"_index":16683,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["previewproducer",{"_index":16732,"title":{"injectables/PreviewProducer.html":{}},"body":{"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{}}}],["previewresponsemessage",{"_index":16689,"title":{"interfaces/PreviewResponseMessage.html":{}},"body":{"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewservice",{"_index":10581,"title":{"injectables/PreviewService.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["previewstatus",{"_index":6256,"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":10189,"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":10184,"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":10192,"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":10191,"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":10186,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_possible",{"_index":10187,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewwidth",{"_index":6298,"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":16766,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previous",{"_index":22784,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["previousexternalid",{"_index":12195,"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":5575,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["previousteachers",{"_index":5136,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["price",{"_index":22387,"title":{},"body":{"license.html":{}}}],["primarily",{"_index":22844,"title":{},"body":{"license.html":{}}}],["primary",{"_index":566,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{}}}],["primarykey",{"_index":2350,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["principle",{"_index":23160,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["principles",{"_index":23152,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prior",{"_index":22750,"title":{},"body":{"license.html":{}}}],["privacy",{"_index":8391,"title":{},"body":{"classes/ErrorLoggable.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["privacy_permission",{"_index":7189,"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":246,"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":241,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["privacyprotect()@isoptional()@matches(passwordpattern",{"_index":394,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["privacyprotect()@isstring()@isoptional()@matches(passwordpattern)@apiproperty({description",{"_index":16616,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["privacyprotect()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":16622,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["privacyprotected",{"_index":8400,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["private",{"_index":603,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"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/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":15734,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["privatedevice",{"_index":13221,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["privatekey",{"_index":7062,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["probably",{"_index":3607,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["problem",{"_index":5522,"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":22880,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["procedures",{"_index":22670,"title":{},"body":{"license.html":{}}}],["proceed",{"_index":16580,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["proceedbuttonurl",{"_index":16545,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["process",{"_index":6900,"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/UnknownQueryTypeLoggableException.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":15477,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:2",{"_index":15479,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:4",{"_index":15478,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.env.mongo_test_uri}/${dbname",{"_index":15015,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["processcookies",{"_index":11498,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processcookies(setcookies",{"_index":11510,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processed",{"_index":11678,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["processing",{"_index":4642,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["processoauthlogin",{"_index":16317,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processoauthlogin(cachedstate",{"_index":16326,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processredirect",{"_index":11499,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirect(dto",{"_index":11513,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirectcascade",{"_index":11424,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["processredirectcascade(initresponse",{"_index":11432,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["procuring",{"_index":22834,"title":{},"body":{"license.html":{}}}],["produce",{"_index":1541,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["producer.module.ts",{"_index":16733,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["producer.ts",{"_index":17847,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:12",{"_index":17851,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:21",{"_index":17849,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:29",{"_index":17850,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:5",{"_index":17848,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["produces",{"_index":23350,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["product",{"_index":2002,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"license.html":{}}}],["production",{"_index":11647,"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":22845,"title":{},"body":{"license.html":{}}}],["profile",{"_index":13547,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["program",{"_index":22383,"title":{},"body":{"license.html":{}}}],["program's",{"_index":22566,"title":{},"body":{"license.html":{}}}],["programmer",{"_index":22947,"title":{},"body":{"license.html":{}}}],["programming",{"_index":22489,"title":{},"body":{"license.html":{}}}],["programs",{"_index":22392,"title":{},"body":{"license.html":{}}}],["progress",{"_index":6230,"title":{},"body":{"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prohibit",{"_index":22529,"title":{},"body":{"license.html":{},"todo.html":{}}}],["prohibiting",{"_index":22554,"title":{},"body":{"license.html":{}}}],["prohibits",{"_index":22839,"title":{},"body":{"license.html":{}}}],["project",{"_index":21627,"title":{},"body":{"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prom",{"_index":17429,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"dependencies.html":{}}}],["prometheus",{"_index":16868,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp",{"_index":16893,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp.listen(prometheusmetricsappport",{"_index":16895,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsappport",{"_index":16891,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig",{"_index":16815,"title":{"classes/PrometheusMetricsConfig.html":{}},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance",{"_index":16888,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.isenabled",{"_index":16881,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.port",{"_index":16892,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate",{"_index":16861,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.api_response_time_metric_middleware_successfully_added",{"_index":16885,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.feature_disabled_middlewares_will_not_be_created",{"_index":16883,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable",{"_index":16857,"title":{"classes/PrometheusMetricsSetupStateLoggable.html":{}},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_default_metrics_disabled",{"_index":16889,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_metrics_route_metrics_disabled",{"_index":16890,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.feature_disabled_app_will_not_be_created",{"_index":16887,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prominent",{"_index":22481,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prominently",{"_index":22476,"title":{},"body":{"license.html":{}}}],["promise",{"_index":36,"title":{},"body":{"classes/AbstractAccountService.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/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/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":13797,"title":{},"body":{"injectables/LdapService.html":{}}}],["promise.all",{"_index":928,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/DashboardModelMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.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":15426,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(array.from(modelentity.gridelements).map(async",{"_index":7758,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(copyrequests",{"_index":17980,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["promise.all(domainobject.children.map(async",{"_index":17320,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["promise.all(gridelement.getreferences().map((ref",{"_index":7779,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(promises",{"_index":2300,"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":7750,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(removeuserids.map((nextclouduserid",{"_index":15424,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(studententities.map((user",{"_index":9785,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(substitutionteacherentities.map((user",{"_index":9788,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(teacherentities.map((user",{"_index":9787,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(toolreferencespromises",{"_index":20793,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["promise.allsettled(boarddo.children.map((child",{"_index":17269,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["promise.allsettled(promises",{"_index":3024,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.reject",{"_index":21614,"title":{},"body":{"injectables/UserRepo.html":{}}}],["promise.reject(new",{"_index":3005,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["promise.resolve",{"_index":2591,"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":16064,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["promise.resolve(dummyresponse('h5p",{"_index":11388,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["promise.resolve(false",{"_index":906,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["promise.resolve(new",{"_index":13137,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(oauthdata",{"_index":16417,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(response",{"_index":18737,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["promises",{"_index":2295,"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":22213,"title":{},"body":{"dependencies.html":{}}}],["prompt",{"_index":16407,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["prop",{"_index":1652,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["propagate",{"_index":22449,"title":{},"body":{"license.html":{}}}],["propagating",{"_index":22768,"title":{},"body":{"license.html":{}}}],["propagation",{"_index":22459,"title":{},"body":{"license.html":{}}}],["propaly",{"_index":12500,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["proper",{"_index":3071,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["properly",{"_index":23516,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["properties",{"_index":112,"title":{"properties.html":{}},"body":{"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/ClassFilterParams.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":{},"classes/GetMetaTagDataBody.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/MetaTagExtractorResponse.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":2593,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["properties.some",{"_index":2601,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertiestopopulate",{"_index":15193,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["property",{"_index":172,"title":{},"body":{"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":170,"title":{},"body":{"entities/Account.html":{},"entities/ClassEntity.html":{},"entities/News.html":{},"entities/User.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{}}}],["property()@unique",{"_index":9004,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"entities/PseudonymEntity.html":{},"entities/Role.html":{}}}],["property({comment",{"_index":19148,"title":{},"body":{"entities/SubmissionItemNode.html":{}}}],["property({fieldname",{"_index":4801,"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":160,"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":2378,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["property({type",{"_index":12736,"title":{},"body":{"entities/ImportUser.html":{}}}],["property.location",{"_index":2594,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["property.value",{"_index":2597,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertydata",{"_index":2547,"title":{"classes/PropertyData.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["propertylocation",{"_index":2587,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.body",{"_index":2595,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.path",{"_index":20616,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["propertylocation.query",{"_index":20617,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["propertyname",{"_index":2558,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["propertypath",{"_index":1255,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["propertypath.push(validationerror.property",{"_index":1257,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["props",{"_index":381,"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":6533,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.accesskeyid",{"_index":12280,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.accesstoken",{"_index":14526,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.activated",{"_index":200,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.alias",{"_index":12434,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.alternativetext",{"_index":9944,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.availabledate",{"_index":12473,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.axiosconfig",{"_index":11494,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.baseurl",{"_index":2495,"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":10013,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.cancelbuttonurl",{"_index":16551,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.caption",{"_index":9943,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.classnames",{"_index":12857,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.classnames.length",{"_index":12036,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.client",{"_index":12121,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.client_id",{"_index":1340,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.client_secret",{"_index":1342,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.clientid",{"_index":15637,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.clientsecret",{"_index":15638,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["props.closedat",{"_index":21233,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.code",{"_index":1348,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.color",{"_index":6615,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.colums",{"_index":7566,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.comment",{"_index":12295,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.completed",{"_index":19154,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["props.config",{"_index":1931,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.content",{"_index":6933,"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":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":{}}}],["props.context.type",{"_index":4808,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["props.contextexternaltool",{"_index":8745,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["props.contextexternaltoolid",{"_index":8734,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.contextid",{"_index":5858,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.contextref",{"_index":5786,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.contexttype",{"_index":5860,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.cookies",{"_index":11491,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.copyingsince",{"_index":6621,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.course",{"_index":6825,"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":6826,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.coursegroup",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["props.create",{"_index":10083,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.createdat",{"_index":407,"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":6936,"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":190,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.currentredirect",{"_index":11487,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.customs",{"_index":7222,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.data",{"_index":1923,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.default",{"_index":7288,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["props.defaultvalue",{"_index":7430,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["props.delete",{"_index":10085,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.deleted",{"_index":10027,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.deletedat",{"_index":10026,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.deletedsince",{"_index":10149,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.description",{"_index":6608,"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":12470,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.destinationexternalreference",{"_index":4791,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.displayat",{"_index":6935,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.displayname",{"_index":5788,"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":12475,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.email",{"_index":9628,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.enddate",{"_index":12238,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["props.endpointurl",{"_index":12278,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.expiresat",{"_index":198,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.externalgroups",{"_index":15827,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalid",{"_index":6939,"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":15838,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["props.externalorganizationid",{"_index":8520,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["props.externalschool",{"_index":15825,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalsource",{"_index":11101,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.externalsourcename",{"_index":4346,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.externaluser",{"_index":15823,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externaluserid",{"_index":8526,"title":{},"body":{"classes/ExternalGroupUserDto.html":{}}}],["props.features",{"_index":6623,"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":12232,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.filetype",{"_index":17191,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["props.finishedat",{"_index":21235,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.firstname",{"_index":9624,"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":12040,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.forcepasswordchange",{"_index":12605,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.friendlyurl",{"_index":7233,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.from",{"_index":8516,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.frontchannel_logout_uri",{"_index":7239,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.frontchannellogouturi",{"_index":15644,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.grade",{"_index":12301,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradecomment",{"_index":12303,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.graded",{"_index":12299,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradelevel",{"_index":4277,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.grant_type",{"_index":1346,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.grid.foreach((element",{"_index":7568,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.gridelements",{"_index":7646,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["props.height",{"_index":4069,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["props.hidden",{"_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":{}}}],["props.hydracookies",{"_index":6214,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.id",{"_index":405,"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":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.idmreferenceid",{"_index":807,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["props.idtoken",{"_index":15611,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.imageurl",{"_index":14366,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["props.importuserid",{"_index":12851,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.inmaintenancesince",{"_index":12224,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.inputformat",{"_index":17566,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.inusermigration",{"_index":12225,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.invitationlink",{"_index":4289,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.iscopyfrom",{"_index":10146,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.isdirectory",{"_index":10010,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.ishidden",{"_index":7241,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{}}}],["props.islocal",{"_index":7226,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isoptional",{"_index":7298,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.istemplate",{"_index":7224,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isupgradable",{"_index":4352,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.key",{"_index":7206,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.keyvalue",{"_index":1594,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.language",{"_index":12607,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastloginsystemchange",{"_index":12611,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastname",{"_index":9626,"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":196,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.launch_presentation_locale",{"_index":14598,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["props.ldapconfig",{"_index":12440,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.ldapdn",{"_index":4294,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.lesson",{"_index":12480,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.license",{"_index":12123,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.localcookies",{"_index":6212,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.location",{"_index":7290,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["props.lockid",{"_index":10049,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.loginname",{"_index":12853,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.logo",{"_index":8574,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.logo_url",{"_index":7210,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.logobase64",{"_index":8779,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["props.logourl",{"_index":6534,"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":7212,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.lti_version",{"_index":7214,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.mandatorysince",{"_index":21229,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.match",{"_index":12858,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.matchedby",{"_index":12038,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.materials",{"_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":{}}}],["props.merlinreference",{"_index":12125,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.method",{"_index":20648,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.mimetype",{"_index":10143,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.name",{"_index":4282,"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":7231,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.oauthconfig",{"_index":12436,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.officialschoolnumber",{"_index":8536,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.oidcconfig",{"_index":12438,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.opennewtab",{"_index":7237,"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":21767,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.organization",{"_index":11141,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.organizationid",{"_index":11105,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.originalcolumnboardid",{"_index":4774,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.origintoolid",{"_index":7227,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.outdatedsince",{"_index":12613,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.parameters",{"_index":5790,"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":3559,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.id",{"_index":3560,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.level",{"_index":3566,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parentid",{"_index":9892,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.parenttype",{"_index":9891,"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":186,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.payload",{"_index":20649,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.permissions",{"_index":10048,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.position",{"_index":3568,"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":15849,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.preferences",{"_index":12609,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.previousexternalid",{"_index":12221,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{}}}],["props.privacy_permission",{"_index":7220,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.private",{"_index":12476,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.proceedbuttonurl",{"_index":16549,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.properties",{"_index":20598,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["props.provider",{"_index":15850,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.provisioningstrategy",{"_index":12442,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.provisioningurl",{"_index":12444,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.pseudonym",{"_index":9011,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["props.publicsubmissions",{"_index":12484,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.read",{"_index":10081,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.reason",{"_index":10126,"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":21495,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["props.redirect_uri",{"_index":1344,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.redirecturis",{"_index":15640,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.references.sort(this.sortreferences",{"_index":7542,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.referer",{"_index":11489,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.refownermodel",{"_index":10045,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.refpermmodel",{"_index":10078,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["props.refreshtoken",{"_index":15613,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["props.regex",{"_index":7294,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.regexcomment",{"_index":7296,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.region",{"_index":12284,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.relatedresources",{"_index":12127,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.requesttoken",{"_index":10128,"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":7216,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.response",{"_index":11492,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.role",{"_index":11327,"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":11320,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.rolename",{"_index":8528,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.rolenames",{"_index":12855,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.rolenames.length",{"_index":12033,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.roles",{"_index":7218,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/IRoleProperties.html":{},"entities/LtiTool.html":{},"entities/Role.html":{}}}],["props.school",{"_index":6611,"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":4284,"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":12190,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.schooltool",{"_index":5856,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["props.schooltoolid",{"_index":18197,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["props.schooltoolref",{"_index":5784,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.schoolyear",{"_index":4350,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.scope",{"_index":7292,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.secret",{"_index":7208,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{}}}],["props.secretaccesskey",{"_index":12282,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.secretvalue",{"_index":1596,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.securitycheck",{"_index":10036,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.share",{"_index":20177,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["props.sharetokens",{"_index":10038,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.size",{"_index":10011,"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":7235,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.source",{"_index":4298,"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":6941,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourceoptions",{"_index":4300,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.sourcesystem",{"_index":21250,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.sourcesystemid",{"_index":21225,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.startdate",{"_index":6619,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UsersList.html":{}}}],["props.startedat",{"_index":21231,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.state",{"_index":15847,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.status",{"_index":1925,"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":1927,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.storagefilename",{"_index":10012,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.storageprovider",{"_index":10014,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.student",{"_index":12293,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.studentcount",{"_index":4354,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.students",{"_index":6827,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.subjects",{"_index":12129,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.submitted",{"_index":12298,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.successor",{"_index":4296,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.system",{"_index":8551,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.systemid",{"_index":194,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{}}}],["props.systems",{"_index":12227,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.tags",{"_index":12131,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.target",{"_index":3397,"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":12133,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.targetmodel",{"_index":21766,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetsystem",{"_index":21252,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.targetsystemid",{"_index":21227,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.task",{"_index":12297,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teacherids",{"_index":4288,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.teachernames",{"_index":4348,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["props.teachers",{"_index":4368,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["props.teamid",{"_index":20192,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teammembers",{"_index":12304,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teamname",{"_index":20194,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teamsubmissions",{"_index":12486,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.teamusers",{"_index":12573,"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":12574,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.text",{"_index":17565,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.thumbnail",{"_index":10033,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.thumbnailrequesttoken",{"_index":10034,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.timestamps",{"_index":8735,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.title",{"_index":3569,"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":188,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.tokenendpointauthmethod",{"_index":15642,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.tool",{"_index":12188,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.toolid",{"_index":9013,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.toolversion",{"_index":5792,"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":11936,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["props.tspuid",{"_index":4470,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["props.type",{"_index":4344,"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":8518,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.untildate",{"_index":6617,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.updatedat",{"_index":409,"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":6937,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.url",{"_index":7204,"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":11326,"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":192,"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":4285,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.userloginmigration",{"_index":12229,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.username",{"_index":184,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.users",{"_index":8514,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.users.map",{"_index":11103,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validfrom",{"_index":11098,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validperiod",{"_index":11139,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.validuntil",{"_index":11099,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.value",{"_index":7316,"title":{},"body":{"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/PropertyData.html":{}}}],["props.version",{"_index":8575,"title":{},"body":{"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.versionkey",{"_index":10052,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.write",{"_index":10079,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.year",{"_index":4291,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["propsfactory",{"_index":449,"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":2419,"title":{},"body":{"classes/BaseFactory.html":{}}}],["protect",{"_index":22396,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["protected",{"_index":448,"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/BaseUc.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardUc.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardUc.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":{},"injectables/ColumnUc.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":{},"injectables/ElementUc.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":{},"injectables/SubmissionItemUc.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":21719,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles",{"_index":21713,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles.find((protectedrole",{"_index":21718,"title":{},"body":{"injectables/UserService.html":{}}}],["protecting",{"_index":22537,"title":{},"body":{"license.html":{}}}],["protection",{"_index":22577,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["protocol",{"_index":13433,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapper",{"_index":13489,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapperrepresentation",{"_index":13364,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocols",{"_index":22693,"title":{},"body":{"license.html":{}}}],["prototype",{"_index":1002,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["prove",{"_index":22896,"title":{},"body":{"license.html":{}}}],["provide",{"_index":636,"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":3246,"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":4619,"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":11653,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["provider.client",{"_index":15891,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.consent",{"_index":15925,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.controller",{"_index":15887,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.controller.ts",{"_index":15965,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:103",{"_index":15977,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:109",{"_index":15983,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:117",{"_index":15998,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:135",{"_index":15973,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:143",{"_index":15980,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:151",{"_index":15995,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:169",{"_index":15990,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:182",{"_index":16002,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:188",{"_index":15987,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:49",{"_index":15985,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:60",{"_index":15992,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:80",{"_index":15975,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:91",{"_index":16004,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.login",{"_index":12650,"title":{},"body":{"injectables/IdTokenService.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["provider.logout",{"_index":16008,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["provider.mapper",{"_index":13323,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["provider.mapper.ts",{"_index":16394,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:6",{"_index":16397,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:9",{"_index":16399,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.module",{"_index":15889,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.module.ts",{"_index":16131,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["provider.service",{"_index":16187,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider.service.ts",{"_index":16155,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:14",{"_index":16168,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:16",{"_index":16160,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:18",{"_index":16179,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:20",{"_index":16167,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:22",{"_index":16158,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:24",{"_index":16178,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:26",{"_index":16162,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:28",{"_index":16172,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:30",{"_index":16173,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:32",{"_index":16177,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:39",{"_index":16164,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:41",{"_index":16170,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:43",{"_index":16183,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:45",{"_index":16166,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:47",{"_index":16175,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:49",{"_index":16181,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.uc",{"_index":16013,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.uc.ts",{"_index":16190,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:10",{"_index":16193,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:15",{"_index":16195,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:7",{"_index":16191,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider/controller/dto",{"_index":15946,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/controller/dto/request/accept.query.ts",{"_index":136,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/accept.query.ts:9",{"_index":146,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/challenge.params.ts",{"_index":4194,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/challenge.params.ts:11",{"_index":4196,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/consent",{"_index":5489,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["provider/controller/dto/request/id.params.ts",{"_index":12622,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/id.params.ts:11",{"_index":12623,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/list",{"_index":14380,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["provider/controller/dto/request/login",{"_index":14528,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["provider/controller/dto/request/oauth",{"_index":15483,"title":{},"body":{"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{}}}],["provider/controller/dto/request/revoke",{"_index":17523,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["provider/controller/dto/request/user.params.ts",{"_index":21590,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/request/user.params.ts:7",{"_index":21591,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/response/consent",{"_index":5583,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts",{"_index":5540,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:16",{"_index":5550,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:22",{"_index":5553,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:28",{"_index":5556,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:32",{"_index":5559,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:36",{"_index":5560,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:40",{"_index":5563,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:44",{"_index":5565,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:48",{"_index":5567,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:54",{"_index":5571,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:6",{"_index":5548,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:60",{"_index":5572,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:66",{"_index":5573,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:72",{"_index":5576,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:76",{"_index":5577,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/login.response.ts",{"_index":14533,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:13",{"_index":14540,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:16",{"_index":14537,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:19",{"_index":14538,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:23",{"_index":14541,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:27",{"_index":14543,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:31",{"_index":14544,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:37",{"_index":14545,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:43",{"_index":14549,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:48",{"_index":14550,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:51",{"_index":14551,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:6",{"_index":14536,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oauth",{"_index":5580,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oidc",{"_index":5578,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts",{"_index":17386,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:12",{"_index":17392,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:3",{"_index":17388,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/oauth",{"_index":15964,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/dto",{"_index":9394,"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":16911,"title":{},"body":{"interfaces/ProviderOidcContext.html":{}}}],["provider/dto/request/accept",{"_index":109,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{}}}],["provider/dto/request/reject",{"_index":17408,"title":{},"body":{"interfaces/RejectRequestBody.html":{}}}],["provider/dto/response/consent",{"_index":16907,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["provider/dto/response/consent.response.ts",{"_index":16902,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{}}}],["provider/dto/response/introspect.response.ts",{"_index":13064,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["provider/dto/response/login.response.ts",{"_index":16910,"title":{},"body":{"interfaces/ProviderLoginResponse.html":{}}}],["provider/dto/response/redirect.response.ts",{"_index":16912,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{}}}],["provider/error/id",{"_index":12625,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["provider/hydra/hydra.adapter",{"_index":16189,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider/index",{"_index":15913,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["provider/interface/id",{"_index":123,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/interface/subject",{"_index":15736,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/interface/token",{"_index":15737,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/mapper/oauth",{"_index":16100,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/oauth",{"_index":15885,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider/service/id",{"_index":12633,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/service/oauth",{"_index":16065,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["provider/uc/oauth",{"_index":15890,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["providerconsentresponse",{"_index":15943,"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":16006,"title":{"interfaces/ProviderConsentSessionResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerid",{"_index":13415,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["providerloginresponse",{"_index":16005,"title":{"interfaces/ProviderLoginResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroauthclient",{"_index":9390,"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":16903,"title":{"interfaces/ProviderOidcContext.html":{}},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["provideroptions",{"_index":12401,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["providerredirectresponse",{"_index":15945,"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":208,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":8054,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["provides",{"_index":4545,"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":4633,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CoreModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["provision",{"_index":18341,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"license.html":{}}}],["provisionally",{"_index":22746,"title":{},"body":{"license.html":{}}}],["provisiondata",{"_index":16933,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisiondata(oauthdata",{"_index":16947,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisionexternalgroup",{"_index":16422,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalgroup(externalgroup",{"_index":16430,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool",{"_index":16423,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool(externalschool",{"_index":16432,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser",{"_index":16424,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser(externaluser",{"_index":16434,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning",{"_index":11248,"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":21583,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["provisioning.service",{"_index":16526,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioning.service.ts",{"_index":16420,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:121",{"_index":16431,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:166",{"_index":16428,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:191",{"_index":16437,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:20",{"_index":16426,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:32",{"_index":16433,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:69",{"_index":16435,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.strategy",{"_index":12348,"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":13111,"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":16917,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["provisioningmodule",{"_index":15696,"title":{"modules/ProvisioningModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["provisioningservice",{"_index":15511,"title":{"injectables/ProvisioningService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["provisioningstrategy",{"_index":12344,"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":16414,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:14",{"_index":16413,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:24",{"_index":13109,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:28",{"_index":13108,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:30",{"_index":18059,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:31",{"_index":16412,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:34",{"_index":18058,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:5",{"_index":16524,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningstrategy:61",{"_index":13103,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:7",{"_index":16523,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningsystemdto",{"_index":15817,"title":{"classes/ProvisioningSystemDto.html":{}},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper",{"_index":16952,"title":{"classes/ProvisioningSystemInputMapper.html":{}},"body":{"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper.maptointernal(systemdto",{"_index":16963,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisioningurl",{"_index":12345,"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":15508,"title":{},"body":{"injectables/OAuthService.html":{}}}],["provisionuser(systemid",{"_index":15531,"title":{},"body":{"injectables/OAuthService.html":{}}}],["proxy",{"_index":18647,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{}}}],["proxy's",{"_index":22886,"title":{},"body":{"license.html":{}}}],["ps256",{"_index":1407,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps384",{"_index":1408,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps512",{"_index":1409,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["pseudonym",{"_index":9003,"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":17059,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["pseudonym.entity.ts",{"_index":9002,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["pseudonym.entity.ts:18",{"_index":9005,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:21",{"_index":9006,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:24",{"_index":9007,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.id",{"_index":17032,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.module",{"_index":17004,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["pseudonym.pseudonym",{"_index":9819,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.repo.ts",{"_index":9016,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:10",{"_index":9025,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:104",{"_index":9041,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:112",{"_index":9037,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:13",{"_index":9034,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:24",{"_index":9032,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:39",{"_index":9030,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:48",{"_index":9027,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:69",{"_index":9029,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:77",{"_index":9039,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:91",{"_index":9043,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.service",{"_index":9760,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.toolid",{"_index":17033,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.userid",{"_index":17034,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonymapimodule",{"_index":16997,"title":{"modules/PseudonymApiModule.html":{}},"body":{"modules/PseudonymApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["pseudonymcontroller",{"_index":17003,"title":{"controllers/PseudonymController.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{}}}],["pseudonymentity",{"_index":17023,"title":{"entities/PseudonymEntity.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymentity(entityprops",{"_index":17139,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["pseudonymentityprops",{"_index":17028,"title":{"interfaces/PseudonymEntityProps.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymmapper",{"_index":17013,"title":{"classes/PseudonymMapper.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{}}}],["pseudonymmapper.maptoresponse(pseudonym",{"_index":17022,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonymmodule",{"_index":4614,"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":7181,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["pseudonymparams",{"_index":17008,"title":{"classes/PseudonymParams.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymParams.html":{}}}],["pseudonympromise",{"_index":17090,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymprops",{"_index":16993,"title":{"interfaces/PseudonymProps.html":{}},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["pseudonymrepo",{"_index":17071,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymresponse",{"_index":17015,"title":{"classes/PseudonymResponse.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{}}}],["pseudonymresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":17010,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonyms",{"_index":9009,"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":20375,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonyms_too_many_pseudonyms_found",{"_index":20379,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonymschool",{"_index":17123,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymscope",{"_index":9045,"title":{"classes/PseudonymScope.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{}}}],["pseudonymsearchquery",{"_index":9036,"title":{"interfaces/PseudonymSearchQuery.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{}}}],["pseudonymservice",{"_index":9732,"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":17039,"title":{"injectables/PseudonymsRepo.html":{}},"body":{"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymuc",{"_index":17001,"title":{"injectables/PseudonymUc.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymUc.html":{}}}],["pseudonymuser",{"_index":17121,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymuserid",{"_index":17119,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["public",{"_index":662,"title":{},"body":{"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":{},"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":15595,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["publicclient",{"_index":13435,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["publicity",{"_index":22717,"title":{},"body":{"license.html":{}}}],["publickey",{"_index":7069,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["publiclink",{"_index":15341,"title":{},"body":{"injectables/NexboardService.html":{}}}],["publicly",{"_index":19367,"title":{},"body":{"controllers/SystemController.html":{},"license.html":{}}}],["publicservice",{"_index":23228,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["publicsubmissions",{"_index":12451,"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":17142,"title":{"classes/PublicSystemListResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publicsystemlistresponse(systemresponses",{"_index":19535,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["publicsystemresponse",{"_index":17145,"title":{"classes/PublicSystemResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publish",{"_index":4918,"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":2711,"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":22131,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["pull",{"_index":22329,"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":4144,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["pursuant",{"_index":22832,"title":{},"body":{"license.html":{}}}],["put",{"_index":4019,"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":20827,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put('/:schoolexternaltoolid')@apiokresponse({description",{"_index":20816,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put(':cardid/position",{"_index":4033,"title":{},"body":{"controllers/CardController.html":{}}}],["put(':columnid/position",{"_index":4971,"title":{},"body":{"controllers/ColumnController.html":{}}}],["put(':contentelementid/position",{"_index":8285,"title":{},"body":{"controllers/ElementController.html":{}}}],["put(':contextexternaltoolid",{"_index":20508,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':contextexternaltoolid')@apiokresponse({description",{"_index":20487,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':schoolid/migration",{"_index":13963,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':schoolid/migration')@authenticate('jwt')@apiokresponse({description",{"_index":13949,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':scope/:scopeid/start",{"_index":21835,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put(':scope/:scopeid/start')@apioperation({summary",{"_index":21823,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put('clients/:id",{"_index":16031,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["put('mandatory",{"_index":21202,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('mandatory')@apinotfoundresponse({description",{"_index":21164,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart",{"_index":21199,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart')@apinotfoundresponse({description",{"_index":21156,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put(filesstorageinternalactions.updatesecuritystatus",{"_index":10353,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["put(path",{"_index":1474,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["put(subpath",{"_index":1473,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["putting",{"_index":23059,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["pw",{"_index":7093,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["pwd/backup/idm/keycloak:/tmp/realms",{"_index":23050,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["pwd/backup/idm/oidcmock:/tmp/config",{"_index":23633,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["p{extended_pictographic}/u",{"_index":6659,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["q",{"_index":13607,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["qs",{"_index":11519,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["qs.stringify(data",{"_index":13561,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["qualify",{"_index":22758,"title":{},"body":{"license.html":{}}}],["quality",{"_index":22895,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["quarkus",{"_index":23660,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["quay.io/minio/minio",{"_index":23044,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["queries",{"_index":13050,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["queries.length",{"_index":13053,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{}}}],["query",{"_index":310,"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":{},"classes/UnknownQueryTypeLoggableException.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":12825,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["query('x",{"_index":7460,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query('y",{"_index":7461,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query.accept",{"_index":15950,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["query.classes",{"_index":12905,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.code",{"_index":16281,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.error",{"_index":16282,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.firstname",{"_index":12893,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.flagged",{"_index":12910,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.lastloginsystemchangebetweenend",{"_index":21005,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastloginsystemchangebetweenstart",{"_index":21004,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastname",{"_index":12896,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.loginname",{"_index":12899,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match",{"_index":12906,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match.map((match",{"_index":12908,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.migration",{"_index":16275,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.name",{"_index":21453,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["query.postloginredirect",{"_index":16276,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.role",{"_index":12900,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.schoolid",{"_index":18290,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["query.state",{"_index":16271,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.targetid",{"_index":15173,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.targetmodel",{"_index":15171,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.ts",{"_index":9355,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{},"interfaces/PseudonymSearchQuery.html":{},"interfaces/UserLoginMigrationQuery.html":{}}}],["query.type",{"_index":20995,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["query.unpublished",{"_index":15175,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.userid",{"_index":21409,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["query/body",{"_index":23336,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["query/empty",{"_index":18546,"title":{},"body":{"classes/Scope.html":{}}}],["queryfiltermatch",{"_index":21617,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryfiltermatch.$or",{"_index":21623,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryoptions",{"_index":6997,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ImportUserRepo.html":{}}}],["queryordermap",{"_index":6979,"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":9469,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["queryordernumeric",{"_index":21609,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.asc",{"_index":21638,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.desc",{"_index":21637,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryparams",{"_index":2152,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"controllers/CourseController.html":{}}}],["queryparams.append('checksum",{"_index":2228,"title":{},"body":{"injectables/BBBService.html":{}}}],["queryparams.tostring",{"_index":2218,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["queryparams.version",{"_index":6702,"title":{},"body":{"controllers/CourseController.html":{}}}],["querys",{"_index":10695,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["querystring",{"_index":2217,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{}}}],["querystring.stringify",{"_index":11520,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["querystring.stringify(payload",{"_index":15684,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["queue",{"_index":10586,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq",{"_index":1157,"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":17162,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmq:3.8.9",{"_index":23034,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmq_url",{"_index":23027,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmqmodule",{"_index":17160,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqmodule.forroot(rabbitmqmodule",{"_index":17167,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqwrappermodule",{"_index":10659,"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":10660,"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":10593,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc",{"_index":10594,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc({exchange",{"_index":10584,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["random",{"_index":3472,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/FileSystemAdapter.html":{}}}],["random(min",{"_index":3487,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["randomuuid",{"_index":1545,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["range",{"_index":10820,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/S3ClientAdapter.html":{}}}],["ranges",{"_index":10818,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["rawfiledocument",{"_index":10470,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments",{"_index":10466,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments.map((rawfiledocument",{"_index":10468,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawlessondocument",{"_index":14247,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments",{"_index":14243,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments.map((rawlessondocument",{"_index":14245,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rc",{"_index":11619,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["rd",{"_index":11623,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["re",{"_index":761,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardNodeRepo.html":{},"classes/ExternalToolScope.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["reachable",{"_index":11608,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["react",{"_index":23149,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["read",{"_index":1615,"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":1619,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["readable",{"_index":1147,"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":17194,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readable.from(text",{"_index":20321,"title":{},"body":{"classes/TestHelper.html":{}}}],["readablestreamwithfiletype",{"_index":17185,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypefactory",{"_index":17192,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeimp",{"_index":17182,"title":{"classes/ReadableStreamWithFileTypeImp.html":{}},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeprops",{"_index":17187,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readcourseids",{"_index":20092,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses",{"_index":20088,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses.map((c",{"_index":20093,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readdir",{"_index":10365,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readdir(folderpath",{"_index":10388,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["reader",{"_index":3069,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["readfile",{"_index":10366,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readfile(filepath",{"_index":10392,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readily",{"_index":22822,"title":{},"body":{"license.html":{}}}],["reading",{"_index":22697,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["readlessons",{"_index":20097,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readonly",{"_index":177,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.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":{},"injectables/OAuth2ToolLaunchStrategy.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/UnknownQueryTypeLoggableException.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":13659,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["real",{"_index":23061,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["really",{"_index":6592,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/TaskCopyUC.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["realm",{"_index":13296,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["realmname",{"_index":12084,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows",{"_index":13402,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions",{"_index":13411,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions/execution",{"_index":13413,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["reason",{"_index":10123,"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":22619,"title":{},"body":{"license.html":{}}}],["reasons",{"_index":19538,"title":{},"body":{"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["receipt",{"_index":22756,"title":{},"body":{"license.html":{}}}],["receive",{"_index":22390,"title":{},"body":{"license.html":{}}}],["received",{"_index":13076,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["receives",{"_index":22773,"title":{},"body":{"license.html":{}}}],["receiving",{"_index":22836,"title":{},"body":{"license.html":{}}}],["recieved",{"_index":23498,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["recieving",{"_index":23218,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["recipient",{"_index":22680,"title":{},"body":{"license.html":{}}}],["recipient's",{"_index":22829,"title":{},"body":{"license.html":{}}}],["recipients",{"_index":1307,"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":22487,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["recommend",{"_index":23529,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["recommendations",{"_index":23575,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["recommended",{"_index":23573,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["reconnect",{"_index":13792,"title":{},"body":{"injectables/LdapService.html":{}}}],["reconsidered",{"_index":13846,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["record",{"_index":984,"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":10210,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:11",{"_index":10218,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:23",{"_index":10215,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:5",{"_index":10220,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["recording",{"_index":2112,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["recursive",{"_index":3264,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"classes/CopyApiResponse.html":{}}}],["recursivecopyvisitor",{"_index":3263,"title":{"classes/RecursiveCopyVisitor.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["recursivecopyvisitor(params.filecopyservice",{"_index":3270,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["recursivedeletevisitor",{"_index":3282,"title":{"injectables/RecursiveDeleteVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["recursively",{"_index":10401,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/PermissionService.html":{}}}],["recursivesavevisitor",{"_index":3310,"title":{"classes/RecursiveSaveVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["recursivesavevisitor(this.em",{"_index":3342,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["red",{"_index":22986,"title":{},"body":{"todo.html":{}}}],["redirect",{"_index":2057,"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":16913,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{},"classes/RedirectResponse.html":{}}}],["redirect_uri",{"_index":1329,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/HydraSsoService.html":{},"classes/TokenRequestMapper.html":{}}}],["redirect_uris",{"_index":9456,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["redirectreponse",{"_index":17389,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectreponse.redirect_to",{"_index":17394,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectresponse",{"_index":15955,"title":{"classes/RedirectResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RedirectResponse.html":{}}}],["redirects",{"_index":15791,"title":{},"body":{"classes/OauthConfigResponse.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi",{"_index":11580,"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":15599,"title":{},"body":{"injectables/OAuthService.html":{}}}],["redirecturis",{"_index":7352,"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":17390,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redis",{"_index":3892,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["redis_client",{"_index":17399,"title":{},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redis_uri",{"_index":18640,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisclient",{"_index":3893,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisidentifier",{"_index":13222,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["redismodule",{"_index":17395,"title":{"modules/RedisModule.html":{}},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["redisstore",{"_index":18635,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redistribute",{"_index":22931,"title":{},"body":{"license.html":{}}}],["redisurl",{"_index":3897,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["reduce",{"_index":23836,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["reduce((previousteachers",{"_index":5134,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["ref",{"_index":3727,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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/SubmissionItemResponse.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ref.do.ts",{"_index":18194,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:2",{"_index":18196,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:4",{"_index":18195,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.params.ts",{"_index":6193,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:13",{"_index":6194,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:9",{"_index":6196,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.target",{"_index":2675,"title":{},"body":{"entities/Board.html":{}}}],["ref.ts",{"_index":6189,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:4",{"_index":6191,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:6",{"_index":6190,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["refactor",{"_index":7815,"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":9870,"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":3405,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["reference",{"_index":1676,"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":1678,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["reference.controller",{"_index":20393,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["reference.controller.ts",{"_index":20729,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:28",{"_index":20737,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:51",{"_index":20741,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.getmetadata",{"_index":7550,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["reference.loader",{"_index":1788,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.mapper.ts",{"_index":20753,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.mapper.ts:6",{"_index":20756,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.module",{"_index":10509,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["reference.module.ts",{"_index":1749,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["reference.response",{"_index":20751,"title":{},"body":{"classes/ToolReferenceListResponse.html":{}}}],["reference.response.ts",{"_index":20757,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:13",{"_index":20764,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:16",{"_index":20761,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:19",{"_index":20766,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:28",{"_index":20759,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:6",{"_index":20760,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.service.ts",{"_index":1775,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:12",{"_index":1782,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:14",{"_index":20773,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:15",{"_index":1785,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:23",{"_index":20775,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:26",{"_index":1787,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.ts",{"_index":3412,"title":{},"body":{"interfaces/BoardExternalReference.html":{},"classes/RoleReference.html":{},"classes/ToolReference.html":{}}}],["reference.ts:10",{"_index":20725,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:12",{"_index":20721,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:4",{"_index":20722,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:5",{"_index":17627,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:6",{"_index":20724,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:7",{"_index":17626,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:8",{"_index":20723,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.type",{"_index":3333,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["reference.uc.ts",{"_index":20778,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:10",{"_index":20781,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:17",{"_index":20787,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:40",{"_index":20789,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:57",{"_index":20785,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:71",{"_index":20783,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["referenced",{"_index":3390,"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":{}}}],["referencedid",{"_index":7533,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceforindex",{"_index":7610,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceids",{"_index":2613,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["referenceloader",{"_index":1743,"title":{"injectables/ReferenceLoader.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["referencemodels",{"_index":7748,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["references",{"_index":2606,"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":2669,"title":{},"body":{"entities/Board.html":{}}}],["references.push(columnboardelement",{"_index":3046,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(lessonelement",{"_index":3042,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(taskelement",{"_index":3040,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.some((ref",{"_index":2674,"title":{},"body":{"entities/Board.html":{}}}],["references[position.groupindex",{"_index":7611,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referer",{"_index":11467,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["referring",{"_index":22386,"title":{},"body":{"license.html":{}}}],["refers",{"_index":22433,"title":{},"body":{"license.html":{}}}],["refid",{"_index":10065,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refined",{"_index":23579,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reflect",{"_index":22263,"title":{},"body":{"dependencies.html":{},"todo.html":{}}}],["reflector",{"_index":20334,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["reflector.get('timeout",{"_index":20337,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["refobjectid",{"_index":10016,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["refownermodel",{"_index":9962,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refpermmodel",{"_index":10066,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["refrain",{"_index":22865,"title":{},"body":{"license.html":{}}}],["refresh_token",{"_index":15911,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{}}}],["refreshtimeout",{"_index":17993,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["refreshtoken",{"_index":15606,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/TokenRequestMapper.html":{}}}],["regard",{"_index":22702,"title":{},"body":{"license.html":{}}}],["regarding",{"_index":22319,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["regardless",{"_index":22588,"title":{},"body":{"license.html":{}}}],["regenerate",{"_index":22513,"title":{},"body":{"license.html":{}}}],["regex",{"_index":5487,"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":15022,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["regexcomment",{"_index":7276,"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":6380,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`${sourceid",{"_index":6393,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`^${email.replace(/\\w/g",{"_index":21647,"title":{},"body":{"injectables/UserRepo.html":{}}}],["regexp(param.regex",{"_index":8990,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(param.regex).test(foundentry.value",{"_index":5483,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["regexp(param.regex).test(param.default",{"_index":8992,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(searchusername",{"_index":766,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["region",{"_index":6336,"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":16720,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["register(config",{"_index":16721,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["register(configs",{"_index":18000,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["registerparentdata",{"_index":17324,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerparentdata(parent",{"_index":17330,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerstrategy",{"_index":16934,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registerstrategy(strategy",{"_index":16949,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registrated",{"_index":23805,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["regular",{"_index":755,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["reinstated",{"_index":22745,"title":{},"body":{"license.html":{}}}],["reject",{"_index":13798,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reject(new",{"_index":13806,"title":{},"body":{"injectables/LdapService.html":{}}}],["rejectable.body",{"_index":5538,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rejectable.body.ts",{"_index":15484,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:13",{"_index":15485,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:23",{"_index":15486,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:32",{"_index":15487,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:41",{"_index":15488,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:50",{"_index":15489,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectconsentrequest",{"_index":15930,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectconsentrequest(challenge",{"_index":15939,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest",{"_index":16086,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest(challenge",{"_index":16095,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectnothandled",{"_index":5693,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectnothandled(component",{"_index":5696,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectrequestbody",{"_index":15940,"title":{"interfaces/RejectRequestBody.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/RejectRequestBody.html":{}}}],["related",{"_index":7111,"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":12110,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["relation",{"_index":11245,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["relation.ktid",{"_index":18134,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["relations",{"_index":10089,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relationship",{"_index":12549,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{}}}],["relationtype",{"_index":12119,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["relative",{"_index":11539,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["relative.org",{"_index":5735,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["release",{"_index":23548,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["released",{"_index":22428,"title":{},"body":{"license.html":{}}}],["releasing",{"_index":22420,"title":{},"body":{"license.html":{}}}],["relevant",{"_index":22582,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["relicensing",{"_index":22429,"title":{},"body":{"license.html":{}}}],["reload",{"_index":16823,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relying",{"_index":22821,"title":{},"body":{"license.html":{}}}],["remain",{"_index":22636,"title":{},"body":{"license.html":{}}}],["remains",{"_index":22384,"title":{},"body":{"license.html":{}}}],["remember",{"_index":116,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remember_for",{"_index":117,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remembered",{"_index":5509,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rememberfor",{"_index":5507,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["remote",{"_index":22867,"title":{},"body":{"license.html":{}}}],["remotely",{"_index":22869,"title":{},"body":{"license.html":{}}}],["removal",{"_index":22704,"title":{},"body":{"license.html":{}}}],["remove",{"_index":1770,"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":2731,"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":2749,"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":2667,"title":{},"body":{"entities/Board.html":{}}}],["removedirrecursive",{"_index":10367,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removedirrecursive(folderpath",{"_index":10398,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removeexternalgroupsandaffiliation",{"_index":16425,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removeexternalgroupsandaffiliation(externaluserid",{"_index":16436,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removefeature",{"_index":14081,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefeature(schoolid",{"_index":14093,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefromposition",{"_index":7479,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removefromposition(position",{"_index":7515,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removefromwhitelist",{"_index":13201,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removefromwhitelist(accountid",{"_index":13212,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removegroupmoderator(groupname",{"_index":1044,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["removejwtfromwhitelist",{"_index":1520,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removejwtfromwhitelist(jwttoken",{"_index":1535,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removematch",{"_index":12753,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removematch(urlparams",{"_index":12767,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removepermissionsbyrefid(refid",{"_index":10015,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["removeprotectedentityfields",{"_index":2245,"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":2276,"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":10973,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereference(reference",{"_index":7529,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex",{"_index":10974,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex(index",{"_index":7528,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removeroomsnotinlist",{"_index":7480,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removeroomsnotinlist(roomlist",{"_index":7517,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removes",{"_index":10400,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["removesecrets(collectionname",{"_index":11857,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromstorageproviders(storageproviders",{"_index":11860,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromsystems(systems",{"_index":11862,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removestudent(userid",{"_index":6833,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["removesubstitutionteacher(userid",{"_index":6668,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeteacher(userid",{"_index":6666,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeuser",{"_index":4205,"title":{},"body":{"classes/Class.html":{},"classes/Group.html":{}}}],["removeuser(user",{"_index":11003,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["removeuser(userid",{"_index":4214,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["removeuserids",{"_index":15414,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserids.tostring",{"_index":15418,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserpermissionstoanyfiles",{"_index":10476,"title":{},"body":{"injectables/FilesService.html":{}}}],["removeuserpermissionstoanyfiles(userid",{"_index":10484,"title":{},"body":{"injectables/FilesService.html":{}}}],["rename",{"_index":9144,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["renamebodyparams",{"_index":2895,"title":{"classes/RenameBodyParams.html":{}},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/RenameBodyParams.html":{}}}],["renamed",{"_index":15396,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["renamefileparams",{"_index":6308,"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":7830,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["renamegroupondashboard(dashboardid",{"_index":7837,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["rendered",{"_index":22910,"title":{},"body":{"license.html":{}}}],["reorderboardelements",{"_index":17824,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderboardelements(roomid",{"_index":17829,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderelements(ids",{"_index":2645,"title":{},"body":{"entities/Board.html":{}}}],["reordering",{"_index":2657,"title":{},"body":{"entities/Board.html":{}}}],["repair",{"_index":22900,"title":{},"body":{"license.html":{}}}],["repeat",{"_index":23189,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["repeatcommand",{"_index":13515,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["repeatcommand(commandname",{"_index":11665,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["repeats",{"_index":14798,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{}}}],["repetitions",{"_index":11666,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["replace",{"_index":1826,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["replace('exception",{"_index":10943,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["replace(/\\\\n/g",{"_index":13921,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["replaced",{"_index":1753,"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":6381,"title":{},"body":{"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/TaskCopyService.html":{}}}],["replacemypassword",{"_index":265,"title":{},"body":{"controllers/AccountController.html":{}}}],["replacemypassword(currentuser",{"_index":298,"title":{},"body":{"controllers/AccountController.html":{}}}],["replicaset",{"_index":23668,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replikaset",{"_index":22990,"title":{},"body":{"todo.html":{}}}],["replset",{"_index":23672,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replyto",{"_index":1310,"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":2425,"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":7003,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["repo.integration.spec.js",{"_index":23540,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repo.ts",{"_index":23274,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["repo/account.repo",{"_index":625,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["repo/share",{"_index":18851,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["repoloader",{"_index":12166,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.populate",{"_index":12168,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.repo.findbyid(objectid",{"_index":12169,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["report",{"_index":7887,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reported",{"_index":23371,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["reporting",{"_index":23580,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reports",{"_index":23551,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repos",{"_index":5390,"title":{},"body":{"modules/CommonToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/VideoConferenceModule.html":{}}}],["repositories",{"_index":22972,"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":17096,"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":17099,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repository.findbyuseridandtoolid(user.id",{"_index":17098,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repotype",{"_index":12136,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["represent",{"_index":22667,"title":{},"body":{"license.html":{}}}],["representation",{"_index":576,"title":{},"body":{"injectables/AccountLookupService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["represents",{"_index":5533,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["req",{"_index":10337,"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":17434,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.header('range",{"_index":10814,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.headers.authorization",{"_index":16303,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["req.headers.origin",{"_index":21838,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["req.method",{"_index":17433,"title":{},"body":{"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{}}}],["req.on('close",{"_index":10349,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{}}}],["req.params",{"_index":17474,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.params[0]}/${params.fwulearningcontent",{"_index":10815,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.query",{"_index":17475,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.route.path",{"_index":17438,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.url",{"_index":17473,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.user",{"_index":17472,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["reqinfo",{"_index":17447,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.baseurl",{"_index":17452,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.fullpath",{"_index":17453,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.method",{"_index":17451,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.routepath",{"_index":17454,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqroute",{"_index":17428,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["request",{"_index":141,"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":4643,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["request(event",{"_index":10711,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["request.body",{"_index":13837,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["request.body.ts",{"_index":111,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["request.body.ts:10",{"_index":5497,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:14",{"_index":14529,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:20",{"_index":5505,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:24",{"_index":14530,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:30",{"_index":5512,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.contextid",{"_index":5988,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.contexttype",{"_index":5989,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.displayname",{"_index":5990,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper",{"_index":15542,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["request.mapper.ts",{"_index":5977,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:113",{"_index":9207,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:117",{"_index":9214,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:123",{"_index":9218,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:129",{"_index":9221,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:135",{"_index":9225,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:141",{"_index":9211,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:158",{"_index":9229,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:17",{"_index":18229,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:170",{"_index":9205,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:21",{"_index":20368,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:22",{"_index":5984,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:5",{"_index":16135,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["request.mapper.ts:6",{"_index":20366,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:60",{"_index":9234,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:7",{"_index":5981,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:8",{"_index":18231,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:87",{"_index":9201,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.response.ts",{"_index":20650,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:10",{"_index":20652,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:16",{"_index":20656,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:23",{"_index":20654,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:30",{"_index":20651,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.schoolid",{"_index":18235,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.schooltoolid",{"_index":5987,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.toolid",{"_index":18234,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.toolversion",{"_index":5991,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.ts",{"_index":20643,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:10",{"_index":20644,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:4",{"_index":20645,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:6",{"_index":20647,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:8",{"_index":20646,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.user.user",{"_index":22978,"title":{},"body":{"todo.html":{}}}],["request.version",{"_index":18236,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request/bbb",{"_index":2087,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["request/response",{"_index":23335,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["request_denied",{"_index":5517,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["request_url",{"_index":5544,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requestauthcode",{"_index":11425,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthcode(userid",{"_index":11435,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthtoken",{"_index":16204,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestauthtoken(currentuser",{"_index":16225,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestdata",{"_index":14580,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requested",{"_index":5570,"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":5545,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requested_scope",{"_index":5546,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requesthandler",{"_index":17431,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo",{"_index":17415,"title":{"classes/RequestInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo(req",{"_index":17448,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requesting",{"_index":15722,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["requestloggingbody",{"_index":12099,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["requestlogginginterceptor",{"_index":17464,"title":{"injectables/RequestLoggingInterceptor.html":{}},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["requestmapper",{"_index":20820,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["requestoptions",{"_index":14578,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requests",{"_index":13059,"title":{},"body":{"modules/InterceptorModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requesttimeout",{"_index":17778,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TimeoutInterceptor.html":{}}}],["requesttimeout(serverconfig().incoming_request_timeout_copy_api",{"_index":17793,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["requesttimeoutexception",{"_index":20333,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["requesttoken",{"_index":1155,"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":15533,"title":{},"body":{"injectables/OAuthService.html":{}}}],["requesturl",{"_index":5568,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["require",{"_index":11810,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["require('../../../../../src/services/authentication/configuration",{"_index":13153,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["require('../../../../config/globals",{"_index":10880,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["require('rimraf",{"_index":10412,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["require_tld",{"_index":21870,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["required",{"_index":142,"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/GetMetaTagDataBody.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":277,"title":{},"body":{"controllers/AccountController.html":{}}}],["requiredemptyelement",{"_index":4134,"title":{},"body":{"injectables/CardService.html":{}}}],["requiredemptyelements",{"_index":4100,"title":{},"body":{"injectables/CardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{},"classes/CreateCardBodyParams.html":{}}}],["requiredpermissions",{"_index":1610,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LessonRule.html":{},"injectables/NewsUc.html":{},"injectables/PermissionService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiredpermissions.every((p",{"_index":1658,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.length",{"_index":1671,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.some((p",{"_index":1673,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["requireduserrole",{"_index":2459,"title":{},"body":{"classes/BaseUc.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["requireduserrole(userroleenum",{"_index":3082,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["requirement",{"_index":13425,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"license.html":{}}}],["requirements",{"_index":22638,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["requires",{"_index":8968,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/GlobalValidationPipe.html":{},"injectables/MetaTagExtractorService.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiring",{"_index":22445,"title":{},"body":{"license.html":{}}}],["res",{"_index":6681,"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":10352,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.cookie",{"_index":1449,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["res.cookie('jwt",{"_index":16294,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.data.destroy",{"_index":10350,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.redirect(errorredirect.tostring",{"_index":16259,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(oauthprocessdto.redirect",{"_index":16295,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(redirect",{"_index":16277,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(response.redirect",{"_index":16311,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.send(externaltoollogo.logo",{"_index":20571,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.set",{"_index":10817,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.setheader('cache",{"_index":20568,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.setheader('content",{"_index":20567,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.status(httpstatus.ok",{"_index":10823,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.status(httpstatus.partial_content",{"_index":10822,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.statuscode",{"_index":17441,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resave",{"_index":18643,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["reset",{"_index":219,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":13259,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["resetoauthconfigcache",{"_index":13530,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resinfo",{"_index":17449,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resinfo.statuscode",{"_index":17455,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resizeandconvert",{"_index":16738,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resizeandconvert(original",{"_index":16746,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resolve",{"_index":5521,"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":13805,"title":{},"body":{"injectables/LdapService.html":{}}}],["resolved",{"_index":2968,"title":{},"body":{"injectables/BoardCopyService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ResolvedGroupDto.html":{},"license.html":{}}}],["resolvedgroup",{"_index":11213,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource",{"_index":11230,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.externalid",{"_index":11231,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.systemid",{"_index":11232,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.id",{"_index":11227,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.name",{"_index":11228,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.organizationid",{"_index":11238,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.users.map",{"_index":11233,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroupdto",{"_index":11051,"title":{"classes/ResolvedGroupDto.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["resolvedgroupuser",{"_index":11290,"title":{"classes/ResolvedGroupUser.html":{}},"body":{"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["resolvedgroupusers",{"_index":11294,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["resolvedtools",{"_index":9410,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolvedtools.filter((tool",{"_index":9417,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolveduser",{"_index":20932,"title":{},"body":{"controllers/UserController.html":{},"injectables/UserService.html":{}}}],["resolvedusermapper",{"_index":17489,"title":{"classes/ResolvedUserMapper.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"controllers/UserController.html":{}}}],["resolvedusermapper.maptoresponse(user",{"_index":20933,"title":{},"body":{"controllers/UserController.html":{}}}],["resolveduserresponse",{"_index":17493,"title":{"classes/ResolvedUserResponse.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"controllers/UserController.html":{}}}],["resolvedusers",{"_index":11289,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["resolvedusers.filter((groupuser",{"_index":11304,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["resolvepermissions",{"_index":12173,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["resolvepermissions(user",{"_index":16639,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles",{"_index":16636,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles(inputroles",{"_index":16644,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolveplaceholder(placeholder",{"_index":11830,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["resolverepo",{"_index":17402,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["resolverepo(type",{"_index":12161,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["resolves",{"_index":12955,"title":{},"body":{"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resolvetokenrequest",{"_index":15665,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resolvetokenrequest(observable",{"_index":15671,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resource",{"_index":5176,"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":20520,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["resource.caninline",{"_index":5193,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resource.ts",{"_index":5212,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:15",{"_index":5362,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:16",{"_index":5216,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:18",{"_index":5363,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:19",{"_index":5217,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:22",{"_index":5357,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:23",{"_index":5218,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:26",{"_index":5358,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:30",{"_index":5359,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:61",{"_index":5364,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:81",{"_index":5219,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource_link_id",{"_index":7187,"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":5356,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceelements",{"_index":5354,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceid",{"_index":15445,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourcename",{"_index":15446,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourceownerpasswordgrant",{"_index":12684,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceownerpasswordgrant(username",{"_index":12687,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceprops",{"_index":5100,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resources",{"_index":5098,"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":8087,"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":2201,"title":{},"body":{"injectables/BBBService.html":{}}}],["resp.everyattendeejoinsmuted",{"_index":22080,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.everybodyjoinsasmoderator",{"_index":22081,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.moderatormustapprovejoinrequests",{"_index":22082,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.options",{"_index":8105,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.permission",{"_index":8097,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["resp.state",{"_index":8095,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.url",{"_index":8100,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["respect",{"_index":22561,"title":{},"body":{"license.html":{}}}],["respective",{"_index":23375,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["respobservable",{"_index":11586,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["respond",{"_index":23013,"title":{},"body":{"todo.html":{}}}],["responds",{"_index":15075,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["responsability",{"_index":23191,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response",{"_index":819,"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":{},"controllers/MetaTagExtractorController.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":20371,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.authorization_endpoint",{"_index":13550,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.body",{"_index":1512,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.builder.ts",{"_index":6326,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{},"classes/FileResponseBuilder.html":{}}}],["response.builder.ts:4",{"_index":6328,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["response.builder.ts:5",{"_index":10319,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["response.config",{"_index":9297,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.contentlength",{"_index":10828,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contentrange",{"_index":10821,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contenttype",{"_index":10826,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contextid",{"_index":6011,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.contexttype",{"_index":6012,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.data",{"_index":9913,"title":{},"body":{"classes/FileDtoBuilder.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/HydraOauthUc.html":{}}}],["response.data.access_token",{"_index":13562,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.data.destroy",{"_index":10824,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.displayname",{"_index":6013,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.dto",{"_index":23207,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response.end_session_endpoint",{"_index":13551,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.error",{"_index":1506,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.factory",{"_index":4087,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.factory.ts",{"_index":1907,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:14",{"_index":1914,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:16",{"_index":1917,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:18",{"_index":1918,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:20",{"_index":1916,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:22",{"_index":1912,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:26",{"_index":5642,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:38",{"_index":5641,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.headers['content",{"_index":9909,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["response.id",{"_index":6008,"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":20369,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.ishidden",{"_index":9298,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.issuer",{"_index":13548,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwks_uri",{"_index":13552,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwt",{"_index":15481,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.logourl",{"_index":6016,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.mapper",{"_index":3669,"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":777,"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":20841,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["response.mapper.ts:111",{"_index":18089,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:13",{"_index":14558,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["response.mapper.ts:14",{"_index":18251,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:15",{"_index":17673,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:16",{"_index":781,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:17",{"_index":17571,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:18",{"_index":11206,"title":{},"body":{"classes/GroupResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:19",{"_index":16150,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:21",{"_index":6022,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:23",{"_index":16144,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:27",{"_index":8754,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:28",{"_index":17569,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:29",{"_index":17675,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:32",{"_index":14373,"title":{},"body":{"classes/LinkElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:33",{"_index":19071,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:34",{"_index":18083,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:35",{"_index":18248,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:37",{"_index":11209,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:38",{"_index":6028,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:40",{"_index":16147,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:43",{"_index":19169,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:44",{"_index":9317,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:46",{"_index":6025,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["response.mapper.ts:47",{"_index":17678,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:5",{"_index":14556,"title":{},"body":{"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["response.mapper.ts:52",{"_index":11212,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:53",{"_index":18092,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:6",{"_index":783,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:64",{"_index":18085,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:68",{"_index":18087,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:7",{"_index":3667,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:71",{"_index":9308,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:73",{"_index":17677,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:75",{"_index":9313,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:79",{"_index":9315,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:8",{"_index":8755,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:83",{"_index":9311,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:9",{"_index":17570,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:93",{"_index":17676,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.message",{"_index":17856,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["response.name",{"_index":9295,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.opennewtab",{"_index":9299,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.parameters",{"_index":6014,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.redirect",{"_index":15482,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.refresh_token",{"_index":20370,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.schoolid",{"_index":18241,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.schooltoolid",{"_index":6010,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.set",{"_index":6703,"title":{},"body":{"controllers/CourseController.html":{}}}],["response.sourceid",{"_index":10560,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["response.state",{"_index":21999,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["response.status",{"_index":18242,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.status(errorresponse.code).json(errorresponse",{"_index":10926,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["response.subject",{"_index":15960,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["response.token_endpoint",{"_index":13549,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.toolid",{"_index":17047,"title":{},"body":{"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.toolversion",{"_index":6015,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.ts",{"_index":17147,"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":17152,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:17",{"_index":17153,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:24",{"_index":17150,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:31",{"_index":17151,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:39",{"_index":17149,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.url",{"_index":9296,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.userid",{"_index":17048,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["response.version",{"_index":9300,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response?.data",{"_index":1081,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["response].ts",{"_index":23268,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["response_type",{"_index":11521,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["response_types",{"_index":15706,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["responsedata",{"_index":15687,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsefilerecords",{"_index":10222,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["responseinfo",{"_index":17439,"title":{"classes/ResponseInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responseinfo(res",{"_index":17450,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsejson",{"_index":1093,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.authtoken",{"_index":1095,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.userid",{"_index":1094,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsemapper",{"_index":18055,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{},"controllers/ToolSchoolController.html":{}}}],["responses",{"_index":11346,"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":17430,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetime((req",{"_index":17460,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetoken",{"_index":15568,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["responsetoken.data",{"_index":15691,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetokenobservable",{"_index":15685,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetype",{"_index":8886,"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":23332,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["responsibility",{"_index":23156,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["responsible",{"_index":22774,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ressouces",{"_index":23806,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressource",{"_index":23807,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressources",{"_index":20710,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application.html":{}}}],["resssource",{"_index":23014,"title":{},"body":{"todo.html":{}}}],["rest",{"_index":8224,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["restart",{"_index":21133,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restarted",{"_index":14971,"title":{},"body":{"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["restartmigration",{"_index":17513,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(@currentuser",{"_index":21200,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(currentuser",{"_index":21155,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(schoolid",{"_index":21355,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(userid",{"_index":17516,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["restartuserloginmigrationuc",{"_index":17511,"title":{"injectables/RestartUserLoginMigrationUc.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["restmethod",{"_index":23646,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["restore",{"_index":17905,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"controllers/TaskController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["restore(@param",{"_index":19667,"title":{},"body":{"controllers/TaskController.html":{}}}],["restore(paths",{"_index":17922,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["restore(urlparams",{"_index":19642,"title":{},"body":{"controllers/TaskController.html":{}}}],["restored",{"_index":23531,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["restoreforuser(user",{"_index":12559,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["restricted",{"_index":13419,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["restricting",{"_index":22555,"title":{},"body":{"license.html":{}}}],["restriction",{"_index":22733,"title":{},"body":{"license.html":{}}}],["restrictions",{"_index":22731,"title":{},"body":{"license.html":{}}}],["result",{"_index":1559,"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.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":19074,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["result.dto.ts",{"_index":18136,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:4",{"_index":18138,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:6",{"_index":18137,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.image?.url",{"_index":14844,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["result.push",{"_index":13466,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["result.push(room",{"_index":7598,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["result.query",{"_index":18547,"title":{},"body":{"classes/Scope.html":{}}}],["result.reduce((alloweddos",{"_index":4188,"title":{},"body":{"injectables/CardUc.html":{}}}],["result.success",{"_index":8046,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["result[sortby",{"_index":12879,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["resultelement",{"_index":7578,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["resulting",{"_index":22414,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["resultmap",{"_index":17198,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["results",{"_index":103,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":8045,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["results.map((account",{"_index":13618,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["results.push(mapped",{"_index":8186,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["resultuser",{"_index":21612,"title":{},"body":{"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ret",{"_index":13630,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/LegacySchoolService.html":{}}}],["ret.attdbcaccountid",{"_index":13638,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcsystemid",{"_index":13634,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcuserid",{"_index":13636,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["retaccountid",{"_index":13676,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["retains",{"_index":22684,"title":{},"body":{"license.html":{}}}],["retried",{"_index":11622,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrieve",{"_index":15079,"title":{},"body":{"controllers/NewsController.html":{}}}],["retry",{"_index":11620,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrycount",{"_index":11610,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrydelay",{"_index":11611,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retryflags",{"_index":11618,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["return",{"_index":349,"title":{},"body":{"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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":{},"classes/UnknownQueryTypeLoggableException.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":1950,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["returned",{"_index":482,"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":21148,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["returning",{"_index":6218,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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/UnknownQueryTypeLoggableException.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":23454,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["reuse",{"_index":5501,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["reused",{"_index":23283,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["revalidate",{"_index":20570,"title":{},"body":{"controllers/ToolController.html":{}}}],["revert.service.ts",{"_index":21324,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:13",{"_index":21328,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:7",{"_index":21326,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["reverted",{"_index":21138,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["revertpublished",{"_index":19627,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["revertpublished(urlparams",{"_index":19645,"title":{},"body":{"controllers/TaskController.html":{}}}],["revertpublished(userid",{"_index":20046,"title":{},"body":{"injectables/TaskUC.html":{}}}],["revertuserloginmigration",{"_index":21325,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revertuserloginmigration(userloginmigration",{"_index":21327,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["review",{"_index":23594,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reviewers",{"_index":22341,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["reviewing",{"_index":22920,"title":{},"body":{"license.html":{}}}],["revised",{"_index":22875,"title":{},"body":{"license.html":{}}}],["revokeconsentparams",{"_index":16000,"title":{"classes/RevokeConsentParams.html":{}},"body":{"controllers/OauthProviderController.html":{},"classes/RevokeConsentParams.html":{}}}],["revokeconsentsession",{"_index":15970,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["revokeconsentsession(@currentuser",{"_index":16061,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(currentuser",{"_index":15999,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(user",{"_index":16180,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["revokeconsentsession(userid",{"_index":16194,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["revokematch",{"_index":12062,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["rewindsequence",{"_index":460,"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":15721,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["rich",{"_index":2819,"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":17526,"title":{"classes/RichText.html":{}},"body":{"classes/RichText.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["richtextcontentbody",{"_index":5714,"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":2808,"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":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["richtextelement.id",{"_index":17370,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.inputformat",{"_index":5745,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.text",{"_index":5742,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelementcontent",{"_index":17556,"title":{"classes/RichTextElementContent.html":{}},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementcontentbody",{"_index":8247,"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":3151,"title":{"entities/RichTextElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementnodefactory",{"_index":3493,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodefactory.build",{"_index":3517,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodeprops",{"_index":17564,"title":{"interfaces/RichTextElementNodeProps.html":{}},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementprops",{"_index":17554,"title":{"interfaces/RichTextElementProps.html":{}},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["richtextelementresponse",{"_index":3710,"title":{"classes/RichTextElementResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{}}}],["richtextelementresponsemapper",{"_index":5650,"title":{"classes/RichTextElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper.getinstance",{"_index":5637,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["richtextelementresponsemapper.instance",{"_index":17574,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["richtext})@decodehtmlentities",{"_index":19935,"title":{},"body":{"classes/TaskResponse.html":{}}}],["rid",{"_index":4781,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["right",{"_index":22678,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rights",{"_index":22397,"title":{},"body":{"license.html":{}}}],["rimraf",{"_index":10411,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"dependencies.html":{}}}],["rimraf.sync(folderpath",{"_index":10426,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["risk",{"_index":22894,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rmq",{"_index":10916,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["ro",{"_index":979,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocket",{"_index":17582,"title":{},"body":{"modules/RocketChatModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket.chat",{"_index":23667,"title":{"additional-documentation/nestjs-application/rocket.chat.html":{}},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat",{"_index":12203,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["rocket_chat_admin_password=huhudbildungscloud",{"_index":23718,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_admin_user=admin",{"_index":23717,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_options",{"_index":17584,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["rocket_chat_uri=\"http://localhost:3000",{"_index":23716,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat",{"_index":988,"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":23715,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchaterror",{"_index":985,"title":{"classes/RocketChatError.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror(e",{"_index":1080,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror.prototype",{"_index":1005,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatgroupmodel",{"_index":969,"title":{"interfaces/RocketChatGroupModel.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatmodule",{"_index":17579,"title":{"modules/RocketChatModule.html":{}},"body":{"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rocketchatmodule.forroot",{"_index":18625,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["rocketchatoptions",{"_index":964,"title":{"interfaces/RocketChatOptions.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatservice",{"_index":1014,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["role",{"_index":276,"title":{"entities/Role.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AuthorizationHelper.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BaseUc.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":{},"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":{},"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":12566,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["role.factory",{"_index":21098,"title":{},"body":{"classes/UserFactory.html":{}}}],["role.id",{"_index":7150,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["role.mapper.ts",{"_index":14630,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.mapper.ts:13",{"_index":14633,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.name",{"_index":4603,"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":4654,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["role.params.ts",{"_index":20188,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:11",{"_index":20189,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:7",{"_index":20190,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.resolvepermissions",{"_index":1661,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["role.roles.isinitialized(true",{"_index":20268,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roleadmin",{"_index":12412,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleattributenamemapping",{"_index":12409,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roledto",{"_index":4572,"title":{"classes/RoleDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["roledtos",{"_index":17651,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolefactory",{"_index":20240,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["rolefactory.build",{"_index":20242,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["rolefactory.buildwithid",{"_index":20244,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["roleid",{"_index":4696,"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":21061,"title":{},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["rolemapper",{"_index":17593,"title":{"classes/RoleMapper.html":{}},"body":{"classes/RoleMapper.html":{},"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(entities",{"_index":17658,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(roles",{"_index":17656,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitytodto(entity",{"_index":17654,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapping",{"_index":14635,"title":{},"body":{"classes/LtiRoleMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolemapping[rolename",{"_index":14643,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolemapping[source.personenkontexte[0].rolle",{"_index":18111,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["rolemodule",{"_index":1355,"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":4602,"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":12024,"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":23813,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["rolename.student",{"_index":9803,"title":{},"body":{"injectables/FeathersRosterService.html":{},"classes/GroupUcMapper.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":14640,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolename.teacher",{"_index":9802,"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":14636,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenamemapper",{"_index":12875,"title":{"classes/RoleNameMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/RoleNameMapper.html":{}}}],["rolenamemapper.maptodomain(query.role",{"_index":12902,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenamemapper.maptoresponse(role",{"_index":12885,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenames",{"_index":12021,"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":14642,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenosc",{"_index":12413,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["rolepermissions",{"_index":12615,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roleref",{"_index":21717,"title":{},"body":{"injectables/UserService.html":{}}}],["roleref.id",{"_index":7153,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["roleref.name",{"_index":13130,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["rolereference",{"_index":7147,"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":16456,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolerepo",{"_index":17608,"title":{"injectables/RoleRepo.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["roles",{"_index":3078,"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":12614,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roles.length",{"_index":16499,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["roles.map((role",{"_index":16459,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{}}}],["roles.map(async",{"_index":20267,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roles[0].id",{"_index":16500,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolesandpermissions",{"_index":16651,"title":{},"body":{"injectables/PermissionService.html":{}}}],["roleservice",{"_index":4682,"title":{"injectables/RoleService.html":{}},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/OidcProvisioningService.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["rolestudent",{"_index":12410,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleteacher",{"_index":12411,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roletype",{"_index":12405,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleuc",{"_index":17609,"title":{"injectables/RoleUc.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleUc.html":{}}}],["rollback",{"_index":17964,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["rollbackmigration",{"_index":18397,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["rollbackmigration(originalschooldo",{"_index":18417,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["rollbackmigration(userdocopy",{"_index":21515,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["rolle",{"_index":18049,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["rollen",{"_index":18031,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["rom",{"_index":22687,"title":{},"body":{"license.html":{}}}],["room",{"_index":7490,"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":8144,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{}}}],["roomboarddtofactory",{"_index":8217,"title":{"injectables/RoomBoardDTOFactory.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["roomboardelementdto",{"_index":8142,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["roomboardelementtypes",{"_index":3404,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.column_board",{"_index":8206,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.lesson",{"_index":8195,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.task",{"_index":8191,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardresponsemapper",{"_index":13864,"title":{"injectables/RoomBoardResponseMapper.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{}}}],["roomelementurlparams",{"_index":17726,"title":{"classes/RoomElementUrlParams.html":{}},"body":{"classes/RoomElementUrlParams.html":{},"controllers/RoomsController.html":{}}}],["roomid",{"_index":1038,"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":7519,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["roomlist.includes(room",{"_index":7590,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["roomname",{"_index":1030,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rooms",{"_index":7494,"title":{},"body":{"classes/DashboardEntity.html":{},"controllers/RoomsController.html":{}}}],["rooms.authorisation.service",{"_index":8165,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["rooms.foreach((room",{"_index":7596,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["rooms.service",{"_index":6725,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["roomsauthorisationservice",{"_index":8126,"title":{"injectables/RoomsAuthorisationService.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{}}}],["roomscontroller",{"_index":13867,"title":{"controllers/RoomsController.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["roomsservice",{"_index":6714,"title":{"injectables/RoomsService.html":{}},"body":{"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["roomsuc",{"_index":13865,"title":{"injectables/RoomsUc.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{},"injectables/RoomsUc.html":{}}}],["roomurlparams",{"_index":17729,"title":{"classes/RoomUrlParams.html":{}},"body":{"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{}}}],["root",{"_index":2364,"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":3103,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["rootboarddo.context?.type",{"_index":3105,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rooted",{"_index":5331,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["rootid",{"_index":3101,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["rootpath",{"_index":12398,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roster",{"_index":9715,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts",{"_index":9714,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts:100",{"_index":9743,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:137",{"_index":9738,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:145",{"_index":9747,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:153",{"_index":9736,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:163",{"_index":9740,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:169",{"_index":9735,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:199",{"_index":9754,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:211",{"_index":9758,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:222",{"_index":9756,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:232",{"_index":9751,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:53",{"_index":9733,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:63",{"_index":9749,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:78",{"_index":9745,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["route",{"_index":9655,"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":17445,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routename",{"_index":1498,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["routenameinput",{"_index":20285,"title":{},"body":{"classes/TestApiClient.html":{}}}],["routepath",{"_index":17418,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routes",{"_index":22313,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["routingkey",{"_index":1119,"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":22789,"title":{},"body":{"license.html":{}}}],["rp",{"_index":11954,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["rpc",{"_index":17853,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["rpcmessage",{"_index":10596,"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":10697,"title":{"classes/RpcMessageProducer.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["rpcmessageproducer:12",{"_index":10712,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:21",{"_index":10708,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:29",{"_index":10710,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rs.initiate({\"_id",{"_index":23676,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs0",{"_index":23673,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs256",{"_index":1401,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["rs384",{"_index":1402,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rs512",{"_index":1403,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rsa",{"_index":15678,"title":{},"body":{"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["rss",{"_index":6922,"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":1817,"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":5451,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["rule.haspermission(user",{"_index":1823,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["rule.isapplicable(user",{"_index":17893,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rulemanager",{"_index":1705,"title":{"injectables/RuleManager.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/RuleManager.html":{}}}],["rules",{"_index":1717,"title":{},"body":{"modules/AuthorizationModule.html":{},"classes/BaseUc.html":{},"injectables/RuleManager.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rules.length",{"_index":17895,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rules[0",{"_index":17897,"title":{},"body":{"injectables/RuleManager.html":{}}}],["run",{"_index":22309,"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":23481,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["running",{"_index":2113,"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":21817,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["runs",{"_index":22302,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runtime",{"_index":1392,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["rxjs",{"_index":961,"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":963,"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":1581,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BoardDoRepo.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["s3",{"_index":8032,"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":17934,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3_config",{"_index":17935,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3client",{"_index":8020,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["s3clientadapter",{"_index":10849,"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":18004,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["s3clientadapter:createbucket",{"_index":17943,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientadapter:deletedirectory",{"_index":17990,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientmap",{"_index":8007,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["s3clientmodule",{"_index":10672,"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":23848,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([s3config",{"_index":10687,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([storageconfig",{"_index":16726,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["s3config",{"_index":6334,"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":22933,"title":{},"body":{"license.html":{}}}],["safety",{"_index":22322,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sale",{"_index":22797,"title":{},"body":{"license.html":{}}}],["salt",{"_index":2134,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["same",{"_index":2145,"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":9648,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["samesite",{"_index":16287,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["saml",{"_index":23609,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["sample",{"_index":9841,"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":23492,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["samples",{"_index":23300,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservice",{"_index":23493,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservicemethod(username",{"_index":23381,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["sampleucmethod(user",{"_index":23347,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["sanis",{"_index":18023,"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":23060,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sanisgrouprole",{"_index":18032,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisgrouprole.student",{"_index":18100,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouprole.teacher",{"_index":18099,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype",{"_index":18022,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype.class",{"_index":18102,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.ktid",{"_index":18121,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.rollen",{"_index":18122,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupusers",{"_index":18116,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenresponse",{"_index":18024,"title":{"interfaces/SanisGruppenResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenzugehoerigkeitresponse",{"_index":18028,"title":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["sanisgrupperesponse",{"_index":18015,"title":{"interfaces/SanisGruppeResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["sanislaufzeitresponse",{"_index":18021,"title":{"interfaces/SanisLaufzeitResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["sanisnameresponse",{"_index":18035,"title":{"interfaces/SanisNameResponse.html":{}},"body":{"interfaces/SanisNameResponse.html":{},"interfaces/SanisPersonResponse.html":{}}}],["sanisorganisationresponse",{"_index":18038,"title":{"interfaces/SanisOrganisationResponse.html":{}},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["sanispersonenkontextresponse",{"_index":18046,"title":{"interfaces/SanisPersonenkontextResponse.html":{}},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanispersonresponse",{"_index":18041,"title":{"interfaces/SanisPersonResponse.html":{}},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanisprovisioningstrategy",{"_index":16922,"title":{"injectables/SanisProvisioningStrategy.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["sanisresponse",{"_index":18062,"title":{"interfaces/SanisResponse.html":{}},"body":{"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisresponsemapper",{"_index":16923,"title":{"injectables/SanisResponseMapper.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole",{"_index":18050,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lehr",{"_index":18094,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.leit",{"_index":18096,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lern",{"_index":18095,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.orgadmin",{"_index":18097,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanissonstigegruppenzugehoerigeresponse",{"_index":11243,"title":{"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"interfaces/SanisGruppenResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisstrategy",{"_index":16936,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["sanissystem",{"_index":21378,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanissystem.id",{"_index":21382,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanitize",{"_index":22270,"title":{},"body":{"dependencies.html":{}}}],["sanitizehtml",{"_index":7118,"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":7119,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text_ck5",{"_index":19764,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sanitizer",{"_index":22965,"title":{},"body":{"todo.html":{}}}],["sanitizerichtext",{"_index":5709,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RichText.html":{}}}],["sanitizerichtext(content",{"_index":17534,"title":{},"body":{"classes/RichText.html":{}}}],["sanitizerichtext(this.content.alternativetext",{"_index":5723,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.caption",{"_index":5720,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.text",{"_index":5743,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizing",{"_index":23208,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["satisfied",{"_index":9684,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["satisfies",{"_index":313,"title":{},"body":{"controllers/AccountController.html":{}}}],["satisfy",{"_index":9680,"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":3303,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["save(entities",{"_index":716,"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":2280,"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":11268,"title":{},"body":{"injectables/GroupService.html":{}}}],["save(school",{"_index":14095,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["save(systemdto",{"_index":19550,"title":{},"body":{"injectables/SystemService.html":{}}}],["save(user",{"_index":21694,"title":{},"body":{"injectables/UserService.html":{}}}],["save.dto",{"_index":402,"title":{},"body":{"classes/AccountDto.html":{}}}],["save.dto.ts",{"_index":788,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:13",{"_index":791,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:17",{"_index":799,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:21",{"_index":801,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:26",{"_index":796,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:30",{"_index":798,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:34",{"_index":792,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:38",{"_index":800,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:42",{"_index":797,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:46",{"_index":795,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:50",{"_index":793,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:54",{"_index":790,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:57",{"_index":789,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:9",{"_index":794,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.visitor",{"_index":3311,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["save.visitor.ts",{"_index":17321,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:109",{"_index":17343,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:125",{"_index":17344,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:139",{"_index":17345,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:152",{"_index":17346,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:165",{"_index":17341,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:181",{"_index":17338,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:188",{"_index":17332,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:196",{"_index":17335,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:202",{"_index":17329,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:36",{"_index":17327,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:40",{"_index":17333,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:54",{"_index":17340,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:68",{"_index":17339,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:81",{"_index":17336,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:95",{"_index":17342,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveall",{"_index":2246,"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":2282,"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":21696,"title":{},"body":{"injectables/UserService.html":{}}}],["saveallusersmatches",{"_index":12754,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(@currentuser",{"_index":12823,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(currentuser",{"_index":12771,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["savecontextexternaltool",{"_index":6092,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["savecontextexternaltool(contextexternaltool",{"_index":6104,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saved",{"_index":9498,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["savedcontextexternaltool",{"_index":6109,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saveddomainobject",{"_index":9059,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["saveddos",{"_index":2292,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["saveddos[0",{"_index":2294,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["savedentity",{"_index":11175,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedgroup",{"_index":11277,"title":{},"body":{"injectables/GroupService.html":{}}}],["savedmigration",{"_index":21368,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["savedpassword",{"_index":14402,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["savedprops",{"_index":11178,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedschool",{"_index":16454,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["saveduser",{"_index":16472,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{}}}],["saveduser.id",{"_index":16475,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["savedusers",{"_index":21709,"title":{},"body":{"injectables/UserService.html":{}}}],["saverecursive",{"_index":17325,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saverecursive(boardnode",{"_index":17334,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveschoolexternaltool",{"_index":18273,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveschoolexternaltool(schoolexternaltool",{"_index":18286,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveuninitialized",{"_index":18644,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["savevisitor",{"_index":3341,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savevisitor.save(domainobject",{"_index":3344,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savewithoutflush",{"_index":683,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["savewithoutflush(account",{"_index":702,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["savewithoutflush(user",{"_index":21606,"title":{},"body":{"injectables/UserRepo.html":{}}}],["saying",{"_index":22634,"title":{},"body":{"license.html":{}}}],["sc",{"_index":3928,"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":17458,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["sc_domain",{"_index":12246,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["sc_theme",{"_index":4899,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["scan",{"_index":10234,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanned",{"_index":10125,"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":1135,"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":1173,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.reason",{"_index":10229,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.status",{"_index":10228,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.virus_detected",{"_index":1170,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.virus_signature",{"_index":1171,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresultdto",{"_index":10216,"title":{"classes/ScanResultDto.html":{}},"body":{"classes/FileRecordMapper.html":{},"controllers/FileSecurityController.html":{},"classes/ScanResultDto.html":{}}}],["scanresultparams",{"_index":6306,"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":10233,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_detected",{"_index":10227,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_signature",{"_index":10230,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scans",{"_index":11719,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["scanstatus",{"_index":6257,"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":10169,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.error",{"_index":10172,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.pending",{"_index":10124,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.verified",{"_index":10178,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.wont_check",{"_index":10175,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scdomain",{"_index":13427,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["scenario",{"_index":23438,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["scenarios",{"_index":23429,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["schema",{"_index":3689,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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":23272,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemas",{"_index":23273,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemaversion",{"_index":5303,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["school",{"_index":654,"title":{},"body":{"interfaces/AccountParams.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"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":20412,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["school(params",{"_index":23769,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["school(value",{"_index":12571,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["school._id",{"_index":13027,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["school.controller",{"_index":13934,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.controller.ts",{"_index":13937,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:101",{"_index":20807,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:121",{"_index":20803,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:28",{"_index":13951,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:46",{"_index":20814,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:51",{"_index":13946,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:61",{"_index":20810,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:79",{"_index":20818,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.do.ts",{"_index":13974,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:11",{"_index":13979,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:13",{"_index":13980,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:15",{"_index":13983,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:17",{"_index":13981,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:19",{"_index":13982,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:21",{"_index":13985,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:23",{"_index":13978,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:26",{"_index":13984,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:28",{"_index":13986,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:31",{"_index":13976,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:9",{"_index":13977,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.dto",{"_index":15819,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["school.dto.ts",{"_index":8530,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:2",{"_index":8533,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:4",{"_index":8534,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:6",{"_index":8532,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.entity",{"_index":6588,"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":6804,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["school.factory.ts",{"_index":14002,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["school.features",{"_index":14098,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.filter((f",{"_index":14100,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.includes(feature",{"_index":14099,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features?.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":15566,"title":{},"body":{"injectables/OAuthService.html":{}}}],["school.id",{"_index":14938,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolValidationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["school.module",{"_index":13932,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.module.ts",{"_index":14025,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["school.name",{"_index":16445,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["school.officialschoolnumber",{"_index":1904,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["school.previousexternalid",{"_index":13853,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.previousexternalid}/${username}`.tolowercase",{"_index":13856,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.repo.ts",{"_index":14027,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:19",{"_index":14030,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:24",{"_index":14038,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:28",{"_index":14033,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:35",{"_index":14035,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.rule.ts",{"_index":14071,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:12",{"_index":14072,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:15",{"_index":14074,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:21",{"_index":14073,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.schoolyear",{"_index":21010,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.service.ts",{"_index":14076,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:10",{"_index":14083,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:16",{"_index":14092,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:21",{"_index":14094,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:29",{"_index":14087,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:35",{"_index":14085,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:41",{"_index":14089,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:47",{"_index":14096,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.systems",{"_index":13827,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.systems.includes(systemid",{"_index":13828,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{}}}],["school.systems.push(systemid",{"_index":16449,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school.systems?.filter((systemid",{"_index":21381,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["school.uc.ts",{"_index":14107,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:101",{"_index":14111,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:16",{"_index":14109,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:26",{"_index":14116,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:77",{"_index":14114,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school/controller/dto/migration.body.ts",{"_index":14925,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:12",{"_index":14928,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:21",{"_index":14927,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:30",{"_index":14926,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.response.ts",{"_index":14968,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:14",{"_index":14974,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:20",{"_index":14973,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:26",{"_index":14972,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:31",{"_index":14969,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:8",{"_index":14975,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/school.params.ts",{"_index":18482,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/dto/school.params.ts:11",{"_index":18483,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/legacy",{"_index":13936,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school/error/school",{"_index":18473,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school/legacy",{"_index":13929,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["school/mapper/migration.mapper.ts",{"_index":14949,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/mapper/migration.mapper.ts:7",{"_index":14952,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/repo/schoolyear.repo.ts",{"_index":18522,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:11",{"_index":18524,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:7",{"_index":18525,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/service/federal",{"_index":9862,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["school/service/legacy",{"_index":14075,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school/service/school",{"_index":18528,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["school/service/validation/school",{"_index":18509,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["school/types",{"_index":16439,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school/uc/dto/oauth",{"_index":15861,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["school/uc/legacy",{"_index":14106,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school?.id",{"_index":16531,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["school_external_tools",{"_index":12186,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["school_in_migration",{"_index":18360,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["school_migration_failed",{"_index":18385,"title":{},"body":{"classes/SchoolMigrationError.html":{}}}],["school_number_duplicate",{"_index":18476,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school_number_missing",{"_index":18481,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["schooldo",{"_index":13086,"title":{},"body":{"classes/IservMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schooldo.externalid",{"_index":13090,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.features",{"_index":21386,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":21387,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.push(schoolfeatures.oauth_provisioning_enabled",{"_index":21388,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.name",{"_index":13089,"title":{},"body":{"classes/IservMapper.html":{}}}],["schooldo.officialschoolnumber",{"_index":13091,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.previousexternalid",{"_index":18464,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems",{"_index":18462,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems.push(targetsystemid",{"_index":18463,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldocopy",{"_index":18434,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolentity",{"_index":644,"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":14046,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolexclusive",{"_index":18684,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["schoolexternal",{"_index":18178,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltool",{"_index":1836,"title":{"classes/SchoolExternalTool.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":20806,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool.id",{"_index":8625,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltool.name",{"_index":18256,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.schoolid",{"_index":1893,"title":{},"body":{"injectables/AutoSchoolIdStrategy.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.status",{"_index":18259,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolid",{"_index":8629,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolversion",{"_index":18258,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse",{"_index":18165,"title":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20462,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplateresponse",{"_index":18167,"title":{"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltooldto",{"_index":18232,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolentity",{"_index":5848,"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":18216,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["schoolexternaltoolfactory",{"_index":18172,"title":{"classes/SchoolExternalToolFactory.html":{}},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolfactory.define(schoolexternaltool",{"_index":18177,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolid",{"_index":5807,"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":18179,"title":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{}},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolids",{"_index":5919,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolmodule",{"_index":5882,"title":{"modules/SchoolExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["schoolexternaltoolparams",{"_index":20812,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolparams.schoolid",{"_index":20822,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolpostparams",{"_index":18188,"title":{"classes/SchoolExternalToolPostParams.html":{}},"body":{"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolprops",{"_index":18157,"title":{"interfaces/SchoolExternalToolProps.html":{}},"body":{"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["schoolexternaltoolquery",{"_index":18202,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolqueryinput",{"_index":18314,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["schoolexternaltoolrefdo",{"_index":5775,"title":{"classes/SchoolExternalToolRefDO.html":{}},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schoolexternaltoolrepo",{"_index":1744,"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":18226,"title":{"injectables/SchoolExternalToolRequestMapper.html":{}},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse",{"_index":18237,"title":{"classes/SchoolExternalToolResponse.html":{}},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponsemapper",{"_index":18243,"title":{"injectables/SchoolExternalToolResponseMapper.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apibadrequestresponse({type",{"_index":20817,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20802,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolrule",{"_index":1706,"title":{"injectables/SchoolExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["schoolexternaltools",{"_index":8607,"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":8621,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["schoolexternaltools.length",{"_index":9814,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltools.map",{"_index":9424,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolscope",{"_index":18204,"title":{"classes/SchoolExternalToolScope.html":{}},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolsearchlistresponse",{"_index":18252,"title":{"classes/SchoolExternalToolSearchListResponse.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolsearchlistresponse(responses",{"_index":18255,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolsearchparams",{"_index":18266,"title":{"classes/SchoolExternalToolSearchParams.html":{}},"body":{"classes/SchoolExternalToolSearchParams.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolservice",{"_index":6124,"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":8666,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltoolsinuse.map",{"_index":8670,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltooluc",{"_index":18300,"title":{"injectables/SchoolExternalToolUc.html":{}},"body":{"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolvalidationservice",{"_index":18186,"title":{"injectables/SchoolExternalToolValidationService.html":{}},"body":{"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltoolversion",{"_index":18330,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolfactory",{"_index":6803,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.build",{"_index":6813,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.buildwithid",{"_index":20245,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["schoolfeatures",{"_index":12196,"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":21373,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.oauth_provisioning_enabled",{"_index":16453,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schoolforgroupnotfoundloggable",{"_index":16440,"title":{"classes/SchoolForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["schoolforgroupnotfoundloggable(externalgroup",{"_index":16483,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["schoolid",{"_index":4206,"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":{},"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":6819,"title":{},"body":{"entities/CourseGroup.html":{},"entities/Submission.html":{}}}],["schooliddoesnotmatchwithuserschoolid",{"_index":18346,"title":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["schoolidparams",{"_index":18356,"title":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{}},"body":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolinfo",{"_index":18377,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.id",{"_index":18378,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.name",{"_index":18379,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper",{"_index":15150,"title":{"classes/SchoolInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper.maptoresponse(news.school",{"_index":15155,"title":{},"body":{"classes/NewsMapper.html":{}}}],["schoolinforesponse",{"_index":15122,"title":{"classes/SchoolInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{}}}],["schoolinmigrationerror",{"_index":15625,"title":{"classes/SchoolInMigrationError.html":{}},"body":{"injectables/Oauth2Strategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["schoolinusermigrationendloggable",{"_index":18361,"title":{"classes/SchoolInUserMigrationEndLoggable.html":{}},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["schoolinusermigrationstartloggable",{"_index":18367,"title":{"classes/SchoolInUserMigrationStartLoggable.html":{}},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["schoolmigrated",{"_index":18442,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolmigrationerror",{"_index":18383,"title":{"classes/SchoolMigrationError.html":{}},"body":{"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationerror(details",{"_index":21427,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationflags",{"_index":18386,"title":{"interfaces/SchoolMigrationFlags.html":{}},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["schoolmigrationservice",{"_index":4514,"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":12402,"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":6949,"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":6947,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnumber",{"_index":14090,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["schoolnumber_prefix_regex",{"_index":18079,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["schoolnumberduplicateloggableexception",{"_index":18472,"title":{"classes/SchoolNumberDuplicateLoggableException.html":{}},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolnumberduplicateloggableexception(school.officialschoolnumber",{"_index":18515,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["schoolnumbermissingloggableexception",{"_index":18477,"title":{"classes/SchoolNumberMissingLoggableException.html":{}},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolnumbermissingloggableexception(schoolid",{"_index":18993,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["schoolnumbermissingloggableexception})@apiokresponse({description",{"_index":21171,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["schoolparameter",{"_index":7372,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["schoolparameters",{"_index":12185,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["schoolparams",{"_index":13941,"title":{"classes/SchoolParams.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/SchoolParams.html":{}}}],["schoolparams.schoolid",{"_index":13966,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolrepo",{"_index":12137,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolrolepermission",{"_index":12213,"title":{"classes/SchoolRolePermission.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolroles",{"_index":12216,"title":{"classes/SchoolRoles.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolrule",{"_index":23793,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["schools",{"_index":10115,"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":14044,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolservice",{"_index":1899,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.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":3266,"title":{"interfaces/SchoolSpecificFileCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicecopyparams",{"_index":18491,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicefactory",{"_index":3536,"title":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceimpl",{"_index":18500,"title":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyserviceimpl(this.filesstorageclientadapterservice",{"_index":18501,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceprops",{"_index":18494,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schooltomigrate",{"_index":16345,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schooltomigrate(currentuserid",{"_index":18420,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooltool",{"_index":5841,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["schooltool.school",{"_index":5951,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["schooltoolid",{"_index":5867,"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":5768,"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":12116,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["schooluc",{"_index":13962,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolvalidationservice",{"_index":14023,"title":{"injectables/SchoolValidationService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolyear",{"_index":4332,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"injectables/FederalStateService.html":{},"classes/GroupResponseMapper.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":12200,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolyear.factory",{"_index":14006,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyear?.name",{"_index":11312,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["schoolyearentity",{"_index":10835,"title":{"entities/SchoolYearEntity.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.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":14005,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory.build",{"_index":14017,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearquerytype",{"_index":4323,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["schoolyearrepo",{"_index":14024,"title":{"injectables/SchoolYearRepo.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearservice",{"_index":14022,"title":{"injectables/SchoolYearService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["schould",{"_index":7107,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{}}}],["schul",{"_index":2019,"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":11538,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ServerController.html":{},"additional-documentation/nestjs-application.html":{}}}],["schulcloudnextcloud",{"_index":16084,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["scope",{"_index":5504,"title":{"classes/Scope.html":{}},"body":{"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":23749,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope.addquery(allforcreator.query",{"_index":19884,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(allforfinishedcoursesandlessons.query",{"_index":19883,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(closedforopencoursesandlessons.query",{"_index":19882,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(parentidscope.query",{"_index":19897,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.afterduedateornone(filters.afterduedateornone",{"_index":19904,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.allowemptyquery(true",{"_index":5957,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byavailable(filters?.availableon",{"_index":19908,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byclasses(filters.classes",{"_index":12973,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bycontextid(query.context?.id",{"_index":5955,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycontexttype(query.context?.type",{"_index":5956,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycourseids([courseid",{"_index":19910,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.bycourseids(courseids",{"_index":14238,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.bycreator(creatorid",{"_index":15214,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bydraft(false",{"_index":19902,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfinished(filters.finished.userid",{"_index":19899,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfirstname(filters.firstname",{"_index":12965,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byhidden(filters.hidden",{"_index":14240,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.byid(query.id",{"_index":5953,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bylastname(filters.lastname",{"_index":12967,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byloginname(filters.loginname",{"_index":12969,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bymatches(filters.matches",{"_index":12975,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bypublished",{"_index":15210,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byrole(filters.role",{"_index":12971,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschool(school",{"_index":12963,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschoolid(query.schoolid",{"_index":18217,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byschooltoolid(query.schooltoolref?.schooltoolid",{"_index":5954,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bytargets(targets",{"_index":15209,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bytoolid(query.toolid",{"_index":18218,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byunpublished",{"_index":15213,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byusermatch(user",{"_index":12961,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.enum",{"_index":21924,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["scope.excludedraftsofothers(creatorid",{"_index":19912,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludedraftsofothers(parentids.creatorid",{"_index":19901,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludeunavailableofothers(parentids.creatorid",{"_index":19906,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.foractivecourses",{"_index":6996,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forallgrouptypes(userid",{"_index":6994,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forcourseid(courseid",{"_index":7005,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacher(userid",{"_index":7001,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacherorsubstituteteacher(userid",{"_index":7004,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.id",{"_index":21894,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.isflagged(true",{"_index":12977,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.name",{"_index":21455,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["scope.nofutureavailabledate",{"_index":19914,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.params.ts",{"_index":22123,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:12",{"_index":22127,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:8",{"_index":22125,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.query",{"_index":5950,"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":9835,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["scope.scope",{"_index":21900,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.target",{"_index":15323,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope.targetid",{"_index":20160,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.targetmodel",{"_index":20162,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.transient",{"_index":13907,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["scope.ts",{"_index":10292,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:10",{"_index":14287,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:13",{"_index":10299,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:15",{"_index":19540,"title":{},"body":{"classes/SystemScope.html":{}}}],["scope.ts:17",{"_index":19981,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:19",{"_index":10306,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:25",{"_index":10308,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:31",{"_index":10301,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:37",{"_index":15249,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:39",{"_index":19979,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:45",{"_index":19976,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:5",{"_index":14286,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:52",{"_index":19983,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:60",{"_index":19973,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:66",{"_index":19990,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:7",{"_index":10304,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:73",{"_index":19985,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:8",{"_index":15251,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:83",{"_index":19971,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:89",{"_index":19989,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:95",{"_index":19987,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.withldapconfig",{"_index":19518,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoauthconfig",{"_index":19520,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoidcconfig",{"_index":19522,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope:11",{"_index":6069,"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":6067,"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":6081,"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":6083,"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":6070,"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":15320,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope?.unpublished",{"_index":15303,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scoped",{"_index":20082,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopeid",{"_index":9656,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/IScopeInfo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["scopeinfo",{"_index":21885,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopeinfo.logouturl",{"_index":21910,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["scopeinfo.scopeid",{"_index":21902,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopemapping",{"_index":9236,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterdo.scope",{"_index":9333,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterparam.scope",{"_index":9282,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["scopename",{"_index":12242,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["scopeoperator",{"_index":6068,"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":21804,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopeparams.scope",{"_index":21841,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopepermission",{"_index":20081,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopepermissions",{"_index":20080,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scoperef",{"_index":18554,"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":21840,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scoperessource",{"_index":21896,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopes",{"_index":2555,"title":{},"body":{"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":12658,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.groups",{"_index":12652,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.profile",{"_index":12660,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes/rules/permissions/user",{"_index":23832,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scraper",{"_index":14882,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"dependencies.html":{}}}],["scraper/dist/lib/types",{"_index":14883,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["scripts",{"_index":22503,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["sdk",{"_index":22183,"title":{},"body":{"dependencies.html":{}}}],["sdk/client",{"_index":8031,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["sdk/lib",{"_index":17933,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["search",{"_index":808,"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":9350,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.params.ts:13",{"_index":9352,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["search.params.ts:8",{"_index":9353,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.query.params.ts",{"_index":830,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:14",{"_index":835,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:22",{"_index":836,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["searchability",{"_index":23342,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["searchaccounts",{"_index":266,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchaccounts(currentuser",{"_index":309,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchbyusername",{"_index":684,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchbyusername(username",{"_index":704,"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":20480,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["searching",{"_index":13037,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["searchoptions",{"_index":12716,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["searchparams",{"_index":21274,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchparams.userid",{"_index":21277,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchquery",{"_index":9287,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["searchuser",{"_index":12399,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["searchusername",{"_index":746,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchuserpassword",{"_index":12400,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["second",{"_index":2659,"title":{},"body":{"entities/Board.html":{},"injectables/S3ClientAdapter.html":{}}}],["secondarily",{"_index":22451,"title":{},"body":{"license.html":{}}}],["secondary",{"_index":22404,"title":{},"body":{"license.html":{}}}],["secondchar",{"_index":6658,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["seconds",{"_index":5510,"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":1426,"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":6339,"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":13682,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["secretorkey",{"_index":13188,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["secrets",{"_index":11850,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["secretvalue",{"_index":1590,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["section",{"_index":15719,"title":{},"body":{"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sections",{"_index":22605,"title":{},"body":{"license.html":{}}}],["secure",{"_index":16291,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["secure_launch_url",{"_index":5236,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["security",{"_index":9998,"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":10333,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:15",{"_index":10339,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:29",{"_index":10342,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["securitycheck",{"_index":9963,"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":10137,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheckstatus",{"_index":6282,"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":511,"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":7869,"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":11644,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["seed.service",{"_index":13325,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["seed.service.ts",{"_index":13700,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:13",{"_index":13704,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:20",{"_index":13709,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:35",{"_index":13705,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:60",{"_index":13706,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:94",{"_index":13707,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:99",{"_index":13708,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seedcollections",{"_index":7860,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["seedcollections(options",{"_index":7868,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["seeddata",{"_index":23422,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["seeddatabasecollectionsfromfactories(collections",{"_index":11741,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeddatabasecollectionsfromfilesystem(collections",{"_index":11756,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeded",{"_index":13654,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["seededcollectionswithamount",{"_index":11752,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seededcollectionswithamount.push(`${collectionname}:${importeddocumentsamount",{"_index":11776,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeding",{"_index":23616,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["seeds",{"_index":11643,"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":23003,"title":{},"body":{"todo.html":{}}}],["segregation",{"_index":23166,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sehr",{"_index":4893,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["select",{"_index":23794,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["selectconfigureaction",{"_index":13341,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selectconfigureaction(newconfigs",{"_index":13368,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selected",{"_index":13830,"title":{},"body":{"injectables/LdapStrategy.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"todo.html":{}}}],["selectedrules",{"_index":17891,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule",{"_index":17869,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule(user",{"_index":17875,"title":{},"body":{"injectables/RuleManager.html":{}}}],["self",{"_index":23741,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sell",{"_index":22812,"title":{},"body":{"license.html":{}}}],["selling",{"_index":22796,"title":{},"body":{"license.html":{}}}],["semiconductor",{"_index":22435,"title":{},"body":{"license.html":{}}}],["senario",{"_index":23445,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["send",{"_index":1141,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"additional-documentation/nestjs-application.html":{}}}],["send(data",{"_index":1475,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/TestApiClient.html":{}}}],["send(params",{"_index":1483,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["send(requesttoken",{"_index":1153,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["sendauthenticationcodetokenrequest",{"_index":15666,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendauthenticationcodetokenrequest(tokenendpoint",{"_index":15673,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendhttpresponse",{"_index":10891,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sendhttpresponse(error",{"_index":10907,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sending",{"_index":23213,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sense",{"_index":1667,"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":19370,"title":{},"body":{"controllers/SystemController.html":{}}}],["sent",{"_index":19761,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sentence",{"_index":1241,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separable",{"_index":22645,"title":{},"body":{"license.html":{}}}],["separate",{"_index":13912,"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":15717,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["separately",{"_index":22591,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["seperate",{"_index":14182,"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":23223,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperation",{"_index":22301,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sequence",{"_index":461,"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":12842,"title":{},"body":{"classes/ImportUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}displayname",{"_index":19449,"title":{},"body":{"classes/SystemFactory.html":{}}}],["serialization",{"_index":19001,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"todo.html":{}}}],["serialize",{"_index":3826,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["serialize(documents",{"_index":3836,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serializedprimarykey",{"_index":2352,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["serializes",{"_index":3838,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serve",{"_index":22271,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["served",{"_index":23124,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server",{"_index":1962,"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":18621,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["server.console",{"_index":18577,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["server.module.ts",{"_index":14796,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["server.module.ts:36",{"_index":14802,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["server/blob/main/apps/server/src/modules/authorization/readme.md",{"_index":23143,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/config/readme.md",{"_index":23142,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/src/services/lesson/hooks/index.js#l232",{"_index":23825,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["server/overview.html",{"_index":23006,"title":{},"body":{"todo.html":{}}}],["server/pull/2729#pullrequestreview",{"_index":22983,"title":{},"body":{"todo.html":{}}}],["server/server.config",{"_index":632,"title":{},"body":{"modules/AccountModule.html":{}}}],["server_options_path='/tmp/config/server",{"_index":23629,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["serverconfig",{"_index":12260,"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":18556,"title":{"classes/ServerConsole.html":{}},"body":{"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{}}}],["serverconsolemodule",{"_index":18568,"title":{"modules/ServerConsoleModule.html":{}},"body":{"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["servercontroller",{"_index":18579,"title":{"controllers/ServerController.html":{}},"body":{"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servermodule",{"_index":18582,"title":{"modules/ServerModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["servermodules",{"_index":18622,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servers",{"_index":22415,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["servertestmodule",{"_index":18663,"title":{"modules/ServerTestModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["serves",{"_index":22495,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["service",{"_index":560,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnUc.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":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonModule.html":{},"injectables/LessonUC.html":{},"modules/LtiToolModule.html":{},"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorUc.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":23828,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["service.create(data",{"_index":8494,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["service.factory.ts",{"_index":18495,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:10",{"_index":18497,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:13",{"_index":18499,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.find",{"_index":9659,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.get",{"_index":23319,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.get(userid",{"_index":9654,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.mapper",{"_index":9395,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["service.mapper.ts",{"_index":9448,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.mapper.ts:7",{"_index":9451,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.module.ts",{"_index":16186,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["service.provider",{"_index":8488,"title":{},"body":{"injectables/EtherpadService.html":{},"modules/FeathersModule.html":{},"injectables/NexboardService.html":{}}}],["service.provider.ts",{"_index":9823,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.provider.ts:13",{"_index":9831,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:19",{"_index":9829,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:24",{"_index":9826,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:38",{"_index":9848,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.provider.ts:41",{"_index":9849,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.ts",{"_index":1681,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.ts:10",{"_index":1688,"title":{},"body":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["service.ts:5",{"_index":1682,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{}}}],["service/authorization.helper",{"_index":3356,"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/auto",{"_index":20637,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/board",{"_index":3259,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{}}}],["service/cache.service",{"_index":3894,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["service/column",{"_index":3542,"title":{},"body":{"modules/BoardModule.html":{}}}],["service/common",{"_index":6785,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["service/copy",{"_index":6411,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{}}}],["service/dto",{"_index":16243,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["service/dto/page",{"_index":16557,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["service/files",{"_index":10575,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/hydra.service",{"_index":11448,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{}}}],["service/id",{"_index":16132,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["service/keycloak",{"_index":13246,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"modules/KeycloakModule.html":{}}}],["service/launch",{"_index":20638,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/oauth",{"_index":15873,"title":{},"body":{"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["service/oauth.service",{"_index":11449,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{}}}],["service/oidc",{"_index":16525,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["service/preview.service",{"_index":10603,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/provisioning.service",{"_index":16927,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["service/recursive",{"_index":17195,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["service/rooms.service",{"_index":17834,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["service/school",{"_index":18488,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["service/submission",{"_index":8313,"title":{},"body":{"injectables/ElementUc.html":{}}}],["service/system",{"_index":19481,"title":{},"body":{"modules/SystemModule.html":{}}}],["service/user.service",{"_index":21581,"title":{},"body":{"modules/UserModule.html":{}}}],["servicedto",{"_index":20142,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["serviceoptions",{"_index":18897,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.context",{"_index":18899,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.expiresat",{"_index":18903,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoutputtypes",{"_index":17931,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["services",{"_index":9706,"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":628,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.service",{"_index":626,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.validation.service",{"_index":627,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/authentication.service",{"_index":1381,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{}}}],["services/dto/account.dto",{"_index":424,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["services/dto/team",{"_index":20182,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["services/dto/team.dto",{"_index":20143,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["services/ldap.service",{"_index":1382,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["serviceunavailableexception",{"_index":13655,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["servicing",{"_index":22899,"title":{},"body":{"license.html":{}}}],["session",{"_index":118,"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":16154,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_id",{"_index":16152,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_name",{"_index":16153,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.destroy((err",{"_index":16252,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["session.oauthloginstate",{"_index":16266,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["session.response.ts",{"_index":5584,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["session.response.ts:13",{"_index":5592,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:16",{"_index":5593,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:19",{"_index":5591,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:4",{"_index":5588,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session_id",{"_index":14534,"title":{},"body":{"classes/LoginResponse-1.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["session_token",{"_index":2096,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["sessionduration",{"_index":18632,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessionhandler",{"_index":16205,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessionhandler(session",{"_index":16228,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessions",{"_index":16056,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessions.map",{"_index":16058,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["set",{"_index":517,"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":1472,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(caseinsensitivenames",{"_index":5456,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["set(headerconst.accept",{"_index":1481,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(memberids",{"_index":12331,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["set(permissions",{"_index":12182,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["set(tasksubmitterids",{"_index":12532,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["setalternativetext(value",{"_index":9921,"title":{},"body":{"classes/FileElement.html":{}}}],["setcaption(value",{"_index":9918,"title":{},"body":{"classes/FileElement.html":{}}}],["setcompleted(value",{"_index":19126,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setcontext",{"_index":13886,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontext(context",{"_index":4758,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["setcontext(name",{"_index":13895,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontextexternaltoolid(value",{"_index":8721,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["setcookies",{"_index":11512,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setcookies.foreach((item",{"_index":11556,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setdescription(value",{"_index":14342,"title":{},"body":{"classes/LinkElement.html":{}}}],["setduedate(value",{"_index":19053,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["setgroupname",{"_index":10975,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setgroupname(newgroupname",{"_index":7532,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setheight(height",{"_index":3973,"title":{},"body":{"classes/Card.html":{}}}],["setheightbodyparams",{"_index":4013,"title":{"classes/SetHeightBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/SetHeightBodyParams.html":{}}}],["setimageurl(value",{"_index":14346,"title":{},"body":{"classes/LinkElement.html":{}}}],["setinputformat(value",{"_index":17546,"title":{},"body":{"classes/RichTextElement.html":{}}}],["setlearnrooms",{"_index":7481,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["setlearnrooms(rooms",{"_index":7520,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setmatch",{"_index":12755,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(urlparams",{"_index":12774,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(user",{"_index":12059,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["setmigration",{"_index":13939,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolid",{"_index":14115,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolparams",{"_index":13947,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["setmigrationmandatory",{"_index":20350,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(currentuser",{"_index":21162,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["setmigrationmandatory(schoolid",{"_index":21359,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(userid",{"_index":20353,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["setname(name",{"_index":10163,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["setpasswordpolicy",{"_index":13260,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["setrequireduserrole(userroleenum",{"_index":3065,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["sets",{"_index":4699,"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":20232,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setstrategy",{"_index":4554,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["setstrategy(strategy",{"_index":4567,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["settedlanguage",{"_index":21730,"title":{},"body":{"injectables/UserUc.html":{}}}],["settext(value",{"_index":17542,"title":{},"body":{"classes/RichTextElement.html":{}}}],["settimeout",{"_index":17995,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["settimeout(resolve",{"_index":11668,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["setting",{"_index":6953,"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":23334,"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":2184,"title":{},"body":{"injectables/BBBService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["settings.interface.ts",{"_index":11592,"title":{},"body":{"interfaces/IBbbSettings.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IVideoConferenceSettings.html":{}}}],["settings.response",{"_index":4082,"title":{},"body":{"classes/CardResponse.html":{}}}],["settings.response.ts",{"_index":22130,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:3",{"_index":22132,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:9",{"_index":22133,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settitle(title",{"_index":3969,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["settitle(value",{"_index":14339,"title":{},"body":{"classes/LinkElement.html":{}}}],["setup",{"_index":3457,"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":23625,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm",{"_index":23056,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:configure",{"_index":23666,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:seed",{"_index":23665,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setuppath",{"_index":11758,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["setupsessions",{"_index":18631,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setupsessions(consumer",{"_index":18657,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["seturl(value",{"_index":14338,"title":{},"body":{"classes/LinkElement.html":{}}}],["setuser(value",{"_index":20228,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setuserattribute",{"_index":12697,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserattribute(userid",{"_index":12724,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserid(value",{"_index":19129,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setuserstatus(authtoken",{"_index":1019,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["sha",{"_index":2219,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.digest('hex",{"_index":2223,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.update(callname",{"_index":2221,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha1",{"_index":2155,"title":{},"body":{"injectables/BBBService.html":{},"injectables/Lti11EncryptionService.html":{}}}],["shall",{"_index":17163,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["share",{"_index":18706,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenResponse.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"license.html":{}}}],["shared",{"_index":18688,"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":340,"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":4482,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/ColumnBoardService.html":{},"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":2181,"title":{},"body":{"injectables/BBBService.html":{}}}],["shared/common/utils/guard",{"_index":14409,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["shared/controller",{"_index":247,"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":{},"classes/MetaTagExtractorResponse.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":152,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["shared/controller/transformer",{"_index":10775,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["shared/core",{"_index":23290,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/domain",{"_index":99,"title":{},"body":{"classes/AbstractAccountService.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/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BaseDORepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ChangeLanguageParams.html":{},"entities/ClassEntity.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"injectables/MetaTagExtractorUc.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":1684,"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":3355,"title":{},"body":{"injectables/BoardDoRule.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.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":5779,"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":5710,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/domainobject/board/types",{"_index":2976,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["shared/domain/domainobject/ltitool.do",{"_index":11516,"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":8664,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/UserDORepo.html":{}}}],["shared/domain/domainobject/user.do",{"_index":7148,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserMigrationService.html":{}}}],["shared/domain/entity",{"_index":1655,"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":721,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["shared/domain/entity/base.entity",{"_index":4273,"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":17347,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/entity/external",{"_index":11133,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["shared/domain/entity/ltitool.entity",{"_index":7247,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/LtiToolDO.html":{}}}],["shared/domain/entity/materials.entity",{"_index":14815,"title":{},"body":{"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{}}}],["shared/domain/entity/school.entity",{"_index":11135,"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":21245,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["shared/domain/entity/user",{"_index":12198,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["shared/domain/entity/video",{"_index":22090,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["shared/domain/index",{"_index":15914,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["shared/domain/interface",{"_index":4914,"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":14178,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["shared/domain/interface/system",{"_index":12347,"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":21923,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["shared/domain/types",{"_index":2439,"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":{},"classes/ElementContentBody.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/NexboardService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/ShareTokenDO.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/UpdateElementContentBodyParams.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{}}}],["shared/domain/types/entity",{"_index":12267,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["shared/domain/types/input",{"_index":12455,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["shared/domain/types/session",{"_index":15858,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["shared/infra/antivirus",{"_index":6295,"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":10668,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["shared/infra/cache",{"_index":1371,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/OauthModule.html":{}}}],["shared/infra/cache/interface/cache",{"_index":13215,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["shared/infra/calendar",{"_index":22059,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/infra/calendar/dto/calendar",{"_index":3923,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/interface/calendar",{"_index":3921,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["shared/infra/calendar/mapper/calendar.mapper",{"_index":3938,"title":{},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/service/calendar.service",{"_index":3937,"title":{},"body":{"modules/CalendarModule.html":{}}}],["shared/infra/collaborative",{"_index":4579,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["shared/infra/console",{"_index":3451,"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":{},"modules/MetaTagExtractorModule.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["shared/infra/console/console",{"_index":7876,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["shared/infra/database",{"_index":10733,"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":10734,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["shared/infra/encryption",{"_index":8925,"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":1713,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"modules/LessonModule.html":{}}}],["shared/infra/feathers/feathers",{"_index":8487,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["shared/infra/file",{"_index":11681,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["shared/infra/identity",{"_index":599,"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":18617,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/metrics",{"_index":16866,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["shared/infra/oauth",{"_index":8924,"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":10670,"title":{},"body":{"modules/FilesStorageModule.html":{},"classes/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["shared/infra/rabbitmq",{"_index":8438,"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":10671,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{}}}],["shared/infra/rabbitmq/rpc",{"_index":10597,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{}}}],["shared/infra/redis",{"_index":18618,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/s3",{"_index":9881,"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":23314,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/repo",{"_index":227,"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":14720,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["shared/repo/base.repo",{"_index":722,"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":4622,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["shared/repo/scope",{"_index":9346,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["shared/repo/storageprovider",{"_index":8033,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["shared/repo/system/system",{"_index":19516,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["shared/repo/types/storageproviderencryptedstring.type",{"_index":12276,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["shared/repo/user/user",{"_index":21579,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["shared/repo/videoconference/video",{"_index":22060,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/testing",{"_index":3494,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/ClassFactory.html":{}}}],["shared/testing/factory/base.factory",{"_index":4307,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/LtiToolFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/role.factory",{"_index":20241,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/school.factory",{"_index":20238,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/teamuser.factory",{"_index":20133,"title":{},"body":{"classes/TeamFactory.html":{}}}],["shared/testing/factory/user.factory",{"_index":20239,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/types",{"_index":15115,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["shared/utils",{"_index":23291,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators",{"_index":23308,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators/text.validator.ts",{"_index":23294,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sharetoken",{"_index":6541,"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":18813,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["sharetoken.context",{"_index":18909,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.expiresat",{"_index":18833,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{}}}],["sharetoken.payload",{"_index":18832,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetoken.payload.parentid",{"_index":18912,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.payload.parenttype",{"_index":18860,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken.token",{"_index":18831,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenbodyparams",{"_index":18680,"title":{"classes/ShareTokenBodyParams.html":{}},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{}}}],["sharetokencontext",{"_index":18751,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype",{"_index":12264,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype.school",{"_index":18900,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper",{"_index":18696,"title":{"classes/ShareTokenContextTypeMapper.html":{}},"body":{"classes/ShareTokenContextTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper.maptoallowedauthorizationentitytype(context.contexttype",{"_index":18925,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontroller",{"_index":18699,"title":{"controllers/ShareTokenController.html":{}},"body":{"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokendo",{"_index":18747,"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":18760,"title":{"classes/ShareTokenFactory.html":{}},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenfactory.define",{"_index":18768,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenimportbodyparams",{"_index":18712,"title":{"classes/ShareTokenImportBodyParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{}}}],["sharetokeninfo",{"_index":18739,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninfo.parentname",{"_index":18788,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.parenttype",{"_index":18787,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.token",{"_index":18786,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfodto",{"_index":18775,"title":{"interfaces/ShareTokenInfoDto.html":{}},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninforesponse",{"_index":18727,"title":{"classes/ShareTokenInfoResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper",{"_index":18724,"title":{"classes/ShareTokenInfoResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper.maptoresponse(sharetokeninfo",{"_index":18742,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokeninforesponse})@apiresponse({status",{"_index":18721,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenparenttype",{"_index":12265,"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":18769,"title":{},"body":{"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.lesson",{"_index":18862,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.task",{"_index":18864,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper",{"_index":18789,"title":{"classes/ShareTokenParentTypeMapper.html":{}},"body":{"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(parenttype",{"_index":18927,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(payload.parenttype",{"_index":18918,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenpayload",{"_index":18753,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenpayloadresponse",{"_index":18793,"title":{"classes/ShareTokenPayloadResponse.html":{}},"body":{"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["sharetokenpayloadresponse(payload",{"_index":18829,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["sharetokenrepo",{"_index":18801,"title":{"injectables/ShareTokenRepo.html":{}},"body":{"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenresponse",{"_index":18728,"title":{"classes/ShareTokenResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper",{"_index":18725,"title":{"classes/ShareTokenResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper.maptoresponse(sharetoken",{"_index":18736,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenresponse})@apiresponse({status",{"_index":18708,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokens",{"_index":9964,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["sharetokenservice",{"_index":18834,"title":{"injectables/ShareTokenService.html":{}},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenstring",{"_index":12266,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/TokenGenerator.html":{}}}],["sharetokenuc",{"_index":18726,"title":{"injectables/ShareTokenUC.html":{}},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenurlparams",{"_index":18711,"title":{"classes/ShareTokenUrlParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenUrlParams.html":{}}}],["sharingapimodule",{"_index":18585,"title":{"modules/SharingApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["sharingmodule",{"_index":18942,"title":{"modules/SharingModule.html":{}},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["shit",{"_index":6593,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["short",{"_index":6896,"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":23584,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["shortid",{"_index":22244,"title":{},"body":{"dependencies.html":{}}}],["shorttitle",{"_index":6663,"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":9587,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["shouldskipconsent",{"_index":16087,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldskipconsent(tool",{"_index":16097,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldusermigrate",{"_index":14932,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["shouldusermigrate(externaluserid",{"_index":14935,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["show",{"_index":15275,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/SystemController.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["show_outdated_users",{"_index":12209,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["showoutdatedusers",{"_index":12210,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["sid",{"_index":14546,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["side",{"_index":2146,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sideeffects",{"_index":23843,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["sign",{"_index":14574,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"license.html":{}}}],["sign(key",{"_index":14575,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signalgorithm",{"_index":1415,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signature_method",{"_index":14582,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["significant",{"_index":22668,"title":{},"body":{"license.html":{}}}],["signing",{"_index":1414,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signoptions",{"_index":1377,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["similar",{"_index":22425,"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":23174,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["simplicity",{"_index":23019,"title":{},"body":{"todo.html":{}}}],["simplification",{"_index":23256,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["simplify",{"_index":23449,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["simply",{"_index":22320,"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":22859,"title":{},"body":{"license.html":{}}}],["sind",{"_index":4882,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["single",{"_index":3247,"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":3256,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single(boardnode",{"_index":3257,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single:latestexample",{"_index":23641,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["single:latestthe",{"_index":23642,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["singlecolumnboardresponse",{"_index":17674,"title":{"classes/SingleColumnBoardResponse.html":{}},"body":{"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["singlefileparams",{"_index":6307,"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":10760,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["situations",{"_index":23723,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["six",{"_index":10380,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["size",{"_index":818,"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":7649,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["skeleton",{"_index":2889,"title":{},"body":{"controllers/BoardController.html":{}}}],["skeleton.response",{"_index":4989,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["skeleton.response.ts",{"_index":4138,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:12",{"_index":4140,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:18",{"_index":4149,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:3",{"_index":4139,"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":{},"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":7200,"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":823,"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":23011,"title":{},"body":{"todo.html":{}}}],["slow",{"_index":11770,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["small",{"_index":23167,"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":14904,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sn",{"_index":12408,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["socketio",{"_index":22274,"title":{},"body":{"dependencies.html":{}}}],["software",{"_index":22361,"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":22655,"title":{},"body":{"license.html":{}}}],["sole",{"_index":22524,"title":{},"body":{"license.html":{}}}],["solely",{"_index":22532,"title":{},"body":{"license.html":{}}}],["solution",{"_index":3070,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"modules/ToolLaunchModule.html":{},"interfaces/UserBoardRoles.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["solutions",{"_index":22944,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["solve",{"_index":19915,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["somemethod",{"_index":23373,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["someotherservice",{"_index":23230,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["something",{"_index":12630,"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":23820,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sonstige",{"_index":18029,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sonstige_gruppenzugehoerige",{"_index":18027,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{}}}],["soon",{"_index":23733,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sort",{"_index":4449,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sort.id",{"_index":9465,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["sort.name",{"_index":9466,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sort.params.ts",{"_index":18961,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["sortby",{"_index":2987,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/ClassSortParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortby(resolved",{"_index":3057,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder",{"_index":2938,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder(resolved",{"_index":2966,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos",{"_index":3056,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos.map",{"_index":3058,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortedbsondocuments",{"_index":11787,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["sortedchildren",{"_index":3237,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["sortedimages",{"_index":14898,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sortedimages.find((i",{"_index":14905,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sortedimages.sort((a",{"_index":14899,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sortexternaltoolparams",{"_index":9228,"title":{"classes/SortExternalToolParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolController.html":{}}}],["sorthelper",{"_index":18966,"title":{"classes/SortHelper.html":{}},"body":{"classes/SortHelper.html":{}}}],["sortimportuserparams",{"_index":12762,"title":{"classes/SortImportUserParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["sorting",{"_index":19833,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["sorting.mapper.ts",{"_index":9461,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.mapper.ts:7",{"_index":9464,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.ts",{"_index":22979,"title":{},"body":{"todo.html":{}}}],["sortingparams",{"_index":4450,"title":{"classes/SortingParams.html":{}},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortingparams:10",{"_index":4454,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["sortingparams:14",{"_index":18964,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingparams:18",{"_index":4457,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingquery",{"_index":9230,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"controllers/ToolController.html":{}}}],["sortingquery.sortby",{"_index":11062,"title":{},"body":{"controllers/GroupController.html":{}}}],["sortingquery.sortorder",{"_index":9286,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"classes/ImportUserMapper.html":{}}}],["sortorder",{"_index":4451,"title":{},"body":{"classes/ClassSortParams.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/LessonRepo.html":{},"injectables/NewsUc.html":{},"classes/SortExternalToolParams.html":{},"classes/SortHelper.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.asc",{"_index":4455,"title":{},"body":{"classes/ClassSortParams.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/LessonRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.desc",{"_index":7041,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"injectables/NewsUc.html":{},"classes/SortHelper.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["sortordermap",{"_index":9231,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/ImportUserMapper.html":{},"injectables/UserDORepo.html":{}}}],["sortreferences",{"_index":7536,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["source",{"_index":4,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":11134,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["source.entity.ts",{"_index":8544,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["source.entity.ts:13",{"_index":8547,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.entity.ts:16",{"_index":8546,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.person.name.familienname",{"_index":18108,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.person.name.vorname",{"_index":18107,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].id",{"_index":18118,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.id.tostring",{"_index":18106,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.kennung.replace",{"_index":18103,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.name",{"_index":18105,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation?.id",{"_index":18126,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0]?.gruppen",{"_index":18112,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.pid",{"_index":18110,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.response",{"_index":11192,"title":{},"body":{"classes/GroupResponse.html":{}}}],["source.response.ts",{"_index":8554,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:5",{"_index":8556,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:8",{"_index":8555,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.ts",{"_index":8539,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:2",{"_index":8541,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:4",{"_index":8540,"title":{},"body":{"classes/ExternalSource.html":{}}}],["sourcecode",{"_index":23261,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sourcedescription",{"_index":6923,"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":18410,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["sourceid",{"_index":6239,"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":4213,"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":3382,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparent.removechild(child",{"_index":3384,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparentid",{"_index":17249,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourcepath",{"_index":6332,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["sources",{"_index":23075,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sourceschoolid",{"_index":4783,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourceschoolnumber",{"_index":21425,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["sourcesystem",{"_index":16565,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemid",{"_index":21215,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl",{"_index":21537,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl.tostring",{"_index":21540,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcetype",{"_index":15128,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["space",{"_index":536,"title":{},"body":{"classes/AccountFactory.html":{},"classes/OauthClientBody.html":{}}}],["spalten",{"_index":4852,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["spare",{"_index":22616,"title":{},"body":{"license.html":{}}}],["sparse",{"_index":6607,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["speak",{"_index":22385,"title":{},"body":{"license.html":{}}}],["spec.ts",{"_index":23098,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["special",{"_index":22695,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["specialized",{"_index":23165,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specific",{"_index":989,"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":22372,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["specification",{"_index":23333,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specifications",{"_index":23391,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specified",{"_index":4700,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/GuardAgainst.html":{},"license.html":{}}}],["specifies",{"_index":20653,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{},"license.html":{}}}],["specify",{"_index":22884,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["spies",{"_index":23508,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["spirit",{"_index":22876,"title":{},"body":{"license.html":{}}}],["split",{"_index":14120,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["splitting",{"_index":23827,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sql",{"_index":764,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["squashed",{"_index":23591,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["src",{"_index":23260,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["src/config",{"_index":10677,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core",{"_index":10500,"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":11050,"title":{},"body":{"controllers/GroupController.html":{}}}],["src/core/error/dto/error.response",{"_index":3863,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/interface",{"_index":3864,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/loggable/error.loggable",{"_index":13822,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["src/core/error/utils",{"_index":1160,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorMapper.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["src/core/logger",{"_index":1274,"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":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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":{},"modules/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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/SymetricKeyEncryptionService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.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":10782,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/core/logger/logger.module",{"_index":624,"title":{},"body":{"modules/AccountModule.html":{}}}],["src/core/logger/logging.utils",{"_index":10909,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["src/core/logger/types",{"_index":10783,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/imports",{"_index":13219,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["src/modules/authentication",{"_index":341,"title":{},"body":{"controllers/AccountController.html":{},"controllers/MetaTagExtractorController.html":{}}}],["src/modules/authentication/decorator/auth.decorator",{"_index":339,"title":{},"body":{"controllers/AccountController.html":{},"controllers/MetaTagExtractorController.html":{}}}],["src/modules/authorization",{"_index":14828,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["src/modules/database",{"_index":23543,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["src/modules/group",{"_index":11256,"title":{},"body":{"injectables/GroupRule.html":{}}}],["src/shared/domain/entity/lesson.entity",{"_index":5076,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["src/shared/domain/types",{"_index":21523,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["src/shared/infra/rabbitmq",{"_index":10601,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["sso",{"_index":15494,"title":{},"body":{"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sso.controller",{"_index":15701,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["sso.controller.ts",{"_index":16199,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:119",{"_index":16232,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:152",{"_index":16217,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:162",{"_index":16227,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:183",{"_index":16222,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:47",{"_index":16208,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:65",{"_index":16224,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:83",{"_index":16229,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:98",{"_index":16213,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.error",{"_index":11446,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso.error.ts",{"_index":15491,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:11",{"_index":15492,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:5",{"_index":15497,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:7",{"_index":15496,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:9",{"_index":15495,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso_auth_code_step",{"_index":11451,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["sso_internal_error",{"_index":15548,"title":{},"body":{"injectables/OAuthService.html":{}}}],["sso_jwt_problem",{"_index":13119,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["sso_user_not_found_after_provisioning",{"_index":21589,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso_user_notfound",{"_index":13126,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ssoauthenticationerror",{"_index":1724,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["ssoerror",{"_index":16251,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerror.errorcode",{"_index":16257,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerrorcode",{"_index":15498,"title":{},"body":{"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_jwt_problem",{"_index":15574,"title":{},"body":{"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_oauth_login_failed",{"_index":15493,"title":{},"body":{"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["ssologinquery",{"_index":16211,"title":{"classes/SSOLoginQuery.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/SSOLoginQuery.html":{}}}],["stack",{"_index":8826,"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/UnknownQueryTypeLoggableException.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":4865,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["standard",{"_index":22486,"title":{},"body":{"license.html":{}}}],["standards",{"_index":22488,"title":{},"body":{"license.html":{}}}],["start",{"_index":824,"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":21821,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["start.loggable.ts",{"_index":18368,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:11",{"_index":18370,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["start.loggable.ts:4",{"_index":18369,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:7",{"_index":21393,"title":{},"body":{"classes/UserLoginMigrationStartLoggable.html":{}}}],["startdate",{"_index":6542,"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":1285,"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":21216,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startet",{"_index":23817,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["starting",{"_index":22296,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["startmigration",{"_index":18984,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startmigration(@currentuser",{"_index":21196,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(currentuser",{"_index":21169,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(schoolid",{"_index":21361,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["startmigration(userid",{"_index":18987,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["startoauthauthorizationcodeflow",{"_index":16206,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthauthorizationcodeflow(session",{"_index":16230,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthlogin",{"_index":16318,"title":{},"body":{"injectables/OauthUc.html":{}}}],["startoauthlogin(session",{"_index":16328,"title":{},"body":{"injectables/OauthUc.html":{}}}],["starts",{"_index":14489,"title":{},"body":{"controllers/LoginController.html":{},"additional-documentation/nestjs-application.html":{}}}],["startschoolinusermigration",{"_index":12756,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["startschoolinusermigration(currentuser",{"_index":12778,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["starttime",{"_index":2114,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["startup",{"_index":23651,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["startuserloginmigrationuc",{"_index":18981,"title":{"injectables/StartUserLoginMigrationUc.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["state",{"_index":238,"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":15859,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["state.dto.ts",{"_index":15841,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:10",{"_index":15843,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:12",{"_index":15842,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:4",{"_index":15845,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:6",{"_index":15846,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:8",{"_index":15844,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.entity",{"_index":12202,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["state.entity.ts",{"_index":6514,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["state.entity.ts:14",{"_index":6518,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:21",{"_index":6521,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:23",{"_index":6520,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:25",{"_index":6519,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:31",{"_index":9853,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:34",{"_index":9850,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:37",{"_index":9852,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:40",{"_index":9851,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.enum",{"_index":21774,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["state.factory",{"_index":14004,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["state.mapper",{"_index":16240,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["state.mapper.ts",{"_index":15853,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.mapper.ts:5",{"_index":15857,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.repo.ts",{"_index":9856,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:12",{"_index":9857,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:8",{"_index":9858,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.response",{"_index":8093,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["state.service.ts",{"_index":9863,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:10",{"_index":9868,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:6",{"_index":9866,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["stated",{"_index":22517,"title":{},"body":{"license.html":{}}}],["statelessauthorizationparams",{"_index":16215,"title":{"classes/StatelessAuthorizationParams.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["statemapping",{"_index":22045,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statemapping[state",{"_index":22052,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statement",{"_index":22735,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["static",{"_index":413,"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":22571,"title":{},"body":{"license.html":{}}}],["statistics_reporting=false",{"_index":23702,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["status",{"_index":347,"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":{},"controllers/MetaTagExtractorController.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":2999,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyHelperService.html":{}}}],["status.copyentity.id",{"_index":3044,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.copyentity.title",{"_index":3045,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.elements?.foreach((elementstatus",{"_index":6448,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.enum",{"_index":1953,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["status.mapper",{"_index":19791,"title":{},"body":{"classes/TaskMapper.html":{}}}],["status.mapper.ts",{"_index":20012,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.mapper.ts:5",{"_index":20013,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.originalentity",{"_index":6451,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.response",{"_index":3748,"title":{},"body":{"classes/BoardTaskResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["status.response.ts",{"_index":3756,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:14",{"_index":20021,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:17",{"_index":20020,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:20",{"_index":20016,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:21",{"_index":3769,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:23",{"_index":20017,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:24",{"_index":3768,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:26",{"_index":20019,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:27",{"_index":3764,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:29",{"_index":20018,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:3",{"_index":3763,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:30",{"_index":3765,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:33",{"_index":3767,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:36",{"_index":3766,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.status",{"_index":3002,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status_code",{"_index":5493,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["statuscode",{"_index":987,"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":19794,"title":{},"body":{"classes/TaskMapper.html":{}}}],["statuses",{"_index":2965,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statuses.foreach((status",{"_index":3038,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statusmapping",{"_index":20842,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statusmapping[status",{"_index":20846,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statustext",{"_index":1910,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["stay",{"_index":23187,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["stemming",{"_index":11821,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["steps",{"_index":22398,"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":23756,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepshow",{"_index":23766,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stick",{"_index":23400,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["still",{"_index":6901,"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":11819,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/TimeoutInterceptor.html":{}}}],["storage",{"_index":3538,"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":4640,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.adapter",{"_index":4624,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage.adapter.ts",{"_index":4544,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:15",{"_index":4560,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:30",{"_index":4568,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:40",{"_index":4574,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:49",{"_index":4566,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:58",{"_index":4563,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:67",{"_index":4570,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.config",{"_index":10678,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["storage.config.ts",{"_index":11977,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["storage.const",{"_index":1165,"title":{},"body":{"injectables/AntivirusService.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{}}}],["storage.consumer.ts",{"_index":10577,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:14",{"_index":10582,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:31",{"_index":10588,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:48",{"_index":10592,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:63",{"_index":10590,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.controller",{"_index":4678,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage.controller.ts",{"_index":4632,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.controller.ts:32",{"_index":4646,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.mapper.ts",{"_index":10617,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:15",{"_index":10625,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:33",{"_index":10629,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:39",{"_index":10623,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:49",{"_index":10627,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:53",{"_index":10626,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:65",{"_index":10631,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.module",{"_index":10501,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{}}}],["storage.module.ts",{"_index":4669,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{}}}],["storage.params.ts",{"_index":6288,"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":6357,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:103",{"_index":6355,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:106",{"_index":6356,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:113",{"_index":16765,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:118",{"_index":16767,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:12",{"_index":10238,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:126",{"_index":16763,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:16",{"_index":10235,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:20",{"_index":10237,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:27",{"_index":10438,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:32",{"_index":10435,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:36",{"_index":10437,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:42",{"_index":10062,"title":{},"body":{"classes/FileParams.html":{}}}],["storage.params.ts:48",{"_index":8121,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:52",{"_index":8120,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:58",{"_index":18141,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:62",{"_index":18142,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:66",{"_index":18140,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:72",{"_index":18960,"title":{},"body":{"classes/SingleFileParams.html":{}}}],["storage.params.ts:79",{"_index":17414,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["storage.params.ts:85",{"_index":6354,"title":{},"body":{"classes/CopyFilesOfParentParams.html":{}}}],["storage.params.ts:91",{"_index":6294,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:95",{"_index":6291,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.producer",{"_index":10524,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{}}}],["storage.producer.ts",{"_index":10696,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:18",{"_index":10700,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:28",{"_index":10702,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:37",{"_index":10706,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:46",{"_index":10703,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.response.ts",{"_index":6250,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["storage.response.ts:22",{"_index":10282,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:26",{"_index":10284,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:29",{"_index":10285,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:32",{"_index":10290,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:35",{"_index":10288,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:38",{"_index":10289,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:41",{"_index":10280,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:44",{"_index":10283,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:47",{"_index":10286,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:50",{"_index":10287,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:53",{"_index":10281,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:56",{"_index":10207,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["storage.response.ts:6",{"_index":10279,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:66",{"_index":6320,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:74",{"_index":6321,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:77",{"_index":6323,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:81",{"_index":6322,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:84",{"_index":6252,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["storage.service",{"_index":4675,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["storage.service.ts",{"_index":4679,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:13",{"_index":4685,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:31",{"_index":4690,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:42",{"_index":4698,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:60",{"_index":4687,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:64",{"_index":4686,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:68",{"_index":4694,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.ts",{"_index":11930,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["storage.uc",{"_index":4652,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage.uc.ts",{"_index":4720,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:21",{"_index":4730,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:34",{"_index":4726,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:38",{"_index":4725,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:42",{"_index":4727,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:9",{"_index":4724,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage/collaborative",{"_index":4543,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage/controller/collaborative",{"_index":4631,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage/controller/dto/file",{"_index":6249,"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":18135,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["storage/controller/dto/team",{"_index":20163,"title":{},"body":{"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{}}}],["storage/controller/file",{"_index":10332,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["storage/controller/files",{"_index":10576,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage/dto/file.dto.ts",{"_index":9875,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:11",{"_index":9880,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:13",{"_index":9878,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:15",{"_index":9879,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:4",{"_index":9877,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/team",{"_index":20191,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["storage/entity",{"_index":10201,"title":{},"body":{"classes/FileRecordFactory.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"modules/ServerConsoleModule.html":{}}}],["storage/entity/filerecord.entity.ts",{"_index":10087,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["storage/entity/filerecord.entity.ts:104",{"_index":10100,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:107",{"_index":10107,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:110",{"_index":10102,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:113",{"_index":10101,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:116",{"_index":10106,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:120",{"_index":10104,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:124",{"_index":10096,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:131",{"_index":10092,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:138",{"_index":10097,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:145",{"_index":10094,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:45",{"_index":10316,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:48",{"_index":10314,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:51",{"_index":10315,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:54",{"_index":10313,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:57",{"_index":10312,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/files",{"_index":1164,"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":2984,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["storage/helper/test",{"_index":20315,"title":{},"body":{"classes/TestHelper.html":{}}}],["storage/interface/interfaces.ts",{"_index":10856,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{}}}],["storage/mapper/collaborative",{"_index":4581,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/mapper/copy",{"_index":6325,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["storage/mapper/file",{"_index":9894,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{}}}],["storage/mapper/files",{"_index":10616,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage/mapper/preview.builder.ts",{"_index":16668,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:33",{"_index":16674,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:8",{"_index":16672,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/team",{"_index":4671,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["storage/mapper/team.mapper",{"_index":4673,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage/mapper/team.mapper.ts",{"_index":20138,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/mapper/team.mapper.ts:12",{"_index":20141,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/repo/filerecord",{"_index":10291,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["storage/repo/filerecord.repo.ts",{"_index":10240,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:13",{"_index":10261,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:20",{"_index":10263,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:27",{"_index":10253,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:34",{"_index":10255,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:45",{"_index":10257,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:56",{"_index":10259,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:65",{"_index":10251,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:81",{"_index":10265,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:9",{"_index":10266,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/service/preview.service.ts",{"_index":16776,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:14",{"_index":16782,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:23",{"_index":16788,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:37",{"_index":16786,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:45",{"_index":16784,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:52",{"_index":16793,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:73",{"_index":16791,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:83",{"_index":16789,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/services/collaborative",{"_index":4674,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["storage/services/dto/team",{"_index":4576,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/TeamPermissionsDto.html":{}}}],["storage/services/dto/team.dto",{"_index":4578,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/services/dto/team.dto.ts",{"_index":20114,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:11",{"_index":20120,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:13",{"_index":20118,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:23",{"_index":20222,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:25",{"_index":20221,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:27",{"_index":20220,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:9",{"_index":20119,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/strategy/base.interface.strategy",{"_index":4580,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage/strategy/base.interface.strategy.ts",{"_index":11670,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:12",{"_index":11677,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:14",{"_index":11674,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:16",{"_index":11673,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:18",{"_index":11675,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.client",{"_index":4620,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.interface.ts",{"_index":11337,"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":4621,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts",{"_index":15345,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:129",{"_index":15371,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:158",{"_index":15358,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:172",{"_index":15357,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:192",{"_index":15360,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:202",{"_index":15364,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:21",{"_index":15351,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:38",{"_index":15367,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:59",{"_index":15355,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:75",{"_index":15352,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:98",{"_index":15365,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/uc/collaborative",{"_index":4719,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage:debug",{"_index":23086,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:dev",{"_index":23085,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:prod",{"_index":23087,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storageclient",{"_index":10848,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storageconfig",{"_index":16686,"title":{},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["storageconfig.connectionname",{"_index":16725,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["storagefilename",{"_index":8073,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageprovider",{"_index":8019,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["storageprovider.accesskeyid",{"_index":8065,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageprovider.endpointurl",{"_index":8060,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.region",{"_index":8062,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.secretaccesskey",{"_index":8066,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageproviderencryptedstringtype",{"_index":12275,"title":{"classes/StorageProviderEncryptedStringType.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviderentity",{"_index":8017,"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":9990,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageproviderrepo",{"_index":8014,"title":{"injectables/StorageProviderRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviders",{"_index":11687,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviders.foreach((storageprovider",{"_index":11861,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storageproviderscollectionname",{"_index":11686,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storagestrategy",{"_index":4625,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["store",{"_index":3880,"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":3899,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["stored",{"_index":20763,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["strategies",{"_index":11672,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{}}}],["strategy",{"_index":4550,"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":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["strategy.apply(oauthdata",{"_index":16965,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.createlaunchdata(userid",{"_index":20685,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.createlaunchrequest(toollaunchdata",{"_index":20680,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.getdata(input",{"_index":16961,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.interface.ts",{"_index":12589,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:6",{"_index":12590,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:8",{"_index":12592,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy/auto",{"_index":1832,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["strategy/basic",{"_index":2526,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["strategy/jwt",{"_index":1383,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{}}}],["strategy/jwt.strategy",{"_index":1385,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/ldap.strategy",{"_index":1386,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/local.strategy",{"_index":1387,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oauth2",{"_index":15453,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["strategy/oauth2.strategy",{"_index":1388,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oidc/service/oidc",{"_index":16928,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/sanis/response",{"_index":11247,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["strategy/sanis/sanis",{"_index":16929,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/tool",{"_index":12586,"title":{},"body":{"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{}}}],["stream",{"_index":1149,"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":17998,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["stream.on('data",{"_index":17999,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["streamablefile",{"_index":6682,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(fileresponse.data",{"_index":10651,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["streamablefile(res.data",{"_index":10351,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["streamablefile(response.data",{"_index":10825,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(result",{"_index":6706,"title":{},"body":{"controllers/CourseController.html":{}}}],["strict",{"_index":16290,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["string",{"_index":47,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.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/ClassesRepo.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":{},"injectables/ColumnUc.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":{},"injectables/ContentElementUpdateVisitor.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":{},"classes/GetMetaTagDataBody.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":{},"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/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":{},"classes/UserLoginMigrationMapper.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":10436,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string'})@isstring()@isnotempty",{"_index":10434,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string(object[key",{"_index":2226,"title":{},"body":{"injectables/BBBService.html":{}}}],["string).split",{"_index":12252,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["string).tostring(cryptojs.enc.base64",{"_index":16477,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["stringifiedmessage",{"_index":13887,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["stringifiedmessage(message",{"_index":13897,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stringifymessage",{"_index":14472,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["stringifymessage(message",{"_index":14478,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["strings",{"_index":572,"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":151,"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":12872,"title":{"classes/StringValidator.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(escapedclasses",{"_index":13049,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedfirstname",{"_index":13035,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedlastname",{"_index":13041,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedloginname",{"_index":13044,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedname",{"_index":21622,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(filters.name",{"_index":21619,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(query.classes",{"_index":12903,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.firstname",{"_index":12891,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.lastname",{"_index":12894,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.loginname",{"_index":12897,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.name",{"_index":21454,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["stringvalidator.isstring(value",{"_index":19037,"title":{},"body":{"classes/StringValidator.html":{}}}],["string}${additionalinfo",{"_index":13125,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["string}/api/v3/sso/hydra/${oauthclientid",{"_index":11581,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["strip",{"_index":22277,"title":{},"body":{"dependencies.html":{}}}],["strong",{"_index":9709,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["strongly",{"_index":23528,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["structure",{"_index":5330,"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":23254,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["structures",{"_index":13904,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stubstitution",{"_index":6635,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["stucture",{"_index":22977,"title":{},"body":{"todo.html":{}}}],["student",{"_index":3074,"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":9765,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["student_list",{"_index":12214,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentaccount",{"_index":665,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentcount",{"_index":4333,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["studententities",{"_index":9779,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentid",{"_index":12291,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["studentids",{"_index":6628,"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":6830,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentobjectids.map((id",{"_index":6832,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentpermissions",{"_index":21095,"title":{},"body":{"classes/UserFactory.html":{}}}],["studentpseudonyms",{"_index":9789,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentpseudonyms.map((pseudonym",{"_index":9797,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["students",{"_index":6543,"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":6793,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentswithid(numberofstudents",{"_index":6797,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentuser",{"_index":666,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentvisibility",{"_index":12204,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentwithid",{"_index":19105,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["studio",{"_index":22328,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["stuff",{"_index":22352,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["style",{"_index":23452,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["sub",{"_index":6227,"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":23841,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["subclass",{"_index":16748,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["subdividing",{"_index":22779,"title":{},"body":{"license.html":{}}}],["subelements",{"_index":7659,"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":9459,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["subject_types_supported",{"_index":15728,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjects",{"_index":12111,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["subjecttype",{"_index":15727,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjecttypeenum",{"_index":15725,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["sublicenses",{"_index":22809,"title":{},"body":{"license.html":{}}}],["sublicensing",{"_index":22534,"title":{},"body":{"license.html":{}}}],["submission",{"_index":2821,"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/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":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.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.controller.ts",{"_index":3679,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:44",{"_index":3698,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:65",{"_index":3703,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:89",{"_index":3692,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.coursegroup?.name",{"_index":19229,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.entity",{"_index":12460,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.getsubmitterids",{"_index":12530,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.grade",{"_index":19227,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.id",{"_index":19225,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.isgraded",{"_index":12522,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isgradedforuser(user",{"_index":12525,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmitted",{"_index":12518,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmittedforuser(user",{"_index":12524,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isusersubmitter(user",{"_index":19276,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.service",{"_index":20005,"title":{},"body":{"injectables/TaskService.html":{}}}],["submission.task",{"_index":19281,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.task.aresubmissionspublic",{"_index":19279,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.teammembers",{"_index":12311,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["submissioncontainer",{"_index":19185,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainer.addchild(submissionitem",{"_index":19191,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainercontentbody",{"_index":5715,"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":2811,"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":8329,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.every((child",{"_index":8326,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.filter(issubmissionitem",{"_index":19208,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.duedate",{"_index":5748,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelement.id",{"_index":17372,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelementcontent",{"_index":19060,"title":{"classes/SubmissionContainerElementContent.html":{}},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementcontentbody",{"_index":8250,"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":3154,"title":{"entities/SubmissionContainerElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerelementprops",{"_index":19058,"title":{"interfaces/SubmissionContainerElementProps.html":{}},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["submissioncontainerelementresponse",{"_index":4022,"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":3994,"title":{},"body":{"controllers/CardController.html":{}}}],["submissioncontainerelementresponsemapper",{"_index":5651,"title":{"classes/SubmissionContainerElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponsemapper.getinstance",{"_index":5638,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["submissioncontainerelementresponsemapper.instance",{"_index":19072,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerid",{"_index":19077,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainernodeprops",{"_index":19068,"title":{"interfaces/SubmissionContainerNodeProps.html":{}},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerurlparams",{"_index":3694,"title":{"classes/SubmissionContainerUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionContainerUrlParams.html":{}}}],["submissioncontainterelement",{"_index":19193,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainterelement.duedate",{"_index":19196,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontroller",{"_index":19079,"title":{"controllers/SubmissionController.html":{}},"body":{"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{}}}],["submissionfactory",{"_index":19103,"title":{"classes/SubmissionFactory.html":{}},"body":{"classes/SubmissionFactory.html":{}}}],["submissionfactory.define(submission",{"_index":19117,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["submissionid",{"_index":19294,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{}}}],["submissionitem",{"_index":2463,"title":{"classes/SubmissionItem.html":{}},"body":{"classes/BaseUc.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ContentElementService.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.children.filter(issubmissionitemcontent",{"_index":19178,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.completed",{"_index":17375,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.createdat",{"_index":19180,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.id",{"_index":17374,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.updatedat",{"_index":19179,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.userid",{"_index":2481,"title":{},"body":{"classes/BaseUc.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemfactory",{"_index":19145,"title":{"injectables/SubmissionItemFactory.html":{}},"body":{"injectables/SubmissionItemFactory.html":{}}}],["submissionitemid",{"_index":19201,"title":{},"body":{"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionitemnode",{"_index":3157,"title":{"entities/SubmissionItemNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemnodeprops",{"_index":19152,"title":{"interfaces/SubmissionItemNodeProps.html":{}},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemprops",{"_index":19140,"title":{"interfaces/SubmissionItemProps.html":{}},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["submissionitemresponse",{"_index":8283,"title":{"classes/SubmissionItemResponse.html":{}},"body":{"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemresponsemapper",{"_index":3712,"title":{"classes/SubmissionItemResponseMapper.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper.getinstance",{"_index":3719,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["submissionitemresponsemapper.instance",{"_index":19171,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponse})@apiresponse({status",{"_index":8267,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissionitems",{"_index":3715,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitems.filter((item",{"_index":19214,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.map((item",{"_index":19173,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemservice",{"_index":3534,"title":{"injectables/SubmissionItemService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemsresponse",{"_index":19172,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemuc",{"_index":2694,"title":{"injectables/SubmissionItemUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemurlparams",{"_index":3685,"title":{"classes/SubmissionItemUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionmapper",{"_index":19089,"title":{"classes/SubmissionMapper.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionMapper.html":{}}}],["submissionmapper.maptostatusresponse(submission",{"_index":19098,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrepo",{"_index":1745,"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":19096,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrule",{"_index":1707,"title":{"injectables/SubmissionRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{}}}],["submissions",{"_index":3680,"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":19846,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["submissions.filter((submission",{"_index":12517,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.foreach((submission",{"_index":12528,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.map((submission",{"_index":19097,"title":{},"body":{"controllers/SubmissionController.html":{},"injectables/TaskService.html":{}}}],["submissions.some((submission",{"_index":12523,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissionservice",{"_index":19282,"title":{"injectables/SubmissionService.html":{}},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["submissionsresponse",{"_index":3706,"title":{"classes/SubmissionsResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionsresponse(submissionitemsresponse",{"_index":19177,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionsresponse})@apiresponse({status",{"_index":3696,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submissionstatuslistresponse",{"_index":19091,"title":{"classes/SubmissionStatusListResponse.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionstatuslistresponse(submissionresponses",{"_index":19100,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionstatusresponse",{"_index":19224,"title":{"classes/SubmissionStatusResponse.html":{}},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionuc",{"_index":19090,"title":{"injectables/SubmissionUc.html":{}},"body":{"controllers/SubmissionController.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{}}}],["submissionurlparams",{"_index":19082,"title":{"classes/SubmissionUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionUrlParams.html":{}}}],["submitted",{"_index":3762,"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":12516,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitterids",{"_index":12529,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitters",{"_index":19226,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submitting",{"_index":19150,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submittingcoursegroupname",{"_index":19228,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["subpath",{"_index":20281,"title":{},"body":{"classes/TestApiClient.html":{}}}],["subpermissions",{"_index":16653,"title":{},"body":{"injectables/PermissionService.html":{}}}],["subprograms",{"_index":22509,"title":{},"body":{"license.html":{}}}],["subsection",{"_index":22624,"title":{},"body":{"license.html":{}}}],["subset",{"_index":5503,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application.html":{}}}],["subsitution",{"_index":3076,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substantial",{"_index":22663,"title":{},"body":{"license.html":{}}}],["substantially",{"_index":22777,"title":{},"body":{"license.html":{}}}],["substitution",{"_index":23163,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["substitution_teacher",{"_index":3075,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substitutionids",{"_index":6571,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherentities",{"_index":9781,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteacherids",{"_index":6632,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherpseudonyms",{"_index":9791,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteachers",{"_index":6544,"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":8254,"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":23471,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["succesfully",{"_index":16220,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["success",{"_index":982,"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":13804,"title":{},"body":{"injectables/LdapService.html":{},"controllers/LoginController.html":{},"classes/SuccessfulResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["successful.'})@apiresponse({status",{"_index":14492,"title":{},"body":{"controllers/LoginController.html":{}}}],["successfully",{"_index":330,"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":306,"title":{},"body":{"controllers/AccountController.html":{}}}],["successfully.'})@apiunauthorizedresponse({description",{"_index":20535,"title":{},"body":{"controllers/ToolController.html":{}}}],["successfulres",{"_index":11344,"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":19339,"title":{"classes/SuccessfulResponse.html":{}},"body":{"classes/SuccessfulResponse.html":{},"controllers/UserController.html":{}}}],["successfulresponse(result",{"_index":20936,"title":{},"body":{"controllers/UserController.html":{}}}],["successor",{"_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":{}}}],["such",{"_index":2663,"title":{},"body":{"entities/Board.html":{},"injectables/DashboardUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sue",{"_index":22819,"title":{},"body":{"license.html":{}}}],["suffice",{"_index":22671,"title":{},"body":{"license.html":{}}}],["sufficient",{"_index":9675,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["suffix",{"_index":23018,"title":{},"body":{"todo.html":{}}}],["suggested",{"_index":22961,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["suggests",{"_index":23384,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["suitable",{"_index":11567,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["suites",{"_index":23101,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sum",{"_index":21630,"title":{},"body":{"injectables/UserRepo.html":{}}}],["summary",{"_index":346,"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/MetaTagExtractorController.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":182,"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":{},"classes/UnknownQueryTypeLoggableException.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":13745,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super('ldapalreadypersisted",{"_index":13742,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super(_em",{"_index":5946,"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":10714,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["super(authorizationservice",{"_index":3801,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["super(config",{"_index":1981,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["super(domainobject.id",{"_index":7252,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["super(dto",{"_index":21981,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["super(e.response.statustext",{"_index":1001,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["super(message",{"_index":15469,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["super(oidcprovisioningservice",{"_index":18063,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["super(props",{"_index":403,"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":5782,"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":8099,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["super(total",{"_index":828,"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":1252,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["super.build",{"_index":2040,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["super.findbyid(id",{"_index":6849,"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":275,"title":{},"body":{"controllers/AccountController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["superhero.'})@apiresponse({status",{"_index":289,"title":{},"body":{"controllers/AccountController.html":{}}}],["supertest",{"_index":1435,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["supertest(this.app.gethttpserver",{"_index":1470,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest(this.app.gethttpserver()).get(path).set('authorization",{"_index":1468,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest.test",{"_index":1465,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supplement",{"_index":22698,"title":{},"body":{"license.html":{}}}],["support",{"_index":2343,"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":13160,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["supported",{"_index":1450,"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":23022,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["supports",{"_index":2397,"title":{},"body":{"classes/BaseFactory.html":{},"license.html":{}}}],["supportuserid",{"_index":13158,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["sure",{"_index":9425,"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":22854,"title":{},"body":{"license.html":{}}}],["survive",{"_index":22734,"title":{},"body":{"license.html":{}}}],["sustained",{"_index":22913,"title":{},"body":{"license.html":{}}}],["svg",{"_index":22951,"title":{},"body":{"modules.html":{}}}],["swagger",{"_index":22220,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["switch",{"_index":1869,"title":{},"body":{"injectables/AutoContextNameStrategy.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":21420,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["symbol('bbbsettings",{"_index":11593,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["symbol('defaultencryptionservice",{"_index":11967,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('keycloakconfigurationinputfiles",{"_index":12081,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["symbol('keycloaksettings",{"_index":12086,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["symbol('ldapencryptionservice",{"_index":11968,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('toolfeatures",{"_index":12579,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["symbol('videoconferencesettings",{"_index":12620,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["symetrickeyencryptionservice",{"_index":8342,"title":{"injectables/SymetricKeyEncryptionService.html":{}},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["symetrickeyencryptionservice(logger",{"_index":8347,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["sync",{"_index":7871,"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":16404,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["syncboardelementreferences(boardelementtargets",{"_index":2664,"title":{},"body":{"entities/Board.html":{}}}],["syncindexes",{"_index":7861,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["syncmode",{"_index":13485,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["syntax",{"_index":13420,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["sysmes",{"_index":980,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["system",{"_index":3072,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.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":16570,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["system.'})@apiresponse({status",{"_index":19373,"title":{},"body":{"controllers/SystemController.html":{}}}],["system.'})@isoptional()@isenum(systemtypeenum",{"_index":19456,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["system.adapter",{"_index":10433,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.adapter.ts",{"_index":10360,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:12",{"_index":10370,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:18",{"_index":10407,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:26",{"_index":10372,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:36",{"_index":10389,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:48",{"_index":10404,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:57",{"_index":10393,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:68",{"_index":10376,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:78",{"_index":10399,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:84",{"_index":10386,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.alias",{"_index":17156,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["system.displayname",{"_index":17157,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.dto",{"_index":15820,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["system.dto.ts",{"_index":16973,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:5",{"_index":16976,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:7",{"_index":16975,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:9",{"_index":16974,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.entity",{"_index":8549,"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":12836,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["system.id",{"_index":13791,"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":19412,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemUc.html":{}}}],["system.ldapconfig",{"_index":11846,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.ldapconfig.searchuserpassword",{"_index":11847,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.module",{"_index":19361,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["system.module.ts",{"_index":10432,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.oauthconfig",{"_index":11840,"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":11841,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oauthconfig.provider",{"_index":16338,"title":{},"body":{"injectables/OauthUc.html":{}}}],["system.oauthconfig?.logoutendpoint",{"_index":15578,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oauthconfig?.provider",{"_index":15577,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oidcconfig",{"_index":11843,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/SystemService.html":{}}}],["system.oidcconfig.clientsecret",{"_index":11844,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oidcconfig.idphint",{"_index":19581,"title":{},"body":{"injectables/SystemService.html":{}}}],["system.provisioningstrategy",{"_index":19409,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.provisioningurl",{"_index":19410,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.type",{"_index":17155,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.url",{"_index":19408,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system/file",{"_index":10359,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["system?.displayname",{"_index":11299,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["system?.id",{"_index":21569,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["systemapimodule",{"_index":18586,"title":{"modules/SystemApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SystemApiModule.html":{},"modules.html":{}}}],["systemcontroller",{"_index":19358,"title":{"controllers/SystemController.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{}}}],["systemdto",{"_index":11291,"title":{"classes/SystemDto.html":{}},"body":{"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":19565,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.displayname",{"_index":19566,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.id",{"_index":19562,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.oauthconfig",{"_index":19567,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningstrategy",{"_index":19568,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningurl",{"_index":19569,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.type",{"_index":19564,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.url",{"_index":19570,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdtos",{"_index":19387,"title":{},"body":{"controllers/SystemController.html":{}}}],["systementity",{"_index":8548,"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":12835,"title":{"classes/SystemFactory.html":{}},"body":{"classes/ImportUserFactory.html":{},"classes/SystemFactory.html":{}}}],["systemfactory.build",{"_index":12838,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["systemfactory.define(systementity",{"_index":19447,"title":{},"body":{"classes/SystemFactory.html":{}}}],["systemfilterparams",{"_index":19365,"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":{},"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":16210,"title":{"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}},"body":{"controllers/OauthSSOController.html":{},"controllers/SystemController.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["systemids",{"_index":21380,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemids[0",{"_index":21383,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemlistresponse",{"_index":19534,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemmapper",{"_index":19461,"title":{"classes/SystemMapper.html":{}},"body":{"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitiestodtos(systems",{"_index":19561,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitytodto(system",{"_index":19554,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromoauthconfigentitytodto(entity.oauthconfig",{"_index":19473,"title":{},"body":{"classes/SystemMapper.html":{}}}],["systemmodule",{"_index":1356,"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":19482,"title":{"classes/SystemOidcMapper.html":{}},"body":{"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitiestodtos(system",{"_index":19508,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitytodto(system",{"_index":19505,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromoidcconfigentitytodto(entity.id",{"_index":19492,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["systemoidcservice",{"_index":13345,"title":{"injectables/SystemOidcService.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{}}}],["systemprovisioningstrategy",{"_index":12346,"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":13115,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.oidc",{"_index":16415,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.sanis",{"_index":18064,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.undefined",{"_index":16983,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["systemrepo",{"_index":622,"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":19536,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper",{"_index":19381,"title":{"classes/SystemResponseMapper.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper.mapfromdtotolistresponse(systemdtos",{"_index":19390,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromdtotoresponse(systemdto",{"_index":19394,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromoauthconfigdtotoresponse(system.oauthconfig",{"_index":19537,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponses",{"_index":17146,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["systems",{"_index":10377,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"classes/PublicSystemResponse.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"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":19368,"title":{},"body":{"controllers/SystemController.html":{}}}],["systems.filter((system",{"_index":19573,"title":{},"body":{"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["systems.foreach((system",{"_index":11839,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systems.getitems().find((system",{"_index":21018,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["systems.map",{"_index":19532,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systems.map((system",{"_index":19577,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemscollectionname",{"_index":11685,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systemscope",{"_index":19515,"title":{"classes/SystemScope.html":{}},"body":{"injectables/SystemRepo.html":{},"classes/SystemScope.html":{}}}],["systemservice",{"_index":15512,"title":{"injectables/SystemService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["systemstrategy",{"_index":16946,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["systemtype",{"_index":19585,"title":{},"body":{"injectables/SystemUc.html":{}}}],["systemtypeenum",{"_index":19455,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemtypeenum.ldap",{"_index":19517,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemtypeenum.oauth",{"_index":19519,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemtypeenum.oidc",{"_index":19521,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemuc",{"_index":19356,"title":{"injectables/SystemUc.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"injectables/SystemUc.html":{}}}],["t",{"_index":479,"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":19752,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["tab",{"_index":11791,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"controllers/TeamNewsController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["table",{"_index":15373,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["tablename",{"_index":178,"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":{}}}],["tag",{"_index":10872,"title":{},"body":{"classes/GetMetaTagDataBody.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tags",{"_index":12112,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"controllers/MetaTagExtractorController.html":{}}}],["tags'})@apiresponse({status",{"_index":14833,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["take",{"_index":12054,"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":19919,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tangible",{"_index":22650,"title":{},"body":{"license.html":{}}}],["tap",{"_index":8232,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["target",{"_index":2677,"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":9664,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["target.constructor",{"_index":8399,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["target.entity",{"_index":2632,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{}}}],["target.entity.ts",{"_index":4909,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:21",{"_index":4913,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:32",{"_index":4912,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:35",{"_index":4911,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.id",{"_index":19594,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.name",{"_index":19595,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.service",{"_index":17808,"title":{},"body":{"injectables/RoomsService.html":{}}}],["target.service.ts",{"_index":4924,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:11",{"_index":4933,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:33",{"_index":4930,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:8",{"_index":4928,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.targetids",{"_index":15255,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.targetids.length",{"_index":15328,"title":{},"body":{"injectables/NewsUc.html":{}}}],["target.targetmodel",{"_index":15253,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.title",{"_index":4942,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target:in",{"_index":15254,"title":{},"body":{"classes/NewsScope.html":{}}}],["target_model_values",{"_index":15126,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["targetboard",{"_index":3810,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{}}}],["targetboardid",{"_index":3791,"title":{},"body":{"injectables/BoardUc.html":{}}}],["targetcard",{"_index":4184,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{}}}],["targetcardid",{"_index":4167,"title":{},"body":{"injectables/CardUc.html":{}}}],["targetcolumn",{"_index":4113,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnUc.html":{}}}],["targetcolumnid",{"_index":5024,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["targetelement",{"_index":7615,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetelement.addreferences(element.getreferences",{"_index":7616,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetexternalid",{"_index":18408,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["targetfolder",{"_index":11701,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["targetgroups",{"_index":12113,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["targetid",{"_index":7102,"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":9662,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["targetinfomapper",{"_index":15152,"title":{"classes/TargetInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/TargetInfoMapper.html":{}}}],["targetinfomapper.maptoresponse(news.target",{"_index":15154,"title":{},"body":{"classes/NewsMapper.html":{}}}],["targetinforesponse",{"_index":15123,"title":{"classes/TargetInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{}}}],["targetmodel",{"_index":6924,"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":15287,"title":{},"body":{"injectables/NewsUc.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.courses",{"_index":22096,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.events",{"_index":22094,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.map(async",{"_index":15324,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targetmodelsmapping",{"_index":22092,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[entitydo.targetmodel",{"_index":22107,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[videoconferencescope",{"_index":22100,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetparent",{"_index":3373,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.addchild(child",{"_index":3386,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.haschild(child",{"_index":3380,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.removechild(child",{"_index":3381,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparentid",{"_index":17251,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetparentinfo",{"_index":10157,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["targetpath",{"_index":6333,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["targetpermissions",{"_index":9653,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["targetposition",{"_index":3374,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{},"injectables/ContentElementService.html":{}}}],["targets",{"_index":9658,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{}}}],["targets.filter((target",{"_index":15327,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targets.map((target",{"_index":9663,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/NewsScope.html":{}}}],["targetschoolid",{"_index":4785,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetschoolnumber",{"_index":21426,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["targetsystem",{"_index":16566,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemid",{"_index":18405,"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":21534,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl.tostring",{"_index":21539,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["task",{"_index":2624,"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":23389,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["task.availabledate",{"_index":19804,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.course",{"_index":17755,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/SubmissionRepo.html":{}}}],["task.createdat",{"_index":19799,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.createstudentstatusforuser(this.user",{"_index":8194,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createstudentstatusforuser(user",{"_index":20063,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.createteacherstatusforuser(this.user",{"_index":8193,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createteacherstatusforuser(user",{"_index":20062,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.creator",{"_index":17750,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.description",{"_index":19702,"title":{},"body":{"injectables/TaskCopyService.html":{},"classes/TaskMapper.html":{}}}],["task.description.replace(regex",{"_index":19703,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["task.descriptioninputformat",{"_index":19802,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.duedate",{"_index":19806,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.entity",{"_index":2625,"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":19114,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["task.finishforuser(user",{"_index":20067,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.getparentdata",{"_index":19793,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.id",{"_index":19796,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.isdraft",{"_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":{}}}],["task.isplanned",{"_index":11918,"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":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":{},"entities/LessonEntity.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson",{"_index":17752,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson.course",{"_index":19251,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.lesson.coursegroup.course",{"_index":19252,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.module",{"_index":19620,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["task.name",{"_index":5140,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/TaskMapper.html":{}}}],["task.name}${task.description",{"_index":5141,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["task.response",{"_index":3410,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["task.response.ts",{"_index":3733,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:15",{"_index":3743,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:19",{"_index":3744,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:22",{"_index":3737,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:25",{"_index":3742,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:29",{"_index":3738,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:33",{"_index":3740,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:36",{"_index":3741,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:39",{"_index":3739,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:42",{"_index":3747,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:45",{"_index":3746,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:5",{"_index":3736,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.restoreforuser(user",{"_index":20068,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.rule",{"_index":19272,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["task.submissions.getitems",{"_index":20010,"title":{},"body":{"injectables/TaskService.html":{}}}],["task.unpublish",{"_index":20072,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.updatedat",{"_index":19800,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskapimodule",{"_index":18587,"title":{"modules/TaskApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskApiModule.html":{},"modules.html":{}}}],["taskboardelement",{"_index":2635,"title":{"entities/TaskBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/TaskBoardElement.html":{}}}],["taskcontroller",{"_index":19618,"title":{"controllers/TaskController.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{}}}],["taskcopy",{"_index":19686,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopy.name",{"_index":19707,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyapiparams",{"_index":6462,"title":{"classes/TaskCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{}}}],["taskcopyparams",{"_index":19681,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyparentparams",{"_index":6464,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcopyservice",{"_index":2942,"title":{"injectables/TaskCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["taskcopyuc",{"_index":19615,"title":{"injectables/TaskCopyUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcourse",{"_index":17701,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcourse.name",{"_index":17704,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcreateparams",{"_index":19755,"title":{"classes/TaskCreateParams.html":{}},"body":{"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["taskdesc",{"_index":19792,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.color",{"_index":19808,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.courseid",{"_index":19798,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.coursename",{"_index":19797,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonhidden",{"_index":19812,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonname",{"_index":19809,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskelement",{"_index":3039,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["taskelements",{"_index":3645,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["taskfactory",{"_index":19113,"title":{"classes/TaskFactory.html":{}},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["taskfactory.build",{"_index":19118,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["taskfactory.define(task",{"_index":19772,"title":{},"body":{"classes/TaskFactory.html":{}}}],["taskid",{"_index":19291,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUrlParams.html":{}}}],["taskidentifier",{"_index":5137,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskidentifier}/${taskidentifier}.html",{"_index":5139,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskids",{"_index":19238,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["tasklistresponse",{"_index":19651,"title":{"classes/TaskListResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["tasklistresponse(taskresponses",{"_index":19663,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmapper",{"_index":19648,"title":{"classes/TaskMapper.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskMapper.html":{}}}],["taskmapper.maptoresponse(task",{"_index":19662,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmodule",{"_index":13880,"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":12462,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskparentpermission",{"_index":17745,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["taskrepo",{"_index":1746,"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":19652,"title":{"classes/TaskResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["taskresponses",{"_index":19660,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskrule",{"_index":1708,"title":{"injectables/TaskRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{}}}],["tasks",{"_index":5103,"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":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":{}}}],["tasks.foreach((task",{"_index":5107,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["tasks.map((task",{"_index":20061,"title":{},"body":{"injectables/TaskUC.html":{}}}],["taskscope",{"_index":19843,"title":{"classes/TaskScope.html":{}},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{}}}],["taskscope('$or",{"_index":19853,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["taskservice",{"_index":5052,"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":17680,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskstatus.mapper.ts",{"_index":3751,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatus.mapper.ts:5",{"_index":3754,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatusmapper",{"_index":19790,"title":{"classes/TaskStatusMapper.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["taskstatusmapper.maptoresponse(status",{"_index":19795,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskstatusresponse",{"_index":19776,"title":{"classes/TaskStatusResponse.html":{}},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{}}}],["taskstatusresponse(status",{"_index":20015,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["tasksubmitterids",{"_index":12527,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskswithstatus",{"_index":19657,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskswithstatus.map((task",{"_index":19661,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskuc",{"_index":19616,"title":{"injectables/TaskUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["taskupdateparams",{"_index":19786,"title":{"classes/TaskUpdateParams.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["taskurlparams",{"_index":19086,"title":{"classes/TaskUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"classes/TaskUrlParams.html":{}}}],["taskwithstatus",{"_index":17690,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/TaskMapper.html":{}}}],["taskwithstatusvo",{"_index":8160,"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":8190,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/TaskUC.html":{}}}],["taskwithstatusvos",{"_index":20060,"title":{},"body":{"injectables/TaskUC.html":{}}}],["teacher",{"_index":3073,"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":5132,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher.lastname",{"_index":5133,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher_student_visibility__is_configurable",{"_index":11590,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["teacheraccount",{"_index":671,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teacherentities",{"_index":9780,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherid",{"_index":12466,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["teacherid.tohexstring",{"_index":4392,"title":{},"body":{"classes/ClassMapper.html":{}}}],["teacherids",{"_index":4207,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassesRepo.html":{},"entities/Course.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["teachernames",{"_index":4334,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/GroupUcMapper.html":{}}}],["teacherpermissions",{"_index":21096,"title":{},"body":{"classes/UserFactory.html":{}}}],["teacherpseudonyms",{"_index":9790,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherpseudonyms.concat(substitutionteacherpseudonyms",{"_index":9796,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teachers",{"_index":4357,"title":{},"body":{"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":{},"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":11311,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["teacherswithid",{"_index":6794,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacherswithid(numberofteachers",{"_index":6800,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacheruser",{"_index":672,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teaching_assistant",{"_index":7177,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["teachingassistant",{"_index":7178,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["team",{"_index":4564,"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":6915,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["team.id",{"_index":4599,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.name",{"_index":4601,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.teamusers",{"_index":15390,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.length",{"_index":15400,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.map(async",{"_index":20263,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["team.userids",{"_index":20213,"title":{},"body":{"injectables/TeamService.html":{}}}],["team.userids.filter((u",{"_index":20214,"title":{},"body":{"injectables/TeamService.html":{}}}],["teamadmin",{"_index":4703,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamdto",{"_index":4562,"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":6914,"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":20148,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.name",{"_index":20149,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.teamusers.map",{"_index":20144,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamfactory",{"_index":20124,"title":{"classes/TeamFactory.html":{}},"body":{"classes/TeamFactory.html":{}}}],["teamfactory.define(teamentity",{"_index":20136,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamid",{"_index":3908,"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":4667,"title":{"injectables/TeamMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/TeamMapper.html":{}}}],["teammemberids",{"_index":12314,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids",{"_index":12312,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids.map((id",{"_index":12315,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammembers",{"_index":12288,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{}}}],["teammemberswithid",{"_index":19106,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teammemberswithid(numberofteammembers",{"_index":19110,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teamname",{"_index":4600,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamnews",{"_index":6955,"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":6946,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnewscontroller",{"_index":15188,"title":{"controllers/TeamNewsController.html":{}},"body":{"modules/NewsModule.html":{},"controllers/TeamNewsController.html":{}}}],["teamowner",{"_index":4702,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teampermissions",{"_index":4697,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsbody",{"_index":4638,"title":{"classes/TeamPermissionsBody.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsdto",{"_index":4573,"title":{"classes/TeamPermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsmapper",{"_index":4668,"title":{"injectables/TeamPermissionsMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teamrole",{"_index":4635,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.roleid",{"_index":4735,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.teamid",{"_index":4734,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamroledto",{"_index":4636,"title":{"classes/TeamRoleDto.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamRoleDto.html":{}}}],["teamrolepermissionsdto",{"_index":4597,"title":{"classes/TeamRolePermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamrule",{"_index":1709,"title":{"injectables/TeamRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/TeamRule.html":{}}}],["teams",{"_index":11948,"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":20212,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.length",{"_index":20217,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.map((team",{"_index":12661,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["teamsapimodule",{"_index":18588,"title":{"modules/TeamsApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TeamsApiModule.html":{},"modules.html":{}}}],["teamservice",{"_index":20202,"title":{"injectables/TeamService.html":{}},"body":{"injectables/TeamService.html":{},"modules/TeamsModule.html":{}}}],["teamsmapper",{"_index":4683,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["teamsmodule",{"_index":20248,"title":{"modules/TeamsModule.html":{}},"body":{"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules.html":{}}}],["teamsrepo",{"_index":1747,"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":4657,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["teamsubmissions",{"_index":12452,"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":20155,"title":{"classes/TeamUrlParams.html":{}},"body":{"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{}}}],["teamuser",{"_index":15366,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamsRepo.html":{}}}],["teamuser.role.id",{"_index":20146,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.school.id",{"_index":20147,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.user.id",{"_index":20145,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{}}}],["teamuserdto",{"_index":15370,"title":{"classes/TeamUserDto.html":{}},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamuserentity",{"_index":12565,"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":12575,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamuserfactory",{"_index":20132,"title":{"classes/TeamUserFactory.html":{}},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["teamuserfactory.buildwithid",{"_index":20137,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamuserfactory.define(teamuserentity",{"_index":20243,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["teamuserfactory.withroleanduserid(role",{"_index":20134,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamusers",{"_index":12564,"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":12572,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers.map(async",{"_index":15407,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["teardown",{"_index":22989,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tech",{"_index":23135,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technical",{"_index":8383,"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":22542,"title":{},"body":{"license.html":{}}}],["tell",{"_index":23128,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tells",{"_index":5499,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"license.html":{}}}],["temp",{"_index":10378,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["temp/:file",{"_index":11399,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["tempflow.alias",{"_index":13407,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["template",{"_index":1073,"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":20417,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["template.replace(/\\{id\\}/g",{"_index":8875,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["template.response",{"_index":5803,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}}}],["template.response.ts",{"_index":5804,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:10",{"_index":5815,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:13",{"_index":5812,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:16",{"_index":5811,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:19",{"_index":5814,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:22",{"_index":5809,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:7",{"_index":5810,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["temporary",{"_index":302,"title":{},"body":{"controllers/AccountController.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/KeycloakIdentityManagementService.html":{},"interfaces/UserBoardRoles.html":{}}}],["tempted",{"_index":23809,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["term",{"_index":22515,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["terminal",{"_index":23615,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["terminate",{"_index":22739,"title":{},"body":{"license.html":{}}}],["terminated",{"_index":22757,"title":{},"body":{"license.html":{}}}],["terminates",{"_index":22747,"title":{},"body":{"license.html":{}}}],["termination",{"_index":22736,"title":{},"body":{"license.html":{}}}],["terms",{"_index":22317,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["test",{"_index":929,"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.createtestingmodule",{"_index":20305,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["test.module.ts",{"_index":10730,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:30",{"_index":10732,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["test.module.ts:31",{"_index":11414,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:37",{"_index":10845,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["test/test",{"_index":20294,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["testapiclient",{"_index":1445,"title":{"classes/TestApiClient.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testbootstrapconsole",{"_index":20292,"title":{"classes/TestBootstrapConsole.html":{}},"body":{"classes/TestBootstrapConsole.html":{}}}],["testcase",{"_index":23405,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testdata",{"_index":23425,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tested",{"_index":7002,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testhelper",{"_index":20314,"title":{"classes/TestHelper.html":{}},"body":{"classes/TestHelper.html":{}}}],["testing",{"_index":11384,"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":11374,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["testingmodule",{"_index":20301,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testkcconnection",{"_index":13261,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["testmodule",{"_index":23544,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.close",{"_index":23550,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(entitymanager",{"_index":23547,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(mikroorm",{"_index":23546,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(newsrepo",{"_index":23545,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testname",{"_index":20325,"title":{},"body":{"classes/TestHelper.html":{}}}],["testreqestconst",{"_index":1440,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.accesstoken",{"_index":1504,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.loginpath",{"_index":1480,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.prefix",{"_index":1463,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testrequestinstance",{"_index":1467,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["tests",{"_index":2363,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IFileStorageConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.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":20324,"title":{},"body":{"classes/TestHelper.html":{}}}],["testtext",{"_index":20320,"title":{},"body":{"classes/TestHelper.html":{}}}],["testuser",{"_index":7080,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["text",{"_index":2820,"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":17549,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["text.length",{"_index":20323,"title":{},"body":{"classes/TestHelper.html":{}}}],["text.types.ts",{"_index":17528,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:14",{"_index":17530,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:20",{"_index":17531,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:5",{"_index":17529,"title":{},"body":{"classes/RichText.html":{}}}],["text.validator.ts",{"_index":23306,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["text1",{"_index":4854,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text2",{"_index":4874,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text3",{"_index":4890,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text4",{"_index":4903,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["textutils",{"_index":23292,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["textvalidator",{"_index":23307,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["tha",{"_index":3603,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["that's",{"_index":741,"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":23837,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["themselves",{"_index":23496,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["then((pseudonymdo",{"_index":15411,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["then((resp",{"_index":2198,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["there's",{"_index":19924,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["therefore",{"_index":6828,"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":22394,"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":19740,"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":22565,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["this(entityclass",{"_index":2401,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this._allowemptyquery",{"_index":18549,"title":{},"body":{"classes/Scope.html":{}}}],["this._collectdefaultmetrics",{"_index":16849,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._collectmetricsroutemetrics",{"_index":16850,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._columnboardid",{"_index":4916,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._columnboardid.tohexstring",{"_index":4920,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._contextid",{"_index":4809,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contextid.tohexstring",{"_index":4811,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._contextid?.tohexstring",{"_index":12270,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contexttype",{"_index":4807,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._creatorid",{"_index":10046,"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":10007,"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":10467,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.aggregate(lessonentity",{"_index":14244,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.aggregate(user",{"_index":21631,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.assign(fetchedentity",{"_index":2313,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.create(this.entityname",{"_index":2307,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.find(account",{"_index":727,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.find(coursegroup",{"_index":19249,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.find(fileentity",{"_index":10460,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.find(ltitool",{"_index":14722,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.find(role",{"_index":17640,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.find(storageproviderentity",{"_index":19030,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["this._em.find(systementity",{"_index":19524,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["this._em.find(teamentity",{"_index":20266,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.find(this.entityname",{"_index":738,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.find(user",{"_index":21016,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findandcount",{"_index":747,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["this._em.findandcount(course",{"_index":7000,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findandcount(coursegroup",{"_index":6851,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.findandcount(filerecord",{"_index":10277,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findandcount(importuser",{"_index":12981,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findandcount(lessonentity",{"_index":14241,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.findandcount(news",{"_index":15220,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findandcount(schoolentity",{"_index":14042,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findandcount(task",{"_index":19928,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.findandcount(this.entityname",{"_index":19245,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.findandcount(user",{"_index":21007,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findone(account",{"_index":723,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findone(board",{"_index":3638,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findone(importuser",{"_index":12962,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findone(ltitool",{"_index":14725,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findone(schoolentity",{"_index":14040,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findone(this.entityname",{"_index":9096,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["this._em.findone(userloginmigrationentity",{"_index":21299,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.findoneorfail",{"_index":5952,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.findoneorfail(account",{"_index":728,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findoneorfail(board",{"_index":3642,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findoneorfail(course",{"_index":3640,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findoneorfail(federalstateentity",{"_index":9859,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["this._em.findoneorfail(filerecord",{"_index":10278,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findoneorfail(importuser",{"_index":12959,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findoneorfail(ltitool",{"_index":14724,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findoneorfail(news",{"_index":15216,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findoneorfail(role",{"_index":17638,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.findoneorfail(schoolyearentity",{"_index":18527,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["this._em.findoneorfail(sharetoken",{"_index":18814,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["this._em.findoneorfail(teamentity",{"_index":20262,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.findoneorfail(this.entityname",{"_index":2312,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/UserDORepo.html":{}}}],["this._em.findoneorfail(videoconference",{"_index":22099,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["this._em.flush",{"_index":732,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.getreference(entityname",{"_index":730,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.getreference(externaltoolentity",{"_index":18224,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.getreference(role",{"_index":21038,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.getreference(schoolentity",{"_index":18222,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(schoolexternaltoolentity",{"_index":5968,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.getreference(systementity",{"_index":14066,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(userloginmigrationentity",{"_index":14068,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.map(fileentity",{"_index":10469,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.map(lessonentity",{"_index":14246,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.map(user",{"_index":21644,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.nativedelete(importuser",{"_index":12986,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.nativedelete(this.entityname",{"_index":2338,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.nativedelete(user",{"_index":21649,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.persist(account",{"_index":731,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.persistandflush(board",{"_index":3641,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.persistandflush(entities",{"_index":2301,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.populate(columnboardelements",{"_index":3652,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(course",{"_index":6992,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.populate(coursegroup",{"_index":6850,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.populate(coursenews",{"_index":15226,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(importuser.user",{"_index":12960,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(lesson",{"_index":14236,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(lessonelements",{"_index":3650,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(lessons",{"_index":14242,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(newsentities",{"_index":15221,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(newsentity",{"_index":15217,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(role",{"_index":20269,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(schoolnews",{"_index":15224,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(submissions",{"_index":19250,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.populate(taskelements",{"_index":3648,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(tasks",{"_index":19844,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.populate(teamnews",{"_index":15225,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(teamuser",{"_index":20264,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(user",{"_index":21610,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.populate(userentity",{"_index":21009,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.populate(usermatches",{"_index":12985,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(users",{"_index":21646,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.remove(entities",{"_index":2329,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.removeandflush(account",{"_index":737,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.removeandflush(entities",{"_index":2440,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["this._id",{"_index":7632,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this._instance",{"_index":16856,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._iscopyfrom",{"_index":10147,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._iscopyfrom?.tohexstring",{"_index":10142,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._isenabled",{"_index":16846,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._lockid",{"_index":10050,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._lockid?.tohexstring",{"_index":10008,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._oauthconfigcache",{"_index":13538,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this._operator",{"_index":18548,"title":{},"body":{"classes/Scope.html":{}}}],["this._origintoolid",{"_index":7228,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._origintoolid?.tohexstring",{"_index":7197,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._ownerid",{"_index":10042,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._ownerid.tohexstring",{"_index":10006,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._parentid",{"_index":10040,"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":10140,"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":10005,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._port",{"_index":16848,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._queries",{"_index":18551,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.length",{"_index":18550,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.push(query",{"_index":18553,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries[0",{"_index":18552,"title":{},"body":{"classes/Scope.html":{}}}],["this._route",{"_index":16847,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._schoolid",{"_index":10144,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._schoolid.tohexstring",{"_index":10141,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.abbreviation",{"_index":6532,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.acceptconsentrequest",{"_index":15951,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.acceptloginrequest(currentuserid",{"_index":16103,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.accesskeyid",{"_index":12279,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.accesstoken",{"_index":14525,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.accountlookupservice.getinternalid(id",{"_index":908,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyid(internalid",{"_index":901,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyuserid(userid",{"_index":902,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyid(accountid",{"_index":954,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyid(internalid",{"_index":877,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyuserid(userid",{"_index":880,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyusernameandsystemid(username",{"_index":882,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmany(offset",{"_index":913,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmultiplebyuserid(userids",{"_index":878,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.save(account",{"_index":897,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(email",{"_index":937,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(username",{"_index":905,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernamepartialmatch(username",{"_index":903,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountservice.findbyuserid(user.id",{"_index":15632,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["this.accountservice.findbyuseridorfail(currentuserid",{"_index":21550,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.findbyuseridorfail(userid",{"_index":21705,"title":{},"body":{"injectables/UserService.html":{}}}],["this.accountservice.findbyusernameandsystemid(username",{"_index":1554,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.findmany(skip",{"_index":13674,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.accountservice.save(account",{"_index":21561,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.save(accountcopy",{"_index":21556,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.savewithvalidation",{"_index":16474,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.accountservice.searchbyusernameexactmatch(username",{"_index":1555,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.updatelasttriedfailedlogin(id",{"_index":1582,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountuc.deleteaccountbyid(currentuser",{"_index":370,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.findaccountbyid(currentuser",{"_index":352,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.replacemytemporarypassword(currentuser.userid",{"_index":372,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.searchaccounts(currentuser",{"_index":350,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updateaccountbyid(currentuser",{"_index":368,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updatemyaccount(currentuser.userid",{"_index":366,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.activated",{"_index":199,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{}}}],["this.active",{"_index":12373,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.adapter.createteam(team",{"_index":4717,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.deleteteam(teamid",{"_index":4716,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteam(team",{"_index":4718,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteampermissionsforrole",{"_index":4713,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.addclientprotocolmappers(defaultclientinternalid",{"_index":13438,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.addexternaloauth2datatoconfig(tool.config",{"_index":9413,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.addlessons(builder",{"_index":5088,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addquery",{"_index":6085,"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":15258,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(queries[0",{"_index":15259,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(query",{"_index":10311,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["this.addroom(room",{"_index":7585,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.addtasks(builder",{"_index":5089,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addteacherroleifadmin(externaluser",{"_index":18070,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.adminidandtoken",{"_index":1086,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.alias",{"_index":12433,"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":1994,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.allrooms",{"_index":7595,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.alternativetext",{"_index":9936,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.amqpconnection.publish",{"_index":1183,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.amqpconnection.publish(this.options.exchange",{"_index":14777,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.amqpconnection.request>(this.createrequest(event",{"_index":17854,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.amqpconnectionmanager.getconnections().map((connection",{"_index":17179,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["this.ancestorids.length",{"_index":3578,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.ancestorids[this.ancestorids.length",{"_index":3572,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.antareskey",{"_index":6528,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.app",{"_index":1459,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.appendnotcontainedboardelements(boardelementtargets",{"_index":2666,"title":{},"body":{"entities/Board.html":{}}}],["this.attendeepw",{"_index":1992,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.aud",{"_index":13159,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["this.authendpoint",{"_index":12361,"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":13833,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.generatejwt(oauthcurrentuser",{"_index":16353,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.authenticationservice.loadaccount",{"_index":13855,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(`${externalschoolid}/${username}`.tolowercase",{"_index":13852,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(username",{"_index":14411,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizepassword(password",{"_index":13839,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizeusername(username",{"_index":13838,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.removejwtfromwhitelist(userjwt",{"_index":16351,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.authenticationservice.updatelasttriedfailedlogin(account.id",{"_index":13841,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authorisation.checkpermission(authorizableuser",{"_index":19747,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.checkpermission(user",{"_index":14200,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisation.getuserwithpermissions(userid",{"_index":14179,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(authorizableuser",{"_index":19745,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(user",{"_index":14194,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisationservice",{"_index":8168,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorisationservice.hascoursewritepermission(user",{"_index":17840,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.authorisationservice.haspermission(this.user",{"_index":8178,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorization.checkpermissionbyreferences(userid",{"_index":6773,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.authorizationhelper.hasaccesstoentity",{"_index":7010,"title":{},"body":{"injectables/CourseRule.html":{}}}],["this.authorizationhelper.hasaccesstoentity(user",{"_index":6858,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissions(user",{"_index":1824,"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":20201,"title":{},"body":{"injectables/TeamRule.html":{}}}],["this.authorizationhelper.hasoneofpermissions(user",{"_index":1825,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.authorizationreferenceservice.checkpermissionbyreferences",{"_index":18923,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkallpermissions(user",{"_index":9502,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkentitypermissions",{"_index":15313,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkentitypermissions(userid",{"_index":15297,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkoneofpermissions(user",{"_index":20048,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.checkpermission",{"_index":19324,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.authorizationservice.checkpermission(authorizableuser",{"_index":20713,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.authorizationservice.checkpermission(user",{"_index":2473,"title":{},"body":{"classes/BaseUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.checkpermissionbyreferences",{"_index":6788,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.authorizationservice.checkpermissions(user",{"_index":23779,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.getentitypermissions(userid",{"_index":15329,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getpermittedentities(userid",{"_index":15325,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuser.userid",{"_index":15915,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuserid",{"_index":16110,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(pseudonymuserid",{"_index":17122,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(userid",{"_index":1793,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"classes/BaseUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LessonUC.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.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":20064,"title":{},"body":{"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasoneofpermissions(user",{"_index":20071,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.haspermission(user",{"_index":1795,"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":23758,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationurl",{"_index":12420,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.authorizeaccess",{"_index":13281,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.authservice.checkpermission",{"_index":4710,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.checkpermission(authorizableuser",{"_index":14140,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.authservice.generatejwt(createjwtpayload",{"_index":14569,"title":{},"body":{"injectables/LoginUc.html":{}}}],["this.authservice.getuserwithpermissions(currentuserid",{"_index":4711,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.getuserwithpermissions(userid",{"_index":14122,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.availabledate",{"_index":12472,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.axiosconfig",{"_index":11493,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.basepath",{"_index":11696,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.baseroute",{"_index":1460,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.baseurl",{"_index":2505,"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":21776,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["this.bbbservice.create(configbuilder.build",{"_index":21907,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.end(config",{"_index":21974,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.bbbservice.getmeetinginfo(config",{"_index":21994,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.bbbservice.getmeetinginfo(new",{"_index":21893,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.join(joinbuilder.build",{"_index":22026,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.bbbsettings.host",{"_index":2186,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.presentationurl",{"_index":2188,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.salt",{"_index":2187,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.board",{"_index":8167,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.board.getelements",{"_index":8170,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.boardcopyservice.copyboard",{"_index":6739,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(anyboarddo",{"_index":2471,"title":{},"body":{"classes/BaseUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo",{"_index":2474,"title":{},"body":{"classes/BaseUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo).then((boarddoauthorizable",{"_index":4187,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(submissioncontainerelement",{"_index":19210,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.boarddocopyservice.copy",{"_index":4787,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.delete(domainobject",{"_index":3379,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findbyclassandid(card",{"_index":4121,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findbyclassandid(column",{"_index":5011,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findbyclassandid(columnboard",{"_index":4773,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyid(elementid",{"_index":5679,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findbyid(id",{"_index":3096,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.findbyid(rootid",{"_index":3104,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyids(cardids",{"_index":4122,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findidsbyexternalreference(reference",{"_index":4838,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findparentofid(card.id",{"_index":4132,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findparentofid(child.id",{"_index":3383,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(column.id",{"_index":5015,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findparentofid(domainobject.id",{"_index":3376,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(element.id",{"_index":5690,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(elementid",{"_index":5681,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(submissionitem.id",{"_index":19194,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.getancestorids(boarddo",{"_index":3099,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.gettitlesbyids(boardids",{"_index":4843,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(board",{"_index":4846,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(card",{"_index":4133,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.save(column",{"_index":5016,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.save(columnboard",{"_index":4844,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(copystatus.copyentity",{"_index":4792,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.save(element",{"_index":5691,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(parent.children",{"_index":3378,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(sourceparent.children",{"_index":3385,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.save(submissioncontainer.children",{"_index":19192,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.save(targetparent.children",{"_index":3387,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorule",{"_index":17887,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.boarddoservice.deletewithdescendants(board",{"_index":4845,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddoservice.deletewithdescendants(card",{"_index":4130,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.deletewithdescendants(column",{"_index":5013,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.deletewithdescendants(element",{"_index":5685,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddoservice.move(card",{"_index":4131,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.move(column",{"_index":5014,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.move(element",{"_index":5686,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boardelementservice.findbyid(contextexternaltool.contextref.id",{"_index":20717,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boardelementtype",{"_index":5040,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["this.boardmanagementuc.createboard(courseid",{"_index":3462,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.boardnodeauthorizableservice",{"_index":12158,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.boardnoderepo",{"_index":3343,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(boarddo.id",{"_index":3339,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(childid",{"_index":3336,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(id",{"_index":3312,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(parent.id",{"_index":17350,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.boardnoderepo.finddescendants(boardnode",{"_index":3313,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.finddescendantsofmany(boardnodes",{"_index":3320,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardrepo.findbycourseid(course.id",{"_index":17842,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.findbycourseid(courseid",{"_index":6729,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boardrepo.findbycourseid(roomid",{"_index":17837,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(board",{"_index":17816,"title":{},"body":{"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(boardcopy",{"_index":3000,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.boardservice.getboardauthorizable(boardelement",{"_index":20718,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boarduc.createcolumn(currentuser.userid",{"_index":2927,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deleteboard(currentuser.userid",{"_index":2925,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboard(currentuser.userid",{"_index":2911,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboardcontext(currentuser.userid",{"_index":2916,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.movecolumn(currentuser.userid",{"_index":4972,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.updateboardtitle(currentuser.userid",{"_index":2921,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.bsonconverter.deserialize(bsondocuments",{"_index":11767,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bsonconverter.serialize(jsondocuments",{"_index":11785,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bucket",{"_index":10030,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.build",{"_index":7370,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["this.build(params",{"_index":2404,"title":{},"body":{"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{}}}],["this.build(requiredpermissions",{"_index":1623,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["this.buildchildren(boardnode",{"_index":3200,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.buildcopyentitydict(elementstatus).foreach((el",{"_index":6449,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.builddtowithelements(mappedelements",{"_index":8173,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.buildexternaltool",{"_index":5630,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildfile",{"_index":5622,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildgroupsclaim(teams",{"_index":12657,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.buildlink",{"_index":5624,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildrichtext",{"_index":5626,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildscope(query",{"_index":5949,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this.buildsubmissioncontainer",{"_index":5628,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildtokenrequestpayload(code",{"_index":15567,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.byuseridquery(userid",{"_index":19247,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.cacheexpiration",{"_index":17639,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["this.cachemanager.del(redisidentifier",{"_index":13226,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.cacheservice.getstoretype",{"_index":13225,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.calculatenumberofsubmitters(gradedsubmissions",{"_index":12542,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calculatenumberofsubmitters(submittedsubmissions",{"_index":12540,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calendarmapper.maptodto(resp.data",{"_index":3957,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.callkcadminclient",{"_index":13289,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.cancelbuttonurl",{"_index":16550,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.caption",{"_index":9935,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.cardid",{"_index":4150,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["this.cards",{"_index":4990,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["this.cardservice.create(column",{"_index":5031,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.cardservice.delete(card",{"_index":4180,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyid(cardid",{"_index":4177,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ColumnUc.html":{}}}],["this.cardservice.findbyid(targetcardid",{"_index":4185,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyids(cardids",{"_index":4174,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.move(card",{"_index":5033,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.cardservice.updateheight(card",{"_index":4178,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.updatetitle(card",{"_index":4179,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.carduc.createelement(currentuser.userid",{"_index":4051,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.deletecard(currentuser.userid",{"_index":4045,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.findcards(currentuser.userid",{"_index":4030,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.moveelement",{"_index":8286,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.carduc.updatecardheight(currentuser.userid",{"_index":4039,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.updatecardtitle(currentuser.userid",{"_index":4042,"title":{},"body":{"controllers/CardController.html":{}}}],["this.cause",{"_index":3870,"title":{},"body":{"classes/BusinessError.html":{}}}],["this.challenge",{"_index":5595,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.checkandaddprefix(baseroute",{"_index":1461,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkandaddprefix(routenameinput",{"_index":1499,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkavaiblelanguages(params.language",{"_index":21734,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.checkavailablelanguages(newlanguage",{"_index":21720,"title":{},"body":{"injectables/UserService.html":{}}}],["this.checkcontextreadpermission(userid",{"_index":18901,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcreatepermission(userid",{"_index":18908,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcredentials(account",{"_index":13835,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkcredentials(password",{"_index":14417,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.checkdestinationcourseauthorisation(authorizableuser",{"_index":19739,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkdestinationcourseauthorization(user",{"_index":14186,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkdestinationlessonauthorization(authorizableuser",{"_index":19744,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkduplicateincontext(contextexternaltool",{"_index":6173,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.checkerror(response",{"_index":17855,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.checkexpired(sharetoken",{"_index":18858,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.checkfeatureenabled",{"_index":6771,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.checkfeatureenabled(payload.parenttype",{"_index":18895,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkfeatureenabled(sharetoken.payload.parenttype",{"_index":18907,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkifpreviewpossible(filerecord",{"_index":16798,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.checklistscontainingequalentities(reorderedids",{"_index":2654,"title":{},"body":{"entities/Board.html":{}}}],["this.checkofficialschoolnumbersmatch(schooldo",{"_index":18439,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.checkoptionalparameter(param",{"_index":5470,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkoriginallessonauthorization(user",{"_index":14181,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkoriginaltaskauthorization(authorizableuser",{"_index":19738,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkparameterregex(foundentry",{"_index":5472,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparametertype(foundentry",{"_index":5471,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparentwritepermission(userid",{"_index":18896,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkpermission(userid",{"_index":2482,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.checkpreconditions(userid",{"_index":18991,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.checkschoolauthorization(authorizableuser",{"_index":14124,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.checkscopeandvalidateparameter(validatabletool",{"_index":5463,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkstreamresponsive(stream",{"_index":17945,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.checksubmissionitemwritepermission(userid",{"_index":8321,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["this.checkvalue(account.userid",{"_index":13832,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(school.externalid",{"_index":13843,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(user.ldapdn",{"_index":13834,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkversionmatch(schoolexternaltool.toolversion",{"_index":18334,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.children.filter((ch",{"_index":2771,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.length",{"_index":2764,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.some((obj",{"_index":2776,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.splice(position",{"_index":2770,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.childrenmap[boardnode.path",{"_index":3194,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.path].push(boardnode",{"_index":3195,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.pathofchildren",{"_index":3236,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.clamconnection.scanstream(stream",{"_index":1169,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.classes.set(props.classes",{"_index":6625,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.classesrepo.findallbyschoolid(schoolid",{"_index":4438,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.findallbyuserid(userid",{"_index":4439,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.updatemany(updatedclasses",{"_index":4446,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classnames",{"_index":12856,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.classnames.push(...props.classnames",{"_index":12037,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.classvalidatormetadatastorage.gettargetvalidationmetadatas",{"_index":8398,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.cleanupinput(username",{"_index":14410,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.cleanuppath(this.baseroute",{"_index":1500,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.client",{"_index":12120,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/S3ClientAdapter.html":{}}}],["this.client.addaccesstogroupfolder(folderid",{"_index":15399,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.addusertogroup(nextclouduserid",{"_index":15427,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.changegroupfoldername(folderid",{"_index":15397,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroup(groupid",{"_index":15388,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroupfolder(foldername",{"_index":15398,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroup(groupid",{"_index":15385,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroupfolder(folderid",{"_index":15386,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupfolderidforgroupid(groupid",{"_index":15381,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupid(nextcloudstrategy.generategroupid(dto",{"_index":15379,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getgroupusers(groupid",{"_index":15403,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(pseudonymdo.pseudonym",{"_index":15412,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(team.id",{"_index":15387,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(teamid",{"_index":15384,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.oidcinternalname",{"_index":15429,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.removeuserfromgroup(nextclouduserid",{"_index":15425,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.renamegroup(groupid",{"_index":15401,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.send(req",{"_index":17941,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.client.setgrouppermissions(groupid",{"_index":15382,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client_id",{"_index":1339,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{}}}],["this.client_name",{"_index":5594,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.client_secret",{"_index":1341,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.clientid",{"_index":12350,"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":12351,"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":16250,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.clone(newpropsfactory",{"_index":2412,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.closedat",{"_index":21232,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.closedat.toisostring",{"_index":21114,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["this.closeuserloginmigrationuc.closemigration",{"_index":21207,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.code",{"_index":1347,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.color",{"_index":6616,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.columnboardcopyservice.copycolumnboard",{"_index":3033,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.columnboardid",{"_index":2721,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["this.columnboardservice.createwelcomecolumnboard(coursereference",{"_index":17819,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.delete(board",{"_index":3806,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbydescendant(element",{"_index":1883,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.columnboardservice.findbyid(boardid",{"_index":3804,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbyid(targetboardid",{"_index":3811,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findidsbyexternalreference(coursereference",{"_index":17817,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.getboardobjecttitlesbyid(columnboardids",{"_index":4936,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.columnboardservice.updatetitle(board",{"_index":3807,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardtargetservice.findorcreatetargets(columnboardids",{"_index":17821,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columns",{"_index":3663,"title":{},"body":{"classes/BoardResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.columnservice.create(board",{"_index":3808,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.delete(column",{"_index":5029,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.columnservice.findbyid(columnid",{"_index":3809,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnUc.html":{}}}],["this.columnservice.findbyid(targetcolumnid",{"_index":5032,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.columnservice.move(column",{"_index":3812,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.updatetitle(column",{"_index":5030,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.columnuc.createcard(currentuser.userid",{"_index":4981,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.columnuc.deletecolumn(currentuser.userid",{"_index":4979,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.columnuc.movecard(currentuser.userid",{"_index":4034,"title":{},"body":{"controllers/CardController.html":{}}}],["this.columnuc.updatecolumntitle(currentuser.userid",{"_index":4976,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.comment",{"_index":12294,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.commontoolservice.determinetoolconfigurationstatus",{"_index":20686,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{}}}],["this.commontoolvalidationservice.checkcustomparameterentries(loadedexternaltool",{"_index":6176,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.checkforduplicateparameters(schoolexternaltool",{"_index":18333,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.isvaluevalidfortype(param.type",{"_index":8993,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.compareparameters(oldtool.parameters",{"_index":9581,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.completed",{"_index":19153,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.config",{"_index":1930,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{}}}],["this.config.bucket",{"_index":17940,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.config.bucket}/${path.sourcepath",{"_index":17978,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.configservice.get('available_languages').includes(language",{"_index":21722,"title":{},"body":{"injectables/UserService.html":{}}}],["this.configservice.get('available_languages').includes(settedlanguage",{"_index":21733,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.configservice.get('feature_identity_management_login_enabled",{"_index":14412,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.configservice.get('feature_identity_management_store_enabled",{"_index":607,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.configservice.get('feature_imscc_course_export_enabled",{"_index":6700,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.configservice.get('login_block_time",{"_index":1575,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.configservice.get('sc_domain",{"_index":13428,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.configservice.get(placeholder",{"_index":11834,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.connect(system",{"_index":13786,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.consentflowuc.getconsentrequest(params.challenge",{"_index":16050,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.consentflowuc.patchconsentrequest",{"_index":16053,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.console.info('connected",{"_index":11631,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`cleaned",{"_index":11640,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`configured",{"_index":11652,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`migrated",{"_index":11664,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`seeded",{"_index":11646,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.consolewriter.info('error",{"_index":3459,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info('schulcloud",{"_index":18566,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`error",{"_index":3523,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.consolewriter.info(`input",{"_index":18567,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`success",{"_index":3463,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info(report",{"_index":7889,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.constructor",{"_index":1486,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BaseFactory.html":{},"classes/TestApiClient.html":{}}}],["this.content",{"_index":3411,"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":5751,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.description",{"_index":5730,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.duedate",{"_index":5747,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.imageurl",{"_index":5731,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.inputformat",{"_index":5744,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.title",{"_index":5728,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.contentelementfactory.build(contentelementtype.rich_text",{"_index":4906,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.contentelementfactory.build(type",{"_index":5683,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.contentelementservice.create(card",{"_index":4135,"title":{},"body":{"injectables/CardService.html":{}}}],["this.contentelementservice.findbyid(elementid",{"_index":1881,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.contents",{"_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":{}}}],["this.contenttype",{"_index":8815,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["this.context",{"_index":13918,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/ShareTokenDO.html":{}}}],["this.context.action",{"_index":10785,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.context.requiredpermissions.join",{"_index":10786,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.contextexternaltool",{"_index":8744,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["this.contextexternaltool.id",{"_index":15000,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.contextexternaltoolauthorizableservice",{"_index":12160,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.contextexternaltoolid",{"_index":8733,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltool",{"_index":6113,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltools",{"_index":6112,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":9426,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find",{"_index":6111,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find(query",{"_index":6107,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(contextexternaltoolid",{"_index":6108,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(id",{"_index":5798,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["this.contextexternaltoolrepo.save(contextexternaltool",{"_index":6110,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrule",{"_index":17888,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.contextexternaltoolservice.deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":18322,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(linkedtool",{"_index":17316,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(tool",{"_index":6156,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findallbycontext",{"_index":6157,"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":6152,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contextexternaltoolid",{"_index":6155,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contexttoolid",{"_index":6160,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findcontextexternaltools",{"_index":6178,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool",{"_index":6151,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltooluc.createcontextexternaltool",{"_index":20494,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.deletecontextexternaltool(currentuser.userid",{"_index":20499,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltool",{"_index":20506,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltoolsforcontext",{"_index":20501,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.updatecontextexternaltool",{"_index":20509,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltoolvalidationservice.validate(contextexternaltool",{"_index":6149,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextid",{"_index":5857,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.contextref",{"_index":5785,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.contexttoolid",{"_index":20726,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.contexttype",{"_index":5859,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this.converterutil.xml2object",{"_index":2200,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.converterutil.xml2object>(resp.data",{"_index":2213,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.cookies",{"_index":11490,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.copy(copypaths",{"_index":17963,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.copyboardelements(boardelements",{"_index":2990,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycolumnboard(element.target",{"_index":3018,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycourse(userid",{"_index":18911,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copycourseentity",{"_index":6738,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyfilesservice.copyfilesofentity",{"_index":19692,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(boardstatus",{"_index":3048,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(newname",{"_index":6736,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(originallesson.name",{"_index":14191,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.copyhelperservice.derivecopyname(originaltaskname",{"_index":19753,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elements",{"_index":2994,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(filestatuses",{"_index":6404,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.copyingsince",{"_index":6622,"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":3015,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copylesson(userid",{"_index":18914,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copymap.get(child.id",{"_index":17278,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copymap.set(original.id",{"_index":17241,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copytask(element.target",{"_index":3011,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copytask(userid",{"_index":18915,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copytaskentity(params",{"_index":19691,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.countyid",{"_index":6526,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.course",{"_index":2638,"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":12556,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.id",{"_index":12553,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isfinished",{"_index":12510,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isusersubstitutionteacher(user",{"_index":12536,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.name",{"_index":12552,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.school.id",{"_index":11924,"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":6775,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.coursecopyuc.copycourse(currentuser.userid",{"_index":17794,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.courseexportservice.exportcourse(courseid",{"_index":6789,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.courseexportuc.exportcourse(urlparams.courseid",{"_index":6701,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.coursegroup",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["this.coursegroup.getstudentids",{"_index":12308,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.coursegroup.school.id",{"_index":11925,"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":14279,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegrouprepo",{"_index":12144,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.coursegrouprule",{"_index":17879,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.coursegrouprule.haspermission(user",{"_index":14282,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegroups.getitems",{"_index":6654,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.coursegroups.isinitialized(true",{"_index":6651,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.courseid",{"_index":19778,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursename",{"_index":19777,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursepermission(user",{"_index":14280,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.courserepo",{"_index":12142,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.courserepo.createcourse(coursecopy",{"_index":6748,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserepo.findallbyuserid",{"_index":7846,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.courserepo.findallbyuserid(user.id",{"_index":20086,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findallbyuserid(userid",{"_index":6734,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{}}}],["this.courserepo.findallforteacherorsubstituteteacher(user.id",{"_index":20085,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findbyid(courseid",{"_index":6728,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.courserepo.findbyid(originalboard.context.id",{"_index":4780,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.courserepo.findbyid(parentparams.courseid",{"_index":14184,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.courserepo.findbyid(rootboarddo.context.id",{"_index":3106,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.courserepo.findone(roomid",{"_index":17836,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.courserepo.save(coursecopy",{"_index":6750,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserule",{"_index":17878,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.courserule.haspermission(user",{"_index":6859,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.findallbyuserid(pseudonym.userid",{"_index":9806,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.courseservice.findbyid(contextexternaltool.contextref.id",{"_index":20716,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.courseservice.findbyid(courseid",{"_index":1878,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":18861,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.courseservice.getcourse(params.courseid",{"_index":23777,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.save(course",{"_index":23781,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.savecourse(course",{"_index":23785,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseuc.findallbyuser(currentuser.userid",{"_index":6694,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.create",{"_index":10084,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.create(currentuserid",{"_index":21895,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.create(path",{"_index":17959,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createboardelementfor(target",{"_index":2678,"title":{},"body":{"entities/Board.html":{}}}],["this.createboardforcourse(courseid",{"_index":3639,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.createbucket",{"_index":17958,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createcards(this.random(1",{"_index":3502,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createclient(provider",{"_index":8056,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.createcolumns(3",{"_index":3498,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createdat",{"_index":406,"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":3508,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createemptyelements(card",{"_index":4129,"title":{},"body":{"injectables/CardService.html":{}}}],["this.createentity(domainobject",{"_index":2298,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createerrorloggable(error",{"_index":10912,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponse(error",{"_index":10922,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforbusinesserror(error",{"_index":10930,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforfeatherserror(error",{"_index":10928,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponsefornesthttpexception(error",{"_index":10932,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforunknownerror",{"_index":10933,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createfile(contentrange",{"_index":20326,"title":{},"body":{"classes/TestHelper.html":{}}}],["this.createfileurlreplacements(filedtos",{"_index":6387,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.creategridelement(elementwithposition",{"_index":7768,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.createidentityprovider(configureaction.config",{"_index":13445,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(idpalias",{"_index":13481,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(oidcconfig.idphint",{"_index":13473,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createiframesubject(user",{"_index":12656,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.createlogmessageforvalidationerrors(this.error",{"_index":8378,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.createnewentityfromdo(domainobj",{"_index":2328,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewentityfromdo(domainobject",{"_index":2305,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewmigration(schooldo",{"_index":21365,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.createorupdateboardnode(boardnode",{"_index":17367,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.createorupdateidmaccount(account",{"_index":13677,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.createqueryordermap(options?.order",{"_index":20999,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.createrichtextelement",{"_index":4855,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.createstatus",{"_index":20070,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.createtaskstatus(task",{"_index":8189,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.createusermigrationdto",{"_index":21557,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.createusersearchindex",{"_index":11797,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.creator",{"_index":12478,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.creatorid",{"_index":6271,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.credentialhash",{"_index":189,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.cruduc.createoauth2client(currentuser",{"_index":16030,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.deleteoauth2client(currentuser",{"_index":16035,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.getoauth2client(currentuser",{"_index":16020,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.listoauth2clients",{"_index":16023,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.updateoauth2client(currentuser",{"_index":16032,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.currentredirect",{"_index":11486,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.customs",{"_index":7221,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.dashboard",{"_index":7637,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.dashboardrepo.getdashboardbyid(dashboardid",{"_index":7849,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.getusersdashboard(userid",{"_index":7845,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.persistandflush(dashboard",{"_index":7848,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboarduc.getusersdashboard(currentuser.userid",{"_index":7454,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.moveelementondashboard",{"_index":7457,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.renamegroupondashboard",{"_index":7462,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboardurl",{"_index":21543,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.data",{"_index":829,"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":11739,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.collectionexists(collectionname",{"_index":11737,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.createcollection(collectionname",{"_index":11740,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.finddocumentsofcollection(collectionname",{"_index":11783,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getcollectionnames",{"_index":11709,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getdatabasecollection('users",{"_index":11801,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.importcollection",{"_index":11773,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.syncindexes",{"_index":11798,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem",{"_index":7922,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem([collectionname",{"_index":7924,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem(filter",{"_index":7893,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfactories(filter",{"_index":7885,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem",{"_index":7919,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem([collectionname",{"_index":7921,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem(filter",{"_index":7886,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.syncindexes",{"_index":7894,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/Options.html":{}}}],["this.db.collection(collectionname",{"_index":7960,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.createcollection(collectionname",{"_index":7977,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.dropcollection(collectionname",{"_index":7978,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.listcollections(undefined",{"_index":7970,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.default",{"_index":7287,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["this.default_errorcode",{"_index":15472,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.default_message",{"_index":15470,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.defaultencryptionservice.decrypt(oidcconfig.clientsecret",{"_index":16402,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["this.defaultencryptionservice.encrypt(system.oauthconfig.clientsecret",{"_index":11842,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultencryptionservice.encrypt(system.oidcconfig.clientsecret",{"_index":11845,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultoauthclientbody",{"_index":15921,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.defaultscopes",{"_index":12427,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.defaultvalue",{"_index":7429,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["this.delete",{"_index":10086,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.delete(account",{"_index":735,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.delete(deleteobjects",{"_index":17973,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(filteredpathobjects",{"_index":17989,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(paths",{"_index":17966,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deleted",{"_index":10023,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.deletedat",{"_index":10022,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{}}}],["this.deletedfoldername}/${path",{"_index":17962,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deletedsince",{"_index":6277,"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":2337,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.deleteexternaltoolpseudonymsbyuserid(userid",{"_index":17103,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletefile(file",{"_index":8043,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefileinstorage(file",{"_index":8068,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefilesuc.deletemarkedfiles(thresholddate",{"_index":8001,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.deleteidentityprovider(configureaction.alias",{"_index":13449,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.deletenode(card",{"_index":17302,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(column",{"_index":17300,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(columnboard",{"_index":17298,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(externaltoolelement",{"_index":17317,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(fileelement",{"_index":17305,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(linkelement",{"_index":17307,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(richtextelement",{"_index":17309,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submission",{"_index":17313,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submissioncontainerelement",{"_index":17311,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletepseudonymsbyuserid(userid",{"_index":17102,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletesubmissions(task",{"_index":20008,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.derivecopyname(composedname",{"_index":6447,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.derivecopystatus(filecopystatus",{"_index":19694,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.derivecopystatus(filedtos",{"_index":6389,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.derivecoursestatus(originalcourse",{"_index":6743,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.description",{"_index":6609,"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":{},"classes/MetaTagExtractorResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.html":{}}}],["this.descriptioninputformat",{"_index":12469,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.details",{"_index":3869,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.detectcontenttypeorthrow(buffer",{"_index":8891,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.detectcontenttypeorthrow(logobinarydata",{"_index":8900,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.determineinput(systemid",{"_index":16959,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.determinenewroomsin(rooms",{"_index":7583,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.determinestatus(tool",{"_index":18295,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.displayat",{"_index":6934,"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":6894,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.displayname",{"_index":5787,"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":3495,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.domigration(externalid",{"_index":18435,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.domigration(userdo",{"_index":21551,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.downloadoriginfile(originfilepath",{"_index":16753,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.dropcollectionifexists(collectionname",{"_index":11749,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.duedate",{"_index":12474,"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":4083,"title":{},"body":{"classes/CardResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.elementservice.create(card",{"_index":4181,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.create(submissionitem",{"_index":19217,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.delete(element",{"_index":8318,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(contentelementid",{"_index":8322,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(elementid",{"_index":4183,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(submissioncontainerid",{"_index":19207,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.findparentofid(elementid",{"_index":8319,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.move(element",{"_index":4182,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.update(element",{"_index":8317,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementuc.createsubmissionitem",{"_index":8297,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.deleteelement(currentuser.userid",{"_index":8294,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.updateelementcontent",{"_index":8291,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.em",{"_index":9052,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.assign(entity",{"_index":4504,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.assign(existing",{"_index":9057,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.assign(existingentity",{"_index":11176,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(boardnode",{"_index":3319,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["this.em.find(classentity",{"_index":4484,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.find(columnboardnode",{"_index":3329,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.em.find(columnboardtarget",{"_index":4944,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.find(externaltoolpseudonymentity",{"_index":9051,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.find(groupentity",{"_index":11170,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(pseudonymentity",{"_index":17137,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findandcount(externaltoolpseudonymentity",{"_index":9073,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(dashboardgridelementmodel",{"_index":7770,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.findone(dashboardmodelentity",{"_index":7791,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findone(externaltoolpseudonymentity",{"_index":9050,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(groupentity",{"_index":11167,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.findone(pseudonymentity",{"_index":17136,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(boardnode",{"_index":3593,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["this.em.findoneorfail(course",{"_index":3522,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.findoneorfail(dashboardmodelentity",{"_index":7821,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findoneorfail(externaltoolpseudonymentity",{"_index":9047,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findoneorfail(pseudonymentity",{"_index":17135,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(user",{"_index":7793,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.flush",{"_index":3345,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.getconnection('write').getdb",{"_index":7959,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.em.getreference(contextexternaltoolentity",{"_index":17378,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.getunitofwork().getbyid(boardnode.name",{"_index":3592,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.nativedelete(externaltoolpseudonymentity",{"_index":9060,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.nativedelete(pseudonymentity",{"_index":17140,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(boardnode",{"_index":17385,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.persist(entity",{"_index":9058,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(modelentity",{"_index":7817,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persist(newentity",{"_index":11177,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.persist(target",{"_index":4943,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.persistandflush(board",{"_index":3497,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(cards",{"_index":3505,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(columns",{"_index":3499,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(data",{"_index":11750,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.em.persistandflush(elements",{"_index":3510,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(existingentities",{"_index":4505,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.persistandflush(modelentity",{"_index":7819,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.remove(el",{"_index":7790,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.remove(this.em.getreference(boardnode",{"_index":17319,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.em.removeandflush(entity",{"_index":11181,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.email",{"_index":9627,"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":20970,"title":{},"body":{"classes/UserDO.html":{}}}],["this.enablemigrationstart",{"_index":14984,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.enableoauthmigrationfeature(schooldo",{"_index":21366,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.encoding",{"_index":10415,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.encryptionservice.encrypt(externaltool.config.secret",{"_index":9400,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.encryptpassword(accountdto.password",{"_index":894,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptpassword(password",{"_index":900,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptsecrets(collectionname",{"_index":11771,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(data",{"_index":11748,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(jsondocuments",{"_index":11837,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.enddate",{"_index":12237,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["this.endpointurl",{"_index":12277,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.enrichdatafromexternaltool(createdschoolexternaltool",{"_index":18299,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichdatafromexternaltool(tool",{"_index":18293,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichwithdatafromexternaltools(schoolexternaltools",{"_index":18291,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.ensureboardnodetype(this.getchildren(boardnode",{"_index":3197,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurecontextpermissions(userid",{"_index":8678,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.ensureleafnode(boardnode",{"_index":3215,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurepermission(userid",{"_index":9489,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.ensureschoolpermissions(userid",{"_index":8669,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.ensuretoolpermissions(userid",{"_index":20796,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.entityclass",{"_index":2420,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityclass(props",{"_index":2403,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityfactory(entityprops",{"_index":2318,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.entityname",{"_index":748,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ForbiddenLoggableException.html":{}}}],["this.error",{"_index":8377,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.errorcode",{"_index":15471,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.errorhandler(error",{"_index":16278,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.errortype",{"_index":1012,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.everyattendeejoinsmuted",{"_index":21925,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.everyattendejoinsmuted",{"_index":21756,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["this.everybodyjoinsasmoderator",{"_index":21758,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.exchange",{"_index":17861,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.expiresat",{"_index":197,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{}}}],["this.externalgroups",{"_index":15826,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalid",{"_index":6938,"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":15837,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["this.externalorganizationid",{"_index":8519,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["this.externalschool",{"_index":15824,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalsource",{"_index":11137,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.externalsourcename",{"_index":4345,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableexternaltools",{"_index":8681,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableschoolexternaltools",{"_index":8679,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailabletools",{"_index":8671,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope",{"_index":8684,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope(externaltool",{"_index":8673,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforcontext",{"_index":20432,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforschool",{"_index":20429,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforcontextexternaltool",{"_index":20439,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforschoolexternaltool",{"_index":20436,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltooldomapper.mapcreaterequest(externaltoolparams",{"_index":20543,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapexternaltoolfilterquerytoexternaltoolsearchquery(filterquery",{"_index":20549,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapsortingquerytodomain(sortingquery",{"_index":20548,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapupdaterequest(externaltoolparams",{"_index":20559,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolid",{"_index":5817,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.externaltoollogoservice.buildlogourl",{"_index":8675,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["this.externaltoollogoservice.fetchlogo(externaltool",{"_index":9491,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoollogoservice.getexternaltoolbinarylogo",{"_index":20566,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoollogoservice.validatelogosize(externaltool",{"_index":9533,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolparametervalidationservice.validatecommon(externaltool",{"_index":9530,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolpseudonymrepo",{"_index":17109,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17108,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findbyuserid(userid",{"_index":17106,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonym(query",{"_index":17112,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonymbypseudonym(pseudonym",{"_index":17111,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolrepo.deletebyid(toolid",{"_index":9428,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.find(query",{"_index":9409,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyid(id",{"_index":9418,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyname(name",{"_index":9421,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyoauth2configclientid(clientid",{"_index":9422,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(externaltool",{"_index":9405,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(toupdate",{"_index":9408,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolservice.createexternaltool(externaltool",{"_index":9493,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.deleteexternaltool(toolid",{"_index":9501,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.findbyid(loadedschoolexternaltool.toolid",{"_index":6175,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.externaltoolservice.findbyid(schoolexternaltool.toolid",{"_index":8689,"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":18294,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.externaltoolservice.findbyid(toolid",{"_index":8895,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyname",{"_index":15428,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.externaltoolservice.findexternaltoolbyname(externaltool.name",{"_index":8982,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid",{"_index":9811,"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":9548,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltools",{"_index":8665,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolservice.findexternaltools(query",{"_index":9500,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.updateexternaltool(toupdate",{"_index":9499,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltooluc.createexternaltool(currentuser.userid",{"_index":20544,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.deleteexternaltool(currentuser.userid",{"_index":20563,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.findexternaltool(currentuser.userid",{"_index":20550,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.getexternaltool",{"_index":20555,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.updateexternaltool",{"_index":20560,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolversionservice.increaseversionofnewtoolifnecessary(loadedtool",{"_index":9407,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaluser",{"_index":15822,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externaluserid",{"_index":8525,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ProvisioningDto.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.extractaccount(account",{"_index":13619,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakuser",{"_index":13604,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakusers[0",{"_index":13611,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(user",{"_index":13622,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcaccountid",{"_index":13639,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcsystemid",{"_index":13635,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcuserid",{"_index":13637,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractparamsfromrequest(request",{"_index":13824,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.extractreferences(elements",{"_index":2991,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.extractvalidationerrordetails(childerror",{"_index":1264,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.extractvalidationerrordetails(validationerror",{"_index":1254,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.factory.createdto",{"_index":17839,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.feathersauthprovider.getpermittedschools(userid",{"_index":9696,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getpermittedtargets(userid",{"_index":9697,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getuserschoolpermissions(userid",{"_index":9682,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getusertargetpermissions(userid",{"_index":9683,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersserviceprovider.getservice('/etherpad/pads",{"_index":8492,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["this.feathersserviceprovider.getservice('/nexboard/boards",{"_index":15342,"title":{},"body":{"injectables/NexboardService.html":{}}}],["this.feathersserviceprovider.getservice('users",{"_index":9665,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`${targetmodel}/:scopeid/userpermissions",{"_index":9652,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`/users/:scopeid/${targetmodel",{"_index":9657,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`path",{"_index":23318,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.features",{"_index":6624,"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":12231,"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":9872,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["this.federalstateservice.findfederalstatebyname",{"_index":16451,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.fetchbase64logo(externaltool.logourl",{"_index":8884,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.filecopyservice.copyfilesofparent",{"_index":17248,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.filecopyservicefactory.build",{"_index":4782,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.filesrepo.delete(file",{"_index":8069,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesrepo.findforcleanup(thresholddate",{"_index":8041,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent",{"_index":18503,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent(copyfilesofparentparams",{"_index":6385,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(fileelement.id",{"_index":17304,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(lesson.id",{"_index":14304,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(submission.id",{"_index":19297,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(task.id",{"_index":20007,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.filesstorageservice.copyfilesofparent(userid",{"_index":10606,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.deletefilesofparent(filerecords",{"_index":10615,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload",{"_index":10613,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload.parentid",{"_index":10609,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageuc.downloadbysecuritytoken(token",{"_index":10348,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filesstorageuc.updatesecuritystatus(token",{"_index":10356,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filestoragemqproducer.copyfilesofparent(param",{"_index":10526,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.deletefilesofparent(parentid",{"_index":10531,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.listfilesofparent(param",{"_index":10529,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filesystemadapter.createdir(targetfolder",{"_index":11779,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.eol",{"_index":11794,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(__dirname",{"_index":11695,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(basedir",{"_index":11717,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(targetfolder",{"_index":11712,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(this.basedir",{"_index":11699,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readdir(basedir",{"_index":11715,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readfile(filepath",{"_index":11763,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.writefile(filepath",{"_index":11793,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filetype",{"_index":17190,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["this.filterallowed(userid",{"_index":4176,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.filterbypermission(elements",{"_index":8171,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.filtercoursesbytoolavailability(courses",{"_index":9774,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.filtersubmissionsbypermission(submissions",{"_index":19322,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.filtertoolswithpermissions(userid",{"_index":6159,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.findallforstudent(user",{"_index":20065,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findallforteacher(user",{"_index":20066,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findalltasks(currentuser",{"_index":19656,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.findandcount(scope",{"_index":10271,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findbyexternalid(externalid",{"_index":21013,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.findbyid(accountid",{"_index":734,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findbyid(boardnode.parentid",{"_index":3338,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(id",{"_index":3315,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(userid",{"_index":21704,"title":{},"body":{"injectables/UserService.html":{}}}],["this.findbynames([rolename.administrator",{"_index":17652,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.findbyuserid(userid",{"_index":736,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findexistinggridelement(elementwithposition",{"_index":7764,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.findexistingtargets(columnboardids",{"_index":4935,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.findexternaltoolpseudonymsbyuserid(userid",{"_index":17094,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findimportusersandcount(scope.query",{"_index":12979,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this.findlegacyltitool",{"_index":15431,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findmigrationbyschool(schoolid",{"_index":21389,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.findnewsandcount(scope.query",{"_index":15212,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.findnextcloudtool",{"_index":15405,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findoneorfail(scope",{"_index":10268,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findpseudonymbypseudonym(pseudonym",{"_index":9767,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.findpseudonymsbyuserid(userid",{"_index":17093,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findtasksandcount(scope.query",{"_index":19886,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.findteambyid(teamid",{"_index":4714,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.finduserafterprovisioningorthrow(externaluserid",{"_index":15561,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.finishcoursecopying(coursecopy",{"_index":6741,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.finished",{"_index":12492,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.add(user",{"_index":12558,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.getidentifiers('_id",{"_index":12495,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.remove(user",{"_index":12560,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.set(props.finished",{"_index":12482,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finishedat",{"_index":21234,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.finishedat.toisostring",{"_index":21259,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["this.firstname",{"_index":9623,"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":20966,"title":{},"body":{"classes/UserDO.html":{}}}],["this.flagged",{"_index":12041,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.forcepasswordchange",{"_index":12604,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.formattedjwt",{"_index":1462,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.friendlyurl",{"_index":7232,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.from",{"_index":8515,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.frontchannel_logout_uri",{"_index":7238,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.frontchannellogouturi",{"_index":15643,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.fullname",{"_index":2066,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.fullpath",{"_index":17435,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.fwulearningcontentsuc.get(path",{"_index":10816,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["this.generatearray(amount",{"_index":3512,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.generatebrokersystems([system",{"_index":19553,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatebrokersystems(systems",{"_index":19560,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatechecksum(callname",{"_index":2227,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.generatepreview(params",{"_index":16807,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.get('/api/v1/me",{"_index":1017,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.get('/events",{"_index":3955,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.get(`${oauthconfig.authendpoint}?${query",{"_index":11529,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(location",{"_index":11553,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(path",{"_index":1069,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getadditionalerrorinfo(idtoken.email",{"_index":13124,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.getadminidandtoken",{"_index":1064,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getandpseudonyms(students",{"_index":9792,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(substitutionteachers",{"_index":9794,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(teachers",{"_index":9793,"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":1051,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.members?roomname=${groupname",{"_index":1049,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.moderators?roomname=${groupname",{"_index":1047,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/users.list?${querystring",{"_index":1027,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getbbbrequestconfig(this.presentationurl",{"_index":2195,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getboardauthorizable(boarddo",{"_index":3097,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.getboardvalue(contextexternaltool.contextref.id",{"_index":1876,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.getbydraftforcreatorquery(creatorid",{"_index":19992,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(false",{"_index":19993,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(isdraft",{"_index":19991,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(true",{"_index":19994,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getchildren(boardnode",{"_index":3241,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getchildren(boardnode).map((node",{"_index":3234,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getcollectionnames",{"_index":7975,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getcopiesforchildrenof(original",{"_index":17237,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcopyname(originaltask.name",{"_index":19743,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getcopystatusesforchildrenof(original",{"_index":17240,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcoursegroupstudentids",{"_index":12328,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.getcoursesfromuserspseudonym(loadedpseudonym",{"_index":9773,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getcoursevalue(board.context.id",{"_index":1887,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.getcoursevalue(contextexternaltool.contextref.id",{"_index":1873,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.getdatabasecollection(collectionname",{"_index":7962,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getdefaultmaxduedate",{"_index":20075,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getdestinationcourse(parentparams.courseid",{"_index":19737,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getdestinationlesson(parentparams.lessonid",{"_index":19742,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getelement(position",{"_index":7606,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getelementbytargetid(id",{"_index":2641,"title":{},"body":{"entities/Board.html":{}}}],["this.getelements().map((el",{"_index":2651,"title":{},"body":{"entities/Board.html":{}}}],["this.getelementwithwritepermission(userid",{"_index":8316,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.getentitypermissions(userid",{"_index":9690,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.getexternalsubclientmapperconfiguration",{"_index":13459,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getfilteredgroupusers(externalgroup",{"_index":16484,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.getfinisheduserids",{"_index":12505,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getfirstopenindex",{"_index":7601,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getgradedsubmissions",{"_index":12539,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getgroupdata(groupname",{"_index":1036,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getid",{"_index":7555,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getidpmapperconfiguration(idpalias",{"_index":13480,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getinternalid(accountdto.id",{"_index":884,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(accountid",{"_index":899,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(id",{"_index":875,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getjwtforuser(user.id",{"_index":16342,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.getjwtfromresponse(response",{"_index":1485,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getloginurl(sourcesystem",{"_index":21538,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getloginurl(targetsystem",{"_index":21535,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getmaxsubmissions",{"_index":12543,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getmeetinginfo(new",{"_index":2209,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getnewspermissions(userid",{"_index":15310,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getoauthconfig",{"_index":13554,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.getorconstructdashboardmodelentity(entity",{"_index":7783,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.getorcreatecourseboard(courseid",{"_index":3636,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.getparent",{"_index":11926,"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":1466,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getpermittedcourses(user",{"_index":20051,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedlessons(user",{"_index":20052,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedtargets(userid",{"_index":15305,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getpostloginredirecturl",{"_index":15562,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getpreviewfile(params",{"_index":16808,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpropertyvalue(e",{"_index":8387,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.getprovisioningstrategy(oauthdata.system.provisioningstrategy",{"_index":16964,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getprovisioningstrategy(system.provisioningstrategy",{"_index":16960,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getredirecturi(migration",{"_index":15585,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getreferencesfromposition(from",{"_index":7577,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getrepository(tool",{"_index":17097,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getrepository(tool).findbyuseridandtoolidorfail(user.id",{"_index":17091,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getseedfolder",{"_index":11702,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.getshorttitle",{"_index":6664,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.getsubmissionitems",{"_index":12515,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmittedsubmissions",{"_index":12538,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmitterids",{"_index":12333,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.gettargetfilters(userid",{"_index":15322,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.gettargetfolder(toseedfolder",{"_index":11778,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.gettasksitems",{"_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.getteammemberids",{"_index":12327,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.geturl('create",{"_index":2190,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('end",{"_index":2211,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('getmeetinginfo",{"_index":2215,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('join",{"_index":2210,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl(filesstorageinternalactions.downloadbysecuritytoken",{"_index":1180,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.geturl(filesstorageinternalactions.updatesecuritystatus",{"_index":1182,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.getuser(userid",{"_index":9647,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.getuserrole(user",{"_index":9771,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getvideoconferenceoptions(scope",{"_index":21993,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.grade",{"_index":12300,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.gradecomment",{"_index":12302,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.graded",{"_index":3772,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.gradelevel",{"_index":4293,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.grant_type",{"_index":1345,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.granttype",{"_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.grid",{"_index":7567,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(key",{"_index":7593,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(this.gridindexfromposition(position",{"_index":7614,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(i",{"_index":7605,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(key",{"_index":7573,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(this.gridindexfromposition(position",{"_index":7574,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].foreach((key",{"_index":7586,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].map((key",{"_index":7571,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(index",{"_index":7604,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(element.pos",{"_index":7569,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(position",{"_index":7617,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.values",{"_index":7599,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.gridelements",{"_index":7672,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.gridelements.set(props.gridelements",{"_index":7647,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.group.externalid",{"_index":18344,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.group.externalorganizationid",{"_index":18345,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.groupelements",{"_index":7671,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.groupid",{"_index":7670,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.grouprepo.delete(group",{"_index":11279,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyexternalsource(externalid",{"_index":11274,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyid(id",{"_index":11272,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyuser(user",{"_index":11275,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findclassesforschool(schoolid",{"_index":11276,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.save(group",{"_index":11278,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprule",{"_index":17890,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.groups.set(props.groups",{"_index":6626,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.groupservice.delete(group",{"_index":16518,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyexternalsource",{"_index":16479,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyuser(user",{"_index":16506,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.save(group",{"_index":16493,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupuc.findallclasses",{"_index":11058,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuc.getgroup(currentuser.userid",{"_index":11065,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuser.externaluserid",{"_index":21103,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.groupuser.rolename",{"_index":21104,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.guest",{"_index":2071,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.guestpolicy",{"_index":1988,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.handlecolumnboardintegration(roomid",{"_index":17813,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.hasaccesstosubmission(user",{"_index":19273,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haschangedparameternames(oldparams",{"_index":9590,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterregex(newparams",{"_index":9591,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterscope(newparams",{"_index":9593,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparametertypes(newparams",{"_index":9592,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedrequiredparameters(oldparams",{"_index":9589,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschild(child",{"_index":2766,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.hascoursereadpermission(user",{"_index":17756,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hascoursewritepermission(user",{"_index":17757,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hasduplicateattributes(externaltool.parameters",{"_index":8962,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.hasnewrequiredparameter(oldparams",{"_index":9588,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.hasparent",{"_index":3571,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.hasparentpermission(user",{"_index":19955,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.hasparenttaskreadaccess(user",{"_index":19278,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasparenttaskwriteaccess(user",{"_index":19277,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haspath(req.route",{"_index":17436,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.haspermission(user",{"_index":1819,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissionbyreferences(userid",{"_index":1791,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.hasreadaccess(user",{"_index":19275,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasscanstatuswontcheck",{"_index":10190,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.hasschoolmigrated(externalid",{"_index":18443,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.haswriteaccess(user",{"_index":19274,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.headers",{"_index":1928,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.height",{"_index":4068,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{}}}],["this.hidden",{"_index":3433,"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":21526,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.host}${location",{"_index":11540,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.httpservice",{"_index":1071,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.httpservice.get(input.system.provisioningurl",{"_index":18068,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.httpservice.get(logourl",{"_index":8885,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.httpservice.get(url",{"_index":2212,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{}}}],["this.httpservice.get(url.tostring",{"_index":3959,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.httpservice.post(tokenendpoint",{"_index":15686,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.httpservice.post(url",{"_index":2196,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.httpservice.request",{"_index":13556,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.httpstatus",{"_index":8828,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["this.hydracookies",{"_index":6213,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.hydrassoservice.generateconfig(oauthclientid",{"_index":11453,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.initauth(hydraoauthconfig",{"_index":11463,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.processredirect(dto",{"_index":11472,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrauc.getoauthtoken(oauthclientid",{"_index":16300,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauc.requestauthcode(currentuser.userid",{"_index":16306,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.id",{"_index":404,"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/UserLoginMigrationResponse.html":{},"classes/UsersList.html":{}}}],["this.identifiername",{"_index":15450,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.idmoauthservice.getoauthconfig",{"_index":19575,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.isoauthconfigavailable",{"_index":19572,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.resourceownerpasswordgrant(username",{"_index":14413,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.idmreferenceid",{"_index":806,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["this.idmservice.findaccountbydbcaccountid(id.tostring",{"_index":611,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idmservice.findaccountbyid(id",{"_index":609,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idphint",{"_index":12353,"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":15610,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.idtokenservice.createidtoken(userid",{"_index":15957,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.imagemagick(original.data",{"_index":16760,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.imageurl",{"_index":14360,"title":{},"body":{"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.html":{},"classes/MetaTagExtractorResponse.html":{}}}],["this.importhash",{"_index":20964,"title":{},"body":{"classes/UserDO.html":{}}}],["this.importuserid",{"_index":12850,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.importuserschoolid",{"_index":18355,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.info.appname",{"_index":1278,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.basepath",{"_index":1281,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.mountsdescription",{"_index":1283,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.port",{"_index":1279,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.initializes3clientmap",{"_index":8035,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.injectenvvars(filecontent",{"_index":11764,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.injectenvvars(s",{"_index":11743,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.inmaintenancesince",{"_index":12223,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.inner",{"_index":5345,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.caninline",{"_index":5350,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.content",{"_index":5351,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.transform",{"_index":5352,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inputformat",{"_index":17559,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.inusermigration",{"_index":12226,"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":4290,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.isallowedaschild(child",{"_index":2761,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.isarchived",{"_index":18959,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.isauthenticationresponse(response.body",{"_index":1509,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isauthorizedstudent(userid",{"_index":19213,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.isautoparameterglobal(param",{"_index":8969,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isblocked",{"_index":10183,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isclientidunique(externaltool",{"_index":9545,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.iscolumnboardfeatureflagactive",{"_index":8177,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.iscustomparameternameempty(param",{"_index":8964,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidregex(param",{"_index":8979,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidtype(param",{"_index":8978,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdirectory",{"_index":10028,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.isdraft",{"_index":3773,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isfinished",{"_index":3775,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.isfinishedforuser(user",{"_index":12544,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isglobalparametervalid(param",{"_index":8966,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isgraceperiodexpired(userloginmigration",{"_index":4530,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.isgraded",{"_index":12337,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.isgradedforuser(user",{"_index":12548,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isgroup",{"_index":7547,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.ishidden",{"_index":7240,"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":5404,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islatest(schoolexternaltool",{"_index":5403,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islocal",{"_index":7225,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.isnameunique(externaltool",{"_index":8959,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15555,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.isoptional",{"_index":7297,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.ispending",{"_index":10188,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispreviewpossible",{"_index":10185,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispropertyprivacyprotected(e.target",{"_index":8395,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.isregexcommentmandatoryandfilled(param",{"_index":8973,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isregexvalid(param",{"_index":8976,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isschoolnumberunique(school",{"_index":18514,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.isslash(inputpath",{"_index":1492,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isslash(path",{"_index":1495,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.issubmitted",{"_index":12320,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.issubmittedforuser(user",{"_index":12547,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.issubstitutionteacher",{"_index":3774,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.issuer",{"_index":12367,"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":8192,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.istemplate",{"_index":7223,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.istoolstatuslatestorthrow(userid",{"_index":20682,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.isuniqueemail(email",{"_index":951,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.isupgradable",{"_index":4351,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.isuserreferenced(user",{"_index":1675,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["this.isusersubmitter(user",{"_index":12319,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.isusersubstitutionteacherincourse(user",{"_index":12545,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isvaluevalidfortype(param.type",{"_index":5478,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.isverified",{"_index":10159,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.joinpath(os.tmpdir",{"_index":10420,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.jwksendpoint",{"_index":12369,"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":15480,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["this.jwtservice.sign(user",{"_index":1560,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.addtowhitelist(user.accountid",{"_index":1563,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.iswhitelisted(accountid",{"_index":13192,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["this.jwtvalidationadapter.removefromwhitelist(decodedjwt.accountid",{"_index":1568,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.kcadmin.callkcadminclient",{"_index":13398,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getadminuser",{"_index":13722,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getclientid",{"_index":13432,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.kcadmin.setpasswordpolicy",{"_index":13510,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadmin.testkcconnection",{"_index":13506,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadminclient",{"_index":13282,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.auth(this.kcsettings.credentials",{"_index":13283,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.callkcadminclient",{"_index":13587,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.del",{"_index":13623,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.find",{"_index":13620,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.findone",{"_index":13602,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.setconfig",{"_index":13278,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminservice.getclientid",{"_index":13544,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getclientsecret",{"_index":13546,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getwellknownurl",{"_index":13540,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.testkcconnection",{"_index":13553,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcsettings.baseurl}/realms/${this.kcsettings.realmname}/.well",{"_index":13284,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.clientid",{"_index":13287,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.credentials.username",{"_index":13286,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.realmname",{"_index":13297,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.key",{"_index":7205,"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":19018,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring(cryptojs.enc.utf8",{"_index":19021,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.keycloakconfigservice.configurebrokerflows",{"_index":13512,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureclient",{"_index":13511,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureidentityproviders",{"_index":13514,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configurerealm",{"_index":13513,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigurationuc.check",{"_index":11630,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.clean(options.pagesize",{"_index":11638,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.configure",{"_index":11651,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.migrate",{"_index":11659,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.seed",{"_index":11645,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakmanagementuc.check",{"_index":13660,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.configure",{"_index":13661,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.seed",{"_index":13662,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmigrationservice.migrate(skip",{"_index":13509,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.clean(pagesize",{"_index":13507,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.seed",{"_index":13508,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keyvalue",{"_index":1593,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.language",{"_index":12606,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastauthorizationtime",{"_index":13300,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.lastloginsystemchange",{"_index":12610,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastmodifytimestamp",{"_index":12382,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastname",{"_index":9625,"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":20968,"title":{},"body":{"classes/UserDO.html":{}}}],["this.lastsuccessfulfullsync",{"_index":12378,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsuccessfulpartialsync",{"_index":12380,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsyncattempt",{"_index":12376,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lasttriedfailedlogin",{"_index":195,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.lastupdatedat",{"_index":20347,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["this.launch_presentation_locale",{"_index":14597,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["this.ldapactive",{"_index":19411,"title":{},"body":{"classes/SystemDto.html":{}}}],["this.ldapconfig",{"_index":12439,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.ldapdn",{"_index":4295,"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":12048,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.ldapencryptionservice.encrypt",{"_index":11848,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.ldapservice.checkldapcredentials(system",{"_index":13840,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.legacylogger.debug",{"_index":9414,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.legayschoolrule",{"_index":17884,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lesson",{"_index":12479,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.hidden",{"_index":12555,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.name",{"_index":12554,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lessoncopyservice.copylesson",{"_index":3027,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.lessoncopyservice.updatecopiedembeddedtasks(elementcopystatus",{"_index":3054,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.lessoncopyuc.copylesson",{"_index":17797,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.lessonhidden",{"_index":19779,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.lessonreadpermission(user",{"_index":14269,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.lessonrepo",{"_index":12150,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.lessonrepo.delete(lesson",{"_index":14305,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids([originallesson.course.id",{"_index":14188,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.lessonrepo.findallbycourseids([roomid",{"_index":17810,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.lessonrepo.findallbycourseids(courseids",{"_index":14306,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids(readcourseids",{"_index":20099,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findallbycourseids(writecourseids",{"_index":20098,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findbyid(lessonid",{"_index":14180,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.lessonrepo.findbyuserid(userid",{"_index":14307,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.save(updatedlessons",{"_index":14312,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrule",{"_index":17880,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lessonrule.haspermission(user",{"_index":19958,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.lessonservice.deletelesson(lesson",{"_index":14323,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbycourseids([courseid",{"_index":5092,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.lessonservice.findbyid(lessonid",{"_index":14318,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18863,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lessonservice.savelesson(lesson",{"_index":23789,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.lessonuc.delete(currentuser.userid",{"_index":14160,"title":{},"body":{"controllers/LessonController.html":{}}}],["this.lessonwritepermission(user",{"_index":14270,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.level",{"_index":3565,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.license",{"_index":12122,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.limit",{"_index":16595,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.loadaccount(username",{"_index":13831,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.loadaccounts",{"_index":13717,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.loadallcollectionsfromdatabase(folder",{"_index":11725,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadallcollectionsfromfilesystem(folder",{"_index":11724,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11760,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loader.loadauthorizableobject(entityname",{"_index":1794,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.loadtoolhierarchy(schoolexternaltoolid",{"_index":20681,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.loadusers",{"_index":13716,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.localcookies",{"_index":6211,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.location",{"_index":7289,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["this.logger",{"_index":18659,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.logger.alert(message",{"_index":8428,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.crit(message",{"_index":8429,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.debug",{"_index":3803,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["this.logger.debug('[ldap",{"_index":13802,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug('usersearcindex",{"_index":11809,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.debug(`adding",{"_index":15422,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`contextexternaltool",{"_index":20496,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.logger.debug(`created",{"_index":2308,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`externaltool",{"_index":20546,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.logger.debug(`generating",{"_index":16341,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`oauth",{"_index":16339,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`removing",{"_index":15417,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`schoolexternaltool",{"_index":20831,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.logger.debug(`updated",{"_index":2314,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(err",{"_index":13800,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug(message",{"_index":14444,"title":{},"body":{"injectables/Logger.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.logger.debug(new",{"_index":16716,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.logger.debug(this.createmessage(message",{"_index":13915,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.emerg(message",{"_index":8427,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error('could",{"_index":8496,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["this.logger.error(`${err.message",{"_index":17942,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.error(`migration",{"_index":13679,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.error(`the",{"_index":8050,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.error(err",{"_index":13663,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.error(error",{"_index":8071,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"controllers/OauthSSOController.html":{}}}],["this.logger.error(loggable",{"_index":10913,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.logger.error(message",{"_index":8430,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error(this.createmessage(result",{"_index":13917,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.http(logging",{"_index":17477,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.info",{"_index":13854,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.logger.info(message",{"_index":14443,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.info(new",{"_index":8888,"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":13913,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.log",{"_index":7996,"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":8234,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log('cleanup",{"_index":8003,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.log(`${oauthconfig.authendpoint}?${query",{"_index":11527,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(`...deleted",{"_index":13727,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`...migrated",{"_index":13680,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`after",{"_index":8236,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log(`amount",{"_index":13725,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`could",{"_index":17952,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(`initialized",{"_index":8057,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.log(`migration",{"_index":13678,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`starting",{"_index":13723,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`stream",{"_index":17996,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(axiosconfig",{"_index":11528,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(err",{"_index":16253,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.log(localdto",{"_index":11551,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(new",{"_index":23348,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.notice(message",{"_index":14442,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.notice(this.createmessage(message",{"_index":13916,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.setcontext(`${context.getclass().name}::${context.gethandler().name",{"_index":17470,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.setcontext(boarduc.name",{"_index":3802,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.logger.setcontext(carduc.name",{"_index":4173,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.logger.setcontext(collaborativestorageadapter.name",{"_index":4585,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.logger.setcontext(collaborativestoragecontroller.name",{"_index":4658,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.logger.setcontext(collaborativestorageservice.name",{"_index":4707,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.logger.setcontext(columnuc.name",{"_index":5028,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.logger.setcontext(databasemanagementuc.name",{"_index":11692,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.setcontext(deletefilesconsole.name",{"_index":7995,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.setcontext(deletefilesuc.name",{"_index":8034,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.setcontext(elementuc.name",{"_index":8315,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.logger.setcontext(filesstorageclientadapterservice.name",{"_index":10525,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.logger.setcontext(filesstorageconsumer.name",{"_index":10604,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.logger.setcontext(filesstorageproducer.name",{"_index":10716,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.logger.setcontext(fwulearningcontentsuc.name",{"_index":10854,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.logger.setcontext(hydraoauthuc.name",{"_index":11450,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.logger.setcontext(keycloakconsole.name",{"_index":11617,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.logger.setcontext(keycloakmanagementcontroller.name",{"_index":13658,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.setcontext(keycloakmigrationservice.name",{"_index":13672,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.setcontext(ldapservice.name",{"_index":13785,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.setcontext(newsuc.name",{"_index":15295,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.logger.setcontext(nextcloudstrategy.name",{"_index":15378,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.setcontext(oauthservice.name",{"_index":15545,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.logger.setcontext(oauthssocontroller.name",{"_index":16249,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.setcontext(oauthuc.name",{"_index":16334,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.setcontext(previewgeneratorconsumer.name",{"_index":16713,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.logger.setcontext(previewgeneratorservice.name",{"_index":16751,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.logger.setcontext(previewproducer.name",{"_index":16772,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.logger.setcontext(previewservice.name",{"_index":16797,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.setcontext(restartuserloginmigrationuc.name",{"_index":17519,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(s3clientadapter.name",{"_index":17938,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.setcontext(sharetokenuc.name",{"_index":18894,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.logger.setcontext(startuserloginmigrationuc.name",{"_index":18990,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(youruc.name",{"_index":23346,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.warn",{"_index":15435,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.warn('no",{"_index":19349,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["this.logger.warn(`boardcopyservice",{"_index":3020,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warn(`completemigration",{"_index":18455,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(`could",{"_index":16804,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warn(`placeholder",{"_index":11835,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.warn(`restartmigration",{"_index":18461,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(err",{"_index":3001,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warning(message",{"_index":14441,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.warning(this.createmessage(message",{"_index":13914,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.loginname",{"_index":12852,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.loginuc.getlogindata(user",{"_index":14513,"title":{},"body":{"controllers/LoginController.html":{}}}],["this.loginurl",{"_index":21541,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.logmigrationinformation",{"_index":21428,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logmigrationinformation(currentuserid",{"_index":21415,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logo",{"_index":8573,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["this.logo_url",{"_index":7209,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.logobase64",{"_index":8778,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["this.logourl",{"_index":5822,"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":12365,"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":16045,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.logouturl",{"_index":1984,"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":18859,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lti_message_type",{"_index":7211,"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":7213,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.ltirepo.findbyoauthclientid(oauthclientid",{"_index":11563,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.ltitoolrepo.findbyclientidandislocal(clientid",{"_index":14763,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["this.ltitoolrepo.findbyname(this.client.oidcinternalname",{"_index":15433,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.ltitoolservice.findbyclientidandislocal(clientid",{"_index":16078,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.mandatory",{"_index":21264,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["this.mandatorysince",{"_index":21228,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.mapbasictoolconfigdotoentity(entitydo.config",{"_index":9170,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapbasictoolconfigdotoresponse(externaltool.config",{"_index":9319,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapbasictoolconfigtodo(entity.config",{"_index":9146,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapboardelements(board",{"_index":17681,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["this.mapcolumnboardelement(element",{"_index":8188,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.mapcontenttoresource(lesson.id",{"_index":5101,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcontexttypetodotype(entity.contexttype",{"_index":5961,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcontexttypetoentitytype(entitydo.contextref.type",{"_index":5966,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcourseteacherstocopyrightowners(course",{"_index":5085,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcourseuserstousergroup(course",{"_index":3107,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.mapcustomparameterdostoentities(entitydo.parameters",{"_index":9177,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparameterstodos(entity.parameters",{"_index":9153,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparametertoresponse",{"_index":9322,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapdomainobjecttoentityproperties(domainobject",{"_index":9055,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapdotoentityproperties(domainobject",{"_index":2317,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.mapelementtoentity(e",{"_index":7759,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapentitytodo(entity",{"_index":2303,"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":14041,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(schools[0",{"_index":14045,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(userentity",{"_index":21012,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.mapentitytodo(userloginmigration",{"_index":21300,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this.mapentitytodomainobject(entities",{"_index":9061,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.mapentitytodomainobject(entity",{"_index":9049,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapexternalsourceentitytoexternalsource(entity.externalsource",{"_index":11113,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapexternalsourcetoexternalsourceentity(props.externalsource",{"_index":11102,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapfromdtotoresponse(system",{"_index":19533,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["this.mapfromentitytodto(entity",{"_index":17604,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["this.mapgridelementtomodel(elementwithposition",{"_index":7786,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapgroupuserentitytogroupuser(groupuser",{"_index":11108,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.maplessonelement(element",{"_index":8187,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maplti11toolconfigdotoentity(entitydo.config",{"_index":9172,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.maplti11toolconfigdotoresponse(externaltool.config",{"_index":9320,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.maplti11toolconfigtodo(entity.config",{"_index":9148,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configdotoentity(entitydo.config",{"_index":9171,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configtodo(entity.config",{"_index":9147,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2toolconfigdotoresponse(externaltool.config",{"_index":9321,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapper.mapdashboardtoentity(dashboardmodel",{"_index":7822,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtoentity(modelentity",{"_index":7818,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtomodel(entity",{"_index":7816,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdotoprovideroauthclient",{"_index":9403,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.mapper.maptoresponse(board",{"_index":17785,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.mappers.find((mapper",{"_index":5653,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.mappseudonymtouserdata(pseudonym",{"_index":9798,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.mapreferencetoentity(ref",{"_index":7751,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapreferencetomodel(ref",{"_index":7780,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolcreateparams.config",{"_index":9268,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolupdateparams.config",{"_index":9255,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterdo",{"_index":9259,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(contextexternaltool.parameters",{"_index":6036,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(request.parameters",{"_index":5992,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigcreate(externaltoolcreateparams.config",{"_index":9269,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigupdate(externaltoolupdateparams.config",{"_index":9256,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigcreate(externaltoolcreateparams.config",{"_index":9270,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigupdate(externaltoolupdateparams.config",{"_index":9257,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.mapsanisroletorolename(source",{"_index":18109,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.mapsubmissionitemtoresponse(item",{"_index":19174,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.maptaskelement(element",{"_index":8185,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoclassinfotoresponse(classinfo",{"_index":11217,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["this.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20464,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptocustomparameterentryresponse(schoolexternaltool.parameters",{"_index":18257,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptodo(entity",{"_index":4416,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoelementdtos(filtered",{"_index":8172,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoentity(domainobject",{"_index":4418,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoexternalgroupuser(relation",{"_index":18125,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptoresponse(element",{"_index":5658,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20461,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptoschoolexternaltoolresponse(tooldo",{"_index":18254,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptotoolreferenceresponse(toolreference",{"_index":6041,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.mapuserstoresponse(user",{"_index":19176,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.match",{"_index":12859,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.matchedby",{"_index":12061,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.matchsinglerule(selectedrules",{"_index":17894,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.materials.getitems",{"_index":11923,"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":11922,"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":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":{}}}],["this.max_redirects",{"_index":11475,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.maxexternaltoollogosizeinbytes",{"_index":8908,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["this.maxsubmissions",{"_index":3771,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.meetingid",{"_index":1944,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{}}}],["this.mergeelementintoposition(elementtomove",{"_index":7579,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.merlinreference",{"_index":12124,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.message",{"_index":3868,"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":5280,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["this.metatagextractorservice.fetchmetadata(url",{"_index":14915,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["this.metatagextractoruc.fetchmetadata(currentuser.userid",{"_index":14842,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["this.method",{"_index":17432,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.migrationcheckservice.shouldusermigrate",{"_index":15556,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.migrationerrorhandler(error",{"_index":16312,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.migrationmapper.mapdtotoresponse(migrationdto",{"_index":13970,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.mimetype",{"_index":6273,"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":21760,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.moderatorpw",{"_index":1990,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.name",{"_index":1982,"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":6656,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.newsrepo.delete(news",{"_index":15318,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallpublished(targets",{"_index":15308,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallunpublishedbyuser(targets",{"_index":15307,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findonebyid(id",{"_index":15311,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.save(news",{"_index":15301,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsuc.create",{"_index":15093,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.newsuc.delete(urlparams.newsid",{"_index":15107,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.findallforuser",{"_index":15097,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["this.newsuc.findonebyidforuser(urlparams.newsid",{"_index":15102,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.update",{"_index":15103,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.nowplusdays(options.expiresindays",{"_index":18904,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.numberofdrafttasks",{"_index":3435,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofplannedtasks",{"_index":3436,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofpublishedtasks",{"_index":3434,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.oauthadapterservice.getpublickey(oauthconfig.jwksendpoint",{"_index":15572,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthadapterservice.sendauthenticationcodetokenrequest",{"_index":15569,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthclientid",{"_index":7230,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.oauthconfig",{"_index":12435,"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":13555,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.decrypt(oauthconfig.clientsecret",{"_index":15601,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthencryptionservice.encrypt(await",{"_index":13545,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.encrypt(tool.secret",{"_index":11571,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.oauthmigrationfinalfinish",{"_index":14982,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationfinished",{"_index":14980,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationmandatory",{"_index":14978,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationpossible",{"_index":14976,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid",{"_index":16107,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid(clientid",{"_index":12663,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.oauthproviderloginflowservice.isnextcloudtool(tool",{"_index":16109,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowuc.getloginrequest(params.challenge",{"_index":16037,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderloginflowuc.patchloginrequest",{"_index":16040,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentresponse(consentrequest",{"_index":16051,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentsessionstoresponse(session",{"_index":16059,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.maploginresponse(loginresponse",{"_index":16038,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapoauthclientresponse(client",{"_index":16021,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirect",{"_index":16046,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirectresponse",{"_index":16042,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderservice.acceptconsentrequest",{"_index":15959,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.acceptloginrequest",{"_index":16115,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.acceptlogoutrequest(challenge",{"_index":16126,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["this.oauthproviderservice.createoauth2client(datawithdefaults",{"_index":15922,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.createoauth2client(oauthclient",{"_index":9404,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.deleteoauth2client(id",{"_index":15924,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.getconsentrequest(challenge",{"_index":15948,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.getloginrequest(challenge",{"_index":16102,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.getoauth2client",{"_index":9432,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(config.clientid",{"_index":9439,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(id",{"_index":15918,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.listconsentsessions(userid",{"_index":16196,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.listoauth2clients",{"_index":15917,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.rejectconsentrequest",{"_index":15956,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.rejectloginrequest",{"_index":16120,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.revokeconsentsession(userid",{"_index":16197,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(id",{"_index":15923,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(loadedoauthclient.client_id",{"_index":9436,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthprovideruc.listconsentsessions",{"_index":16057,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthprovideruc.revokeconsentsession(currentuser.userid",{"_index":16062,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthservice.authenticateuser",{"_index":16343,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(systemid",{"_index":15628,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(targetsystemid",{"_index":21414,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.oauthservice.getauthenticationurl(system.oauthconfig",{"_index":16337,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.getredirecturi(userloginmigration",{"_index":16340,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.provisionuser",{"_index":15629,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.requesttoken",{"_index":11455,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthservice.validatetoken(oauthtokens.idtoken",{"_index":11457,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthuc.migrate(jwt",{"_index":16309,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.processoauthlogin",{"_index":16280,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.startoauthlogin",{"_index":16273,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.officialschoolnumber",{"_index":8535,"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":15473,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.officialschoolnumberfromtarget",{"_index":15474,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.oidcconfig",{"_index":12437,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.oidcidentityprovidermapper.maptokeycloakidentityprovider(oidcconfig",{"_index":13472,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.oidcprovisioningservice.provisionexternalgroup(externalgroup",{"_index":16536,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternalschool(data.externalschool",{"_index":16527,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternaluser",{"_index":16529,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.removeexternalgroupsandaffiliation",{"_index":16533,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.openinnewtab",{"_index":20727,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.opennewtab",{"_index":7236,"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":15117,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["this.options",{"_index":8104,"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":1087,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminpassword",{"_index":1092,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.admintoken",{"_index":1088,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminuser",{"_index":1091,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.copyrightowners",{"_index":5203,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.creationyear",{"_index":5204,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.enabled",{"_index":1178,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.exchange",{"_index":1184,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.filesservicebaseurl",{"_index":1196,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.identifier",{"_index":5201,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.module",{"_index":20306,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["this.options.routingkey",{"_index":1185,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.options.title",{"_index":5202,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.uri",{"_index":1097,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.version",{"_index":5205,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organization",{"_index":11140,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.organizationelements.map((organizationelement",{"_index":5334,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["this.organizationid",{"_index":11199,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.organizations.flatmap((organization",{"_index":5198,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.map((organization",{"_index":5196,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.push(organizationbuilder",{"_index":5192,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.origin",{"_index":13078,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["this.origintoolid",{"_index":7265,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["this.orm.close",{"_index":15020,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["this.orm.getschemagenerator().ensureindexes",{"_index":7979,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.outdatedsince",{"_index":12612,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.pagecontentmapper.mapdtotoresponse(content",{"_index":21483,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.parameters",{"_index":5789,"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":14999,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.parametertype",{"_index":16602,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["this.params",{"_index":7355,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ShareTokenFactory.html":{}}}],["this.params(params",{"_index":527,"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":6269,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.parentname",{"_index":18783,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["this.parentpermission(user",{"_index":14276,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.parentsmap.get(card.id",{"_index":17362,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(column.id",{"_index":17361,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(columnboard.id",{"_index":17354,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(externaltoolelement.id",{"_index":17376,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(fileelement.id",{"_index":17363,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(linkelement.id",{"_index":17365,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(richtextelement.id",{"_index":17369,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissioncontainerelement.id",{"_index":17371,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissionitem.id",{"_index":17373,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.set(child.id",{"_index":17383,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsystemid",{"_index":16372,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["this.parenttype",{"_index":6275,"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":185,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.path",{"_index":3563,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.path.split(path_separator).filter((id",{"_index":3574,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.payload",{"_index":16664,"title":{},"body":{"classes/PreviewActionsLoggable.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.permission",{"_index":8096,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.permissionmapper.mapbodytodto(permissionsdto",{"_index":4736,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.permissions",{"_index":10018,"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":10019,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.persistandflush(dashboard",{"_index":7824,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.pickimage(data?.result?.ogimage",{"_index":14895,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["this.populate([task",{"_index":19848,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populate(tasks",{"_index":19929,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populateboard(board",{"_index":3637,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.populatereferences([submission",{"_index":19244,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populatereferences(submissions",{"_index":19246,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populateroles([teamuser.role",{"_index":20265,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(role.roles.getitems",{"_index":20270,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(user.roles.getitems",{"_index":21611,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this.populateroles(userentity.roles.getitems",{"_index":21011,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.position",{"_index":3567,"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":7572,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.post('/api/v1/logout",{"_index":1025,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post('/api/v1/users.setstatus",{"_index":1020,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post(path",{"_index":1065,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.addmoderator",{"_index":1043,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.archive",{"_index":1033,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.create",{"_index":1055,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.delete",{"_index":1057,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.invite",{"_index":1041,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.kick",{"_index":1037,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.removemoderator",{"_index":1045,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.unarchive",{"_index":1029,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.create",{"_index":1059,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.createtoken",{"_index":1023,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.delete",{"_index":1062,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postloginredirect",{"_index":15848,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["this.preferences",{"_index":12608,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.preparebbbcreateconfigbuilder(scope",{"_index":21906,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.previewgeneratorservice.generatepreview(payload",{"_index":16718,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.previewproducer.generate(payload",{"_index":16814,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.previewservice.deletepreviews(filerecords",{"_index":10614,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.previewstatus",{"_index":6279,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.previousexternalid",{"_index":12222,"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":7219,"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":12477,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.proceedbuttonurl",{"_index":16548,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.processcookies(localdto.response.headers['set",{"_index":11544,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.processredirectcascade(initresponse",{"_index":11464,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.product",{"_index":3848,"title":{},"body":{"classes/Builder.html":{}}}],["this.product.allowmodstounmuteusers",{"_index":2039,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.attendeepw",{"_index":2037,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.guest",{"_index":2089,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.guestpolicy",{"_index":2024,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.logouturl",{"_index":2022,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.moderatorpw",{"_index":2035,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.muteonstart",{"_index":2025,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.role",{"_index":2090,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.userid",{"_index":2091,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.welcome",{"_index":2023,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product['meta_bbb",{"_index":2027,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.properties",{"_index":20597,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["this.propertiestopopulate",{"_index":15218,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.props",{"_index":1602,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/DomainObject.html":{}}}],["this.props.alternativetext",{"_index":9925,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.caption",{"_index":9923,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.children",{"_index":2758,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.props.completed",{"_index":19133,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.context",{"_index":4760,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["this.props.contextexternaltoolid",{"_index":8723,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["this.props.copyrightowners",{"_index":5313,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.createdat",{"_index":2759,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.creationyear",{"_index":5312,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.description",{"_index":5233,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.duedate",{"_index":19054,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["this.props.externalsource",{"_index":11016,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.gradelevel",{"_index":4249,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.height",{"_index":3978,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["this.props.href",{"_index":5268,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.html",{"_index":5360,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.id",{"_index":1603,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["this.props.identifier",{"_index":5266,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.imageurl",{"_index":14351,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.inputformat",{"_index":17550,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.intendeduse",{"_index":5361,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.invitationlink",{"_index":4247,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.ldapdn",{"_index":4250,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.name",{"_index":4243,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.organizationid",{"_index":11017,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.pseudonym",{"_index":16994,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.requireduserrole",{"_index":3081,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.resources.map",{"_index":5181,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.resources.map((content",{"_index":5323,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["this.props.resources.push(props",{"_index":5186,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.schoolid",{"_index":4244,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.source",{"_index":4252,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceoptions",{"_index":4253,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceschoolid",{"_index":18506,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.successor",{"_index":4251,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.targetschoolid",{"_index":18508,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.teacherids",{"_index":4246,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.text",{"_index":17548,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.title",{"_index":3976,"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":16995,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.tspuid",{"_index":4465,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["this.props.type",{"_index":5267,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.updatedat",{"_index":2760,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.url",{"_index":5235,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.userid",{"_index":16996,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.userids",{"_index":4245,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.userids?.filter((userid1",{"_index":4254,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.users",{"_index":3080,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.users.filter((groupuser",{"_index":11018,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.users.length",{"_index":11020,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.version",{"_index":5242,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.year",{"_index":4248,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.propsfactory",{"_index":2399,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.afterbuild(afterbuildfn",{"_index":2410,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.associations(associations",{"_index":2413,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.build(params",{"_index":2402,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.params(params",{"_index":2414,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.rewindsequence",{"_index":2416,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.transient(transient",{"_index":2415,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory['sequence",{"_index":2423,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.provider",{"_index":12363,"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":12392,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.provisioningservice.getdata",{"_index":21417,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.provisioningservice.getdata(systemid",{"_index":15551,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["this.provisioningservice.provisiondata(data",{"_index":15560,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.provisioningstrategy",{"_index":12441,"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":12443,"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":9010,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/TooManyPseudonymsLoggableException.html":{}}}],["this.pseudonymrepo",{"_index":17110,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17107,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.findbyuserid(userid",{"_index":17104,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymservice",{"_index":15409,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.pseudonymservice.findbyuserandtoolorthrow(user",{"_index":12665,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.pseudonymservice.findorcreatepseudonym(user",{"_index":9800,"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":9804,"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":9770,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.getiframesubject(pseudonym.pseudonym",{"_index":9820,"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":17020,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["this.publicbackendurl",{"_index":21527,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.publicsubmissions",{"_index":12483,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.published",{"_index":2723,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{}}}],["this.publishedat",{"_index":22134,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["this.random(50",{"_index":3515,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.read",{"_index":10082,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.reason",{"_index":10127,"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":2073,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"classes/UserMigrationResponse.html":{}}}],["this.redirect_to",{"_index":17393,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["this.redirect_uri",{"_index":1343,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.redirecturi",{"_index":12359,"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":15639,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.redisclient",{"_index":18658,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.references",{"_index":7541,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.getitems",{"_index":2644,"title":{},"body":{"entities/Board.html":{}}}],["this.references.length",{"_index":7549,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.set(elements",{"_index":2648,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(newlist",{"_index":2682,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(onlyexistingreferences",{"_index":2671,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(props.references",{"_index":2637,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(references",{"_index":7636,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.referer",{"_index":11488,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.refid",{"_index":10075,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refownermodel",{"_index":10044,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.refpermmodel",{"_index":10077,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refreshtoken",{"_index":15612,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["this.regex",{"_index":7293,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.regexcomment",{"_index":7295,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.region",{"_index":12283,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.registerparentdata(parent",{"_index":17352,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.registerstrategy(iservstrategy",{"_index":16956,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(oidcmockstrategy",{"_index":16957,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(sanisstrategy",{"_index":16955,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.rejectconsentrequest(challenge",{"_index":15954,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.rejectloginrequest(challenge",{"_index":16104,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.rejectnothandled(card",{"_index":5718,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(column",{"_index":5717,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(columnboard",{"_index":5716,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(externaltoolelement",{"_index":5755,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(fileelement",{"_index":5724,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(linkelement",{"_index":5741,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(richtextelement",{"_index":5746,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submission",{"_index":5750,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submissioncontainerelement",{"_index":5749,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.relatedresources",{"_index":12126,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.relation.ktid",{"_index":11249,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.relation.rollen[0",{"_index":11251,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.removedeletedreferences(boardelementtargets",{"_index":2665,"title":{},"body":{"entities/Board.html":{}}}],["this.removefromposition(from",{"_index":7580,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removeprotectedentityfields(newentity",{"_index":2310,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.removeroomsnotinlist(rooms",{"_index":7581,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removesecrets(collectionname",{"_index":11784,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromstorageproviders(jsondocuments",{"_index":11859,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromsystems(jsondocuments",{"_index":11858,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.repeatcommand",{"_index":11637,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.repo.findallbyuserid(userid",{"_index":7032,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyid(courseid",{"_index":7031,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyowneruserid(userid",{"_index":10491,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbypermissionrefid(userid",{"_index":10486,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbyuserid(userid",{"_index":6871,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(coursegroups",{"_index":6874,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(courses",{"_index":7035,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.save(entities",{"_index":10490,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repos.get(type",{"_index":12162,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.boardnode",{"_index":12157,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.contextexternaltoolentity",{"_index":12159,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.course",{"_index":12141,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.coursegroup",{"_index":12143,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.lesson",{"_index":12149,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.school",{"_index":12147,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.schoolexternaltoolentity",{"_index":12155,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.submission",{"_index":12153,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.task",{"_index":12139,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.team",{"_index":12151,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.user",{"_index":12145,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.request(filespreviewevents.generate_preview",{"_index":16774,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.request(filesstorageevents.copy_files_of_parent",{"_index":10718,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.delete_files_of_parent",{"_index":10724,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.list_files_of_parent",{"_index":10721,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request.app.get('feathersapp",{"_index":9839,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["this.requestmapper.mapschoolexternaltoolrequest(body",{"_index":20828,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.requesttimeout",{"_index":20341,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["this.requesttoken",{"_index":10129,"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":15549,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.resizeandconvert(original",{"_index":16754,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.resolvepermissions(user",{"_index":16655,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(innerroles",{"_index":16654,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(user.roles.getitems",{"_index":16652,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolveplaceholder(placeholder.substring(2",{"_index":11826,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.resolverepo(objectname",{"_index":12167,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.resolvetokenrequest(responsetokenobservable",{"_index":15688,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.resource_link_id",{"_index":7215,"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":5355,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["this.resourceid",{"_index":15451,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resourcename",{"_index":15449,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resources.push(resource",{"_index":5195,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.response",{"_index":1010,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/HydraRedirectDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.responsemapper.maptoexternalgroupdtos(axiosresponse.data",{"_index":18072,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternalschooldto(axiosresponse.data",{"_index":18071,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternaluserdto(axiosresponse.data",{"_index":18069,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(createdschoolexternaltooldo",{"_index":20836,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":20826,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(updated",{"_index":20830,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptosearchlistresponse(found",{"_index":20823,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsetype",{"_index":12360,"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":21201,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.resultmap.get(child.id",{"_index":17274,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.get(original.id",{"_index":17232,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.set(original.id",{"_index":17238,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.role",{"_index":2068,"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":11319,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.roleids",{"_index":21076,"title":{},"body":{"classes/UserDto.html":{}}}],["this.rolename",{"_index":8527,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.rolenames",{"_index":12854,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.rolenames.push(...props.rolenames",{"_index":12034,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.rolerepo.findbyid(id",{"_index":17653,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbyids(ids",{"_index":17655,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbynames(names",{"_index":17657,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.roles",{"_index":7217,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["this.roles.getitems",{"_index":12177,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.isinitialized(true",{"_index":12174,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.set(props.roles",{"_index":12172,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roleservice.findbyid(roleid",{"_index":4715,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.roleservice.findbynames([externalgroupuser.rolename",{"_index":16497,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(externaluser.roles",{"_index":16458,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(names",{"_index":17663,"title":{},"body":{"injectables/RoleUc.html":{}}}],["this.roleservice.getprotectedroles",{"_index":21714,"title":{},"body":{"injectables/UserService.html":{}}}],["this.rollbackmigration(schooldocopy",{"_index":18436,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.rollbackmigration(userdocopy",{"_index":21554,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.room",{"_index":8166,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.color",{"_index":8213,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.id",{"_index":8212,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.isfinished",{"_index":8216,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.name",{"_index":8214,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.substitutionteachers.contains(this.user",{"_index":8183,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.teachers.contains(this.user",{"_index":8182,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomid",{"_index":18958,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.roomsauthorisationservice",{"_index":8169,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.haslessonreadpermission(this.user",{"_index":8176,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.hastaskreadpermission(this.user",{"_index":8175,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsservice.updateboard(board",{"_index":17838,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.roomsservice.updateboard(originalboard",{"_index":6730,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.roomsuc.getboard(urlparams.roomid",{"_index":17784,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.reorderboardelements(urlparams.roomid",{"_index":17790,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.updatevisibilityofboardelement",{"_index":17786,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.rootpath",{"_index":12385,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.routepath",{"_index":17437,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.rulemanager.selectrule(user",{"_index":1822,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.rules",{"_index":17877,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.rules.filter((rule",{"_index":17892,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.s3clientmap.get(storageprovider.id",{"_index":8077,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.set(provider.id",{"_index":8055,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.size",{"_index":8058,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.salt",{"_index":2222,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.save(this.create(course",{"_index":6991,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this.save(this.create(lesson",{"_index":14235,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this.save(this.create(task",{"_index":19847,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.saveall([entitydo",{"_index":2293,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.saverecursive(boardnode",{"_index":17360,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.school",{"_index":6610,"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":12060,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.schoolexternaltoolid",{"_index":5819,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["this.schoolexternaltoolrepo",{"_index":12156,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolexternaltoolrepo.deletebyexternaltoolid(toolid",{"_index":9427,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.deletebyid(schoolexternaltoolid",{"_index":18296,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.find",{"_index":18289,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyexternaltoolid(toolid",{"_index":9423,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyid(schoolexternaltoolid",{"_index":18288,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.save(schoolexternaltool",{"_index":18298,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrule",{"_index":17886,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.schoolexternaltoolservice.deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18323,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.findbyid",{"_index":6143,"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":8687,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["this.schoolexternaltoolservice.findschoolexternaltools",{"_index":8667,"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":18321,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool(updated",{"_index":18324,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltooluc.createschoolexternaltool",{"_index":20835,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.deleteschoolexternaltool(currentuser.userid",{"_index":20833,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.findschoolexternaltools(currentuser.userid",{"_index":20821,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.getschoolexternaltool",{"_index":20825,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.updateschoolexternaltool",{"_index":20829,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltoolvalidationservice.validate(schoolexternaltool",{"_index":18320,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolid",{"_index":4283,"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":4536,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.markunmigratedusersasoutdated(schoolid",{"_index":4538,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.migrateschool",{"_index":21429,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.migrateschool(data.externalschool.externalid",{"_index":16349,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.schoolmigrationservice.schooltomigrate",{"_index":16346,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.unmarkoutdatedusers(schoolid",{"_index":14131,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolmigrationservice.validategraceperiod(existinguserloginmigration",{"_index":14127,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.schoolname",{"_index":18366,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.schoolnumber_prefix_regex",{"_index":18104,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.schoolparameters",{"_index":12189,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.schoolrepo",{"_index":12148,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolrepo.findbyexternalid(externalid",{"_index":14103,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(id",{"_index":14102,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(schoolid",{"_index":13826,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyschoolnumber(school.officialschoolnumber",{"_index":18517,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.schoolrepo.findbyschoolnumber(schoolnumber",{"_index":14104,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.save(school",{"_index":14101,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrule.haspermission(user",{"_index":23799,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschool(params.schoolid",{"_index":23783,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschoolbyexternalid",{"_index":16443,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.schoolservice.getschoolbyid(ldapuser.schoolid",{"_index":13128,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.schoolservice.getschoolbyid(pseudonymuser.school.id",{"_index":17124,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.schoolservice.getschoolbyid(schoolexternaltool.schoolid",{"_index":1903,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.schoolservice.getschoolbyid(schoolid",{"_index":14123,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.getschoolbyid(userdo.schoolid",{"_index":18438,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber",{"_index":18440,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber(officialschoolnumber",{"_index":14937,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["this.schoolservice.removefeature(schoolid",{"_index":21372,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.removefeature(userloginmigration.schoolid",{"_index":21329,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.schoolservice.save(originalschooldo",{"_index":18466,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.save(school",{"_index":16455,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.save(schooldo",{"_index":18465,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schooltool",{"_index":5855,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.schooltoolid",{"_index":6009,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["this.schooltoolref",{"_index":5783,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.schooluc.getmigration(schoolparams.schoolid",{"_index":13972,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schooluc.setmigration",{"_index":13965,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schoolvalidationservice.validate(school",{"_index":14105,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolyear",{"_index":4349,"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":18536,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearrepo.findcurrentyear",{"_index":18535,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearservice.getcurrentschoolyear",{"_index":16450,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.scope",{"_index":7291,"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":733,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.searchuser",{"_index":12387,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.searchuserpassword",{"_index":12389,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.secret",{"_index":7207,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.secretaccesskey",{"_index":12281,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.secretvalue",{"_index":1595,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.securitycheck",{"_index":10037,"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":10152,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.requesttoken",{"_index":10154,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.status",{"_index":10151,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.updatedat",{"_index":10153,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheckstatus",{"_index":6267,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.selectconfigureaction(newconfigs",{"_index":13442,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.sendhttpresponse(error",{"_index":10915,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.service.createteam(team",{"_index":4738,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.deleteteam(teamid",{"_index":4737,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteam(team",{"_index":4739,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteampermissionsforrole",{"_index":4733,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.sessionhandler(session",{"_index":16279,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.setmatch(props.user",{"_index":12039,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.share",{"_index":20176,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["this.sharetokenrepo.findonebytoken(token",{"_index":18857,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokenrepo.save(sharetoken",{"_index":18856,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokens",{"_index":10039,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.sharetokenservice.createtoken(payload",{"_index":18905,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptoken(token",{"_index":18910,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptokenwithparentname(token",{"_index":18906,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenuc.createsharetoken",{"_index":18731,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.importsharetoken",{"_index":18744,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.lookupsharetoken(currentuser.userid",{"_index":18740,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.shorttitle",{"_index":6893,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.shouldskipconsent(tool",{"_index":16113,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.size",{"_index":6265,"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":16594,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.skipconsent",{"_index":7234,"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":3026,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.source",{"_index":4299,"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":6940,"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":6245,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.sourceoptions",{"_index":4301,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.sourcesystem",{"_index":21249,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.sourcesystemid",{"_index":21224,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.stack",{"_index":8827,"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/UnknownQueryTypeLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.startdate",{"_index":6620,"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":21230,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.startuserloginmigrationuc.startmigration",{"_index":21197,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.state",{"_index":8094,"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":1924,"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":1007,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.statustext",{"_index":1926,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.storageclient.create(previewfilepath",{"_index":16757,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.deletedirectory(path",{"_index":16803,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(path",{"_index":10855,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.storageclient.get(pathtofile",{"_index":16759,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.get(previewfilepath",{"_index":16811,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storagefilename",{"_index":10029,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageprovider",{"_index":10031,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageproviderrepo.findall",{"_index":8053,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.strategies",{"_index":20673,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(externaltool.config.type",{"_index":20683,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(systemstrategy",{"_index":16966,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.get(toolconfigtype",{"_index":20678,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(strategy.gettype",{"_index":16958,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.set(toolconfigtype.basic",{"_index":20674,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.lti11",{"_index":20675,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.oauth2",{"_index":20676,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategy",{"_index":4586,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.createteam(team",{"_index":4589,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.deleteteam(teamid",{"_index":4588,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteam(team",{"_index":4590,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteampermissionsforrole(this.mapper.mapdomaintoadapter(team",{"_index":4587,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.stringifiedmessage(message",{"_index":13919,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.stringifymessage(message",{"_index":14481,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["this.student",{"_index":12292,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.student.id",{"_index":12326,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.studentcount",{"_index":4353,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.students",{"_index":6829,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getidentifiers('_id",{"_index":6831,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getitems",{"_index":6639,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.students.remove((u",{"_index":6834,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.set(props.students",{"_index":6612,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.subjects",{"_index":12128,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.submissionitemservice.create(userid",{"_index":8334,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.submissionitemservice.findbyid(submissionitemid",{"_index":19215,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemservice.update(submissionitem",{"_index":19216,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemsresponse",{"_index":19338,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["this.submissionitemuc.createelement(currentuser.userid",{"_index":3731,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.findsubmissionitems",{"_index":3716,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.updatesubmissionitem",{"_index":3722,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionrepo",{"_index":12154,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.submissionrepo.delete(submission",{"_index":19298,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findallbytaskids([taskid",{"_index":19296,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findbyid(submissionid",{"_index":19295,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrule",{"_index":17885,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.submissions",{"_index":12487,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.getitems",{"_index":12490,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.isinitialized(true",{"_index":12488,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.set(props.submissions",{"_index":12481,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissionservice.delete(submission",{"_index":19326,"title":{},"body":{"injectables/SubmissionUc.html":{},"injectables/TaskService.html":{}}}],["this.submissionservice.findallbytask(taskid",{"_index":19320,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionservice.findbyid(submissionid",{"_index":19323,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionuc.delete(currentuser.userid",{"_index":19101,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submissionuc.findallbytask(currentuser.userid",{"_index":19094,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submitted",{"_index":3770,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.submitters",{"_index":19302,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.submittingcoursegroupname",{"_index":19303,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.substitutionteachers.contains(user",{"_index":6649,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.getitems",{"_index":6645,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.remove((u",{"_index":6669,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.set(props.substitutionteachers",{"_index":6614,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.successful",{"_index":19344,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["this.successor",{"_index":4297,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.system",{"_index":8550,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.systemid",{"_index":193,"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":13440,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.systemrepo.findall",{"_index":19559,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oauth",{"_index":19556,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oidc",{"_index":19507,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(type",{"_index":19558,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(id",{"_index":19503,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemdto.id",{"_index":19563,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemid",{"_index":13825,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.systemrepo.save(system",{"_index":19571,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systems",{"_index":13995,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["this.systems.set(props.systems",{"_index":12228,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.systemservice.findbyid(id",{"_index":19590,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemservice.findbyid(sourceid",{"_index":21532,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbyid(systemid",{"_index":15546,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{}}}],["this.systemservice.findbyid(targetid",{"_index":21533,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbytype(systemtypeenum.oauth",{"_index":19588,"title":{},"body":{"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.systemservice.findbytype(type",{"_index":19589,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemuc.findbyfilter(filterparams.type",{"_index":19388,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.systemuc.findbyid(params.systemid",{"_index":19393,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.tags",{"_index":12130,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.target",{"_index":15131,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetgroups",{"_index":12132,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.targetid",{"_index":15130,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.targetmodel",{"_index":6950,"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":21251,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.targetsystemid",{"_index":21226,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.task",{"_index":12296,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.taskcopyservice.copytask",{"_index":3030,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.taskcopyuc.copytask",{"_index":19670,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskrepo",{"_index":12140,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.taskrepo.createtask(taskcopy",{"_index":19700,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.delete(task",{"_index":20009,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.findallbyparentids",{"_index":20077,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findallfinishedbyparentids",{"_index":20059,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findbyid(params.originaltaskid",{"_index":19690,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.findbyid(taskid",{"_index":19736,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrepo.findbysingleparent",{"_index":19750,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.taskrepo.findbysingleparent(creatorid",{"_index":20006,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.save(task",{"_index":19704,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrule",{"_index":17881,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.taskrule.haspermission(user",{"_index":19280,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.tasks.getitems",{"_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.tasks.isinitialized(true",{"_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":{}}}],["this.taskservice.delete(task",{"_index":20103,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18865,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.taskservice.findbysingleparent(userid",{"_index":5104,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{}}}],["this.taskuc.changefinishedforuser(currentuser.userid",{"_index":19665,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.delete(currentuser.userid",{"_index":19672,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findall(currentuser.userid",{"_index":19659,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findallfinished(currentuser.userid",{"_index":19658,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.revertpublished(currentuser.userid",{"_index":19668,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.teacherids",{"_index":4287,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.teachernames",{"_index":4347,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["this.teachers",{"_index":4367,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["this.teachers.getitems",{"_index":6643,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.remove((u",{"_index":6667,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.set(props.teachers",{"_index":6613,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teamid",{"_index":3913,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.teammembers",{"_index":12310,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.getidentifiers('_id",{"_index":12313,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.set(props.teammembers",{"_index":12305,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teamname",{"_index":20193,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["this.teamrule",{"_index":17882,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.teamsmapper.mapentitytodto(await",{"_index":4708,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo",{"_index":12152,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.teamsrepo.findbyid(teamid",{"_index":4709,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo.findbyuserid(userid",{"_index":12653,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/TeamService.html":{}}}],["this.teamsrepo.save(teams",{"_index":20216,"title":{},"body":{"injectables/TeamService.html":{}}}],["this.teamstorageuc.updateuserpermissionsforrole(currentuser.userid",{"_index":4660,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.teamsubmissions",{"_index":12485,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.teamusers",{"_index":20121,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.text",{"_index":17558,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.throwifnotmoderator(bbbrole",{"_index":21903,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.thumbnail",{"_index":10032,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.thumbnailrequesttoken",{"_index":10035,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.timeout",{"_index":17862,"title":{},"body":{"classes/RpcMessageProducer.html":{},"todo.html":{}}}],["this.timeout(10000",{"_index":23467,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["this.timeoutms",{"_index":3952,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.timestamps",{"_index":3664,"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":3822,"title":{},"body":{"classes/BruteForceError.html":{}}}],["this.title",{"_index":2722,"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":{},"classes/MetaTagExtractorResponse.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/TeamNews.html":{}}}],["this.title.substring(0",{"_index":7552,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.toggleuserloginmigrationuc.setmigrationmandatory",{"_index":21203,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.token",{"_index":187,"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":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.tokenendpointauthmethod",{"_index":15641,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.tokengenerator.generatesharetoken",{"_index":18853,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.tokenurl",{"_index":12422,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.tool",{"_index":12187,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.toolfeatures.backendurl",{"_index":8873,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolfeatures.contextconfigurationenabled",{"_index":8622,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["this.toolfeatures.ctltoolstabenabled",{"_index":16077,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.toolfeatures.maxexternaltoollogosizeinbytes",{"_index":8881,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolid",{"_index":9012,"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":20696,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchservice.getlaunchdata(userid",{"_index":20695,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchuc.gettoollaunchrequest",{"_index":20589,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions",{"_index":20798,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions(userid",{"_index":6148,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.toolpermissionhelper.ensureschoolpermissions(userid",{"_index":8688,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.toolreferenceservice.gettoolreference",{"_index":20797,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolreferenceuc.gettoolreference",{"_index":20745,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolreferenceuc.gettoolreferencesforcontext",{"_index":20748,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolvalidationservice.validatecreate(externaltool",{"_index":9492,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolvalidationservice.validateupdate(toolid",{"_index":9494,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolversion",{"_index":5791,"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":2191,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.total",{"_index":16540,"title":{},"body":{"classes/Page.html":{},"classes/PaginationResponse.html":{}}}],["this.tovideoconferencestateresponse(videoconferenceinfo.state",{"_index":22049,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["this.trybuildtoolreference(userid",{"_index":20791,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.tryextractmetatags(url",{"_index":14888,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["this.tryfilenameasfallback(url",{"_index":14889,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["this.trygetprevieworgenerate(previewfileparams",{"_index":16800,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.tspuid",{"_index":4471,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["this.type",{"_index":2504,"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":21479,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.unknownquerytype",{"_index":20858,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["this.until",{"_index":8517,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.untildate",{"_index":6618,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.updatecopiedembeddedtasksoflessons(status",{"_index":2998,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.updatedat",{"_index":408,"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":2299,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.updateexistinggridelement(existing",{"_index":7766,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.updateexistingmigration(existinguserloginmigration",{"_index":21375,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.updatefileurls(taskcopy",{"_index":19693,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.updateidentityprovider(configureaction.config",{"_index":13447,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updateoauth2toolconfig(toupdate",{"_index":9406,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateoauthclientorthrow(loadedoauthclient",{"_index":9434,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateorcreateidpdefaultmapper(oidcconfig.idphint",{"_index":13475,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updater",{"_index":15132,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.updateteamusersingroup(groupid",{"_index":15389,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.url",{"_index":6263,"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/MetaTagExtractorResponse.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":18372,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.user",{"_index":7644,"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":21711,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyexternalid(externalid",{"_index":21712,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyid(id",{"_index":21707,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.save(user",{"_index":21708,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.saveall(users",{"_index":21710,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userid",{"_index":191,"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":4286,"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":12828,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.findallimportusers(currentuser.userid",{"_index":12805,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.removematch(currentuser.userid",{"_index":12814,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.saveallusersmatches(currentuser.userid",{"_index":12824,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.setmatch(currentuser.userid",{"_index":12810,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.startschoolinusermigration(currentuser.userid",{"_index":12826,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.updateflag(currentuser.userid",{"_index":12815,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userinfourl",{"_index":12425,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.userloginmigration",{"_index":12230,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.userloginmigrationid",{"_index":13997,"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":21392,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid",{"_index":14939,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid(schoolid",{"_index":18446,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigration",{"_index":21369,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigrationdo",{"_index":21374,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrevertservice.revertuserloginmigration(updateduserloginmigration",{"_index":4537,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationrule",{"_index":17889,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.userloginmigrationservice.closemigration",{"_index":4534,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.deleteuserloginmigration(userloginmigration",{"_index":21330,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool",{"_index":4526,"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":14126,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyuser",{"_index":21411,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.restartmigration(schoolid",{"_index":17520,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.setmigration",{"_index":14128,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.setmigrationmandatory(schoolid",{"_index":20356,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.startmigration(schoolid",{"_index":18992,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationuc.finduserloginmigrationbyschool",{"_index":21194,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.getmigrations",{"_index":21188,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.migrate(jwt",{"_index":21208,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.usermatchschoolid",{"_index":18354,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.usermigrationservice.getmigrationconsentpageredirect",{"_index":15558,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.usermigrationservice.getpagecontent",{"_index":21408,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.usermigrationservice.migrateuser",{"_index":16350,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.username",{"_index":183,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.userrepo",{"_index":12146,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.userrepo.deleteuser(userid",{"_index":21724,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyemail(email",{"_index":935,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/UserService.html":{}}}],["this.userrepo.findbyid(accountuserid",{"_index":14422,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.userrepo.findbyid(id",{"_index":21702,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyid(userid",{"_index":1829,"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":21721,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrule",{"_index":17883,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.users",{"_index":8513,"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":11021,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.users.push(user",{"_index":11023,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.userservice.findbyemail(email",{"_index":13140,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid",{"_index":13121,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid(externalgroupuser.externaluserid",{"_index":16496,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluser.externalid",{"_index":16460,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluserid",{"_index":14940,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyid(currentuserid",{"_index":16112,"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(loadedpseudonym.userid",{"_index":9768,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(props.userid",{"_index":4775,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.userservice.findbyid(teamuser.userid",{"_index":15408,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.userservice.findbyid(user.id",{"_index":9786,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(userid",{"_index":12654,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userservice.findusers",{"_index":18449,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.getdisplayname(user",{"_index":12655,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.userservice.getresolveduser(userid",{"_index":16352,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.userservice.save(newuser",{"_index":23775,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.userservice.save(user",{"_index":16473,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.save(userdo",{"_index":21560,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.save(userdocopy",{"_index":21555,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.saveall(migratedusers.data",{"_index":18460,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.saveall(notmigratedusers.data",{"_index":18454,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.useruc.findallunmatchedusers(currentuser.userid",{"_index":12819,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.useruc.me(currentuser.userid",{"_index":20931,"title":{},"body":{"controllers/UserController.html":{}}}],["this.useruc.patchlanguage(currentuser.userid",{"_index":20935,"title":{},"body":{"controllers/UserController.html":{}}}],["this.validate(props",{"_index":4281,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.validateandgetexternaltool(oauth2clientid",{"_index":9772,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatecontextexternaltools(courseid",{"_index":9778,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatelti11config(externaltool",{"_index":9532,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateoauth2config(externaltool",{"_index":9531,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateparameter(param",{"_index":5468,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.validatereordering(ids",{"_index":2646,"title":{},"body":{"entities/Board.html":{}}}],["this.validaterocketchatconfig",{"_index":1085,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.validateschoolexternaltool(course.school.id",{"_index":9777,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatestatus",{"_index":11462,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.validatesubject(currentuser",{"_index":15949,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.validatetoken(oauthtokens.idtoken",{"_index":15550,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.validateusersmatch(dashboard",{"_index":7850,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.validationerrors.push(new",{"_index":1260,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.validperiod",{"_index":11138,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.value",{"_index":7249,"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":21898,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.version",{"_index":5825,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.versionkey",{"_index":10053,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.videoconferencecreateuc.createifnotrunning(currentuser.userid",{"_index":21843,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceenduc.end(currentuser.userid",{"_index":21852,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceinfouc.getmeetinginfo(currentuser.userid",{"_index":21848,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencejoinuc.join(currentuser.userid",{"_index":21845,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceservice.canguestjoin(isguest",{"_index":21998,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.createorupdatevideoconferenceforscopewithoptions(scope.id",{"_index":21904,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.determinebbbrole",{"_index":21901,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.determinebbbrole(userid",{"_index":21973,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.findvideoconferencebyscopeidandscope",{"_index":22002,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(currentuserid",{"_index":21899,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(userid",{"_index":21972,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.getuserroleandgueststatusbyuseridforbbb",{"_index":22014,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.hasexpertrole",{"_index":21997,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.loadscoperessources(scopeid",{"_index":21897,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.sanitizestring(`${user.firstname",{"_index":22016,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.sanitizestring(scopeinfo.title",{"_index":21908,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(schoolid",{"_index":21914,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(user.schoolid",{"_index":21971,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceuc.create(currentuser",{"_index":21954,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.end(currentuser",{"_index":21963,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.getmeetinginfo(currentuser",{"_index":21951,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.join(currentuser",{"_index":21958,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.visibilitysettings",{"_index":4084,"title":{},"body":{"classes/CardResponse.html":{}}}],["this.visitchildren(anyboarddo",{"_index":17384,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(externaltoolelement",{"_index":17379,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(linkelement",{"_index":17368,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildrenasync(card",{"_index":17303,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(column",{"_index":17301,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(columnboard",{"_index":17299,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(externaltoolelement",{"_index":17318,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(fileelement",{"_index":17306,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(linkelement",{"_index":17308,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(richtextelement",{"_index":17310,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submission",{"_index":17314,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submissioncontainerelement",{"_index":17312,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenof(original",{"_index":17234,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.welcome",{"_index":1986,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.write",{"_index":10080,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.xmlbuilder",{"_index":5183,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject",{"_index":5200,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject(commonobject",{"_index":5265,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.xpos",{"_index":7634,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.xposition",{"_index":7668,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.year",{"_index":4292,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.ypos",{"_index":7635,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.yposition",{"_index":7669,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.zipbuilder",{"_index":5191,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile('imsmanifest.xml",{"_index":5207,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile(props.href",{"_index":5188,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.tobufferpromise",{"_index":5209,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this['meta_bbb",{"_index":1996,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["those",{"_index":22504,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["though",{"_index":22700,"title":{},"body":{"license.html":{}}}],["thoughtbot/fishery",{"_index":513,"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":15710,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["threads_enabled=false",{"_index":23707,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["three",{"_index":22615,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thresholddate",{"_index":7999,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["thresholddate.setdate(thresholddate.getdate",{"_index":8000,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["through",{"_index":22469,"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":529,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/BBBService.html":{},"classes/BaseUc.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/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.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":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"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":17468,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["throwifnotmoderator",{"_index":21875,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwifnotmoderator(role",{"_index":21887,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwing",{"_index":23845,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["thrown",{"_index":11363,"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":2189,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{}}}],["thumbnail",{"_index":9965,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thumbnailrequesttoken",{"_index":9966,"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":1776,"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":22332,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["time",{"_index":1579,"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":1569,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["timeout",{"_index":3956,"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":20340,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeouterror",{"_index":20335,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor",{"_index":13060,"title":{"injectables/TimeoutInterceptor.html":{}},"body":{"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor(timeout",{"_index":13062,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["timeoutms",{"_index":3940,"title":{},"body":{"injectables/CalendarService.html":{}}}],["timeouts",{"_index":23472,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["timeoutvalue",{"_index":20336,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timer",{"_index":17991,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["times",{"_index":2034,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["timestamp",{"_index":15134,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timestamps",{"_index":3654,"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":3662,"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":3658,"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":1574,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["timouts",{"_index":23460,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tiny",{"_index":22283,"title":{},"body":{"dependencies.html":{}}}],["title",{"_index":1203,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BoardColumnBoardResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.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/ColumnUc.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/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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/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":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"classes/PatchGroupParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RenameBodyParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"injectables/TaskCopyService.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"entities/TeamNews.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UpdateElementContentBodyParams.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":3977,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{}}}],["title(value",{"_index":14349,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["titlea",{"_index":7537,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titleb",{"_index":7539,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titlemap",{"_index":4842,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["titlesmap",{"_index":3325,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["titlesmap[id",{"_index":4939,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["tls",{"_index":8063,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["tmp/config/users",{"_index":23647,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms",{"_index":23656,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"powershell",{"_index":23617,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"setup",{"_index":23618,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"to",{"_index":23055,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["tmpdirpath",{"_index":10421,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["toarray",{"_index":5130,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/DatabaseManagementService.html":{}}}],["toboardid",{"_index":15038,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["tocardid",{"_index":15042,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["tocolumnid",{"_index":15032,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["todo",{"_index":1663,"title":{"todo.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseUc.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":{},"classes/RecursiveSaveVisitor.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/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":23833,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["together",{"_index":10770,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["toggleuserloginmigrationuc",{"_index":20348,"title":{"injectables/ToggleUserLoginMigrationUc.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["token",{"_index":124,"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":18707,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.body.params.ts",{"_index":18682,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:13",{"_index":18691,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:21",{"_index":18689,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:32",{"_index":18687,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:41",{"_index":18694,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.controller",{"_index":18945,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.controller.ts",{"_index":18701,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:40",{"_index":18709,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:67",{"_index":18723,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:86",{"_index":18719,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.do",{"_index":12269,"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":18762,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.factory.ts:9",{"_index":18765,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.ts",{"_index":18749,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:27",{"_index":18755,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:29",{"_index":18754,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:31",{"_index":18752,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:33",{"_index":18750,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.dto.ts",{"_index":15605,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:2",{"_index":15608,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:4",{"_index":15609,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:6",{"_index":15607,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.entity",{"_index":18812,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.entity.ts",{"_index":12263,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["token.entity.ts:19",{"_index":18679,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:22",{"_index":18678,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:25",{"_index":18675,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:32",{"_index":18676,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:35",{"_index":18674,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:43",{"_index":18677,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.repo",{"_index":18852,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.repo.ts",{"_index":18803,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:17",{"_index":18806,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:9",{"_index":18810,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.request.ts",{"_index":1325,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:10",{"_index":1334,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:12",{"_index":1330,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:4",{"_index":1331,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:6",{"_index":1332,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:8",{"_index":1335,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.response.ts",{"_index":16313,"title":{},"body":{"interfaces/OauthTokenResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["token.response.ts:12",{"_index":18827,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:15",{"_index":18826,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:18",{"_index":18825,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:4",{"_index":18824,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.service",{"_index":15947,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["token.service.ts",{"_index":12634,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:12",{"_index":12640,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:16",{"_index":18842,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:20",{"_index":12644,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:25",{"_index":18846,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:41",{"_index":12642,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:42",{"_index":18848,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:50",{"_index":18850,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:51",{"_index":12646,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:70",{"_index":18844,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.ts",{"_index":11151,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{}}}],["token.uc.ts",{"_index":18867,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:131",{"_index":18882,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:139",{"_index":18883,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:150",{"_index":18885,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:166",{"_index":18881,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:192",{"_index":18875,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:204",{"_index":18877,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:225",{"_index":18893,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:231",{"_index":18879,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:24",{"_index":18873,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:39",{"_index":18887,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:67",{"_index":18891,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:89",{"_index":18889,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.url.params.ts",{"_index":18936,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token.url.params.ts:11",{"_index":18938,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token_endpoint_auth_method",{"_index":9454,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["token_type",{"_index":13068,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["token_use",{"_index":13069,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["tokenauthmethod",{"_index":15730,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokendto",{"_index":15570,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.accesstoken",{"_index":15631,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.idtoken",{"_index":15630,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokenendpoint",{"_index":11584,"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":7336,"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":7354,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["tokengenerator",{"_index":18841,"title":{"injectables/TokenGenerator.html":{}},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/TokenGenerator.html":{}}}],["tokenrequestmapper",{"_index":15540,"title":{"classes/TokenRequestMapper.html":{}},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["tokenrequestmapper.createauthenticationcodegranttokenrequestpayload",{"_index":15603,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestmapper.maptokenresponsetodto(responsetoken",{"_index":15571,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestpayload",{"_index":15602,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokens",{"_index":15723,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokenurl",{"_index":12430,"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":18456,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["tool",{"_index":2486,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"modules/BoardModule.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":20418,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tool'})@apiokresponse({description",{"_index":20735,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tool'})@isstring()@isoptional",{"_index":9351,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["tool.'})@apiokresponse({description",{"_index":20534,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool.config",{"_index":16118,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.config.clientid",{"_index":9415,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.config.skipconsent",{"_index":16119,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.do.ts",{"_index":5765,"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":5776,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:23",{"_index":18159,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:24",{"_index":5772,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:25",{"_index":18162,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:26",{"_index":5773,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:27",{"_index":18161,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:28",{"_index":5774,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:29",{"_index":18160,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:30",{"_index":5771,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{}}}],["tool.do.ts:31",{"_index":18163,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:32",{"_index":8567,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:33",{"_index":18158,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:34",{"_index":8564,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:36",{"_index":8563,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:38",{"_index":8561,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:40",{"_index":8566,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:41",{"_index":5778,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:42",{"_index":8562,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:44",{"_index":8565,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:45",{"_index":18164,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:46",{"_index":8560,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:62",{"_index":8568,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:66",{"_index":8572,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:70",{"_index":8570,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.entity",{"_index":8742,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["tool.entity.ts",{"_index":5840,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:13",{"_index":8771,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:16",{"_index":8774,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:17",{"_index":18170,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:19",{"_index":8769,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:20",{"_index":18168,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:22",{"_index":8768,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:23",{"_index":18169,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:24",{"_index":5849,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:25",{"_index":8766,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:26",{"_index":18171,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:27",{"_index":5842,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:28",{"_index":8773,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:30",{"_index":5844,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:31",{"_index":8767,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:33",{"_index":5845,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:34",{"_index":8772,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:36",{"_index":5847,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:37",{"_index":8775,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:39",{"_index":5850,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.factory.ts",{"_index":5863,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:100",{"_index":8805,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:107",{"_index":8804,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:29",{"_index":15657,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["tool.factory.ts:65",{"_index":7334,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["tool.factory.ts:7",{"_index":18176,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:86",{"_index":8807,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:9",{"_index":5866,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["tool.factory.ts:93",{"_index":8806,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.id",{"_index":8619,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["tool.ishidden",{"_index":8616,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tool.logo",{"_index":8896,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["tool.module",{"_index":20399,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool.module.ts",{"_index":5385,"title":{},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/LtiToolModule.html":{},"modules/SchoolExternalToolModule.html":{}}}],["tool.name",{"_index":9420,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.oauthclientid",{"_index":11564,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.repo.mapper.ts",{"_index":9105,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:107",{"_index":9117,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:114",{"_index":9138,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:123",{"_index":9134,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:136",{"_index":9130,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:154",{"_index":9122,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:17",{"_index":9132,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:172",{"_index":9128,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:182",{"_index":9125,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:48",{"_index":9120,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:55",{"_index":9141,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:64",{"_index":9136,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:77",{"_index":9131,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.ts",{"_index":5907,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:114",{"_index":5927,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:125",{"_index":5925,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:14",{"_index":9079,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:19",{"_index":9091,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:24",{"_index":18214,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:25",{"_index":5912,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:27",{"_index":9086,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:30",{"_index":5939,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:32",{"_index":18210,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:36",{"_index":9084,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:38",{"_index":5918,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:41",{"_index":18212,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:45",{"_index":5922,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:50",{"_index":18206,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:54",{"_index":9082,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:55",{"_index":18208,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:64",{"_index":18203,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:70",{"_index":5915,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.response",{"_index":6087,"title":{},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{}}}],["tool.response.ts",{"_index":5997,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:10",{"_index":6006,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:13",{"_index":6000,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:16",{"_index":6001,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:19",{"_index":6002,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:22",{"_index":6005,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:25",{"_index":6007,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:28",{"_index":5999,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:31",{"_index":9292,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["tool.response.ts:7",{"_index":6003,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.rule.ts",{"_index":6050,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:12",{"_index":6053,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:18",{"_index":6052,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:9",{"_index":6051,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.scope",{"_index":5945,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.scope.ts",{"_index":6057,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:12",{"_index":9341,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:13",{"_index":18265,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:15",{"_index":6078,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:19",{"_index":9343,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:22",{"_index":6072,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:30",{"_index":6074,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:5",{"_index":9345,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:6",{"_index":18264,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:7",{"_index":6076,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.secret",{"_index":11565,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.service",{"_index":6172,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["tool.service.ts",{"_index":5392,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{},"injectables/LtiToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:10",{"_index":5396,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:103",{"_index":9375,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:11",{"_index":6103,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:118",{"_index":9388,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:131",{"_index":9392,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:143",{"_index":9371,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:16",{"_index":9369,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:17",{"_index":6101,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:22",{"_index":18285,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:23",{"_index":6105,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:26",{"_index":5401,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:28",{"_index":9373,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:29",{"_index":6095,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:32",{"_index":18282,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:39",{"_index":6097,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:40",{"_index":18280,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:43",{"_index":6099,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:44",{"_index":9385,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:51",{"_index":9382,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:52",{"_index":18278,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:6",{"_index":14760,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:60",{"_index":18276,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:64",{"_index":18287,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:78",{"_index":9376,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:8",{"_index":6093,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:9",{"_index":14762,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:93",{"_index":9378,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:98",{"_index":9380,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.skipconsent",{"_index":16117,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.types",{"_index":5942,"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":6116,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:10",{"_index":9476,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:101",{"_index":6136,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:11",{"_index":18307,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:115",{"_index":6134,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:124",{"_index":6132,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:18",{"_index":9478,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:19",{"_index":6125,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:28",{"_index":6127,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:30",{"_index":18309,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:31",{"_index":9488,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:47",{"_index":18312,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:52",{"_index":9484,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:56",{"_index":6138,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:59",{"_index":18311,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:63",{"_index":9486,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:70",{"_index":9480,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:71",{"_index":18316,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:77",{"_index":9482,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:79",{"_index":18318,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:92",{"_index":6129,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/context",{"_index":5886,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["tool/controller",{"_index":20391,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/controller/dto",{"_index":5905,"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":5828,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/custom",{"_index":7322,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{}}}],["tool/controller/dto/request/config/basic",{"_index":2507,"title":{},"body":{"classes/BasicToolConfigParams.html":{}}}],["tool/controller/dto/request/config/external",{"_index":8579,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["tool/controller/dto/request/config/lti11",{"_index":14599,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/config/oauth2",{"_index":15645,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/context",{"_index":5874,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{}}}],["tool/controller/dto/request/custom",{"_index":7393,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["tool/controller/dto/request/external",{"_index":8696,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SortExternalToolParams.html":{}}}],["tool/controller/dto/request/school",{"_index":18181,"title":{},"body":{"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{}}}],["tool/controller/dto/response/config/basic",{"_index":2517,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/external",{"_index":8585,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/lti11",{"_index":14618,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/oauth2",{"_index":15658,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["tool/controller/dto/response/context",{"_index":5800,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/custom",{"_index":7417,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["tool/controller/dto/response/external",{"_index":9291,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/response/school",{"_index":18166,"title":{},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/school",{"_index":18180,"title":{},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["tool/controller/dto/tool",{"_index":18239,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["tool/controller/tool",{"_index":20392,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/tool.controller.ts",{"_index":20511,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:101",{"_index":20531,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:120",{"_index":20540,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:142",{"_index":20524,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:160",{"_index":20536,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:53",{"_index":20517,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:73",{"_index":20528,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/domain",{"_index":1839,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"injectables/RecursiveDeleteVisitor.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":2485,"title":{},"body":{"classes/BasicToolConfig.html":{}}}],["tool/domain/config/external",{"_index":8577,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["tool/domain/config/lti11",{"_index":14590,"title":{},"body":{"classes/Lti11ToolConfig.html":{}}}],["tool/domain/config/oauth2",{"_index":15635,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["tool/domain/context",{"_index":5764,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{}}}],["tool/domain/external",{"_index":8557,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["tool/domain/school",{"_index":18156,"title":{},"body":{"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["tool/domain/tool",{"_index":20719,"title":{},"body":{"classes/ToolReference.html":{}}}],["tool/entity",{"_index":5852,"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":2497,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["tool/entity/config/external",{"_index":8582,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["tool/entity/config/lti11",{"_index":14611,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["tool/entity/config/oauth2",{"_index":15653,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["tool/entity/context",{"_index":5839,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["tool/entity/custom",{"_index":7300,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["tool/entity/external",{"_index":8762,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool/entity/school",{"_index":12184,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool/external",{"_index":8923,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["tool/loggable/external",{"_index":8818,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["tool/lti",{"_index":14706,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["tool/mapper",{"_index":20395,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/mapper/context",{"_index":5976,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["tool/mapper/external",{"_index":9189,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["tool/mapper/school",{"_index":18227,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["tool/mapper/tool",{"_index":20442,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["tool/school",{"_index":18187,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["tool/service",{"_index":6140,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IRepoLoader.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/RecursiveDeleteVisitor.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":5794,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["tool/service/external",{"_index":8589,"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":14758,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool/service/school",{"_index":18267,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["tool/service/tool",{"_index":20772,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["tool/uc",{"_index":20394,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/uc/context",{"_index":6115,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/uc/dto/context",{"_index":5941,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool/uc/dto/school",{"_index":18215,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool/uc/external",{"_index":8639,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool/uc/school",{"_index":18301,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool/uc/tool",{"_index":20777,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tool1",{"_index":5402,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool1.getversion",{"_index":5407,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2",{"_index":5400,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2.getversion",{"_index":5408,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool_clientid_duplicate",{"_index":9546,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientid_immutable",{"_index":9542,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientsecret_missing",{"_index":9544,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_param_auto_requires_global",{"_index":8970,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_regex",{"_index":8980,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_required",{"_index":8967,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_duplicate",{"_index":5459,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regex_invalid",{"_index":8977,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regexcomment",{"_index":8974,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_required",{"_index":5475,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_param_type_mismatch",{"_index":5479,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_value_regex",{"_index":5484,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_secret_missing",{"_index":9547,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_status_outdated",{"_index":20839,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["tool_type_immutable",{"_index":9538,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_version_mismatch",{"_index":18336,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["tool_with_name_exists",{"_index":6188,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["toolapimodule",{"_index":18589,"title":{"modules/ToolApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["toolconfigmodule",{"_index":8917,"title":{"modules/ToolConfigModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolconfigtype",{"_index":2491,"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":2494,"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":7362,"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":7358,"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":20618,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping[configtype",{"_index":20626,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfiguration",{"_index":12580,"title":{"classes/ToolConfiguration.html":{}},"body":{"interfaces/IToolFeatures.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolconfiguration.toolfeatures",{"_index":20401,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["toolconfigurationcontroller",{"_index":20386,"title":{"controllers/ToolConfigurationController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper",{"_index":20424,"title":{"classes/ToolConfigurationMapper.html":{}},"body":{"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20435,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20441,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20431,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20438,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationstatus",{"_index":5397,"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":5405,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.outdated",{"_index":5406,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.unknown",{"_index":20845,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse",{"_index":18238,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.latest",{"_index":20843,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.outdated",{"_index":20844,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.unknown",{"_index":18261,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolcontextcontroller",{"_index":20388,"title":{"controllers/ToolContextController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["toolcontexttype",{"_index":1866,"title":{},"body":{"injectables/AutoContextNameStrategy.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":1874,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ToolPermissionHelper.html":{}}}],["toolcontexttype.course",{"_index":1871,"title":{},"body":{"injectables/AutoContextNameStrategy.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":20390,"title":{"controllers/ToolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["toolfeatures",{"_index":8598,"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":8857,"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":8609,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["toolidsinuse.includes(tool.id",{"_index":8620,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolinfo",{"_index":20453,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos",{"_index":20450,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos.map",{"_index":20463,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["tooling",{"_index":23480,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["toollaunchcontroller",{"_index":20385,"title":{"controllers/ToolLaunchController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["toollaunchdata",{"_index":2567,"title":{"classes/ToolLaunchData.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchData.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchdatado",{"_index":2572,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["toollaunchdatatype",{"_index":20595,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.basic",{"_index":20619,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.lti11",{"_index":20620,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.oauth2",{"_index":20621,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping",{"_index":20622,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping[launchdatatype",{"_index":20627,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchmapper",{"_index":20586,"title":{"classes/ToolLaunchMapper.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoolconfigtype(toollaunchdata.type",{"_index":20677,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20590,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchmodule",{"_index":20628,"title":{"modules/ToolLaunchModule.html":{}},"body":{"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toollaunchparams",{"_index":20575,"title":{"classes/ToolLaunchParams.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{}}}],["toollaunchrequest",{"_index":2577,"title":{"classes/ToolLaunchRequest.html":{}},"body":{"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":20585,"title":{"classes/ToolLaunchRequestResponse.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["toollaunchrequestresponse})@apiunauthorizedresponse({description",{"_index":20578,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchservice",{"_index":20633,"title":{"injectables/ToolLaunchService.html":{}},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchuc",{"_index":20383,"title":{"injectables/ToolLaunchUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["toolmodule",{"_index":1765,"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":6123,"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":8632,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolref.externaltool.ishidden",{"_index":8634,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolreference",{"_index":6024,"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":6043,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.displayname",{"_index":6044,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.logourl",{"_index":6045,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreference.openinnewtab",{"_index":6047,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.status",{"_index":20728,"title":{},"body":{"classes/ToolReference.html":{}}}],["toolreferencecontroller",{"_index":20389,"title":{"controllers/ToolReferenceController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse",{"_index":20742,"title":{"classes/ToolReferenceListResponse.html":{}},"body":{"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{}}}],["toolreferencelistresponse(toolreferenceresponses",{"_index":20750,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse})@apiforbiddenresponse({description",{"_index":20740,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencemapper",{"_index":20752,"title":{"classes/ToolReferenceMapper.html":{}},"body":{"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreferencemapper.maptotoolreference",{"_index":20776,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["toolreferenceresponse",{"_index":6026,"title":{"classes/ToolReferenceResponse.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.contexttoolid",{"_index":20767,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.displayname",{"_index":20769,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.logourl",{"_index":20768,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.openinnewtab",{"_index":20770,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.status",{"_index":20771,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponses",{"_index":6039,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferenceresponse})@apiforbiddenresponse({description",{"_index":20736,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferences",{"_index":6029,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferences.map((toolreference",{"_index":6040,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolreferenceservice",{"_index":5885,"title":{"injectables/ToolReferenceService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreferencespromises",{"_index":20790,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull",{"_index":20792,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull.filter",{"_index":20795,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceuc",{"_index":20384,"title":{"injectables/ToolReferenceUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["tools",{"_index":6131,"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":20407,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools.data",{"_index":9416,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.data.map",{"_index":20551,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools.data.map(async",{"_index":9411,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.filter((tool",{"_index":6162,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tools.map(async",{"_index":8692,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tools.total",{"_index":20553,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/:contextexternaltoolid",{"_index":20744,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid')@apioperation({summary",{"_index":20734,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid/configuration",{"_index":20416,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/:schoolexternaltoolid/configuration",{"_index":20422,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/context",{"_index":20467,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["tools/external",{"_index":20512,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/school",{"_index":20799,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["tools/tool",{"_index":20730,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/{id}/logo",{"_index":8677,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["toolschoolcontroller",{"_index":20387,"title":{"controllers/ToolSchoolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["toolstatusoutdatedloggableexception",{"_index":20672,"title":{"classes/ToolStatusOutdatedLoggableException.html":{}},"body":{"injectables/ToolLaunchService.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolstatusoutdatedloggableexception(userid",{"_index":20687,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toolstatusresponsemapper",{"_index":6030,"title":{"classes/ToolStatusResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(schoolexternaltool.status",{"_index":18260,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(toolreference.status",{"_index":6048,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolswithpermission",{"_index":6158,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["toolswithschooltool",{"_index":8626,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolswithschooltool.filter",{"_index":8631,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tooltemplateinfo.externaltool",{"_index":8685,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["tooltemplateinfo.externaltool.logourl",{"_index":8686,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["toolvalidationservice",{"_index":9475,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["toolversion",{"_index":5399,"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":20372,"title":{"classes/TooManyPseudonymsLoggableException.html":{}},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["toomodule",{"_index":1771,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["top",{"_index":19741,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["toparams",{"_index":2132,"title":{},"body":{"injectables/BBBService.html":{}}}],["toparams(object",{"_index":2171,"title":{},"body":{"injectables/BBBService.html":{}}}],["topic",{"_index":23661,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["toplevel",{"_index":13417,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["toposition",{"_index":4050,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["toseedfolder",{"_index":7891,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["tostring",{"_index":944,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["total",{"_index":811,"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":21632,"title":{},"body":{"injectables/UserRepo.html":{}}}],["total[0].count",{"_index":21633,"title":{},"body":{"injectables/UserRepo.html":{}}}],["totalitems",{"_index":11342,"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":11359,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["touching",{"_index":23812,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["toupdate",{"_index":9386,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{}}}],["toupdate.config",{"_index":9431,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.config.clientid",{"_index":9433,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.name",{"_index":9430,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdateoauthclient",{"_index":9391,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tovideoconferenceinforesponse",{"_index":22030,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceinforesponse(videoconferenceinfo",{"_index":22034,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse",{"_index":22031,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse(videoconferencejoin",{"_index":22036,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions",{"_index":22032,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions(params",{"_index":22038,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse",{"_index":22033,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse(state",{"_index":22040,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["trace",{"_index":12096,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["trade",{"_index":22722,"title":{},"body":{"license.html":{}}}],["trademark",{"_index":22721,"title":{},"body":{"license.html":{}}}],["trademarks",{"_index":22723,"title":{},"body":{"license.html":{}}}],["transaction",{"_index":22677,"title":{},"body":{"license.html":{}}}],["transfer",{"_index":11648,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{}}}],["transferred",{"_index":22679,"title":{},"body":{"license.html":{}}}],["transferring",{"_index":22776,"title":{},"body":{"license.html":{}}}],["transform",{"_index":5206,"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":10956,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transformer",{"_index":5903,"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":10954,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transient",{"_index":462,"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":522,"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":23658,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["transitioning",{"_index":23358,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["translate",{"_index":22315,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["transmission",{"_index":22640,"title":{},"body":{"license.html":{}}}],["transparent",{"_index":19002,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["transports",{"_index":14457,"title":{},"body":{"modules/LoggerModule.html":{}}}],["trash",{"_index":17924,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["treated",{"_index":362,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["treating",{"_index":23565,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["treaty",{"_index":22549,"title":{},"body":{"license.html":{}}}],["tries",{"_index":23415,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["trigger",{"_index":23624,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["trim",{"_index":13033,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"injectables/UserRepo.html":{}}}],["trivial",{"_index":23178,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["true",{"_index":143,"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":{},"classes/BaseUc.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/GetMetaTagDataBody.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":{},"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":4056,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{}}}],["true})@apiproperty({oneof",{"_index":20859,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["true})@apiproperty({required",{"_index":5552,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["true})@enum",{"_index":19419,"title":{},"body":{"entities/SystemEntity.html":{}}}],["true})@index",{"_index":4263,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["true})@isarray()@isoptional()@apipropertyoptional({type",{"_index":5897,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["true})@ismongoid",{"_index":22126,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["true})@isoptional()@apiproperty({description",{"_index":5495,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["true})@isoptional()@apipropertyoptional({required",{"_index":7047,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["true})@isoptional()@isenum(filtermatchtype",{"_index":10754,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@singlevaluetoarraytransformer()@isarray",{"_index":10755,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@unique({options",{"_index":6566,"title":{},"body":{"entities/Course.html":{},"entities/ImportUser.html":{},"entities/LtiTool.html":{}}}],["try",{"_index":579,"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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":21421,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["trybuildtoolreference",{"_index":20780,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["trybuildtoolreference(userid",{"_index":20788,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tryextractmetatags",{"_index":14866,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryextractmetatags(url",{"_index":14875,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryfilenameasfallback",{"_index":14867,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryfilenameasfallback(url",{"_index":14877,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryfindbyid",{"_index":11259,"title":{},"body":{"injectables/GroupService.html":{}}}],["tryfindbyid(id",{"_index":11270,"title":{},"body":{"injectables/GroupService.html":{}}}],["trygetprevieworgenerate",{"_index":16781,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trygetprevieworgenerate(params",{"_index":16792,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trying",{"_index":6653,"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":978,"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":4311,"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":18637,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tvalue",{"_index":12722,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["two",{"_index":13844,"title":{},"body":{"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typ",{"_index":13161,"title":{},"body":{"interfaces/JwtConstants.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisOrganisationResponse.html":{}}}],["type",{"_index":32,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":9910,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["type.enum",{"_index":1338,"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":17184,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.factory.ts:11",{"_index":17188,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.includes(bn.type",{"_index":3251,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["type.interface.ts",{"_index":11974,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["type.mapper.ts",{"_index":14918,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:6",{"_index":14921,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.query.param.ts",{"_index":16563,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:12",{"_index":16571,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:16",{"_index":16572,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:8",{"_index":16569,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.response",{"_index":11193,"title":{},"body":{"classes/GroupResponse.html":{}}}],["typecheckers",{"_index":5410,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["typedefinitions",{"_index":23224,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["typemapping",{"_index":9245,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/GroupResponseMapper.html":{}}}],["typemapping[customparameterdo.type",{"_index":9335,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterparam.type",{"_index":9284,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["typemapping[resolvedgroup.type",{"_index":11229,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["typeof",{"_index":1503,"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":1600,"title":{},"body":{"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":10111,"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":10646,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(filerecordparenttype.boardnode",{"_index":10644,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.course",{"_index":10635,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.lesson",{"_index":10640,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.school",{"_index":10638,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.submission",{"_index":10642,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.task",{"_index":10633,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.user",{"_index":10636,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(sharetokencontexttype.school",{"_index":18698,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["types.set(sharetokenparenttype.course",{"_index":14922,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.lesson",{"_index":18791,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.task",{"_index":18792,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types/board",{"_index":3556,"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":22159,"title":{},"body":{"dependencies.html":{}}}],["types/connect",{"_index":22161,"title":{},"body":{"dependencies.html":{}}}],["types/copy.types",{"_index":6426,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["types/entity",{"_index":12458,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/gm",{"_index":22163,"title":{},"body":{"dependencies.html":{}}}],["types/ldapjs",{"_index":22165,"title":{},"body":{"dependencies.html":{}}}],["types/news.types",{"_index":6918,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["types/redis",{"_index":22167,"title":{},"body":{"dependencies.html":{}}}],["types/room",{"_index":8163,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["types/task.types",{"_index":12459,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/xml2js",{"_index":22169,"title":{},"body":{"dependencies.html":{}}}],["typescript",{"_index":995,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"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":22660,"title":{},"body":{"license.html":{}}}],["typing",{"_index":9710,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["u",{"_index":509,"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":6665,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["u.userid",{"_index":2476,"title":{},"body":{"classes/BaseUc.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["u.userid.id",{"_index":20215,"title":{},"body":{"injectables/TeamService.html":{}}}],["uc",{"_index":2702,"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/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.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":{},"classes/UserLoginMigrationMapper.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.ts",{"_index":11282,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:29",{"_index":11287,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:47",{"_index":11295,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:9",{"_index":11292,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.ts",{"_index":23279,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["uc/account.uc",{"_index":230,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["uc/board",{"_index":3455,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["uc/collaborative",{"_index":4651,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["uc/course",{"_index":6687,"title":{},"body":{"controllers/CourseController.html":{},"controllers/RoomsController.html":{}}}],["uc/course.uc",{"_index":6685,"title":{},"body":{"controllers/CourseController.html":{}}}],["uc/dashboard.uc",{"_index":7449,"title":{},"body":{"controllers/DashboardController.html":{}}}],["uc/database",{"_index":7877,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["uc/dto",{"_index":1553,"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":4366,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["uc/dto/context",{"_index":5986,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"controllers/ToolContextController.html":{}}}],["uc/dto/oauth",{"_index":13957,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["uc/dto/school",{"_index":18233,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["uc/dto/user.dto",{"_index":21700,"title":{},"body":{"injectables/UserService.html":{}}}],["uc/element.uc",{"_index":2703,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["uc/fwu",{"_index":10805,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["uc/hydra",{"_index":16235,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["uc/keycloak",{"_index":11604,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["uc/lesson",{"_index":17780,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/login.uc",{"_index":1321,"title":{},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["uc/news.uc",{"_index":15087,"title":{},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["uc/oauth",{"_index":16007,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["uc/rooms.uc",{"_index":17781,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/submission",{"_index":2704,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["uc/system.uc",{"_index":19376,"title":{},"body":{"controllers/SystemController.html":{}}}],["uc/task",{"_index":19649,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/task.uc",{"_index":19650,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/user",{"_index":12793,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"controllers/UserMigrationController.html":{}}}],["ucs",{"_index":13874,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["ui",{"_index":22279,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["ui_locales",{"_index":16386,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["ui_use_real_name=true",{"_index":23706,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["uid",{"_index":12047,"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":12045,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uid=[^,]*${escapedloginname",{"_index":13045,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs",{"_index":12839,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["uid=loginname",{"_index":12043,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uk",{"_index":12602,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["um",{"_index":4860,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unable",{"_index":3021,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["unambiguous",{"_index":1244,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["unarchivegroup(groupname",{"_index":1028,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["unauthorized",{"_index":20588,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized'})@apiforbiddenresponse({description",{"_index":20579,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized_exception",{"_index":20852,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception",{"_index":1815,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.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":9694,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('missing",{"_index":9687,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('no",{"_index":15633,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["unauthorizedexception('oauth",{"_index":16267,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unauthorizedexception('unauthorized",{"_index":13194,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["unauthorizedexception('user",{"_index":13789,"title":{},"body":{"injectables/LdapService.html":{}}}],["unauthorizedexception(`invalid",{"_index":16272,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["unauthorizedexception(`school",{"_index":13829,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["unauthorizedexception})@apiresponse({status",{"_index":14835,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["unauthorizedloggableexception",{"_index":1549,"title":{"classes/UnauthorizedLoggableException.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedloggableexception(username",{"_index":1557,"title":{},"body":{"injectables/AuthenticationService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["und",{"_index":4878,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["undefined",{"_index":556,"title":{},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountServiceDb.html":{},"injectables/AntivirusService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.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/ClassesRepo.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":{},"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":{},"injectables/MetaTagExtractorService.html":{},"classes/NewsListResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"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/SubmissionItemResponse.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":8701,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["undefined})@apiresponse({status",{"_index":3690,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ElementController.html":{}}}],["undefined})@isboolean()@isoptional",{"_index":21855,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["undefined})@property({nullable",{"_index":10099,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["undefined})@type(undefined",{"_index":5898,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["undefined})@userequestcontext",{"_index":10587,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["under",{"_index":22304,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["understand",{"_index":23397,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["unexpected",{"_index":23470,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unfamiliar",{"_index":23406,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unhandled",{"_index":8384,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["unicode",{"_index":742,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["unique",{"_index":168,"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":8770,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["uniqueids",{"_index":12531,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniqueids.length",{"_index":12534,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniquemember",{"_index":12415,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["uniquememberids",{"_index":12330,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["uniquenames",{"_index":5455,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquenames.size",{"_index":5457,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquepermissions",{"_index":12181,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["unit",{"_index":23023,"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":23559,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["universal",{"_index":22285,"title":{},"body":{"dependencies.html":{}}}],["unknown",{"_index":1150,"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":{},"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":{},"classes/UnknownQueryTypeLoggableException.html":{},"injectables/UserDORepo.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{}}}],["unknown.loggable.ts",{"_index":11241,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:4",{"_index":11244,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:7",{"_index":11246,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknownerror",{"_index":10919,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["unknownquerytype",{"_index":20856,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["unknownquerytypeloggableexception",{"_index":20853,"title":{"classes/UnknownQueryTypeLoggableException.html":{}},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["unless",{"_index":22666,"title":{},"body":{"license.html":{}}}],["unlimited",{"_index":315,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["unmarkfordelete",{"_index":10162,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["unmarkoutdatedusers",{"_index":18398,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmarkoutdatedusers(schoolid",{"_index":18422,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmodified",{"_index":22448,"title":{},"body":{"license.html":{}}}],["unnecessary",{"_index":22536,"title":{},"body":{"license.html":{}}}],["unnessasary",{"_index":20714,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["unpacking",{"_index":22696,"title":{},"body":{"license.html":{}}}],["unprocessableentityexception",{"_index":5643,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ElementUc.html":{},"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":{},"injectables/SubmissionItemUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception('cannot",{"_index":8324,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/NextcloudStrategy.html":{}}}],["unprocessableentityexception('current",{"_index":16308,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unprocessableentityexception(`could",{"_index":9419,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`requested",{"_index":16336,"title":{},"body":{"injectables/OauthUc.html":{}}}],["unprocessableentityexception(`school",{"_index":18447,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["unprocessableentityexception(`system",{"_index":21568,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception(`the",{"_index":9437,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`unknown",{"_index":9149,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["unprocessableentityexception(errortype.preview_not_possible",{"_index":16805,"title":{},"body":{"injectables/PreviewService.html":{}}}],["unpublish",{"_index":4919,"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":10767,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["unreachable",{"_index":934,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["unresponsive",{"_index":17997,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["uns",{"_index":4892,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unsafe",{"_index":997,"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":3672,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["unter",{"_index":4896,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["until",{"_index":8248,"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":6545,"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":6988,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["unused",{"_index":1891,"title":{},"body":{"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/TestBootstrapConsole.html":{}}}],["unusedtools",{"_index":8630,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unusedtools.filter",{"_index":8633,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unwanted",{"_index":19923,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["up",{"_index":14121,"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":2896,"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":5673,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update(id",{"_index":15289,"title":{},"body":{"injectables/NewsUc.html":{}}}],["update(submissionitem",{"_index":19188,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["update(urlparams",{"_index":15080,"title":{},"body":{"controllers/NewsController.html":{}}}],["update.params.ts",{"_index":9503,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["update.params.ts:16",{"_index":20105,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:17",{"_index":9505,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:21",{"_index":9508,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:22",{"_index":14627,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:25",{"_index":20108,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:26",{"_index":9511,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:27",{"_index":14626,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:31",{"_index":9507,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:33",{"_index":20109,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:35",{"_index":14625,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:36",{"_index":15661,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:39",{"_index":14624,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:40",{"_index":15660,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:41",{"_index":20106,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:44",{"_index":15662,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:49",{"_index":20104,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:52",{"_index":9504,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:57",{"_index":20107,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:59",{"_index":9510,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:63",{"_index":9506,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:67",{"_index":9509,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.visitor",{"_index":5678,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update.visitor.ts",{"_index":5692,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:108",{"_index":5697,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:28",{"_index":5695,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:34",{"_index":5701,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:38",{"_index":5700,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:42",{"_index":5699,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:46",{"_index":5703,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:55",{"_index":5704,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:76",{"_index":5705,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:85",{"_index":5706,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:95",{"_index":5708,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:99",{"_index":5702,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["updateaccount",{"_index":12698,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccount(accountid",{"_index":12727,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccount(id",{"_index":13582,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountbyid",{"_index":267,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountbyid(currentuser",{"_index":323,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountpassword",{"_index":12699,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountpassword(accountid",{"_index":12729,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccountpassword(id",{"_index":13584,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateboard",{"_index":17801,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboard(board",{"_index":17806,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboardtitle",{"_index":2868,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["updateboardtitle(urlparams",{"_index":2893,"title":{},"body":{"controllers/BoardController.html":{}}}],["updateboardtitle(userid",{"_index":3793,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecardheight",{"_index":3989,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["updatecardheight(urlparams",{"_index":4012,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardheight(userid",{"_index":4169,"title":{},"body":{"injectables/CardUc.html":{}}}],["updatecardtitle",{"_index":3990,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["updatecardtitle(urlparams",{"_index":4016,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle(userid",{"_index":4171,"title":{},"body":{"injectables/CardUc.html":{}}}],["updatecolumntitle",{"_index":4948,"title":{},"body":{"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["updatecolumntitle(urlparams",{"_index":4964,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecolumntitle(userid",{"_index":5026,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["updatecontextexternaltool",{"_index":6121,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(currentuser",{"_index":20486,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(userid",{"_index":6137,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["updatecopiedembeddedtasksoflessons",{"_index":2939,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons(boardstatus",{"_index":2969,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updated",{"_index":305,"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":331,"title":{},"body":{"controllers/AccountController.html":{}}}],["updated.id",{"_index":2315,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["updatedat",{"_index":377,"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":4443,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedclasses.length",{"_index":4447,"title":{},"body":{"injectables/ClassService.html":{}}}],["updateddomainobject",{"_index":4500,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatedelements",{"_index":3050,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatedentity",{"_index":4502,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatedlessons",{"_index":14308,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedlessons.length",{"_index":14313,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedmodel",{"_index":7765,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updatedtool",{"_index":6154,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updateduserloginmigration",{"_index":4533,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["updateduserloginmigration.closedat",{"_index":14130,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.finishedat",{"_index":14135,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.mandatorysince",{"_index":14133,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.startedat",{"_index":14132,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateelement",{"_index":8264,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelement(urlparams",{"_index":8278,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelementcontent",{"_index":8301,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontent(userid",{"_index":8309,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontentbodyparams",{"_index":8252,"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":2247,"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":2285,"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":13414,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateexistinggridelement",{"_index":7721,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistinggridelement(elementmodel",{"_index":7743,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistingmigration",{"_index":21342,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexistingmigration(userloginmigrationdo",{"_index":21363,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexternaltool",{"_index":9362,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["updateexternaltool(currentuser",{"_index":20537,"title":{},"body":{"controllers/ToolController.html":{}}}],["updateexternaltool(toupdate",{"_index":9383,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateexternaltool(userid",{"_index":9487,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["updatefileurls",{"_index":19677,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updatefileurls(task",{"_index":19688,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updateflag",{"_index":12757,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflag(urlparams",{"_index":12782,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflagparams",{"_index":12783,"title":{"classes/UpdateFlagParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateFlagParams.html":{}}}],["updateheight",{"_index":4096,"title":{},"body":{"injectables/CardService.html":{}}}],["updateheight(card",{"_index":4115,"title":{},"body":{"injectables/CardService.html":{}}}],["updateidentityprovider",{"_index":13342,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateidentityprovider(oidcconfig",{"_index":13374,"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":1538,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["updatemany",{"_index":4474,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatemany(classes",{"_index":4479,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatematchparams",{"_index":12775,"title":{"classes/UpdateMatchParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateMatchParams.html":{}}}],["updatemyaccount",{"_index":268,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(@currentuser",{"_index":365,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(currentuser",{"_index":327,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatenewsparams",{"_index":15081,"title":{"classes/UpdateNewsParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"classes/UpdateNewsParams.html":{}}}],["updateoauth2client",{"_index":15898,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2client(currentuser",{"_index":15909,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["updateoauth2client(id",{"_index":16182,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["updateoauth2toolconfig",{"_index":9363,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauth2toolconfig(toupdate",{"_index":9387,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow",{"_index":9364,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow(loadedoauthclient",{"_index":9389,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateorcreateidpdefaultmapper",{"_index":13343,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateorcreateidpdefaultmapper(idpalias",{"_index":13376,"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":5687,"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":6932,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["updates",{"_index":301,"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":18305,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(currentuser",{"_index":20815,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(userid",{"_index":18317,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["updatesecuritycheckstatus(status",{"_index":10150,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["updatesecuritystatus",{"_index":10335,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(@body",{"_index":10354,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(scanresultdto",{"_index":10340,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesubmissionitem",{"_index":3683,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitem(currentuser",{"_index":3699,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["updatesubmissionitem(userid",{"_index":19205,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitembodyparams",{"_index":3700,"title":{"classes/UpdateSubmissionItemBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["updateteam",{"_index":4555,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteam(team",{"_index":4569,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole",{"_index":4556,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(currentuser",{"_index":4634,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["updateteampermissionsforrole(currentuserid",{"_index":4695,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["updateteampermissionsforrole(dto",{"_index":11676,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(team",{"_index":4571,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["updateteamusersingroup",{"_index":15350,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updateteamusersingroup(groupid",{"_index":15369,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updatetitle",{"_index":4097,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{}}}],["updatetitle(board",{"_index":4836,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["updatetitle(card",{"_index":4117,"title":{},"body":{"injectables/CardService.html":{}}}],["updatetitle(column",{"_index":5009,"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":4721,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updateuserpermissionsforrole(currentuserid",{"_index":4728,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updatevisibilityofboardelement",{"_index":17825,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updatevisibilityofboardelement(roomid",{"_index":17832,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updating",{"_index":2279,"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":15204,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["upload",{"_index":17932,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["upload.done",{"_index":17956,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["upper",{"_index":14384,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["uppercase",{"_index":23297,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["uppercase_snake_case",{"_index":1246,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["uri",{"_index":965,"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":1194,"title":{},"body":{"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":{},"injectables/ContentElementUpdateVisitor.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":{},"classes/GetMetaTagDataBody.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":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/NexboardService.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"classes/PageContentResponse.html":{},"classes/PreviewParams.html":{},"classes/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":15576,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url('/login",{"_index":16255,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url('/migration",{"_index":21530,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url('/migration/error",{"_index":16261,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url(`${api_version_path}${newpath",{"_index":1195,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url(`api/v3/sso/login/${system.id",{"_index":21570,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(oauthconfig.authendpoint",{"_index":15587,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(params.logouturl).origin",{"_index":21837,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["url(path",{"_index":15598,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(system.oauthconfig.logoutendpoint",{"_index":15580,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(this.baseurl",{"_index":2229,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url(this.content.url).tostring",{"_index":5726,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["url(this.logouturl).origin",{"_index":13077,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url(this.publicbackendurl",{"_index":21547,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(url",{"_index":5737,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/MetaTagExtractorService.html":{}}}],["url(urlpath",{"_index":21564,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(value",{"_index":14348,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["url.body.params",{"_index":14839,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["url.body.params.ts",{"_index":10874,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["url.body.params.ts:10",{"_index":10876,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["url.href",{"_index":1197,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url.length",{"_index":14886,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["url.loggable",{"_index":13072,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url.pathname",{"_index":2230,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url.search",{"_index":2232,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url.searchparams.append('origin",{"_index":21531,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.tostring",{"_index":2233,"title":{},"body":{"injectables/BBBService.html":{},"injectables/UserMigrationService.html":{}}}],["urlencoded",{"_index":13560,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["urlencodedpayload",{"_index":15683,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["urlobject",{"_index":14896,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["urlparamkeys",{"_index":13403,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["urlparams",{"_index":2879,"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":2912,"title":{},"body":{"controllers/BoardController.html":{}}}],["urlparams.cardid",{"_index":4035,"title":{},"body":{"controllers/CardController.html":{}}}],["urlparams.columnid",{"_index":4973,"title":{},"body":{"controllers/ColumnController.html":{}}}],["urlparams.contentelementid",{"_index":8287,"title":{},"body":{"controllers/ElementController.html":{}}}],["urlparams.dashboardid",{"_index":7463,"title":{},"body":{"controllers/DashboardController.html":{}}}],["urlparams.elementid",{"_index":17788,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.importuserid",{"_index":12811,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["urlparams.lessonid",{"_index":14161,"title":{},"body":{"controllers/LessonController.html":{},"controllers/RoomsController.html":{}}}],["urlparams.newsid",{"_index":15104,"title":{},"body":{"controllers/NewsController.html":{}}}],["urlparams.roomid",{"_index":17787,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.submissioncontainerid",{"_index":3718,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.submissionid",{"_index":19102,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["urlparams.submissionitemid",{"_index":3723,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.taskid",{"_index":19666,"title":{},"body":{"controllers/TaskController.html":{}}}],["urlparams.teamid",{"_index":20161,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["urlparams.token",{"_index":18741,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["urlpath",{"_index":21503,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["urls",{"_index":13075,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["urlsafe",{"_index":22288,"title":{},"body":{"dependencies.html":{}}}],["urlsearchparams",{"_index":2153,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["usable",{"_index":18692,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["usage",{"_index":4441,"title":{},"body":{"injectables/ClassService.html":{},"classes/ExternalToolRepoMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["use",{"_index":358,"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":11980,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["usecase",{"_index":23197,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usecases",{"_index":23236,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["usecentralldap",{"_index":12779,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["useclass",{"_index":8453,"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":10881,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["usedobuilder(builder",{"_index":3579,"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":4626,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["usefactory",{"_index":637,"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":22938,"title":{},"body":{"license.html":{}}}],["useguards",{"_index":14503,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('ldap",{"_index":14509,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('local",{"_index":14515,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('oauth2",{"_index":14519,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('ldap')@apioperation({summary",{"_index":14488,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('local')@apioperation({summary",{"_index":14495,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('oauth2')@apioperation({summary",{"_index":14500,"title":{},"body":{"controllers/LoginController.html":{}}}],["user",{"_index":239,"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":{},"classes/BaseUc.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.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":{},"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorService.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/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":15963,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["user'})@isboolean",{"_index":20863,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["user'})@ismongoid",{"_index":20866,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["user(params",{"_index":23774,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(props",{"_index":20998,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user(s",{"_index":23745,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(value",{"_index":12570,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["user.'})@apiresponse({status",{"_index":304,"title":{},"body":{"controllers/AccountController.html":{},"controllers/GroupController.html":{}}}],["user._id",{"_index":13029,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["user._id.$oid",{"_index":13720,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.accountid",{"_index":1561,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["user.attribute",{"_index":13488,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["user.attributes",{"_index":13626,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.attributes[attributename",{"_index":13627,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.business",{"_index":20900,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user.controller",{"_index":12939,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["user.controller.ts",{"_index":12748,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:104",{"_index":12781,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:112",{"_index":12760,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:29",{"_index":12763,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:47",{"_index":12777,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:59",{"_index":12770,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:70",{"_index":12785,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:82",{"_index":12766,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:99",{"_index":12773,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.createdat",{"_index":17495,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.createdtimestamp",{"_index":13632,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.dto",{"_index":8512,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{}}}],["user.dto.ts",{"_index":8521,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:10",{"_index":9621,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:12",{"_index":9620,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:4",{"_index":8524,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:6",{"_index":8523,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:8",{"_index":9622,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.email",{"_index":12659,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{},"classes/UserMatchMapper.html":{}}}],["user.entity",{"_index":6590,"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":11322,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["user.entity.ts:102",{"_index":12745,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:109",{"_index":12741,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:112",{"_index":12737,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:13",{"_index":11325,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:16",{"_index":11324,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:54",{"_index":12743,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:57",{"_index":12744,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:60",{"_index":12739,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:76",{"_index":12734,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:79",{"_index":12735,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:82",{"_index":12738,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:88",{"_index":12733,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:91",{"_index":12742,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:94",{"_index":12732,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.externalid",{"_index":13144,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/UserDto.html":{}}}],["user.externalidtoken",{"_index":14522,"title":{},"body":{"controllers/LoginController.html":{}}}],["user.factory",{"_index":649,"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":12831,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.factory.ts:10",{"_index":12833,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.firstname",{"_index":3112,"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":21080,"title":{},"body":{"classes/UserDto.html":{}}}],["user.id",{"_index":528,"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":13713,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.interface.ts",{"_index":12074,"title":{},"body":{"interfaces/IJsonUser.html":{}}}],["user.language",{"_index":21079,"title":{},"body":{"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.lastloginsystemchange",{"_index":14943,"title":{},"body":{"injectables/MigrationCheckService.html":{},"classes/UserDto.html":{}}}],["user.lastname",{"_index":3113,"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":21078,"title":{},"body":{"classes/UserDto.html":{}}}],["user.mapper",{"_index":12788,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.mapper.ts",{"_index":7131,"title":{},"body":{"classes/CurrentUserMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:17",{"_index":12869,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:20",{"_index":7143,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:32",{"_index":12871,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:41",{"_index":7139,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:49",{"_index":12868,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:5",{"_index":17492,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:53",{"_index":7137,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:9",{"_index":7146,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.module",{"_index":20919,"title":{},"body":{"modules/UserApiModule.html":{}}}],["user.outdatedsince",{"_index":18453,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserDto.html":{}}}],["user.params",{"_index":21452,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.params.ts",{"_index":10741,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/SortImportUserParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.params.ts:12",{"_index":10777,"title":{},"body":{"classes/FilterUserParams.html":{}}}],["user.params.ts:21",{"_index":10747,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:27",{"_index":10750,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:33",{"_index":10751,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:40",{"_index":10756,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:45",{"_index":10749,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:54",{"_index":10745,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:59",{"_index":10759,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.permissions",{"_index":9651,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.preferences",{"_index":21081,"title":{},"body":{"classes/UserDto.html":{}}}],["user.repo.ts",{"_index":23309,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.resolvepermissions",{"_index":1657,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.response",{"_index":11194,"title":{},"body":{"classes/GroupResponse.html":{}}}],["user.response.ts",{"_index":11329,"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":17503,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:12",{"_index":11334,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:14",{"_index":17505,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:15",{"_index":11331,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:17",{"_index":17504,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:20",{"_index":17502,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:23",{"_index":17509,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:25",{"_index":12991,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:26",{"_index":17507,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:29",{"_index":17506,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:31",{"_index":12993,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:32",{"_index":17508,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:37",{"_index":12989,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:43",{"_index":12992,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:50",{"_index":12995,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:53",{"_index":12988,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:56",{"_index":12994,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:6",{"_index":11333,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:61",{"_index":12990,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:64",{"_index":12845,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["user.response.ts:7",{"_index":12987,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:9",{"_index":11332,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role",{"_index":11335,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role.name",{"_index":11235,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.roleids",{"_index":21077,"title":{},"body":{"classes/UserDto.html":{}}}],["user.roles",{"_index":16468,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{}}}],["user.roles.getitems",{"_index":20934,"title":{},"body":{"controllers/UserController.html":{}}}],["user.roles.getitems().map((role",{"_index":7149,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.getitems(true",{"_index":21457,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.roles.isinitialized(true",{"_index":16650,"title":{},"body":{"injectables/PermissionService.html":{}}}],["user.roles.map((roleref",{"_index":7152,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.some",{"_index":21716,"title":{},"body":{"injectables/UserService.html":{}}}],["user.roles.some((role",{"_index":9801,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["user.school",{"_index":6744,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["user.school.id",{"_index":6054,"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":6747,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.schoolyear?.startdate",{"_index":6746,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.tostring",{"_index":17499,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.schoolid",{"_index":4786,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{}}}],["user.schoolid.tostring",{"_index":9649,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.scope",{"_index":20997,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user.ts",{"_index":11316,"title":{},"body":{"classes/GroupUser.html":{},"classes/ResolvedGroupUser.html":{}}}],["user.ts:4",{"_index":11318,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:5",{"_index":17488,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.ts:6",{"_index":11317,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:7",{"_index":17487,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.uc.ts",{"_index":23303,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.updatedat",{"_index":17497,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.url.params.ts",{"_index":13054,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.url.params.ts:11",{"_index":13055,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.user.firstname",{"_index":11236,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.id",{"_index":11234,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.lastname",{"_index":11237,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.userid",{"_index":11022,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"controllers/UserLoginMigrationController.html":{}}}],["user.username",{"_index":13631,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{}}}],["user.userroleenum",{"_index":19212,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["user/account",{"_index":13190,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["user/import",{"_index":12749,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user?.id",{"_index":16498,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["user?.lastloginsystemchange",{"_index":14941,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["user_already_assigned_to_import_user_error",{"_index":20903,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user_id",{"_index":2097,"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":21113,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["user_login_migration_grace_period_expired",{"_index":21258,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["user_login_migration_not_found",{"_index":21289,"title":{},"body":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["user_login_migrations",{"_index":21247,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["user_migration_failed",{"_index":21254,"title":{},"body":{"classes/UserLoginMigrationError.html":{}}}],["useralreadyassignedtoimportusererror",{"_index":20898,"title":{"classes/UserAlreadyAssignedToImportUserError.html":{}},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["userandaccountparams",{"_index":656,"title":{"interfaces/UserAndAccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory",{"_index":657,"title":{"classes/UserAndAccountTestFactory.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory.buildaccount(user",{"_index":669,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userapimodule",{"_index":18590,"title":{"modules/UserApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserApiModule.html":{},"modules.html":{}}}],["userattributenamemapping",{"_index":12406,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userboardrole",{"_index":3359,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.editor",{"_index":3363,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.reader",{"_index":3364,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.userroleenum",{"_index":3361,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardroles",{"_index":3077,"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":20918,"title":{"controllers/UserController.html":{}},"body":{"modules/UserApiModule.html":{},"controllers/UserController.html":{}}}],["usercount",{"_index":13715,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["userdata",{"_index":9752,"title":{"interfaces/UserData.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["userdataresponse",{"_index":19170,"title":{"classes/UserDataResponse.html":{}},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{},"classes/UserDataResponse.html":{}}}],["userdo",{"_index":7141,"title":{"classes/UserDO.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.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":13094,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.externalid",{"_index":13095,"title":{},"body":{"classes/IservMapper.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.firstname",{"_index":13092,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.lastloginsystemchange",{"_index":21391,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.lastname",{"_index":13093,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.previousexternalid",{"_index":21559,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocopy",{"_index":21518,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocument",{"_index":21645,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments",{"_index":21642,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments.map((userdocument",{"_index":21643,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdofactory",{"_index":21051,"title":{"classes/UserDoFactory.html":{}},"body":{"classes/UserDoFactory.html":{}}}],["userdofactory.define(userdo",{"_index":21056,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["userdorepo",{"_index":20978,"title":{"injectables/UserDORepo.html":{}},"body":{"injectables/UserDORepo.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["userdto",{"_index":21059,"title":{"classes/UserDto.html":{}},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["userentity",{"_index":21008,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userentitys",{"_index":21015,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userentitys.find((user",{"_index":21017,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userequestcontext",{"_index":10595,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["userfactory",{"_index":648,"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":19119,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["userfactory.buildlistwithid(numberofstudents",{"_index":6809,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["userfactory.buildlistwithid(numberofteachers",{"_index":6810,"title":{},"body":{"classes/CourseFactory.html":{}}}],["userfactory.buildlistwithid(numberofteammembers",{"_index":19116,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["userfactory.buildwithid",{"_index":19115,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TeamUserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["userfactory.define(user",{"_index":21100,"title":{},"body":{"classes/UserFactory.html":{}}}],["userforgroupnotfoundloggable",{"_index":16441,"title":{"classes/UserForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["userforgroupnotfoundloggable(externalgroupuser",{"_index":16501,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["usergroup",{"_index":9763,"title":{"interfaces/UserGroup.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usergroups",{"_index":9762,"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":{},"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":{},"classes/BaseUc.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnUc.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DownloadFileParams.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageConsumer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"classes/GroupUser.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IJsonAccount.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserScope.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/MetaTagExtractorUc.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":19135,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["userid).buildwithid",{"_index":20135,"title":{},"body":{"classes/TeamFactory.html":{}}}],["userid)?.userroleenum",{"_index":2477,"title":{},"body":{"classes/BaseUc.html":{}}}],["userid.tohexstring",{"_index":4390,"title":{},"body":{"classes/ClassMapper.html":{}}}],["userid.tostring",{"_index":9660,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["userid1",{"_index":4255,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["userid?.tostring",{"_index":948,"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":6821,"title":{},"body":{"entities/CourseGroup.html":{}}}],["userids.map((id",{"_index":726,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["userimportuc",{"_index":12792,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["userinfo",{"_index":14566,"title":{},"body":{"injectables/LoginUc.html":{},"classes/SystemFactory.html":{}}}],["userinfo.token.claim",{"_index":13492,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["userinfomapper",{"_index":15153,"title":{"classes/UserInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/UserInfoMapper.html":{}}}],["userinfomapper.maptoresponse(news.creator",{"_index":15156,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinfomapper.maptoresponse(news.updater",{"_index":15170,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinforesponse",{"_index":15124,"title":{"classes/UserInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{}}}],["userinfourl",{"_index":12431,"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":16325,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userlist",{"_index":12818,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userlist.map((user",{"_index":12820,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userloginmigration",{"_index":4522,"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":4532,"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":4529,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat.gettime",{"_index":4540,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.id",{"_index":4531,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.mandatorysince",{"_index":14138,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.school",{"_index":12219,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["userloginmigration.startedat",{"_index":14137,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationalreadyclosedloggableexception",{"_index":18989,"title":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiokresponse({description",{"_index":21166,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiunprocessableentityresponse({description",{"_index":21134,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationapimodule",{"_index":18591,"title":{"modules/UserLoginMigrationApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["userloginmigrationcontroller",{"_index":21120,"title":{"controllers/UserLoginMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationdo",{"_index":4520,"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":21384,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.finishedat",{"_index":21385,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationentity",{"_index":12197,"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":21298,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationerror",{"_index":21253,"title":{"classes/UserLoginMigrationError.html":{}},"body":{"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception",{"_index":4524,"title":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apinotfoundresponse({description",{"_index":21135,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiokresponse({description",{"_index":21159,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiunprocessableentityresponse({description",{"_index":21165,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationid",{"_index":12220,"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":20355,"title":{"classes/UserLoginMigrationMandatoryLoggable.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["userloginmigrationmandatoryloggable(userid",{"_index":20357,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigrationmandatoryparams",{"_index":21163,"title":{"classes/UserLoginMigrationMandatoryParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["userloginmigrationmapper",{"_index":21176,"title":{"classes/UserLoginMigrationMapper.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["userloginmigrationmapper.mapsearchparamstoquery(params",{"_index":21186,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(migrationdto",{"_index":21198,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(userloginmigration",{"_index":21191,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmodule",{"_index":13926,"title":{"modules/UserLoginMigrationModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["userloginmigrationnotfoundloggableexception",{"_index":4525,"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":4527,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiokresponse({description",{"_index":21136,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiunprocessableentityresponse({description",{"_index":21157,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationprops",{"_index":21307,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationquery",{"_index":21177,"title":{"interfaces/UserLoginMigrationQuery.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationrepo",{"_index":14933,"title":{"injectables/UserLoginMigrationRepo.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationrepo.save",{"_index":21371,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationresponse",{"_index":21178,"title":{"classes/UserLoginMigrationResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationresponse})@apiforbiddenresponse",{"_index":21172,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apinotfoundresponse({description",{"_index":21143,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse",{"_index":21160,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apinocontentresponse({description",{"_index":21137,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationrevertservice",{"_index":4515,"title":{"injectables/UserLoginMigrationRevertService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["userloginmigrationrule",{"_index":1710,"title":{"injectables/UserLoginMigrationRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["userloginmigrations",{"_index":21142,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchlistresponse",{"_index":21179,"title":{"classes/UserLoginMigrationSearchListResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationsearchlistresponse})@apiinternalservererrorresponse({description",{"_index":21149,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchparams",{"_index":21146,"title":{"classes/UserLoginMigrationSearchParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["userloginmigrationservice",{"_index":4513,"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":17518,"title":{"classes/UserLoginMigrationStartLoggable.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationstartloggable(userid",{"_index":17521,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["userloginmigrationuc",{"_index":21118,"title":{"injectables/UserLoginMigrationUc.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["usermapper",{"_index":21436,"title":{"classes/UserMapper.html":{}},"body":{"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["usermapper.mapfromentitytodto(userentity",{"_index":21703,"title":{},"body":{"injectables/UserService.html":{}}}],["usermatches",{"_index":12982,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["usermatchlistresponse",{"_index":12797,"title":{"classes/UserMatchListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchlistresponse(dtolist",{"_index":12822,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper",{"_index":12789,"title":{"classes/UserMatchMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["usermatchmapper.maptodomain(scope",{"_index":12817,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper.maptoresponse(user",{"_index":12821,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["usermatchresponse",{"_index":12847,"title":{"classes/UserMatchResponse.html":{}},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchschoolid",{"_index":18352,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["usermetadata",{"_index":9769,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermetdata",{"_index":9761,"title":{"interfaces/UserMetdata.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermigrationcontroller",{"_index":21119,"title":{"controllers/UserMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["usermigrationdto",{"_index":14947,"title":{},"body":{"classes/MigrationDto.html":{},"injectables/UserMigrationService.html":{}}}],["usermigrationdto.redirect",{"_index":14948,"title":{},"body":{"classes/MigrationDto.html":{}}}],["usermigrationisnotenabled",{"_index":21484,"title":{"classes/UserMigrationIsNotEnabled.html":{}},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["usermigrationmapper",{"_index":16241,"title":{"classes/UserMigrationMapper.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{}}}],["usermigrationmapper.mapdtotoresponse(migration",{"_index":16310,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["usermigrationresponse",{"_index":16237,"title":{"classes/UserMigrationResponse.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{}}}],["usermigrationservice",{"_index":15513,"title":{"injectables/UserMigrationService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["usermodel",{"_index":13490,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["usermodule",{"_index":3531,"title":{"modules/UserModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/GroupApiModule.html":{},"modules/MetaTagExtractorModule.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":745,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["username.trim().tolowercase",{"_index":1583,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["usernames",{"_index":9719,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usernotfoundafterprovisioningloggableexception",{"_index":15539,"title":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}},"body":{"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["usernotfoundafterprovisioningloggableexception(externaluserid",{"_index":15565,"title":{},"body":{"injectables/OAuthService.html":{}}}],["userparams",{"_index":650,"title":{"classes/UserParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserParams.html":{}}}],["userpathadditions",{"_index":12403,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userpermissions",{"_index":21097,"title":{},"body":{"classes/UserFactory.html":{}}}],["userquery",{"_index":20985,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userrefprops",{"_index":1642,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrefprops.some((prop",{"_index":1674,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrepo",{"_index":217,"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":13570,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["userrole",{"_index":12849,"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":17619,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.student",{"_index":17621,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.teacher",{"_index":17620,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userroleenum",{"_index":2460,"title":{},"body":{"classes/BaseUc.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["userroleenum.student",{"_index":2480,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["userroleenum.substitution_teacher",{"_index":3117,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userroleenum.teacher",{"_index":3115,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userrule",{"_index":1711,"title":{"injectables/UserRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserRule.html":{}}}],["users",{"_index":3060,"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":{},"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":16503,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.find",{"_index":13606,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.find((user",{"_index":21613,"title":{},"body":{"injectables/UserRepo.html":{}}}],["users.foreach((user",{"_index":16491,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.getidentifiers('_id",{"_index":6636,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["users.length",{"_index":6640,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UsersList.html":{}}}],["users.map((user",{"_index":6647,"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":13600,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.total",{"_index":18470,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["users.update",{"_index":13599,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users_configuration_path='/tmp/config/users",{"_index":23631,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["userscollection",{"_index":11800,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.createindex",{"_index":11812,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.dropindex('usersearchindex",{"_index":11811,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexes",{"_index":11804,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexexists('usersearchindex",{"_index":11803,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscope",{"_index":20996,"title":{"classes/UserScope.html":{}},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["userscount",{"_index":974,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["usersearchindex",{"_index":11805,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindex[0].key?.schoolid",{"_index":11808,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindexexists",{"_index":11802,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userservice",{"_index":4767,"title":{"injectables/UserService.html":{}},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.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":21701,"title":{},"body":{"injectables/UserService.html":{}}}],["usersfile",{"_index":12079,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["userslist",{"_index":6605,"title":{"classes/UsersList.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["userspermissions",{"_index":1656,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["userspermissions.includes(p",{"_index":1659,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["usersresponse",{"_index":19175,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["usersubmissionexists",{"_index":8328,"title":{},"body":{"injectables/ElementUc.html":{}}}],["userswithemail",{"_index":13139,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail.length",{"_index":13141,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail[0",{"_index":13142,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["usertoicurrentuser",{"_index":7135,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["usertoicurrentuser(accountid",{"_index":7145,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["useruc",{"_index":12800,"title":{"injectables/UserUc.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["userwithpopulatedroles",{"_index":1828,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["uses",{"_index":13930,"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":1112,"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":20308,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["using",{"_index":493,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"modules/AuthorizationReferenceModule.html":{},"classes/BaseFactory.html":{},"classes/BaseUc.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":{},"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":5524,"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":10394,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["util",{"_index":10910,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["util.inspect(message).replace(/\\n/g",{"_index":13920,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["utilities",{"_index":14449,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["utilities.format.nestlike",{"_index":14468,"title":{},"body":{"modules/LoggerModule.html":{}}}],["utils",{"_index":3306,"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":17349,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["utils.asarray(id",{"_index":3324,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["utils/error.utils",{"_index":8376,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["uuid",{"_index":570,"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":12834,"title":{},"body":{"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["v",{"_index":11656,"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":23010,"title":{},"body":{"todo.html":{}}}],["v3/index",{"_index":23015,"title":{},"body":{"todo.html":{}}}],["v3/tools/external",{"_index":8676,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["v4",{"_index":9997,"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":5435,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["valid",{"_index":578,"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":{},"injectables/MetaTagExtractorService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validatabletool",{"_index":5420,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.id",{"_index":5460,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.find",{"_index":5464,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.length",{"_index":5458,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.map",{"_index":5453,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validate",{"_index":6164,"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":6169,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validate(payload",{"_index":13178,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["validate(props",{"_index":4276,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["validate(request",{"_index":13820,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["validate(school",{"_index":18513,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validate(schoolexternaltool",{"_index":18331,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validate(username",{"_index":14407,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["validateandgetexternaltool",{"_index":9728,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateandgetexternaltool(oauth2clientid",{"_index":9753,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecommon",{"_index":8936,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecommon(externaltool",{"_index":8956,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecontextexternaltools",{"_index":9729,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validatecontextexternaltools(courseid",{"_index":9755,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecreate",{"_index":9516,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecreate(externaltool",{"_index":9521,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validated",{"_index":13210,"title":{},"body":{"injectables/JwtValidationAdapter.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validategraceperiod",{"_index":18399,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validategraceperiod(userloginmigration",{"_index":18424,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validatelogosize",{"_index":8844,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelogosize(externaltool",{"_index":8858,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelti11config",{"_index":9517,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatelti11config(externaltool",{"_index":9523,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatenested",{"_index":5904,"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":8736,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MoveElementParams.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{}}}],["validatenested()@type(undefined",{"_index":8700,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested({each",{"_index":5896,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["validateoauth2config",{"_index":9518,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateoauth2config(externaltool",{"_index":9524,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateparameter",{"_index":5418,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validateparameter(param",{"_index":5437,"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":2649,"title":{},"body":{"entities/Board.html":{}}}],["validaterocketchatconfig",{"_index":1096,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["validateschoolexternaltool",{"_index":9730,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateschoolexternaltool(schoolid",{"_index":9757,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatestatus",{"_index":11422,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["validatesubject",{"_index":15931,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatesubject(currentuser",{"_index":15942,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatetoken",{"_index":15509,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validatetoken(idtoken",{"_index":15535,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validateupdate",{"_index":9519,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateupdate(toolid",{"_index":9526,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateusersmatch",{"_index":7831,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validateusersmatch(dashboard",{"_index":7839,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validating",{"_index":13209,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation",{"_index":1221,"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":1384,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{}}}],["validation.adapter.ts",{"_index":13198,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:13",{"_index":13203,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:25",{"_index":13208,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:30",{"_index":13206,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:36",{"_index":13213,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.error.ts",{"_index":1200,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.error.ts:4",{"_index":1206,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.pipe",{"_index":21748,"title":{},"body":{"modules/ValidationModule.html":{}}}],["validation.pipe.ts",{"_index":10948,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.pipe.ts:12",{"_index":10951,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.service",{"_index":9529,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts",{"_index":5409,"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":8937,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:108",{"_index":8945,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:118",{"_index":8947,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:12",{"_index":6167,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:128",{"_index":8953,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:136",{"_index":8949,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:14",{"_index":5447,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:148",{"_index":8941,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:15",{"_index":18332,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:16",{"_index":8957,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:18",{"_index":9522,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:20",{"_index":6170,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:24",{"_index":5436,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:25",{"_index":18329,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:28",{"_index":9527,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:32",{"_index":5424,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:45",{"_index":5421,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:53",{"_index":5433,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:60",{"_index":9525,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:65",{"_index":5438,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:7",{"_index":18511,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:72",{"_index":8943,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:73",{"_index":5427,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:76",{"_index":8951,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:81",{"_index":5431,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:86",{"_index":8939,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:89",{"_index":5429,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:9",{"_index":18326,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:95",{"_index":8955,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation_error",{"_index":21741,"title":{},"body":{"classes/ValidationError.html":{}}}],["validationerror",{"_index":283,"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":18428,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validationerror('user",{"_index":7151,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["validationerror(`tool_id_mismatch",{"_index":9534,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validationerror(`tool_name_duplicate",{"_index":8960,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror(`tool_param_name",{"_index":8965,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror.children",{"_index":1262,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.children.foreach((childerror",{"_index":1263,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.constraints",{"_index":1258,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.property",{"_index":1256,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrordetailresponse",{"_index":1233,"title":{"classes/ValidationErrorDetailResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["validationerrordetailresponse(propertypath",{"_index":1261,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrorlogmessage",{"_index":8369,"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/UnknownQueryTypeLoggableException.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":1207,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ErrorLoggable.html":{}}}],["validationmetadata",{"_index":8402,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.context?.privacyprotected",{"_index":8404,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.propertyname",{"_index":8403,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmodule",{"_index":6495,"title":{"modules/ValidationModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{},"modules.html":{}}}],["validationpipe",{"_index":10950,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validator",{"_index":148,"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/ClassFilterParams.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/GetMetaTagDataBody.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/MetaTagExtractorResponse.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":23293,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["validcourses",{"_index":9807,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validcourses.push(course",{"_index":9810,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validfrom",{"_index":11014,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["validjwt",{"_index":7077,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["validperiod",{"_index":11097,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["validuntil",{"_index":11015,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["value",{"_index":480,"title":{},"body":{"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":{},"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":{},"injectables/MetaTagExtractorService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"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":19015,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{}}}],["value.loggable",{"_index":14990,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["value.trim().length",{"_index":19038,"title":{},"body":{"classes/StringValidator.html":{}}}],["value[0",{"_index":13641,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["values",{"_index":1389,"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":1588,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:2",{"_index":1592,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:4",{"_index":1591,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["var",{"_index":11824,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["variable",{"_index":18639,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["variables",{"_index":18930,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["various",{"_index":23205,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["vars",{"_index":1892,"title":{},"body":{"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["vcdo",{"_index":22001,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["vcdo.options",{"_index":22003,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["verbatim",{"_index":22368,"title":{},"body":{"license.html":{}}}],["verbose",{"_index":11613,"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":1060,"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":23538,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyfeaturesenabled",{"_index":21876,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifyfeaturesenabled(schoolid",{"_index":21889,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifying",{"_index":23539,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyoptions",{"_index":1428,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["version",{"_index":5056,"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":20848,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.interface.ts:2",{"_index":20849,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.service",{"_index":9396,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["version.service.ts",{"_index":9549,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:16",{"_index":9560,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:32",{"_index":9574,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:39",{"_index":9563,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:52",{"_index":9572,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:60",{"_index":9566,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:68",{"_index":9570,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:7",{"_index":9577,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:76",{"_index":9568,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["versionkey",{"_index":9967,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["versionnumber",{"_index":5279,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["versions",{"_index":22382,"title":{},"body":{"license.html":{}}}],["vertrauensstufe",{"_index":18045,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["very",{"_index":11769,"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":6220,"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":8083,"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":6604,"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":22098,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconference.options.everybodyjoinsasmoderator",{"_index":22019,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference.options.moderatormustapprovejoinrequests",{"_index":22021,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference2",{"_index":21802,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconference:31",{"_index":21979,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:34",{"_index":21980,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:6",{"_index":21978,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconferenceapimodule",{"_index":18592,"title":{"modules/VideoConferenceApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules.html":{}}}],["videoconferencebaseresponse",{"_index":8084,"title":{"classes/VideoConferenceBaseResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencebaseresponse:10",{"_index":8091,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:12",{"_index":8089,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:8",{"_index":8092,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferenceconfiguration",{"_index":21792,"title":{"classes/VideoConferenceConfiguration.html":{}},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.bbb",{"_index":21798,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.videoconference",{"_index":22063,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["videoconferencecontroller",{"_index":21787,"title":{"controllers/VideoConferenceController.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencecreateparams",{"_index":21822,"title":{"classes/VideoConferenceCreateParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencecreateuc",{"_index":21783,"title":{"injectables/VideoConferenceCreateUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["videoconferencedeprecatedcontroller",{"_index":21929,"title":{"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedeprecateduc",{"_index":21942,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedo",{"_index":21916,"title":{"classes/VideoConferenceDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceenduc",{"_index":21784,"title":{"injectables/VideoConferenceEndUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["videoconferenceinfo",{"_index":21829,"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":21831,"title":{"classes/VideoConferenceInfoResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferenceinforesponse})@apiresponse({status",{"_index":21813,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferenceinfouc",{"_index":21785,"title":{"injectables/VideoConferenceInfoUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["videoconferencejoin",{"_index":21830,"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":22051,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse",{"_index":21832,"title":{"classes/VideoConferenceJoinResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse})@apiresponse({status",{"_index":21819,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencejoinuc",{"_index":21786,"title":{"injectables/VideoConferenceJoinUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["videoconferencemapper",{"_index":21826,"title":{"classes/VideoConferenceMapper.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemapper.tovideoconferenceinforesponse(dto",{"_index":21849,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencejoinresponse(dto",{"_index":21846,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferenceoptions(params",{"_index":21842,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencestateresponse(from.state",{"_index":22119,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemodule",{"_index":21782,"title":{"modules/VideoConferenceModule.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["videoconferenceoptions",{"_index":21751,"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":21920,"title":{"classes/VideoConferenceOptionsDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["videoconferenceoptionsresponse",{"_index":21983,"title":{"classes/VideoConferenceOptionsResponse.html":{}},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["videoconferenceoptionsresponse(videoconferenceinfo.options",{"_index":22050,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencerepo",{"_index":22057,"title":{"injectables/VideoConferenceRepo.html":{}},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceresponsedeprecatedmapper",{"_index":21940,"title":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptobaseresponse(dto",{"_index":21964,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptoinforesponse(dto",{"_index":21961,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptojoinresponse(dto",{"_index":21959,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsemapper",{"_index":22112,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferences",{"_index":21765,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["videoconferencescope",{"_index":18555,"title":{},"body":{"classes/ScopeRef.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope'})@isenum(videoconferencescope",{"_index":22124,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope.course",{"_index":22095,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescope.event",{"_index":22093,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescopeparams",{"_index":21805,"title":{"classes/VideoConferenceScopeParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferenceservice",{"_index":21878,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencesettings",{"_index":12619,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencestate",{"_index":21772,"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":21975,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.not_started",{"_index":21995,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.running",{"_index":21953,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse",{"_index":8090,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.finished",{"_index":22048,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.not_started",{"_index":22046,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.running",{"_index":22047,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferenceuc",{"_index":21946,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencingscopemapping",{"_index":22097,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencingscopemapping[entity.targetmodel",{"_index":22102,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videocount",{"_index":2115,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["view",{"_index":15285,"title":{},"body":{"injectables/NewsUc.html":{},"license.html":{}}}],["viewer",{"_index":2065,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["viewers",{"_index":6928,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["violates",{"_index":22692,"title":{},"body":{"license.html":{}}}],["violation",{"_index":22743,"title":{},"body":{"license.html":{}}}],["virtuals",{"_index":22242,"title":{},"body":{"dependencies.html":{}}}],["virus",{"_index":10231,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["virus_detected",{"_index":1136,"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":1137,"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":1168,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["viruses.join",{"_index":1172,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["visibilities",{"_index":22992,"title":{},"body":{"todo.html":{}}}],["visibility",{"_index":4081,"title":{},"body":{"classes/CardResponse.html":{},"classes/PatchVisibilityParams.html":{},"injectables/RoomsUc.html":{}}}],["visibility.params.ts",{"_index":16632,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibility.params.ts:12",{"_index":16633,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibilitysettings",{"_index":4072,"title":{},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{}}}],["visibilitysettingsresponse",{"_index":4079,"title":{"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["visible",{"_index":6927,"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":8614,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visibletools.filter",{"_index":8618,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visitcard",{"_index":2782,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcard(card",{"_index":2791,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcardasync",{"_index":2833,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(card",{"_index":2826,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(original",{"_index":17211,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildren",{"_index":17326,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildren(parent",{"_index":17337,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildrenasync",{"_index":17283,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenasync(domainobject",{"_index":17288,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenof",{"_index":17201,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildrenof(boarddo",{"_index":17213,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumn",{"_index":2783,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumn(column",{"_index":2794,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnasync",{"_index":2834,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(column",{"_index":2825,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(original",{"_index":17215,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumnboard",{"_index":2784,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboard(columnboard",{"_index":2796,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboardasync",{"_index":2835,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(columnboard",{"_index":2824,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(original",{"_index":17217,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitexternaltoolelement",{"_index":2785,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelement(externaltoolelement",{"_index":2798,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelementasync",{"_index":2836,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(externaltoolelement",{"_index":2832,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(original",{"_index":17219,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitfileelement",{"_index":2786,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelement(fileelement",{"_index":2801,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelementasync",{"_index":2837,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(fileelement",{"_index":2827,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(original",{"_index":17221,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitlinkelement",{"_index":2787,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelement(linkelement",{"_index":2804,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelementasync",{"_index":2838,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(linkelement",{"_index":2828,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(original",{"_index":17223,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitor",{"_index":2737,"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":3271,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["visitor.ts",{"_index":2781,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:12",{"_index":2797,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:13",{"_index":2795,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:14",{"_index":2793,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:15",{"_index":2803,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:16",{"_index":2806,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:17",{"_index":2809,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:18",{"_index":2812,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:19",{"_index":2814,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:20",{"_index":2800,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:24",{"_index":2844,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:25",{"_index":2843,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:26",{"_index":2842,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:27",{"_index":2846,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:28",{"_index":2847,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:29",{"_index":2848,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:30",{"_index":2849,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:31",{"_index":2850,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:32",{"_index":2845,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.visitcard(this",{"_index":3981,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcardasync(this",{"_index":3982,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcolumn(this",{"_index":4745,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnasync(this",{"_index":4746,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnboard(this",{"_index":4762,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitcolumnboardasync(this",{"_index":4763,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitexternaltoolelement(this",{"_index":8725,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitexternaltoolelementasync(this",{"_index":8726,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitfileelement(this",{"_index":9927,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitfileelementasync(this",{"_index":9928,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitlinkelement(this",{"_index":14353,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitlinkelementasync(this",{"_index":14354,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitrichtextelement(this",{"_index":17552,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitrichtextelementasync(this",{"_index":17553,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitsubmissioncontainerelement(this",{"_index":19056,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissioncontainerelementasync(this",{"_index":19057,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissionitem(this",{"_index":19138,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitor.visitsubmissionitemasync(this",{"_index":19139,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitrichtextelement",{"_index":2788,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelement(richtextelement",{"_index":2807,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelementasync",{"_index":2839,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitrichtextelementasync(original",{"_index":17225,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitrichtextelementasync(richtextelement",{"_index":2829,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelement",{"_index":2789,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelement(submissioncontainerelement",{"_index":2810,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelementasync",{"_index":2840,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelementasync(original",{"_index":17227,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissioncontainerelementasync(submissioncontainerelement",{"_index":2830,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitem",{"_index":2790,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submissionitem",{"_index":2813,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitemasync",{"_index":2841,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(original",{"_index":17229,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissionitemasync(submission",{"_index":5707,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submissionitem",{"_index":2831,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visual",{"_index":22327,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vo",{"_index":12027,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["voicebridge",{"_index":2051,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["voiceparticipantcount",{"_index":2116,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["void",{"_index":519,"title":{},"body":{"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":22597,"title":{},"body":{"license.html":{}}}],["von",{"_index":18034,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["vorname",{"_index":18037,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["vs",{"_index":13156,"title":{},"body":{"interfaces/JwtConstants.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["vscode",{"_index":22297,"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":23574,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/lauch",{"_index":23016,"title":{},"body":{"todo.html":{}}}],["vscode/launch.default.json",{"_index":23134,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/settings.default.json",{"_index":23572,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["wait",{"_index":1580,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["waiting",{"_index":22025,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["waive",{"_index":22556,"title":{},"body":{"license.html":{}}}],["waiver",{"_index":22924,"title":{},"body":{"license.html":{}}}],["want",{"_index":4693,"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":12092,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["warn(message",{"_index":12103,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["warning",{"_index":14430,"title":{},"body":{"injectables/Logger.html":{}}}],["warning(loggable",{"_index":14439,"title":{},"body":{"injectables/Logger.html":{}}}],["warranties",{"_index":22478,"title":{},"body":{"license.html":{}}}],["warranty",{"_index":22477,"title":{},"body":{"license.html":{}}}],["watch",{"_index":22999,"title":{},"body":{"todo.html":{}}}],["way",{"_index":3609,"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":22607,"title":{},"body":{"license.html":{}}}],["web",{"_index":5342,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["weblink",{"_index":5370,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["weights",{"_index":11816,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["weird",{"_index":6951,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["welcome",{"_index":1965,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{}}}],["well",{"_index":22462,"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":13539,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["wenn",{"_index":22062,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["went",{"_index":12631,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["werden",{"_index":4869,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wether",{"_index":23840,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["whatever",{"_index":18565,"title":{},"body":{"classes/ServerConsole.html":{},"license.html":{}}}],["whereas",{"_index":23233,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wherelastloginsystemchangeisbetween",{"_index":21003,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["wherelastloginsystemchangeisbetween(startdate",{"_index":21661,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan",{"_index":21656,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(date",{"_index":21663,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(query.lastloginsystemchangesmallerthan",{"_index":21002,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["wherever",{"_index":13911,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["whether",{"_index":7127,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["whitelist",{"_index":10958,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["whitelisted",{"_index":13191,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["whitespace",{"_index":15029,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["whole",{"_index":15356,"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":19149,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["whose",{"_index":22647,"title":{},"body":{"license.html":{}}}],["wichtige",{"_index":4861,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["widely",{"_index":22490,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["widespread",{"_index":22410,"title":{},"body":{"license.html":{}}}],["width",{"_index":6315,"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":5368,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["wildfly",{"_index":23659,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["willkommen",{"_index":4848,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["window",{"_index":22498,"title":{},"body":{"license.html":{},"todo.html":{}}}],["windowfeatures",{"_index":5367,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["windows",{"_index":22975,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["winston",{"_index":8422,"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":14454,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.combine",{"_index":14461,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.ms",{"_index":14467,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.timestamp",{"_index":14462,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.transports.console",{"_index":14458,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston_module_provider",{"_index":8421,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonlogger",{"_index":8411,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonmodule",{"_index":14450,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winstonmodule.forrootasync",{"_index":14452,"title":{},"body":{"modules/LoggerModule.html":{}}}],["wip",{"_index":22338,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["wipo",{"_index":22548,"title":{},"body":{"license.html":{}}}],["wir",{"_index":4856,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wired",{"_index":23562,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wish",{"_index":22389,"title":{},"body":{"license.html":{}}}],["withbase64logo",{"_index":7385,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withbasicconfig",{"_index":8783,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withcredentials",{"_index":11460,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["withcustomparameters",{"_index":8803,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["withcustomparameters(number",{"_index":7382,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata",{"_index":15656,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata(oauth2params",{"_index":7346,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withguestpolicy",{"_index":2003,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withguestpolicy(guestpolicy",{"_index":2009,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withid",{"_index":18763,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["withid(id",{"_index":18764,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["within",{"_index":3852,"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":7914,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["withldapconfig",{"_index":19425,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withldapconfig(otherparams",{"_index":19428,"title":{},"body":{"classes/SystemFactory.html":{}}}],["withlogouturl",{"_index":2004,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(logouturl",{"_index":2011,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(options.logouturl",{"_index":21909,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["withlti11config",{"_index":8784,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withlti11config(customparam",{"_index":7380,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withmuteonstart",{"_index":2005,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withmuteonstart(value",{"_index":2013,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withname",{"_index":8785,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withname(name",{"_index":8790,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withoauth2config",{"_index":8786,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withoauth2config(clientid",{"_index":8792,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withoauth2config(customparam",{"_index":7378,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withoauthclientid",{"_index":14691,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthclientid(oauthclientid",{"_index":14693,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthconfig",{"_index":19426,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withoidcconfig",{"_index":19427,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["without",{"_index":759,"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":22970,"title":{},"body":{"todo.html":{}}}],["withoutcontext",{"_index":4796,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["withoutdatedsince",{"_index":21657,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(date",{"_index":21665,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(query.outdatedsince",{"_index":21006,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["withrole",{"_index":2078,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/UserFactory.html":{}}}],["withrole(role",{"_index":21090,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrole(value",{"_index":2082,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withroleanduserid",{"_index":20126,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withroleanduserid(role",{"_index":20128,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withrolebyname",{"_index":21086,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrolebyname(name",{"_index":21092,"title":{},"body":{"classes/UserFactory.html":{}}}],["withroles",{"_index":21053,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withroles(roles",{"_index":21054,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withschoolexternaltoolref",{"_index":5864,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolexternaltoolref(schooltoolid",{"_index":5865,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolid",{"_index":18174,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withschoolid(schoolid",{"_index":18175,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withsystemid",{"_index":450,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withsystemid(id",{"_index":465,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withteamuser",{"_index":20127,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withteamuser(teamuser",{"_index":20130,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withuser",{"_index":451,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuser(user",{"_index":467,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuserid",{"_index":2079,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/TeamUserFactory.html":{}}}],["withuserid(currentuserid",{"_index":22017,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["withuserid(userid",{"_index":20236,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["withuserid(value",{"_index":2084,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withuserids",{"_index":4304,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withuserids(userids",{"_index":4305,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withwelcome",{"_index":2006,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withwelcome(welcome",{"_index":2015,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["wont_check",{"_index":10114,"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":23376,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["words",{"_index":11820,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["work",{"_index":763,"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":22505,"title":{},"body":{"license.html":{}}}],["worker",{"_index":8219,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["worker.manufacture",{"_index":8220,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["working",{"_index":11629,"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":23402,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["works",{"_index":10769,"title":{},"body":{"classes/FilterNewsParams.html":{},"injectables/NewsRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["worldwide",{"_index":22811,"title":{},"body":{"license.html":{}}}],["wouldn't",{"_index":1664,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["wrap",{"_index":2617,"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":7638,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrap(modelentity).init",{"_index":7747,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["wrap(props.course).toreference",{"_index":2639,"title":{},"body":{"entities/Board.html":{}}}],["wrap(props.school).toreference",{"_index":12030,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.system).toreference",{"_index":12031,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.user).toreference",{"_index":7645,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrapped",{"_index":23411,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wrappedreference",{"_index":2609,"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":5277,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["writable",{"_index":8110,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["write",{"_index":1616,"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":1621,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["write/read",{"_index":23740,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writecourseids",{"_index":20090,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses",{"_index":20087,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.includes(c",{"_index":20089,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.map((c",{"_index":20091,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writefile",{"_index":10368,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writefile(filepath",{"_index":10403,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writelessons",{"_index":20096,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writen",{"_index":23821,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writer.module",{"_index":18572,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["writer.module.ts",{"_index":5601,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["writer.service",{"_index":5602,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["writer.service.ts",{"_index":5603,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer.service.ts:5",{"_index":5605,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer/console",{"_index":5600,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["writing",{"_index":22889,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["written",{"_index":22614,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wrong",{"_index":7843,"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":23808,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["www",{"_index":13558,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["wünsche",{"_index":4904,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["x",{"_index":1076,"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":6201,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2js",{"_index":5169,"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":6202,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2json(xml",{"_index":6204,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object",{"_index":6198,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object(xml",{"_index":6199,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xmlbuilder",{"_index":5149,"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":5224,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xmlns:blti",{"_index":5225,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:ext",{"_index":5286,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:lticm",{"_index":5226,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:lticp",{"_index":5227,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:mnf",{"_index":5282,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:res",{"_index":5284,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:xsi",{"_index":5228,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xpos",{"_index":7620,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["xposition",{"_index":7653,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["xsd/imsbasiclti_v1p0",{"_index":5258,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticc_v1p0",{"_index":5257,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticm_v1p0",{"_index":5259,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticp_v1p0",{"_index":5260,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd",{"_index":5262,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticc_v1p0.xsd",{"_index":5261,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticm_v1p0.xsd",{"_index":5263,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticp_v1p0.xsd",{"_index":5264,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsi:schemalocation",{"_index":5231,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xxxx",{"_index":23588,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["y",{"_index":7442,"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":23185,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yagni.more",{"_index":23392,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["year",{"_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":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["year.service.ts",{"_index":18529,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:10",{"_index":18534,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:16",{"_index":18533,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:6",{"_index":18532,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["years",{"_index":12236,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UnknownQueryTypeLoggableException.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/BaseUc.html":{},"classes/BoardComposite.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardUc.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":10202,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["yet.'})@apiresponse({status",{"_index":21934,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["your.config.ts",{"_index":23850,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.module.ts",{"_index":23854,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.service.ts",{"_index":23852,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your_s3_uniq_connection_token",{"_index":23851,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourloggable",{"_index":23344,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourloggable(userid",{"_index":23349,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourmodule",{"_index":23855,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourself",{"_index":22825,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yourservice",{"_index":23380,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["youruc",{"_index":23345,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["ypos",{"_index":7621,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["yposition",{"_index":7654,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["yyyy",{"_index":14463,"title":{},"body":{"modules/LoggerModule.html":{}}}],["z]|[0",{"_index":10866,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["za",{"_index":10865,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["zip",{"_index":5168,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["zipbuilder",{"_index":5150,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["zoom",{"_index":218,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":4876,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zum",{"_index":4879,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zusammengefasst",{"_index":4885,"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"},"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_imports\n\n\n\ncluster_AccountApiModule_providers\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_providers\n\n\n\ncluster_AuthenticationModule_exports\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_providers\n\n\n\ncluster_AuthorizationModule_exports\n\n\n\ncluster_AuthorizationModule_imports\n\n\n\n\nFeathersModule\n\nFeathersModule\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nAuthorizationModule -->\n\nFeathersModule->AuthorizationModule\n\n\n\n\n\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_imports\n\n\n\ncluster_AuthorizationReferenceModule_providers\n\n\n\ncluster_AuthorizationReferenceModule_exports\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"},"injectables/AutoContextIdStrategy.html":{"url":"injectables/AutoContextIdStrategy.html","title":"injectable - AutoContextIdStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoContextIdStrategy\n\n\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/auto-parameter-strategy/auto-context-id.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 getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \ngetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-id.strategy.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 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 : string | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoContextIdStrategy implements AutoParameterStrategy {\n\tgetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool): string | undefined {\n\t\treturn contextExternalTool.contextRef.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/AutoContextNameStrategy.html":{"url":"injectables/AutoContextNameStrategy.html","title":"injectable - AutoContextNameStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoContextNameStrategy\n\n\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/auto-parameter-strategy/auto-context-name.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 getBoardValue\n \n \n Private\n Async\n getCourseValue\n \n \n Async\n getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseService: CourseService, contentElementService: ContentElementService, columnBoardService: ColumnBoardService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.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 courseService\n \n \n CourseService\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 columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \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 getBoardValue\n \n \n \n \n \n \n \n getBoardValue(elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.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 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 getCourseValue\n \n \n \n \n \n \n \n getCourseValue(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.strategy.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 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 getValue\n \n \n \n \n \n \n \n getValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.strategy.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 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 { ColumnBoardService, ContentElementService } from '@modules/board';\nimport { CourseService } from '@modules/learnroom';\nimport { Injectable } from '@nestjs/common';\nimport { AnyContentElementDo, BoardExternalReferenceType, ColumnBoard, Course, EntityId } from '@shared/domain';\nimport { CustomParameterType, ToolContextType } from '../../../common/enum';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { ParameterTypeNotImplementedLoggableException } from '../../error';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoContextNameStrategy implements AutoParameterStrategy {\n\tconstructor(\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly contentElementService: ContentElementService,\n\t\tprivate readonly columnBoardService: ColumnBoardService\n\t) {}\n\n\tasync getValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tswitch (contextExternalTool.contextRef.type) {\n\t\t\tcase ToolContextType.COURSE: {\n\t\t\t\tconst courseValue: string = await this.getCourseValue(contextExternalTool.contextRef.id);\n\n\t\t\t\treturn courseValue;\n\t\t\t}\n\t\t\tcase ToolContextType.BOARD_ELEMENT: {\n\t\t\t\tconst boardValue: string | undefined = await this.getBoardValue(contextExternalTool.contextRef.id);\n\n\t\t\t\treturn boardValue;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(\n\t\t\t\t\t`${CustomParameterType.AUTO_CONTEXTNAME}/${contextExternalTool.contextRef.type as string}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getCourseValue(courseId: EntityId): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\n\t\treturn course.name;\n\t}\n\n\tprivate async getBoardValue(elementId: EntityId): Promise {\n\t\tconst element: AnyContentElementDo = await this.contentElementService.findById(elementId);\n\n\t\tconst board: ColumnBoard = await this.columnBoardService.findByDescendant(element);\n\n\t\tif (board.context.type === BoardExternalReferenceType.Course) {\n\t\t\tconst courseName: string = await this.getCourseValue(board.context.id);\n\n\t\t\treturn courseName;\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AutoParameterStrategy.html":{"url":"interfaces/AutoParameterStrategy.html","title":"interface - AutoParameterStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AutoParameterStrategy\n\n\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/auto-parameter-strategy/auto-parameter.strategy.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \ngetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-parameter.strategy.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 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 : string | Promise | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\n\nexport interface AutoParameterStrategy {\n\tgetValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): string | Promise | undefined;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AutoSchoolIdStrategy.html":{"url":"injectables/AutoSchoolIdStrategy.html","title":"injectable - AutoSchoolIdStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoSchoolIdStrategy\n\n\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/auto-parameter-strategy/auto-school-id.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 getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \ngetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-school-id.strategy.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 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 : string | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoSchoolIdStrategy implements AutoParameterStrategy {\n\tgetValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tcontextExternalTool: ContextExternalTool\n\t): string | undefined {\n\t\treturn schoolExternalTool.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AutoSchoolNumberStrategy.html":{"url":"injectables/AutoSchoolNumberStrategy.html","title":"injectable - AutoSchoolNumberStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoSchoolNumberStrategy\n\n\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/auto-parameter-strategy/auto-school-number.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-school-number.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 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 getValue\n \n \n \n \n \n \n \n getValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-school-number.strategy.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 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 { LegacySchoolService } from '@modules/legacy-school';\nimport { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo } from '@shared/domain';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoSchoolNumberStrategy implements AutoParameterStrategy {\n\tconstructor(private readonly schoolService: LegacySchoolService) {}\n\n\tasync getValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolExternalTool.schoolId);\n\n\t\treturn school.officialSchoolNumber;\n\t}\n}\n\n \n\n\n\n\n\n\n\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/BaseUc.html":{"url":"classes/BaseUc.html","title":"class - BaseUc","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseUc\n\n\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/base.uc.ts\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 Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/base.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 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 \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/base.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 anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/base.uc.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\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/base.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 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 \n\n\n \n import { AnyBoardDo, EntityId, SubmissionItem, UserRoleEnum } from '@shared/domain';\nimport { ForbiddenException } from '@nestjs/common';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { BoardDoAuthorizableService } from '../service';\n\nexport abstract class BaseUc {\n\tconstructor(\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService\n\t) {}\n\n\tprotected async checkPermission(\n\t\tuserId: EntityId,\n\t\tanyBoardDo: 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(anyBoardDo);\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\tprotected 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\tprotected async checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem) {\n\t\tif (submissionItem.userId !== userId) {\n\t\t\tthrow new ForbiddenException();\n\t\t}\n\t\tawait this.checkPermission(userId, submissionItem, Action.read, UserRoleEnum.STUDENT);\n\t}\n}\n\n \n\n\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/launch-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 Properties\n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \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:155\n\n \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:105\n\n \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:128\n\n \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:139\n\n \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:79\n\n \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: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 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:64\n\n \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:218\n\n \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:181\n\n \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 Properties\n \n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \n \n \n \n \n Type : Map\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 \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\nColumnUc\n\nColumnUc\n\nBoardApiModule -->\n\nColumnUc->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 ColumnUc\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, ColumnUc } 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, ColumnUc, 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\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 { BoardExternalReferenceType } from '@shared/domain/domainobject/board/types';\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:189\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:175\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n 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: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 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: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 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: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 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.ensureBoardNodeType(this.getChildren(boardNode), [\n\t\t\tBoardNodeType.FILE_ELEMENT,\n\t\t\tBoardNodeType.RICH_TEXT_ELEMENT,\n\t\t]);\n\t\tconst elements = this.buildChildren(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: elements,\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_providers\n\n\n\ncluster_BoardModule_imports\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\n\n\nBoardModule\n\nBoardModule\n\nBoardModule -->\n\nConsoleWriterModule->BoardModule\n\n\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nBoardModule -->\n\nContextExternalToolModule->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\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 RecursiveDeleteVisitor\n \n \n SchoolSpecificFileCopyServiceFactory\n \n \n SubmissionItemService\n \n \n \n \n Imports\n \n \n ConsoleWriterModule\n \n \n ContextExternalToolModule\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 { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { ContextExternalToolModule } from '@modules/tool/context-external-tool';\nimport { UserModule } from '@modules/user';\nimport { 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 { BoardDoRepo, BoardNodeRepo, RecursiveDeleteVisitor } from './repo';\nimport {\n\tBoardDoAuthorizableService,\n\tBoardDoService,\n\tCardService,\n\tColumnBoardService,\n\tColumnService,\n\tContentElementService,\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, ContextExternalToolModule],\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],\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 \n \n Async\n createElement\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 \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(urlParams: SubmissionItemUrlParams, bodyParams: CreateContentElementBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new element in a submission item.'})@ApiExtraModels(RichTextElementResponse, FileElementResponse)@ApiResponse({status: 201, schema: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Post(':submissionItemId/elements')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board-submission.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 SubmissionItemUrlParams\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 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: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 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: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 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 {\n\tBody,\n\tController,\n\tForbiddenException,\n\tGet,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\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 { 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 {\n\tCreateContentElementBodyParams,\n\tFileElementResponse,\n\tRichTextElementResponse,\n\tSubmissionContainerUrlParams,\n\tSubmissionItemUrlParams,\n\tUpdateSubmissionItemBodyParams,\n} from './dto';\nimport { ContentElementResponseFactory, 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\t@ApiOperation({ summary: 'Create a new element in a submission item.' })\n\t@ApiExtraModels(RichTextElementResponse, FileElementResponse)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [{ $ref: getSchemaPath(RichTextElementResponse) }, { $ref: getSchemaPath(FileElementResponse) }],\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(':submissionItemId/elements')\n\tasync createElement(\n\t\t@Param() urlParams: SubmissionItemUrlParams,\n\t\t@Body() bodyParams: CreateContentElementBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst { type } = bodyParams;\n\t\tconst element = await this.submissionItemUc.createElement(currentUser.userId, urlParams.submissionItemId, type);\n\t\tconst response = ContentElementResponseFactory.mapSubmissionContentToResponse(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/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"},"injectables/BoardUc.html":{"url":"injectables/BoardUc.html","title":"injectable - BoardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/board.uc.ts\n \n\n\n\n \n Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createColumn\n \n \n Async\n deleteBoard\n \n \n Async\n findBoard\n \n \n Async\n findBoardContext\n \n \n Async\n moveColumn\n \n \n Async\n updateBoardTitle\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, cardService: CardService, columnBoardService: ColumnBoardService, columnService: ColumnService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n columnService\n \n \n ColumnService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n createColumn(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n 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 deleteBoard\n \n \n \n \n \n \n \n deleteBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBoard\n \n \n \n \n \n \n \n findBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 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 findBoardContext\n \n \n \n \n \n \n \n findBoardContext(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n moveColumn(userId: EntityId, columnId: EntityId, targetBoardId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetBoardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n \n \n \n updateBoardTitle(userId: EntityId, boardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { BoardExternalReference, Column, ColumnBoard, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService } from '@modules/authorization/domain';\nimport { Action } from '@modules/authorization';\nimport { CardService, ColumnBoardService, ColumnService } from '../service';\nimport { BoardDoAuthorizableService } from '../service/board-do-authorizable.service';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class BoardUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly columnBoardService: ColumnBoardService,\n\t\tprivate readonly columnService: ColumnService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tsuper(authorizationService, boardDoAuthorizableService);\n\t\tthis.logger.setContext(BoardUc.name);\n\t}\n\n\tasync findBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board;\n\t}\n\n\tasync findBoardContext(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoardContext', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board.context;\n\t}\n\n\tasync deleteBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.delete(board);\n\t}\n\n\tasync updateBoardTitle(userId: EntityId, boardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateBoardTitle', userId, boardId, title });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.updateTitle(board, title);\n\t}\n\n\tasync createColumn(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'createColumn', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tconst column = await this.columnService.create(board);\n\t\treturn column;\n\t}\n\n\tasync moveColumn(\n\t\tuserId: EntityId,\n\t\tcolumnId: EntityId,\n\t\ttargetBoardId: EntityId,\n\t\ttargetPosition: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'moveColumn', userId, columnId, targetBoardId, targetPosition });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tconst targetBoard = await this.columnBoardService.findById(targetBoardId);\n\n\t\tawait this.checkPermission(userId, column, Action.write);\n\t\tawait this.checkPermission(userId, targetBoard, Action.write);\n\n\t\tawait this.columnService.move(column, targetBoard, targetPosition);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_exports\n\n\n\ncluster_CalendarModule_providers\n\n\n\n\nCalendarService \n\nCalendarService \n\n\n\nCalendarModule\n\nCalendarModule\n\nCalendarService -->\n\nCalendarModule->CalendarService \n\n\n\n\n\nCalendarMapper\n\nCalendarMapper\n\nCalendarModule -->\n\nCalendarMapper->CalendarModule\n\n\n\n\n\nCalendarService\n\nCalendarService\n\nCalendarModule -->\n\nCalendarService->CalendarModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/calendar/calendar.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CalendarMapper\n \n \n CalendarService\n \n \n \n \n Exports\n \n \n CalendarService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { HttpModule } from '@nestjs/axios';\nimport { CalendarService } from '@shared/infra/calendar/service/calendar.service';\nimport { CalendarMapper } from '@shared/infra/calendar/mapper/calendar.mapper';\n\n@Module({\n\timports: [HttpModule],\n\tproviders: [CalendarMapper, CalendarService],\n\texports: [CalendarService],\n})\nexport class CalendarModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CalendarService.html":{"url":"injectables/CalendarService.html","title":"injectable - CalendarService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CalendarService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/service/calendar.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n baseURL\n \n \n Private\n Readonly\n timeoutMs\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findEvent\n \n \n Private\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService, calendarMapper: CalendarMapper)\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n calendarMapper\n \n \n CalendarMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findEvent\n \n \n \n \n \n \n \n findEvent(userId: EntityId, eventId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n eventId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n 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 { CardUc, ColumnUc } 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 columnUc: ColumnUc, 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.columnUc.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.cardUc.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.cardUc.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.cardUc.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 Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createElement\n \n \n Async\n deleteCard\n \n \n Private\n Async\n filterAllowed\n \n \n Async\n findCards\n \n \n Async\n moveElement\n \n \n Async\n updateCardHeight\n \n \n Async\n updateCardTitle\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n 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 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: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 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 deleteCard\n \n \n \n \n \n \n \n deleteCard(userId: EntityId, cardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/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 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 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:96\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: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 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: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 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 Async\n updateCardHeight\n \n \n \n \n \n \n \n updateCardHeight(userId: EntityId, cardId: EntityId, height: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.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 cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n height\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n \n \n \n updateCardTitle(userId: EntityId, cardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.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 cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { forwardRef, Inject, 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';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class CardUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected 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\tsuper(authorizationService, boardDoAuthorizableService);\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\tasync updateCardHeight(userId: EntityId, cardId: EntityId, height: number): Promise {\n\t\tthis.logger.debug({ action: 'updateCardHeight', userId, cardId, height });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateHeight(card, height);\n\t}\n\n\tasync updateCardTitle(userId: EntityId, cardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateCardTitle', userId, cardId, title });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateTitle(card, title);\n\t}\n\n\tasync deleteCard(userId: EntityId, cardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteCard', userId, cardId });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.delete(card);\n\t}\n\n\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 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 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/ClassFilterParams.html":{"url":"classes/ClassFilterParams.html","title":"class - ClassFilterParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassFilterParams\n\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-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 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 Optional\n type\n \n \n \n \n \n \n Type : SchoolYearQueryType\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SchoolYearQueryType)@ApiPropertyOptional({enum: SchoolYearQueryType, enumName: 'SchoolYearQueryType'})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/request/class-filter-params.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';\nimport { IsEnum, IsOptional } from 'class-validator';\nimport { SchoolYearQueryType } from '../interface';\n\nexport class ClassFilterParams {\n\t@IsOptional()\n\t@IsEnum(SchoolYearQueryType)\n\t@ApiPropertyOptional({ enum: SchoolYearQueryType, enumName: 'SchoolYearQueryType' })\n\ttype?: SchoolYearQueryType;\n}\n\n \n\n\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 studentCount\n \n \n teacherNames\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:18\n \n \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 studentCount\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n teacherNames\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\tteacherNames: string[];\n\n\tschoolYear?: string;\n\n\tisUpgradable?: boolean;\n\n\tstudentCount: number;\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.teacherNames = props.teacherNames;\n\t\tthis.schoolYear = props.schoolYear;\n\t\tthis.isUpgradable = props.isUpgradable;\n\t\tthis.studentCount = props.studentCount;\n\t}\n}\n\n \n\n\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 studentCount\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: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 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 studentCount\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/group/controller/dto/response/class-info.response.ts:27\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\t@ApiProperty()\n\tstudentCount: number;\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\tthis.studentCount = props.studentCount;\n\t}\n}\n\n \n\n\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 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 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\tstatic 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 findAllByUserId\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:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\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/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 findAllByUserId(userId: EntityId): Promise {\n\t\tconst classes: Class[] = await this.classesRepo.findAllByUserId(userId);\n\n\t\treturn classes;\n\t}\n\n\t// FIXME There is no usage of this method\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:10\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';\nimport { ClassSortBy } from '../interface';\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: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 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: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 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: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 : 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: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 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 { NotFoundLoggableException } from '@shared/common/loggable-exception';\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, {\n\t\t\t$or: [{ userIds: new ObjectId(userId) }, { teacherIds: new ObjectId(userId) }],\n\t\t});\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 classMap: Map = new Map(\n\t\t\tclasses.map((clazz: Class): [string, Class] => [clazz.id, clazz])\n\t\t);\n\n\t\tconst existingEntities: ClassEntity[] = await this.em.find(ClassEntity, {\n\t\t\tid: { $in: Array.from(classMap.keys()) },\n\t\t});\n\n\t\tif (existingEntities.length !existingEntities.find((entity) => entity.id === classId)\n\t\t\t);\n\n\t\t\tthrow new NotFoundLoggableException(Class.name, 'id', missingEntityIds.toString());\n\t\t}\n\n\t\texistingEntities.forEach((entity) => {\n\t\t\tconst updatedDomainObject: Class | undefined = classMap.get(entity.id);\n\n\t\t\tconst updatedEntity: ClassEntity = ClassMapper.mapToEntity(updatedDomainObject as Class);\n\n\t\t\tthis.em.assign(entity, updatedEntity);\n\t\t});\n\n\t\tawait this.em.persistAndFlush(existingEntities);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_providers\n\n\n\ncluster_CollaborativeStorageAdapterModule_imports\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_providers\n\n\n\ncluster_CollaborativeStorageModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule -->\n\nAuthorizationModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageAdapterModule->CollaborativeStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCollaborativeStorageModule -->\n\nLoggerModule->CollaborativeStorageModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nCollaborativeStorageModule -->\n\nRoleModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc \n\nCollaborativeStorageUc \n\nCollaborativeStorageUc -->\n\nCollaborativeStorageModule->CollaborativeStorageUc \n\n\n\n\n\nCollaborativeStorageService\n\nCollaborativeStorageService\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageService->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc\n\nCollaborativeStorageUc\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageUc->CollaborativeStorageModule\n\n\n\n\n\nTeamMapper\n\nTeamMapper\n\nCollaborativeStorageModule -->\n\nTeamMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamPermissionsMapper\n\nTeamPermissionsMapper\n\nCollaborativeStorageModule -->\n\nTeamPermissionsMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nCollaborativeStorageModule -->\n\nTeamsRepo->CollaborativeStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CollaborativeStorageService\n \n \n CollaborativeStorageUc\n \n \n TeamMapper\n \n \n TeamPermissionsMapper\n \n \n TeamsRepo\n \n \n \n \n Controllers\n \n \n CollaborativeStorageController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CollaborativeStorageAdapterModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n \n \n Exports\n \n \n CollaborativeStorageUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CollaborativeStorageAdapterModule } from '@shared/infra/collaborative-storage/collaborative-storage-adapter.module';\nimport { TeamsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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: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 { ColumnBoard, ColumnBoardProps } from '@shared/domain';\nimport { BoardExternalReferenceType } from '@shared/domain/domainobject/board/types';\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:26\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:23\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport {\n\tAnyBoardDo,\n\tBoardExternalReference,\n\tBoardExternalReferenceType,\n} from '@shared/domain/domainobject/board/types';\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 {\n\tAnyBoardDo,\n\tBoardExternalReference,\n\tBoardExternalReferenceType,\n} from '@shared/domain/domainobject/board/types';\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 findByDescendant\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:20\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:57\n \n \n\n\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: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 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: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 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: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 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 findByDescendant\n \n \n \n \n \n \n \n findByDescendant(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.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 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 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: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 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: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 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: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 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: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 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 { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport {\n\tAnyBoardDo,\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 findByDescendant(boardDo: AnyBoardDo): Promise {\n\t\tconst ancestorIds: EntityId[] = await this.boardDoRepo.getAncestorIds(boardDo);\n\t\tconst idHierarchy: EntityId[] = [...ancestorIds, boardDo.id];\n\t\tconst rootId: EntityId = idHierarchy[0];\n\t\tconst rootBoardDo: AnyBoardDo = await this.boardDoRepo.findById(rootId, 1);\n\n\t\tif (rootBoardDo instanceof ColumnBoard) {\n\t\t\treturn rootBoardDo;\n\t\t}\n\n\t\tthrow new NotFoundLoggableException(ColumnBoard.name, 'id', rootId);\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, ColumnUc } 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, private readonly columnUc: ColumnUc) {}\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.columnUc.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.columnUc.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.columnUc.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"},"injectables/ColumnUc.html":{"url":"injectables/ColumnUc.html","title":"injectable - ColumnUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnUc\n\n\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/column.uc.ts\n \n\n\n\n \n Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createCard\n \n \n Async\n deleteColumn\n \n \n Async\n moveCard\n \n \n Async\n updateColumnTitle\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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, columnService: ColumnService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/column.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n columnService\n \n \n ColumnService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.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 columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n deleteColumn(userId: EntityId, columnId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.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 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 moveCard\n \n \n \n \n \n \n \n moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.uc.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetColumnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n \n \n \n updateColumnTitle(userId: EntityId, columnId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.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 columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { Card, ContentElementType, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { CardService, ColumnService, BoardDoAuthorizableService } from '../service';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class ColumnUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly columnService: ColumnService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tsuper(authorizationService, boardDoAuthorizableService);\n\t\tthis.logger.setContext(ColumnUc.name);\n\t}\n\n\tasync deleteColumn(userId: EntityId, columnId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteColumn', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.delete(column);\n\t}\n\n\tasync updateColumnTitle(userId: EntityId, columnId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateColumnTitle', userId, columnId, title });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.updateTitle(column, title);\n\t}\n\n\tasync createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[]): Promise {\n\t\tthis.logger.debug({ action: 'createCard', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.read);\n\n\t\tconst card = await this.cardService.create(column, requiredEmptyElements);\n\n\t\treturn card;\n\t}\n\n\tasync moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number): Promise {\n\t\tthis.logger.debug({ action: 'moveCard', userId, cardId, targetColumnId, toPosition: targetPosition });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tconst targetColumn = await this.columnService.findById(targetColumnId);\n\n\t\tawait this.checkPermission(userId, card, Action.write);\n\t\tawait this.checkPermission(userId, targetColumn, Action.write);\n\n\t\tawait this.cardService.move(card, targetColumn, targetPosition);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_providers\n\n\n\ncluster_ConsoleWriterModule_exports\n\n\n\n\nConsoleWriterService \n\nConsoleWriterService \n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nConsoleWriterService -->\n\nConsoleWriterModule->ConsoleWriterService \n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nConsoleWriterModule -->\n\nConsoleWriterService->ConsoleWriterModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ConsoleWriterService\n \n \n \n \n Exports\n \n \n ConsoleWriterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConsoleWriterService } from './console-writer.service';\n\n@Module({\n\tproviders: [ConsoleWriterService],\n\texports: [ConsoleWriterService],\n})\nexport class ConsoleWriterModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ConsoleWriterService.html":{"url":"injectables/ConsoleWriterService.html","title":"injectable - ConsoleWriterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ConsoleWriterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n info\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n info\n \n \n \n \n \n \ninfo(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/console/console-writer/console-writer.service.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n 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 mapSubmissionContentToResponse\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:18\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapSubmissionContentToResponse\n \n \n \n \n \n \n \n mapSubmissionContentToResponse(element: RichTextElement | FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.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 element\n \n RichTextElement | FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : FileElementResponse | RichTextElementResponse\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(element: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.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 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, UnprocessableEntityException } from '@nestjs/common';\nimport { AnyBoardDo, FileElement, RichTextElement } from '@shared/domain';\nimport {\n\tAnyContentElementResponse,\n\tFileElementResponse,\n\tRichTextElementResponse,\n\tisFileElementResponse,\n\tisRichTextElementResponse,\n} 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\tstatic mapSubmissionContentToResponse(\n\t\telement: RichTextElement | FileElement\n\t): FileElementResponse | RichTextElementResponse {\n\t\tconst result = this.mapToResponse(element);\n\t\tif (!isFileElementResponse(result) && !isRichTextElementResponse(result)) {\n\t\t\tthrow new UnprocessableEntityException();\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/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 findParentOfId\n \n \n Async\n move\n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementFactory: ContentElementFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts: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(parent: Card | SubmissionItem, type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.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 parent\n \n Card | SubmissionItem\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: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 \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 findParentOfId\n \n \n \n \n \n \n \n findParentOfId(elementId: EntityId)\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 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: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 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: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 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\tAnyBoardDo,\n\tAnyContentElementDo,\n\tCard,\n\tContentElementFactory,\n\tContentElementType,\n\tEntityId,\n\tisAnyContentElement,\n\tSubmissionItem,\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';\n\n@Injectable()\nexport class ContentElementService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementFactory: ContentElementFactory\n\t) {}\n\n\tasync findById(elementId: EntityId): Promise {\n\t\tconst element = await this.boardDoRepo.findById(elementId);\n\n\t\tif (!isAnyContentElement(element)) {\n\t\t\tthrow new NotFoundException(`There is no '${element.constructor.name}' with this id`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync findParentOfId(elementId: EntityId): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(elementId);\n\t\tif (!parent) {\n\t\t\tthrow new NotFoundException('There is no node with this id');\n\t\t}\n\t\treturn parent;\n\t}\n\n\tasync create(parent: Card | SubmissionItem, 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);\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)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:28\n \n \n\n \n \n \n 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 \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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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:28\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';\n\n@Injectable()\nexport class ContentElementUpdateVisitor implements BoardCompositeVisitorAsync {\n\tprivate readonly content: AnyElementContentBody;\n\n\tconstructor(content: AnyElementContentBody) {\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\tlinkElement.url = new URL(this.content.url).toString();\n\t\t\tlinkElement.title = this.content.title ?? '';\n\t\t\tlinkElement.description = this.content.description ?? '';\n\t\t\tif (this.content.imageUrl) {\n\t\t\t\tconst isRelativeUrl = (url: string) => {\n\t\t\t\t\tconst fallbackHostname = 'https://www.fallback-url-if-url-is-relative.org';\n\t\t\t\t\tconst imageUrlObject = new URL(url, fallbackHostname);\n\t\t\t\t\treturn imageUrlObject.origin === fallbackHostname;\n\t\t\t\t};\n\n\t\t\t\tif (isRelativeUrl(this.content.imageUrl)) {\n\t\t\t\t\tlinkElement.imageUrl = this.content.imageUrl;\n\t\t\t\t}\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_imports\n\n\n\ncluster_ContextExternalToolModule_exports\n\n\n\ncluster_ContextExternalToolModule_providers\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nContextExternalToolModule -->\n\nCommonToolModule->ContextExternalToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nContextExternalToolModule -->\n\nExternalToolModule->ContextExternalToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nContextExternalToolModule -->\n\nLoggerModule->ContextExternalToolModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nContextExternalToolModule -->\n\nSchoolExternalToolModule->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolAuthorizableService \n\nContextExternalToolAuthorizableService \n\nContextExternalToolAuthorizableService -->\n\nContextExternalToolModule->ContextExternalToolAuthorizableService \n\n\n\n\n\nContextExternalToolService \n\nContextExternalToolService \n\nContextExternalToolService -->\n\nContextExternalToolModule->ContextExternalToolService \n\n\n\n\n\nContextExternalToolValidationService \n\nContextExternalToolValidationService \n\nContextExternalToolValidationService -->\n\nContextExternalToolModule->ContextExternalToolValidationService \n\n\n\n\n\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_imports\n\n\n\ncluster_CoreModule_exports\n\n\n\n\nErrorModule\n\nErrorModule\n\n\n\nCoreModule\n\nCoreModule\n\nCoreModule -->\n\nErrorModule->CoreModule\n\n\n\n\n\nInterceptorModule\n\nInterceptorModule\n\nCoreModule -->\n\nInterceptorModule->CoreModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCoreModule -->\n\nLoggerModule->CoreModule\n\n\n\n\n\nValidationModule\n\nValidationModule\n\nCoreModule -->\n\nValidationModule->CoreModule\n\n\n\n\n\nLoggerModule \n\nLoggerModule \n\nLoggerModule -->\n\nCoreModule->LoggerModule \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/core.module.ts\n \n\n\n\n \n Description\n \n \n The core module configures the cross-functional application behaviour by customizing error handling providing and logging.\nOverrides/Configures global APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER\n\n \n\n\n \n \n \n Imports\n \n \n ErrorModule\n \n \n InterceptorModule\n \n \n LoggerModule\n \n \n ValidationModule\n \n \n \n \n Exports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ErrorModule } from './error';\nimport { InterceptorModule } from './interceptor';\nimport { LoggerModule } from './logger';\nimport { ValidationModule } from './validation';\n\n/**\n * The core module configures the cross-functional application behaviour by customizing error handling providing and logging.\n * Overrides/Configures global APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER\n */\n@Module({\n\timports: [LoggerModule, ErrorModule, ValidationModule, InterceptorModule],\n\texports: [LoggerModule],\n})\nexport class CoreModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/County.html":{"url":"classes/County.html","title":"class - County","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n County\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n antaresKey\n \n \n countyId\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(county: County)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n county\n \n \n County\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n antaresKey\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n countyId\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class 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 @IsEnum(ContentElementType)@ApiProperty({enum: ContentElementType, description: 'the type of the updated element', enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.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, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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.elementUc.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.mapSubmissionItemToResponse(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 Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n Async\n deleteElement\n \n \n Private\n Async\n getElementWithWritePermission\n \n \n Async\n updateElementContent\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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:19\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 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: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 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 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/element.uc.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 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 getElementWithWritePermission\n \n \n \n \n \n \n \n getElementWithWritePermission(userId: EntityId, elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.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 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: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 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 : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { ForbiddenException, forwardRef, Inject, Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tAnyContentElementDo,\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';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class ElementUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected 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\tsuper(authorizationService, boardDoAuthorizableService);\n\t\tthis.logger.setContext(ElementUc.name);\n\t}\n\n\tasync updateElementContent(\n\t\tuserId: EntityId,\n\t\telementId: EntityId,\n\t\tcontent: AnyElementContentBody\n\t): Promise {\n\t\tconst element = await this.getElementWithWritePermission(userId, elementId);\n\n\t\tawait this.elementService.update(element, content);\n\t\treturn element;\n\t}\n\n\tasync deleteElement(userId: EntityId, elementId: EntityId): Promise {\n\t\tconst element = await this.getElementWithWritePermission(userId, elementId);\n\n\t\tawait this.elementService.delete(element);\n\t}\n\n\tprivate async getElementWithWritePermission(userId: EntityId, elementId: EntityId): Promise {\n\t\tconst element = await this.elementService.findById(elementId);\n\n\t\tconst parent: AnyBoardDo = await this.elementService.findParentOfId(elementId);\n\n\t\tif (isSubmissionItem(parent)) {\n\t\t\tawait this.checkSubmissionItemWritePermission(userId, parent);\n\t\t} else {\n\t\t\tawait this.checkPermission(userId, element, Action.write);\n\t\t}\n\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 UnprocessableEntityException('Cannot create submission-item for non submission-container-element');\n\t\t}\n\n\t\tif (!submissionContainerElement.children.every((child) => isSubmissionItem(child))) {\n\t\t\tthrow new UnprocessableEntityException(\n\t\t\t\t'Children of submission-container-element must be of type submission-item'\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 ForbiddenException(\n\t\t\t\t'User is not allowed to have multiple submission-items per submission-container-element'\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\n \n\n\n\n\n\n\n\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:107\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:116\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:112\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_providers\n\n\n\ncluster_ExternalToolModule_imports\n\n\n\ncluster_ExternalToolModule_exports\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nExternalToolModule -->\n\nCommonToolModule->ExternalToolModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nExternalToolModule -->\n\nEncryptionModule->ExternalToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nExternalToolModule -->\n\nLoggerModule->ExternalToolModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nExternalToolModule -->\n\nOauthProviderServiceModule->ExternalToolModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nExternalToolModule -->\n\nToolConfigModule->ExternalToolModule\n\n\n\n\n\nExternalToolConfigurationService \n\nExternalToolConfigurationService \n\nExternalToolConfigurationService -->\n\nExternalToolModule->ExternalToolConfigurationService \n\n\n\n\n\nExternalToolLogoService \n\nExternalToolLogoService \n\nExternalToolLogoService -->\n\nExternalToolModule->ExternalToolLogoService \n\n\n\n\n\nExternalToolService \n\nExternalToolService \n\nExternalToolService -->\n\nExternalToolModule->ExternalToolService \n\n\n\n\n\nExternalToolValidationService \n\nExternalToolValidationService \n\nExternalToolValidationService -->\n\nExternalToolModule->ExternalToolValidationService \n\n\n\n\n\nExternalToolVersionService \n\nExternalToolVersionService \n\nExternalToolVersionService -->\n\nExternalToolModule->ExternalToolVersionService \n\n\n\n\n\nExternalToolConfigurationService\n\nExternalToolConfigurationService\n\nExternalToolModule -->\n\nExternalToolConfigurationService->ExternalToolModule\n\n\n\n\n\nExternalToolParameterValidationService\n\nExternalToolParameterValidationService\n\nExternalToolModule -->\n\nExternalToolParameterValidationService->ExternalToolModule\n\n\n\n\n\nExternalToolRepo\n\nExternalToolRepo\n\nExternalToolModule -->\n\nExternalToolRepo->ExternalToolModule\n\n\n\n\n\nExternalToolService\n\nExternalToolService\n\nExternalToolModule -->\n\nExternalToolService->ExternalToolModule\n\n\n\n\n\nExternalToolServiceMapper\n\nExternalToolServiceMapper\n\nExternalToolModule -->\n\nExternalToolServiceMapper->ExternalToolModule\n\n\n\n\n\nExternalToolValidationService\n\nExternalToolValidationService\n\nExternalToolModule -->\n\nExternalToolValidationService->ExternalToolModule\n\n\n\n\n\nExternalToolVersionService\n\nExternalToolVersionService\n\nExternalToolModule -->\n\nExternalToolVersionService->ExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/external-tool/external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolParameterValidationService\n \n \n ExternalToolRepo\n \n \n ExternalToolService\n \n \n ExternalToolServiceMapper\n \n \n ExternalToolValidationService\n \n \n ExternalToolVersionService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n EncryptionModule\n \n \n LoggerModule\n \n \n OauthProviderServiceModule\n \n \n ToolConfigModule\n \n \n \n \n Exports\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolLogoService\n \n \n ExternalToolService\n \n \n ExternalToolValidationService\n \n \n ExternalToolVersionService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { ExternalToolRepo } from '@shared/repo';\nimport { ToolConfigModule } from '../tool-config.module';\nimport {\n\tExternalToolConfigurationService,\n\tExternalToolLogoService,\n\tExternalToolParameterValidationService,\n\tExternalToolService,\n\tExternalToolServiceMapper,\n\tExternalToolValidationService,\n\tExternalToolVersionService,\n} from './service';\nimport { CommonToolModule } from '../common';\n\n@Module({\n\timports: [CommonToolModule, ToolConfigModule, LoggerModule, OauthProviderServiceModule, EncryptionModule, HttpModule],\n\tproviders: [\n\t\tExternalToolService,\n\t\tExternalToolServiceMapper,\n\t\tExternalToolParameterValidationService,\n\t\tExternalToolValidationService,\n\t\tExternalToolVersionService,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolLogoService,\n\t\tExternalToolRepo,\n\t],\n\texports: [\n\t\tExternalToolService,\n\t\tExternalToolValidationService,\n\t\tExternalToolVersionService,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolLogoService,\n\t],\n})\nexport class ExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolParameterValidationService.html":{"url":"injectables/ExternalToolParameterValidationService.html","title":"injectable - ExternalToolParameterValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolParameterValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasDuplicateAttributes\n \n \n Private\n isAutoParameterGlobal\n \n \n Private\n isCustomParameterNameEmpty\n \n \n Private\n isDefaultValueOfValidRegex\n \n \n Private\n isDefaultValueOfValidType\n \n \n Private\n isGlobalParameterValid\n \n \n Private\n Async\n isNameUnique\n \n \n Private\n isRegexCommentMandatoryAndFilled\n \n \n Private\n isRegexValid\n \n \n Async\n validateCommon\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasDuplicateAttributes\n \n \n \n \n \n \n \n hasDuplicateAttributes(customParameter: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n 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:24\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:20\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:33\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:29\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_imports\n\n\n\ncluster_FilesStorageClientModule_exports\n\n\n\ncluster_FilesStorageClientModule_providers\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nFilesStorageClientModule -->\n\nCopyHelperModule->FilesStorageClientModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageClientModule -->\n\nLoggerModule->FilesStorageClientModule\n\n\n\n\n\nCopyFilesService \n\nCopyFilesService \n\nCopyFilesService -->\n\nFilesStorageClientModule->CopyFilesService \n\n\n\n\n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService -->\n\nFilesStorageClientModule->FilesStorageClientAdapterService \n\n\n\n\n\nCopyFilesService\n\nCopyFilesService\n\nFilesStorageClientModule -->\n\nCopyFilesService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageClientAdapterService\n\nFilesStorageClientAdapterService\n\nFilesStorageClientModule -->\n\nFilesStorageClientAdapterService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageProducer\n\nFilesStorageProducer\n\nFilesStorageClientModule -->\n\nFilesStorageProducer->FilesStorageClientModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage-client/files-storage-client.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n FilesStorageProducer\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { CopyHelperModule } from '@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_exports\n\n\n\ncluster_FilesStorageModule_imports\n\n\n\ncluster_FilesStorageModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageModule -->\n\nAuthenticationModule->FilesStorageModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageModule -->\n\nAuthorizationModule->FilesStorageModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageModule -->\n\nCoreModule->FilesStorageModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageModule -->\n\nFilesStorageApiModule->FilesStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageModule -->\n\nLoggerModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperTestModule->FilesStorageModule\n\n\n\n\n\nFilesStorageService \n\nFilesStorageService \n\nFilesStorageService -->\n\nFilesStorageModule->FilesStorageService \n\n\n\n\n\nPreviewService \n\nPreviewService \n\nPreviewService -->\n\nFilesStorageModule->PreviewService \n\n\n\n\n\nFileRecordRepo\n\nFileRecordRepo\n\nFilesStorageModule -->\n\nFileRecordRepo->FilesStorageModule\n\n\n\n\n\nFilesStorageService\n\nFilesStorageService\n\nFilesStorageModule -->\n\nFilesStorageService->FilesStorageModule\n\n\n\n\n\nPreviewService\n\nPreviewService\n\nFilesStorageModule -->\n\nPreviewService->FilesStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileRecordRepo\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n Exports\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { AntivirusModule } from '@shared/infra/antivirus/antivirus.module';\nimport { 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"},"classes/GetMetaTagDataBody.html":{"url":"classes/GetMetaTagDataBody.html","title":"class - GetMetaTagDataBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GetMetaTagDataBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/controller/post-link-url.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 @IsUrl()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/post-link-url.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 { IsUrl } from 'class-validator';\n\nexport class GetMetaTagDataBody {\n\t@IsUrl()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\turl!: string;\n}\n\n \n\n\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 findClasses\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 findClasses\n \n \n \n \n \n \n \n findClasses(pagination: PaginationParams, sortingQuery: ClassSortParams, filterParams: ClassFilterParams, 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 user.'})@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 filterParams\n \n ClassFilterParams\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: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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { 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 { GroupUc } from '../uc';\nimport { ClassInfoDto, ResolvedGroupDto } from '../uc/dto';\nimport { ClassInfoSearchListResponse, ClassSortParams, GroupIdParams, GroupResponse, ClassFilterParams } 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 user.' })\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 findClasses(\n\t\t@Query() pagination: PaginationParams,\n\t\t@Query() sortingQuery: ClassSortParams,\n\t\t@Query() filterParams: ClassFilterParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board: Page = await this.groupUc.findAllClasses(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tfilterParams.type,\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: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 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.teacherNames,\n\t\t\tschoolYear: classInfo.schoolYear,\n\t\t\tisUpgradable: classInfo.isUpgradable,\n\t\t\tstudentCount: classInfo.studentCount,\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"},"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: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 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: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 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 { Class } from '@modules/class/domain';\nimport { SystemDto } from '@modules/system';\nimport { RoleName, SchoolYearEntity, UserDO } from '@shared/domain';\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\tteacherNames: 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\tstudentCount: resolvedUsers.filter((groupUser: ResolvedGroupUser) => groupUser.role.name === RoleName.STUDENT)\n\t\t\t\t.length,\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\tteacherNames: teachers.map((user: UserDO) => user.lastName),\n\t\t\tschoolYear: schoolYear?.name,\n\t\t\tisUpgradable,\n\t\t\tstudentCount: clazz.userIds ? clazz.userIds.length : 0,\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_imports\n\n\n\ncluster_H5PEditorModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nH5PEditorModule\n\nH5PEditorModule\n\nH5PEditorModule -->\n\nAuthenticationModule->H5PEditorModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nH5PEditorModule -->\n\nAuthorizationModule->H5PEditorModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nH5PEditorModule -->\n\nCoreModule->H5PEditorModule\n\n\n\n\n\nLogger\n\nLogger\n\nH5PEditorModule -->\n\nLogger->H5PEditorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/h5p-editor/h5p-editor.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n Logger\n \n \n \n \n Controllers\n \n \n H5PEditorController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, 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/launch-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 { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { ExternalTool } from '../../../external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-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/launch-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/launch-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/launch-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_imports\n\n\n\ncluster_IdentityManagementModule_exports\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\nIdentityManagementModule -->\n\nEncryptionModule->IdentityManagementModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nIdentityManagementModule -->\n\nKeycloakAdministrationModule->IdentityManagementModule\n\n\n\n\n\nKeycloakModule\n\nKeycloakModule\n\nIdentityManagementModule -->\n\nKeycloakModule->IdentityManagementModule\n\n\n\n\n\nIdentityManagementOauthService \n\nIdentityManagementOauthService \n\nIdentityManagementOauthService -->\n\nIdentityManagementModule->IdentityManagementOauthService \n\n\n\n\n\nIdentityManagementService \n\nIdentityManagementService \n\nIdentityManagementService -->\n\nIdentityManagementModule->IdentityManagementService \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n KeycloakModule\n \n \n \n \n Exports\n \n \n IdentityManagementOauthService\n \n \n IdentityManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { EncryptionModule } from '../encryption';\nimport { IdentityManagementOauthService } from './identity-management-oauth.service';\nimport { IdentityManagementService } from './identity-management.service';\nimport { KeycloakAdministrationModule } from './keycloak-administration/keycloak-administration.module';\nimport { KeycloakModule } from './keycloak/keycloak.module';\nimport { KeycloakIdentityManagementOauthService } from './keycloak/service/keycloak-identity-management-oauth.service';\nimport { KeycloakIdentityManagementService } from './keycloak/service/keycloak-identity-management.service';\n\n@Module({\n\timports: [KeycloakModule, KeycloakAdministrationModule, HttpModule, EncryptionModule],\n\tproviders: [\n\t\t{ provide: IdentityManagementService, useClass: KeycloakIdentityManagementService },\n\t\t{ provide: IdentityManagementOauthService, useClass: KeycloakIdentityManagementOauthService },\n\t],\n\texports: [IdentityManagementService, IdentityManagementOauthService],\n})\nexport class IdentityManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdentityManagementOauthService.html":{"url":"classes/IdentityManagementOauthService.html","title":"class - IdentityManagementOauthService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdentityManagementOauthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n getOauthConfig\n \n \n Abstract\n isOauthConfigAvailable\n \n \n Abstract\n resourceOwnerPasswordGrant\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n getOauthConfig\n \n \n \n \n \n \n \n getOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:9\n \n \n\n\n \n \n Returns the oauth config of the IDM.\n\n\n \n 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_imports\n\n\n\ncluster_KeycloakConfigurationModule_providers\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_imports\n\n\n\ncluster_LearnroomModule_exports\n\n\n\ncluster_LearnroomModule_providers\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_exports\n\n\n\ncluster_LessonModule_imports\n\n\n\ncluster_LessonModule_providers\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 \n Optional\n description\n \n \n \n \n \n Optional\n imageUrl\n \n \n \n \n \n Optional\n title\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 Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:49\n \n \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 @IsString()@IsOptional()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:54\n \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 @IsString()@IsOptional()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:44\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 @IsUrl()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:39\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:63\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:59\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_exports\n\n\n\ncluster_LtiToolModule_providers\n\n\n\n\nLtiToolService \n\nLtiToolService \n\n\n\nLtiToolModule\n\nLtiToolModule\n\nLtiToolService -->\n\nLtiToolModule->LtiToolService \n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nLtiToolModule -->\n\nLegacyLogger->LtiToolModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nLtiToolModule -->\n\nLtiToolRepo->LtiToolModule\n\n\n\n\n\nLtiToolService\n\nLtiToolService\n\nLtiToolModule -->\n\nLtiToolService->LtiToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lti-tool/lti-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LegacyLogger\n \n \n LtiToolRepo\n \n \n LtiToolService\n \n \n \n \n Exports\n \n \n LtiToolService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LtiToolService } from './service';\n\n@Module({\n\tproviders: [LtiToolService, LtiToolRepo, LegacyLogger],\n\texports: [LtiToolService],\n})\nexport class LtiToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LtiToolRepo.html":{"url":"injectables/LtiToolRepo.html","title":"injectable - LtiToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LtiToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/ltitool/ltitool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByClientIdAndIsLocal\n \n \n Async\n findByName\n \n \n Async\n findByOauthClientId\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ILtiToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ILtiToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n 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_providers\n\n\n\ncluster_ManagementModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nManagementModule\n\nManagementModule\n\nManagementModule -->\n\nAuthenticationModule->ManagementModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nManagementModule -->\n\nAuthorizationModule->ManagementModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nManagementModule -->\n\nCoreModule->ManagementModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nManagementModule -->\n\nFilesStorageApiModule->ManagementModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nManagementModule -->\n\nLoggerModule->ManagementModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nManagementModule -->\n\nRabbitMQWrapperTestModule->ManagementModule\n\n\n\n\n\nBoardManagementUc\n\nBoardManagementUc\n\nManagementModule -->\n\nBoardManagementUc->ManagementModule\n\n\n\n\n\nBsonConverter\n\nBsonConverter\n\nManagementModule -->\n\nBsonConverter->ManagementModule\n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nManagementModule -->\n\nConsoleWriterService->ManagementModule\n\n\n\n\n\nDatabaseManagementService\n\nDatabaseManagementService\n\nManagementModule -->\n\nDatabaseManagementService->ManagementModule\n\n\n\n\n\nDatabaseManagementUc\n\nDatabaseManagementUc\n\nManagementModule -->\n\nDatabaseManagementUc->ManagementModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardManagementUc\n \n \n BsonConverter\n \n \n ConsoleWriterService\n \n \n DatabaseManagementService\n \n \n DatabaseManagementUc\n \n \n \n \n Controllers\n \n \n DatabaseManagementController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport { DatabaseManagementModule, DatabaseManagementService } from '@shared/infra/database';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { FileSystemModule } from '@shared/infra/file-system';\nimport { KeycloakConfigurationModule } from '@shared/infra/identity-management/keycloak-configuration/keycloak-configuration.module';\nimport { createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { serverConfig } from '@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"},"modules/MetaTagExtractorApiModule.html":{"url":"modules/MetaTagExtractorApiModule.html","title":"module - MetaTagExtractorApiModule","body":"\n \n\n\n\n\n Modules\n MetaTagExtractorApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_MetaTagExtractorApiModule\n\n\n\ncluster_MetaTagExtractorApiModule_imports\n\n\n\ncluster_MetaTagExtractorApiModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule -->\n\nLoggerModule->MetaTagExtractorApiModule\n\n\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nMetaTagExtractorApiModule -->\n\nMetaTagExtractorModule->MetaTagExtractorApiModule\n\n\n\n\n\nMetaTagExtractorUc\n\nMetaTagExtractorUc\n\nMetaTagExtractorApiModule -->\n\nMetaTagExtractorUc->MetaTagExtractorApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/meta-tag-extractor-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MetaTagExtractorUc\n \n \n \n \n Controllers\n \n \n MetaTagExtractorController\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n MetaTagExtractorModule\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { MetaTagExtractorController } from './controller';\nimport { MetaTagExtractorModule } from './meta-tag-extractor.module';\nimport { MetaTagExtractorUc } from './uc';\n\n@Module({\n\timports: [MetaTagExtractorModule, LoggerModule, forwardRef(() => AuthorizationModule)],\n\tcontrollers: [MetaTagExtractorController],\n\tproviders: [MetaTagExtractorUc],\n})\nexport class MetaTagExtractorApiModule {}\n\n \n\n\n\n\n\n\n\n\n\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/MetaTagExtractorController.html":{"url":"controllers/MetaTagExtractorController.html","title":"controller - MetaTagExtractorController","body":"\n \n\n\n\n\n\n\n Controllers\n MetaTagExtractorController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/controller/meta-tag-extractor.controller.ts\n \n\n \n Prefix\n \n \n meta-tag-extractor\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 getData\n \n \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 getData\n \n \n \n \n \n \n \n getData(currentUser: ICurrentUser, bodyParams: GetMetaTagDataBody)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'return extract meta tags'})@ApiResponse({status: 201, type: MetaTagExtractorResponse})@ApiResponse({status: 401, type: UnauthorizedException})@ApiResponse({status: 500, type: InternalServerErrorException})@Post('')\n \n \n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/meta-tag-extractor.controller.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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n GetMetaTagDataBody\n \n\n \n No\n \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, InternalServerErrorException, Post, UnauthorizedException } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { MetaTagExtractorUc } from '../uc';\nimport { MetaTagExtractorResponse } from './dto';\nimport { GetMetaTagDataBody } from './post-link-url.body.params';\n\n@ApiTags('Meta Tag Extractor')\n@Authenticate('jwt')\n@Controller('meta-tag-extractor')\nexport class MetaTagExtractorController {\n\tconstructor(private readonly metaTagExtractorUc: MetaTagExtractorUc) {}\n\n\t@ApiOperation({ summary: 'return extract meta tags' })\n\t@ApiResponse({ status: 201, type: MetaTagExtractorResponse })\n\t@ApiResponse({ status: 401, type: UnauthorizedException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Post('')\n\tasync getData(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() bodyParams: GetMetaTagDataBody\n\t): Promise {\n\t\tconst result = await this.metaTagExtractorUc.fetchMetaData(currentUser.userId, bodyParams.url);\n\t\tconst imageUrl = result.image?.url;\n\t\tconst response = new MetaTagExtractorResponse({ ...result, imageUrl });\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"},"modules/MetaTagExtractorModule.html":{"url":"modules/MetaTagExtractorModule.html","title":"module - MetaTagExtractorModule","body":"\n \n\n\n\n\n Modules\n MetaTagExtractorModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_MetaTagExtractorModule\n\n\n\ncluster_MetaTagExtractorModule_providers\n\n\n\ncluster_MetaTagExtractorModule_imports\n\n\n\ncluster_MetaTagExtractorModule_exports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule -->\n\nAuthenticationModule->MetaTagExtractorModule\n\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nMetaTagExtractorModule -->\n\nConsoleWriterModule->MetaTagExtractorModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nMetaTagExtractorModule -->\n\nLoggerModule->MetaTagExtractorModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nMetaTagExtractorModule -->\n\nUserModule->MetaTagExtractorModule\n\n\n\n\n\nMetaTagExtractorService \n\nMetaTagExtractorService \n\nMetaTagExtractorService -->\n\nMetaTagExtractorModule->MetaTagExtractorService \n\n\n\n\n\nMetaTagExtractorService\n\nMetaTagExtractorService\n\nMetaTagExtractorModule -->\n\nMetaTagExtractorService->MetaTagExtractorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/meta-tag-extractor.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MetaTagExtractorService\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n ConsoleWriterModule\n \n \n LoggerModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n MetaTagExtractorService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ConsoleWriterModule } from '@shared/infra/console';\nimport { createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { UserModule } from '../user';\nimport metaTagExtractorConfig from './meta-tag-extractor.config';\nimport { MetaTagExtractorService } from './service';\n\n@Module({\n\timports: [\n\t\tAuthenticationModule,\n\t\tConsoleWriterModule,\n\t\tHttpModule,\n\t\tLoggerModule,\n\t\tUserModule,\n\t\tConfigModule.forRoot(createConfigModuleOptions(metaTagExtractorConfig)),\n\t],\n\tproviders: [MetaTagExtractorService],\n\texports: [MetaTagExtractorService],\n})\nexport class MetaTagExtractorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MetaTagExtractorResponse.html":{"url":"classes/MetaTagExtractorResponse.html","title":"class - MetaTagExtractorResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MetaTagExtractorResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts\n \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 description\n \n \n \n \n Optional\n imageUrl\n \n \n \n \n Optional\n title\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(undefined: MetaTagExtractorResponse)\n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.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 MetaTagExtractorResponse\n \n \n \n No\n \n \n \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 description\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/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts:23\n \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 @ApiProperty()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts:27\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/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts:19\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()@IsUrl()\n \n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.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 { DecodeHtmlEntities } from '@shared/controller';\nimport { IsString, IsUrl } from 'class-validator';\n\nexport class MetaTagExtractorResponse {\n\tconstructor({ url, title, description, imageUrl }: MetaTagExtractorResponse) {\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\t@IsUrl()\n\turl!: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tdescription?: string;\n\n\t@ApiProperty()\n\t@IsString()\n\timageUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MetaTagExtractorService.html":{"url":"injectables/MetaTagExtractorService.html","title":"injectable - MetaTagExtractorService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MetaTagExtractorService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n fetchMetaData\n \n \n Private\n pickImage\n \n \n Private\n Async\n tryExtractMetaTags\n \n \n Private\n tryFilenameAsFallback\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n fetchMetaData\n \n \n \n \n \n \n \n fetchMetaData(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.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 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/meta-tag-extractor/service/meta-tag-extractor.service.ts:58\n \n \n\n\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 Private\n Async\n tryExtractMetaTags\n \n \n \n \n \n \n \n tryExtractMetaTags(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.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 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 tryFilenameAsFallback\n \n \n \n \n \n \n \n tryFilenameAsFallback(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.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 url\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : MetaData | 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';\nimport { basename } from 'path';\n\nexport type MetaData = {\n\ttitle: string;\n\tdescription: string;\n\turl: string;\n\timage?: ImageObject;\n};\n\n@Injectable()\nexport class MetaTagExtractorService {\n\tasync fetchMetaData(url: string): Promise {\n\t\tif (url.length === 0) {\n\t\t\tthrow new Error(`MetaTagExtractorService requires a valid URL. Given URL: ${url}`);\n\t\t}\n\n\t\tconst metaData = (await this.tryExtractMetaTags(url)) ?? this.tryFilenameAsFallback(url);\n\n\t\treturn metaData ?? { url, title: '', description: '' };\n\t}\n\n\tprivate async tryExtractMetaTags(url: string): Promise {\n\t\ttry {\n\t\t\tconst data = await ogs({ url, fetchOptions: { headers: { 'User-Agent': 'Open Graph Scraper' } } });\n\n\t\t\tconst title = data.result?.ogTitle ?? '';\n\t\t\tconst description = data.result?.ogDescription ?? '';\n\t\t\tconst image = data.result?.ogImage ? this.pickImage(data?.result?.ogImage) : undefined;\n\n\t\t\treturn {\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\timage,\n\t\t\t\turl,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\tprivate tryFilenameAsFallback(url: string): MetaData | undefined {\n\t\ttry {\n\t\t\tconst urlObject = new URL(url);\n\t\t\tconst title = basename(urlObject.pathname);\n\t\t\treturn {\n\t\t\t\ttitle,\n\t\t\t\tdescription: '',\n\t\t\t\turl,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn undefined;\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"},"injectables/MetaTagExtractorUc.html":{"url":"injectables/MetaTagExtractorUc.html","title":"injectable - MetaTagExtractorUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MetaTagExtractorUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/uc/meta-tag-extractor.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 fetchMetaData\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, metaTagExtractorService: MetaTagExtractorService)\n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/uc/meta-tag-extractor.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 metaTagExtractorService\n \n \n MetaTagExtractorService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n fetchMetaData\n \n \n \n \n \n \n \n fetchMetaData(userId: EntityId, url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/uc/meta-tag-extractor.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 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 import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { MetaData, MetaTagExtractorService } from '../service';\n\n@Injectable()\nexport class MetaTagExtractorUc {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly metaTagExtractorService: MetaTagExtractorService\n\t) {}\n\n\tasync fetchMetaData(userId: EntityId, url: string): Promise {\n\t\ttry {\n\t\t\tawait this.authorizationService.getUserWithPermissions(userId);\n\t\t} catch (error) {\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\n\t\tconst result = await this.metaTagExtractorService.fetchMetaData(url);\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/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_imports\n\n\n\ncluster_NewsModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nNewsModule\n\nNewsModule\n\nNewsModule -->\n\nAuthorizationModule->NewsModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nNewsModule -->\n\nLoggerModule->NewsModule\n\n\n\n\n\nNewsUc \n\nNewsUc \n\nNewsUc -->\n\nNewsModule->NewsUc \n\n\n\n\n\nNewsRepo\n\nNewsRepo\n\nNewsModule -->\n\nNewsRepo->NewsModule\n\n\n\n\n\nNewsUc\n\nNewsUc\n\nNewsModule -->\n\nNewsUc->NewsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/news/news.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n NewsRepo\n \n \n NewsUc\n \n \n \n \n Controllers\n \n \n NewsController\n \n \n TeamNewsController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n NewsUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { NewsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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/launch-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 Properties\n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \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:155\n\n \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:105\n\n \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:128\n\n \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:139\n\n \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:79\n\n \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: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 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:64\n\n \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:218\n\n \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:181\n\n \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 Properties\n \n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \n \n \n \n \n Type : Map\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 \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_exports\n\n\n\ncluster_OauthModule_providers\n\n\n\ncluster_OauthModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthModule\n\nOauthModule\n\nOauthModule -->\n\nAuthorizationModule->OauthModule\n\n\n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nOauthModule -->\n\nCacheWrapperModule->OauthModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nOauthModule -->\n\nEncryptionModule->OauthModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nOauthModule -->\n\nLegacySchoolModule->OauthModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthModule -->\n\nLoggerModule->OauthModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nOauthModule -->\n\nProvisioningModule->OauthModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nOauthModule -->\n\nSystemModule->OauthModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nOauthModule -->\n\nUserLoginMigrationModule->OauthModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthModule -->\n\nUserModule->OauthModule\n\n\n\n\n\nHydraSsoService \n\nHydraSsoService \n\nHydraSsoService -->\n\nOauthModule->HydraSsoService \n\n\n\n\n\nOAuthService \n\nOAuthService \n\nOAuthService -->\n\nOauthModule->OAuthService \n\n\n\n\n\nHydraSsoService\n\nHydraSsoService\n\nOauthModule -->\n\nHydraSsoService->OauthModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nOauthModule -->\n\nLtiToolRepo->OauthModule\n\n\n\n\n\nOAuthService\n\nOAuthService\n\nOauthModule -->\n\nOAuthService->OauthModule\n\n\n\n\n\nOauthAdapterService\n\nOauthAdapterService\n\nOauthModule -->\n\nOauthAdapterService->OauthModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth/oauth.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n HydraSsoService\n \n \n LtiToolRepo\n \n \n OAuthService\n \n \n OauthAdapterService\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CacheWrapperModule\n \n \n EncryptionModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n ProvisioningModule\n \n \n SystemModule\n \n \n UserLoginMigrationModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n HydraSsoService\n \n \n OAuthService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { CacheWrapperModule } from '@shared/infra/cache';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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_imports\n\n\n\ncluster_OauthProviderApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nOauthProviderApiModule -->\n\nAuthorizationModule->OauthProviderApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthProviderApiModule -->\n\nLoggerModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderModule\n\nOauthProviderModule\n\nOauthProviderApiModule -->\n\nOauthProviderModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderApiModule -->\n\nOauthProviderServiceModule->OauthProviderApiModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nOauthProviderApiModule -->\n\nPseudonymModule->OauthProviderApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthProviderApiModule -->\n\nUserModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderClientCrudUc\n\nOauthProviderClientCrudUc\n\nOauthProviderApiModule -->\n\nOauthProviderClientCrudUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderConsentFlowUc\n\nOauthProviderConsentFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderConsentFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLoginFlowUc\n\nOauthProviderLoginFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLoginFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLogoutFlowUc\n\nOauthProviderLogoutFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLogoutFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderResponseMapper\n\nOauthProviderResponseMapper\n\nOauthProviderApiModule -->\n\nOauthProviderResponseMapper->OauthProviderApiModule\n\n\n\n\n\nOauthProviderUc\n\nOauthProviderUc\n\nOauthProviderApiModule -->\n\nOauthProviderUc->OauthProviderApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth-provider/oauth-provider-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n OauthProviderClientCrudUc\n \n \n OauthProviderConsentFlowUc\n \n \n OauthProviderLoginFlowUc\n \n \n OauthProviderLogoutFlowUc\n \n \n OauthProviderResponseMapper\n \n \n OauthProviderUc\n \n \n \n \n Controllers\n \n \n OauthProviderController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n OauthProviderModule\n \n \n OauthProviderServiceModule\n \n \n PseudonymModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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')) {\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\tif (data.externalGroups) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tdata.externalGroups.map((externalGroup) =>\n\t\t\t\t\t\tthis.oidcProvisioningService.provisionExternalGroup(externalGroup, data.system.systemId)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn new ProvisioningDto({ externalUserId: user.externalId || data.externalUser.externalId });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Options.html":{"url":"interfaces/Options.html","title":"interface - Options","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Options\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/database-management.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n collection\n \n \n \n Optional\n \n onlyfactories\n \n \n \n Optional\n \n override\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n collection\n \n \n \n \n \n \n \n \n collection: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n onlyfactories\n \n \n \n \n \n \n \n \n onlyfactories: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n override\n \n \n \n \n \n \n \n \n override: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console/console-writer/console-writer.service';\nimport { Command, Console } from 'nestjs-console';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\ninterface Options {\n\tcollection?: string;\n\toverride?: boolean;\n\tonlyfactories?: boolean;\n}\n\n@Console({ command: 'database', description: 'database setup console' })\nexport class DatabaseManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'seed',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --onlyfactories',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'seed from factories only',\n\t\t\t},\n\t\t],\n\t\tdescription: 'reset database collections with seed data from filesystem',\n\t})\n\tasync seedCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\n\t\tconst collections = options.onlyfactories\n\t\t\t? await this.databaseManagementUc.seedDatabaseCollectionsFromFactories(filter)\n\t\t\t: await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem(filter);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'export',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --override',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'optional export collections to setup folder and override existing files',\n\t\t\t},\n\t\t],\n\t\tdescription: 'export database collections to filesystem',\n\t})\n\tasync exportCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\t\tconst toSeedFolder = options?.override ? true : undefined;\n\t\tconst collections = await this.databaseManagementUc.exportCollectionsToFileSystem(filter, toSeedFolder);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'sync-indexes',\n\t\toptions: [],\n\t\tdescription: 'sync indexes from nest and mikroorm',\n\t})\n\tasync syncIndexes(): Promise {\n\t\tawait this.databaseManagementUc.syncIndexes();\n\t\tconst report = 'sync of indexes is completed';\n\t\tthis.consoleWriter.info(report);\n\t\treturn report;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Page.html":{"url":"classes/Page.html","title":"class - Page","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Page\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/page.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n data\n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: T[], total: number)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n T[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : T[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class Page {\n\tdata: T[];\n\n\ttotal: number;\n\n\tconstructor(data: T[], total: number) {\n\t\tthis.data = data;\n\t\tthis.total = total;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentDto.html":{"url":"classes/PageContentDto.html","title":"class - PageContentDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cancelButtonUrl\n \n \n proceedButtonUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PageContentDto)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PageContentDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n proceedButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class PageContentDto {\n\tproceedButtonUrl: string;\n\n\tcancelButtonUrl: string;\n\n\tconstructor(props: PageContentDto) {\n\t\tthis.proceedButtonUrl = props.proceedButtonUrl;\n\t\tthis.cancelButtonUrl = props.cancelButtonUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PageContentMapper.html":{"url":"injectables/PageContentMapper.html","title":"injectable - PageContentMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PageContentMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n \n \nmapDtoToResponse(dto: PageContentDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n PageContentDto\n \n\n \n No\n \n\n\n \n \n \n \n \n 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_providers\n\n\n\ncluster_PreviewGeneratorProducerModule_exports\n\n\n\ncluster_PreviewGeneratorProducerModule_imports\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_imports\n\n\n\ncluster_PseudonymApiModule_providers\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_providers\n\n\n\ncluster_PseudonymModule_exports\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 { LearnroomModule } from '@modules/learnroom';\nimport { ToolModule } from '@modules/tool';\nimport { UserModule } from '@modules/user';\nimport { forwardRef, Module } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from './repo';\nimport { FeathersRosterService, PseudonymService } from './service';\n\n@Module({\n\timports: [UserModule, LearnroomModule, forwardRef(() => ToolModule)],\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, contextExternalToolService: ContextExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:22\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 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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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 { FilesStorageClientAdapterService } from '@modules/files-storage-client';\nimport { ContextExternalTool } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\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';\n\n@Injectable()\nexport class RecursiveDeleteVisitor implements BoardCompositeVisitorAsync {\n\tconstructor(\n\t\tprivate readonly em: EntityManager,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\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\tif (externalToolElement.contextExternalToolId) {\n\t\t\tconst linkedTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\t\texternalToolElement.contextExternalToolId\n\t\t\t);\n\n\t\t\tawait this.contextExternalToolService.deleteContextExternalTool(linkedTool);\n\t\t}\n\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 Private\n registerParentData\n \n \n Async\n save\n \n \n Private\n saveRecursive\n \n \n visitCard\n \n \n Private\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:202\n \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 Private\n registerParentData\n \n \n \n \n \n \n \n registerParentData(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: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 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 Private\n saveRecursive\n \n \n \n \n \n \n \n saveRecursive(boardNode: BoardNode, anyBoardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.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 anyBoardDo\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 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: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 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 Private\n visitChildren\n \n \n \n \n \n \n \n visitChildren(parent: AnyBoardDo, parentNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:181\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n 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: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 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: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 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: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 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: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 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: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 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: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 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/modules/board/repo/recursive-save.visitor.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 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 \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.saveRecursive(boardNode, columnBoard);\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.saveRecursive(boardNode, column);\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.saveRecursive(boardNode, card);\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.saveRecursive(boardNode, fileElement);\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.saveRecursive(boardNode, richTextElement);\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.saveRecursive(boardNode, submissionContainerElement);\n\t}\n\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void {\n\t\tconst parentData = this.parentsMap.get(submissionItem.id);\n\t\tconst boardNode = new SubmissionItemNode({\n\t\t\tid: submissionItem.id,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tcompleted: submissionItem.completed,\n\t\t\tuserId: submissionItem.userId,\n\t\t});\n\n\t\tthis.saveRecursive(boardNode, submissionItem);\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\tprivate visitChildren(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\tprivate registerParentData(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\tprivate saveRecursive(boardNode: BoardNode, anyBoardDo: AnyBoardDo): void {\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(anyBoardDo, boardNode);\n\t}\n\n\t// TODO make private (change tests)\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:73\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:69\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:82\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:78\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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: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 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: {\n\t\t\t\tAuthorization: `Bearer ${input.accessToken}`,\n\t\t\t\t'Accept-Encoding': 'gzip',\n\t\t\t},\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_exports\n\n\n\ncluster_SchoolExternalToolModule_imports\n\n\n\ncluster_SchoolExternalToolModule_providers\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule -->\n\nCommonToolModule->SchoolExternalToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nSchoolExternalToolModule -->\n\nExternalToolModule->SchoolExternalToolModule\n\n\n\n\n\nSchoolExternalToolService \n\nSchoolExternalToolService \n\nSchoolExternalToolService -->\n\nSchoolExternalToolModule->SchoolExternalToolService \n\n\n\n\n\nSchoolExternalToolValidationService \n\nSchoolExternalToolValidationService \n\nSchoolExternalToolValidationService -->\n\nSchoolExternalToolModule->SchoolExternalToolValidationService \n\n\n\n\n\nSchoolExternalToolService\n\nSchoolExternalToolService\n\nSchoolExternalToolModule -->\n\nSchoolExternalToolService->SchoolExternalToolModule\n\n\n\n\n\nSchoolExternalToolValidationService\n\nSchoolExternalToolValidationService\n\nSchoolExternalToolModule -->\n\nSchoolExternalToolValidationService->SchoolExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/school-external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SchoolExternalToolService\n \n \n SchoolExternalToolValidationService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ExternalToolModule\n \n \n \n \n Exports\n \n \n SchoolExternalToolService\n \n \n SchoolExternalToolValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CommonToolModule } from '../common';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from './service';\nimport { ExternalToolModule } from '../external-tool';\n\n@Module({\n\timports: [CommonToolModule, ExternalToolModule],\n\tproviders: [SchoolExternalToolService, SchoolExternalToolValidationService],\n\texports: [SchoolExternalToolService, SchoolExternalToolValidationService],\n})\nexport class SchoolExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolPostParams.html":{"url":"classes/SchoolExternalToolPostParams.html","title":"class - SchoolExternalToolPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n schoolId\n \n \n \n \n \n toolId\n \n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryParam[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsNumber()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsMongoId, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { CustomParameterEntryParam } from './custom-parameter-entry.params';\n\nexport class SchoolExternalToolPostParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\ttoolId!: string;\n\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\tschoolId!: string;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterEntryParam] })\n\t@Type(() => CustomParameterEntryParam)\n\tparameters?: CustomParameterEntryParam[];\n\n\t@ApiProperty()\n\t@IsNumber()\n\tversion!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SchoolExternalToolProps.html":{"url":"interfaces/SchoolExternalToolProps.html","title":"interface - SchoolExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n name\n \n \n \n \n parameters\n \n \n \n \n schoolId\n \n \n \n Optional\n \n status\n \n \n \n \n toolId\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntry[]\n\n \n \n\n\n \n \n Type : CustomParameterEntry[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: ToolConfigurationStatus\n\n \n \n\n\n \n \n Type : ToolConfigurationStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolVersion } from '../../common/interface';\n\nexport interface SchoolExternalToolProps {\n\tid?: string;\n\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n}\n\nexport class SchoolExternalTool extends BaseDO implements ToolVersion {\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n\n\tconstructor(props: SchoolExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.name = props.name;\n\t\tthis.toolId = props.toolId;\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t\tthis.status = props.status;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolRefDO.html":{"url":"classes/SchoolExternalToolRefDO.html","title":"class - SchoolExternalToolRefDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolRefDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n schoolId\n \n \n schoolToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: SchoolExternalToolRefDO)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n SchoolExternalToolRefDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class SchoolExternalToolRefDO {\n\tschoolToolId: string;\n\n\tschoolId?: string;\n\n\tconstructor(props: SchoolExternalToolRefDO) {\n\t\tthis.schoolToolId = props.schoolToolId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRepo.html":{"url":"injectables/SchoolExternalToolRepo.html","title":"injectable - SchoolExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildScope\n \n \n Async\n deleteByExternalToolId\n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findByExternalToolId\n \n \n Async\n findBySchoolId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildScope\n \n \n \n \n \n \n \n buildScope(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n 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\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule\n\nServerModule -->\n\nMetaTagExtractorApiModule->ServerModule\n\n\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nServerModule -->\n\nMetaTagExtractorModule->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 MetaTagExtractorApiModule\n \n \n MetaTagExtractorModule\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: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 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 { 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 { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { MetaTagExtractorApiModule, MetaTagExtractorModule } from '@modules/meta-tag-extractor';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { TeamsApiModule } from '@modules/teams/teams-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 { 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 { RedisModule, REDIS_CLIENT } 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 connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\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\tMetaTagExtractorModule,\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\tMetaTagExtractorApiModule,\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\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule\n\nServerTestModule -->\n\nMetaTagExtractorApiModule->ServerTestModule\n\n\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nServerTestModule -->\n\nMetaTagExtractorModule->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 MetaTagExtractorApiModule\n \n \n MetaTagExtractorModule\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: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 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: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 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 { 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 { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { MetaTagExtractorApiModule, MetaTagExtractorModule } from '@modules/meta-tag-extractor';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { TeamsApiModule } from '@modules/teams/teams-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 { 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 { RedisModule, REDIS_CLIENT } 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 connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\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\tMetaTagExtractorModule,\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\tMetaTagExtractorApiModule,\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:91\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:100\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:96\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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: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 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, FileElement, isFileElement, isRichTextElement, RichTextElement } 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\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\tconst allowed = isFileElement(child) || isRichTextElement(child);\n\n\t\treturn allowed;\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\nexport const isSubmissionItemContent = (element: AnyBoardDo): element is RichTextElement | FileElement =>\n\tisRichTextElement(element) || isFileElement(element);\n\n \n\n\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, FileElement, isFileElement, isRichTextElement, RichTextElement } 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\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\tconst allowed = isFileElement(child) || isRichTextElement(child);\n\n\t\treturn allowed;\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\nexport const isSubmissionItemContent = (element: AnyBoardDo): element is RichTextElement | FileElement =>\n\tisRichTextElement(element) || isFileElement(element);\n\n \n\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 elements\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: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 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:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : (RichTextElementResponse | FileElementResponse)[]\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/submission-item/submission-item.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/submission-item/submission-item.response.ts:16\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:19\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:25\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { FileElementResponse, RichTextElementResponse } from '../element';\n\n@ApiExtraModels(FileElementResponse, RichTextElementResponse)\nexport class SubmissionItemResponse {\n\tconstructor({ id, timestamps, completed, userId, elements }: SubmissionItemResponse) {\n\t\tthis.id = id;\n\t\tthis.timestamps = timestamps;\n\t\tthis.completed = completed;\n\t\tthis.userId = userId;\n\t\tthis.elements = elements;\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\t@ApiProperty({\n\t\ttype: 'array',\n\t\titems: {\n\t\t\toneOf: [{ $ref: getSchemaPath(FileElementResponse) }, { $ref: getSchemaPath(RichTextElementResponse) }],\n\t\t},\n\t})\n\telements: (RichTextElementResponse | FileElementResponse)[];\n}\n\n \n\n\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 mapSubmissionItemToResponse\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:6\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:8\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 mapSubmissionItemToResponse\n \n \n \n \n \n \n \n mapSubmissionItemToResponse(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-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 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: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 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: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 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 { FileElement, isSubmissionItemContent, RichTextElement, SubmissionItem, UserBoardRoles } from '@shared/domain';\nimport { SubmissionItemResponse, SubmissionsResponse, TimestampsResponse, UserDataResponse } from '../dto';\nimport { ContentElementResponseFactory } from './content-element-response.factory';\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.mapSubmissionItemToResponse(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 mapSubmissionItemToResponse(submissionItem: SubmissionItem): SubmissionItemResponse {\n\t\tconst children: (FileElement | RichTextElement)[] = submissionItem.children.filter(isSubmissionItemContent);\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\telements: children.map((element) => ContentElementResponseFactory.mapSubmissionContentToResponse(element)),\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 Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createElement\n \n \n Async\n findSubmissionItems\n \n \n Async\n updateSubmissionItem\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:27\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 \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(userId: EntityId, submissionItemId: EntityId, type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.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 submissionItemId\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 \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: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 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 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: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 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 Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import {\n\tBadRequestException,\n\tforwardRef,\n\tInject,\n\tInjectable,\n\tNotFoundException,\n\tUnprocessableEntityException,\n} from '@nestjs/common';\nimport {\n\tContentElementType,\n\tEntityId,\n\tFileElement,\n\tisFileElement,\n\tisRichTextElement,\n\tisSubmissionContainerElement,\n\tisSubmissionItem,\n\tRichTextElement,\n\tSubmissionItem,\n\tUserBoardRoles,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { BoardDoAuthorizableService, ContentElementService, SubmissionItemService } from '../service';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class SubmissionItemUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprotected readonly elementService: ContentElementService,\n\t\tprotected readonly submissionItemService: SubmissionItemService\n\t) {\n\t\tsuper(authorizationService, boardDoAuthorizableService);\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 NotFoundException('Could not find a submission container with this id');\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\t\tawait this.checkSubmissionItemWritePermission(userId, submissionItem);\n\t\tawait this.submissionItemService.update(submissionItem, completed);\n\n\t\treturn submissionItem;\n\t}\n\n\tasync createElement(\n\t\tuserId: EntityId,\n\t\tsubmissionItemId: EntityId,\n\t\ttype: ContentElementType\n\t): Promise {\n\t\tif (type !== ContentElementType.RICH_TEXT && type !== ContentElementType.FILE) {\n\t\t\tthrow new BadRequestException();\n\t\t}\n\n\t\tconst submissionItem = await this.submissionItemService.findById(submissionItemId);\n\n\t\tawait this.checkSubmissionItemWritePermission(userId, submissionItem);\n\n\t\tconst element = await this.elementService.create(submissionItem, type);\n\n\t\tif (!isFileElement(element) && !isRichTextElement(element)) {\n\t\t\tthrow new UnprocessableEntityException();\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/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_imports\n\n\n\ncluster_SystemApiModule_providers\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_providers\n\n\n\ncluster_SystemModule_exports\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\n\n\nSystemModule\n\nSystemModule\n\nSystemModule -->\n\nIdentityManagementModule->SystemModule\n\n\n\n\n\nSystemOidcService \n\nSystemOidcService \n\nSystemOidcService -->\n\nSystemModule->SystemOidcService \n\n\n\n\n\nSystemService \n\nSystemService \n\nSystemService -->\n\nSystemModule->SystemService \n\n\n\n\n\nSystemOidcService\n\nSystemOidcService\n\nSystemModule -->\n\nSystemOidcService->SystemModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nSystemModule -->\n\nSystemRepo->SystemModule\n\n\n\n\n\nSystemService\n\nSystemService\n\nSystemModule -->\n\nSystemService->SystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/system/system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SystemOidcService\n \n \n SystemRepo\n \n \n SystemService\n \n \n \n \n Imports\n \n \n IdentityManagementModule\n \n \n \n \n Exports\n \n \n SystemOidcService\n \n \n SystemService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { IdentityManagementModule } from '@shared/infra/identity-management/identity-management.module';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemService } from '@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_providers\n\n\n\ncluster_TaskApiModule_imports\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_imports\n\n\n\ncluster_TaskModule_exports\n\n\n\ncluster_TaskModule_providers\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nTaskModule\n\nTaskModule\n\nTaskModule -->\n\nCopyHelperModule->TaskModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nTaskModule -->\n\nFilesStorageClientModule->TaskModule\n\n\n\n\n\nSubmissionService \n\nSubmissionService \n\nSubmissionService -->\n\nTaskModule->SubmissionService \n\n\n\n\n\nTaskCopyService \n\nTaskCopyService \n\nTaskCopyService -->\n\nTaskModule->TaskCopyService \n\n\n\n\n\nTaskService \n\nTaskService \n\nTaskService -->\n\nTaskModule->TaskService \n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nTaskModule -->\n\nCourseRepo->TaskModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nTaskModule -->\n\nLessonRepo->TaskModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nTaskModule -->\n\nSubmissionRepo->TaskModule\n\n\n\n\n\nSubmissionService\n\nSubmissionService\n\nTaskModule -->\n\nSubmissionService->TaskModule\n\n\n\n\n\nTaskCopyService\n\nTaskCopyService\n\nTaskModule -->\n\nTaskCopyService->TaskModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nTaskModule -->\n\nTaskRepo->TaskModule\n\n\n\n\n\nTaskService\n\nTaskService\n\nTaskModule -->\n\nTaskService->TaskModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/task/task.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CourseRepo\n \n \n LessonRepo\n \n \n SubmissionRepo\n \n \n SubmissionService\n \n \n TaskCopyService\n \n \n TaskRepo\n \n \n TaskService\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n FilesStorageClientModule\n \n \n \n \n Exports\n \n \n SubmissionService\n \n \n TaskCopyService\n \n \n TaskService\n \n \n \n \n \n\n\n \n\n\n \n import { CopyHelperModule } from '@modules/copy-helper';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { Module } from '@nestjs/common';\nimport { CourseRepo, LessonRepo, SubmissionRepo, TaskRepo } from '@shared/repo';\nimport { SubmissionService, TaskCopyService, TaskService } from './service';\n\n@Module({\n\timports: [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_imports\n\n\n\ncluster_ToolApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nToolApiModule\n\nToolApiModule\n\nToolApiModule -->\n\nAuthorizationModule->ToolApiModule\n\n\n\n\n\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_imports\n\n\n\ncluster_ToolLaunchModule_providers\n\n\n\n\nBoardModule\n\nBoardModule\n\n\n\nToolLaunchModule\n\nToolLaunchModule\n\nToolLaunchModule -->\n\nBoardModule->ToolLaunchModule\n\n\n\n\n\nCommonToolModule\n\nCommonToolModule\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\nAutoContextIdStrategy\n\nAutoContextIdStrategy\n\nToolLaunchModule -->\n\nAutoContextIdStrategy->ToolLaunchModule\n\n\n\n\n\nAutoContextNameStrategy\n\nAutoContextNameStrategy\n\nToolLaunchModule -->\n\nAutoContextNameStrategy->ToolLaunchModule\n\n\n\n\n\nAutoSchoolIdStrategy\n\nAutoSchoolIdStrategy\n\nToolLaunchModule -->\n\nAutoSchoolIdStrategy->ToolLaunchModule\n\n\n\n\n\nAutoSchoolNumberStrategy\n\nAutoSchoolNumberStrategy\n\nToolLaunchModule -->\n\nAutoSchoolNumberStrategy->ToolLaunchModule\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 AutoContextIdStrategy\n \n \n AutoContextNameStrategy\n \n \n AutoSchoolIdStrategy\n \n \n AutoSchoolNumberStrategy\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 BoardModule\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 { BoardModule } from '@modules/board';\nimport { LearnroomModule } from '@modules/learnroom';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@modules/user';\nimport { forwardRef, Module } from '@nestjs/common';\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 {\n\tAutoContextIdStrategy,\n\tAutoContextNameStrategy,\n\tAutoSchoolIdStrategy,\n\tAutoSchoolNumberStrategy,\n} from './service/auto-parameter-strategy';\nimport { BasicToolLaunchStrategy, Lti11ToolLaunchStrategy, OAuth2ToolLaunchStrategy } from './service/launch-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\tBoardModule,\n\t],\n\tproviders: [\n\t\tToolLaunchService,\n\t\tLti11EncryptionService,\n\t\tBasicToolLaunchStrategy,\n\t\tLti11ToolLaunchStrategy,\n\t\tOAuth2ToolLaunchStrategy,\n\t\tAutoContextIdStrategy,\n\t\tAutoContextNameStrategy,\n\t\tAutoSchoolIdStrategy,\n\t\tAutoSchoolNumberStrategy,\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 './launch-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_imports\n\n\n\ncluster_ToolModule_exports\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/UnknownQueryTypeLoggableException.html":{"url":"classes/UnknownQueryTypeLoggableException.html","title":"class - UnknownQueryTypeLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UnknownQueryTypeLoggableException\n\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/loggable/unknown-query-type-loggable-exception.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(unknownQueryType: string)\n \n \n \n \n Defined in apps/server/src/modules/group/loggable/unknown-query-type-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 unknownQueryType\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/group/loggable/unknown-query-type-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 { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { InternalServerErrorException } from '@nestjs/common';\n\nexport class UnknownQueryTypeLoggableException extends InternalServerErrorException implements Loggable {\n\tconstructor(private readonly unknownQueryType: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'INTERNAL_SERVER_ERROR',\n\t\t\tstack: this.stack,\n\t\t\tmessage: 'Unable to process unknown query type for class years.',\n\t\t\tdata: {\n\t\t\t\tunknownQueryType: this.unknownQueryType,\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/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:150\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_providers\n\n\n\ncluster_UserLoginMigrationApiModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule -->\n\nAuthenticationModule->UserLoginMigrationApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nUserLoginMigrationApiModule -->\n\nAuthorizationModule->UserLoginMigrationApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationApiModule -->\n\nLegacySchoolModule->UserLoginMigrationApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationApiModule -->\n\nLoggerModule->UserLoginMigrationApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nUserLoginMigrationApiModule -->\n\nOauthModule->UserLoginMigrationApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nUserLoginMigrationApiModule -->\n\nProvisioningModule->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationModule->UserLoginMigrationApiModule\n\n\n\n\n\nCloseUserLoginMigrationUc\n\nCloseUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nCloseUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nPageContentMapper\n\nPageContentMapper\n\nUserLoginMigrationApiModule -->\n\nPageContentMapper->UserLoginMigrationApiModule\n\n\n\n\n\nRestartUserLoginMigrationUc\n\nRestartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nRestartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nStartUserLoginMigrationUc\n\nStartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nStartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nToggleUserLoginMigrationUc\n\nToggleUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nToggleUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationUc\n\nUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CloseUserLoginMigrationUc\n \n \n PageContentMapper\n \n \n RestartUserLoginMigrationUc\n \n \n StartUserLoginMigrationUc\n \n \n ToggleUserLoginMigrationUc\n \n \n UserLoginMigrationUc\n \n \n \n \n Controllers\n \n \n UserMigrationController\n \n \n UserLoginMigrationController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n UserLoginMigrationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@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 \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 \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')@HttpCode(HttpStatus.OK)@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: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 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:218\n \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 { Authenticate, CurrentUser, ICurrentUser, JWT } from '@modules/authentication';\nimport { Body, Controller, Get, HttpCode, HttpStatus, 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 {\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@HttpCode(HttpStatus.OK)\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';\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\tid: domainObject.id as string,\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_exports\n\n\n\ncluster_UserLoginMigrationModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule -->\n\nAccountModule->UserLoginMigrationModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationModule -->\n\nLegacySchoolModule->UserLoginMigrationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationModule -->\n\nLoggerModule->UserLoginMigrationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nUserLoginMigrationModule -->\n\nSystemModule->UserLoginMigrationModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nUserLoginMigrationModule -->\n\nUserModule->UserLoginMigrationModule\n\n\n\n\n\nMigrationCheckService \n\nMigrationCheckService \n\nMigrationCheckService -->\n\nUserLoginMigrationModule->MigrationCheckService \n\n\n\n\n\nSchoolMigrationService \n\nSchoolMigrationService \n\nSchoolMigrationService -->\n\nUserLoginMigrationModule->SchoolMigrationService \n\n\n\n\n\nUserLoginMigrationRevertService \n\nUserLoginMigrationRevertService \n\nUserLoginMigrationRevertService -->\n\nUserLoginMigrationModule->UserLoginMigrationRevertService \n\n\n\n\n\nUserLoginMigrationService \n\nUserLoginMigrationService \n\nUserLoginMigrationService -->\n\nUserLoginMigrationModule->UserLoginMigrationService \n\n\n\n\n\nUserMigrationService \n\nUserMigrationService \n\nUserMigrationService -->\n\nUserLoginMigrationModule->UserMigrationService \n\n\n\n\n\nMigrationCheckService\n\nMigrationCheckService\n\nUserLoginMigrationModule -->\n\nMigrationCheckService->UserLoginMigrationModule\n\n\n\n\n\nSchoolMigrationService\n\nSchoolMigrationService\n\nUserLoginMigrationModule -->\n\nSchoolMigrationService->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationRepo\n\nUserLoginMigrationRepo\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationRepo->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationRevertService\n\nUserLoginMigrationRevertService\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationRevertService->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationService\n\nUserLoginMigrationService\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationService->UserLoginMigrationModule\n\n\n\n\n\nUserMigrationService\n\nUserMigrationService\n\nUserLoginMigrationModule -->\n\nUserMigrationService->UserLoginMigrationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MigrationCheckService\n \n \n SchoolMigrationService\n \n \n UserLoginMigrationRepo\n \n \n UserLoginMigrationRevertService\n \n \n UserLoginMigrationService\n \n \n UserMigrationService\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n MigrationCheckService\n \n \n SchoolMigrationService\n \n \n UserLoginMigrationRevertService\n \n \n UserLoginMigrationService\n \n \n UserMigrationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@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 id\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: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 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:30\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:35\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-login-migration/controller/dto/response/user-login-migration.response.ts:5\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:20\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:10\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:25\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: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';\n\nexport class UserLoginMigrationResponse {\n\t@ApiProperty()\n\tid: string;\n\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.id = props.id;\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_imports\n\n\n\ncluster_VideoConferenceModule_providers\n\n\n\ncluster_VideoConferenceModule_exports\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 MetaTagExtractorApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n MetaTagExtractorModule\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.231,1,5.958]],["body/classes/AbstractAccountService.html",[0,0.169,1,6.541,2,0.559,3,0.012,4,0.012,5,0.006,6,4.991,7,0.076,8,0.896,9,6.74,10,3.038,11,6.263,12,3.431,13,5.438,14,6.541,15,6.541,16,6.541,17,6.541,18,3.783,19,6.541,20,6.541,21,6.541,22,6.912,23,6.912,24,6.912,25,6.541,26,2.965,27,0.539,28,4.991,29,1.024,30,0.001,31,0.737,32,0.18,33,0.631,34,1.274,35,1.58,36,2.973,37,6.263,38,4.991,39,2.412,40,3.615,41,4.991,42,5.438,43,4.991,44,6.541,45,4.991,46,6.541,47,0.947,48,4.257,49,3.927,50,4.991,51,5.446,52,3.571,53,5.438,54,6.541,55,2.75,56,5.412,57,4.991,58,3.223,59,2.323,60,6.541,61,4.991,62,2.932,63,6.912,64,7.799,65,4.991,66,6.886,67,6.541,68,4.991,69,6.541,70,4.476,71,4.991,72,3.393,73,6.912,74,6.042,75,7.476,76,6.912,77,4.763,78,5.05,79,6.541,80,6.541,81,6.912,82,7.023,83,2.753,84,4.991,85,5.789,86,6.912,87,4.506,88,4.991,89,6.912,90,4.991,91,6.912,92,8.288,93,4.991,94,2.428,95,0.114,96,1.371,97,2.163,98,2.962,99,0.833,100,1.676,101,0.008,102,3.758,103,0,104,0]],["title/interfaces/AcceptConsentRequestBody.html",[105,0.735,106,5.705]],["body/interfaces/AcceptConsentRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,32,0.188,33,0.676,47,0.984,55,2.612,95,0.112,101,0.015,103,0.001,104,0.001,105,0.956,106,9.307,107,2.126,108,6.193,109,8.19,110,6.589,111,7.159,112,0.882,113,11.766,114,11.134,115,11.766,116,9.97,117,9.97,118,8.108,119,2.47,120,4.887,121,7.277,122,5.984,123,7.421,124,4.453,125,7.75,126,7.159]],["title/interfaces/AcceptLoginRequestBody.html",[105,0.735,127,5.503]],["body/interfaces/AcceptLoginRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.186,33,0.682,47,0.996,55,2.62,77,8.128,101,0.015,103,0.001,104,0.001,105,0.962,107,2.14,108,6.235,109,8.245,111,7.206,112,0.886,116,9.994,117,9.994,119,2.478,127,9.015,128,3.592,129,11.16,130,11.16,131,4.778,132,11.794,133,4.257]],["title/classes/AcceptQuery.html",[0,0.231,134,5.503]],["body/classes/AcceptQuery.html",[0,0.396,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,27,0.392,30,0.001,32,0.131,95,0.159,101,0.016,103,0.001,104,0.001,112,0.926,119,2.373,128,4.695,134,9.42,135,6.47,136,9.576,137,7.904,138,1.742,139,9.576,140,6.528,141,5.568,142,4.56,143,2.595,144,3.84,145,3.236,146,9.576,147,6.258,148,3.039,149,4.434,150,2.182,151,7.751,152,9.576,153,2.177]],["title/entities/Account.html",[94,3.313,154,1.456]],["body/entities/Account.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.172,27,0.536,30,0.001,32,0.181,33,0.663,39,3.052,47,0.909,48,5.387,49,4.698,51,5.114,82,8.234,83,3.483,87,5.283,94,4.458,95,0.133,96,2.517,97,2.867,101,0.015,103,0.001,104,0.001,112,0.835,119,1.865,124,5.283,138,2.378,143,3.076,144,4.243,145,2.544,154,1.958,155,2.208,156,6.616,157,6.885,158,8.493,159,7.099,160,7.346,161,6.616,162,6.616,163,6.616,164,6.616,165,6.616,166,6.616,167,6.616,168,5.225,169,6.616,170,5.183,171,6.616,172,4.226,173,1.957,174,3.644,175,2.925,176,8.471,177,1.211,178,2.748,179,4.334,180,1.186,181,1.771,182,2.152,183,5.346,184,6.117,185,6.117,186,6.117,187,5.043,188,5.542,189,6.117,190,6.117,191,3.58,192,4.215,193,4.812,194,5.183,195,6.117,196,6.117,197,5.183,198,5.542,199,5.788,200,6.117]],["title/modules/AccountApiModule.html",[201,1.804,202,5.503]],["body/modules/AccountApiModule.html",[0,0.29,3,0.02,4,0.02,5,0.01,30,0.001,95,0.171,99,1.424,101,0.014,103,0.001,104,0.001,201,3.161,202,11.428,203,3.071,204,3.3,205,3.396,206,3.382,207,3.368,208,4.371,209,4.082,210,8.539,211,8.539,212,8.539,213,9.442,214,6.148,215,12.251,216,11.1,217,7.95,218,4.317,219,3.327,220,3.248,221,7.895,222,5.304,223,4.469,224,10.44,225,4.281,226,1.221,227,3.516,228,8.539,229,8.539,230,7.895,231,8.539]],["title/classes/AccountByIdBodyParams.html",[0,0.231,232,5.958]],["body/classes/AccountByIdBodyParams.html",[0,0.352,2,0.888,3,0.019,4,0.019,5,0.009,7,0.12,27,0.472,30,0.001,31,0.58,32,0.157,33,0.623,47,0.862,51,5.607,87,6.531,95,0.155,101,0.013,103,0.001,104,0.001,112,0.822,119,2.107,138,2.096,142,5.083,143,2.893,144,4.281,145,3.608,147,5.558,148,2.517,150,1.807,153,2.619,157,7.548,232,9.057,233,10.232,234,7.933,235,7.933,236,2.114,237,10.352,238,5.961,239,3.079,240,7.933,241,7.933,242,7.933,243,7.933,244,7.933,245,3.203,246,8.365,247,3.472,248,4.809,249,4.941,250,5.358,251,9.571,252,6.646,253,3.884,254,6.646]],["title/classes/AccountByIdParams.html",[0,0.231,255,5.958]],["body/classes/AccountByIdParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.296,47,0.832,94,5.738,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,233,9.88,245,3.092,248,4.922,255,10.318,256,6.956,257,7.26,258,9.025]],["title/controllers/AccountController.html",[224,5.958,259,2.591]],["body/controllers/AccountController.html",[0,0.116,3,0.008,4,0.008,5,0.004,7,0.052,8,0.665,10,1.385,27,0.391,29,0.743,30,0.001,31,0.534,32,0.19,33,0.458,34,1.625,35,1.507,36,2.475,87,4.794,94,6.415,95,0.127,100,1.145,101,0.006,103,0,104,0,138,1.735,141,5.555,142,3.163,150,0.777,153,3.155,177,0.624,179,4.596,215,6.487,223,1.404,224,4.854,226,0.487,230,3.152,232,7.073,239,2.668,255,9.747,259,1.297,260,3.409,261,1.619,262,2.749,263,6.138,264,6.138,265,7.016,266,7.016,267,8.085,268,7.016,269,3.409,270,6.194,271,4.949,272,3.409,273,4.229,274,6.288,275,10.936,276,4.456,277,8.085,278,7.987,279,8.125,280,3.811,281,7.016,282,7.223,283,7.26,284,3.592,285,8.059,286,8.819,287,7.618,288,9.909,289,7.016,290,8.103,291,8.293,292,5.638,293,3.409,294,6.306,295,3.409,296,3.409,297,3.409,298,3.409,299,7.073,300,3.409,301,6.342,302,6.533,303,6.334,304,5.13,305,5.124,306,3.409,307,5.549,308,3.409,309,3.409,310,4.134,311,7.073,312,3.409,313,5.549,314,4.854,315,5.13,316,2.979,317,6.138,318,5.549,319,2.505,320,3.409,321,4.036,322,3.409,323,3.409,324,5.304,325,3.409,326,3.409,327,3.409,328,7.073,329,3.409,330,4.819,331,3.409,332,3.409,333,3.421,334,2.202,335,6.033,336,8.112,337,1.762,338,1.802,339,3.152,340,1.638,341,3.152,342,3.409,343,1.816,344,3.409,345,1.085,346,5.662,347,4.758,348,4.762,349,0.985,350,3.409,351,3.409,352,3.409,353,2.342,354,3.409,355,2.144,356,3.409,357,2.599,358,1.5,359,2.046,360,3.107,361,1.927,362,3.152,363,1.909,364,3.409,365,3.409,366,3.409,367,3.409,368,3.409,369,3.409,370,3.409,371,3.409,372,3.409,373,3.409,374,3.409]],["title/classes/AccountDto.html",[0,0.231,66,4.398]],["body/classes/AccountDto.html",[0,0.231,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,26,2.548,27,0.562,29,0.529,30,0.001,31,0.381,32,0.188,33,0.672,34,1.816,39,2.51,47,0.849,48,4.431,51,4.54,64,10.859,66,7.767,82,7.311,83,3.815,87,4.69,94,3.306,95,0.118,99,1.133,101,0.011,103,0.001,104,0.001,112,0.741,119,1.383,124,4.69,138,2.42,157,6.113,158,7.541,159,6.303,177,2.408,180,1.672,181,2.497,249,2.749,375,6.794,376,4.642,377,4.838,378,7.818,379,0.85,380,6.794,381,2.282,382,4.116,383,6.794,384,6.794,385,6.794,386,6.282,387,6.794,388,7.818,389,6.794,390,8.628,391,6.794,392,6.794,393,6.794,394,6.282,395,6.794,396,8.628,397,6.794,398,6.794,399,6.794,400,5.944,401,6.794,402,6.794,403,3.771,404,2.773,405,3.739,406,4.388,407,5.179,408,4.388,409,5.179]],["title/classes/AccountEntityToDtoMapper.html",[0,0.231,410,5.705]],["body/classes/AccountEntityToDtoMapper.html",[0,0.268,2,0.885,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.471,29,0.896,30,0.001,31,0.644,32,0.157,33,0.552,34,1.346,35,1.382,39,2.126,48,3.752,51,3.845,55,2.475,66,8.539,82,6.19,87,3.972,94,6.707,95,0.131,98,6.827,99,1.318,101,0.013,103,0.001,104,0.001,124,3.972,154,2.607,157,5.176,158,6.385,159,5.337,179,5.176,236,1.285,349,1.188,376,3.442,377,3.587,410,8.65,411,9.855,412,7.902,413,4.176,414,10.326,415,10.326,416,8.344,417,10.326,418,7.902,419,10.326,420,7.902,421,7.306,422,8.65,423,7.902,424,6.62,425,5.748,426,7.902,427,7.306,428,6.913,429,5.631,430,6.913,431,7.306,432,7.306,433,6.913,434,6.62,435,7.902,436,7.306,437,1.336,438,7.306,439,7.902,440,10.326,441,7.902,442,7.902,443,7.902,444,7.306]],["title/classes/AccountFactory.html",[0,0.231,445,5.503]],["body/classes/AccountFactory.html",[0,0.157,2,0.518,3,0.011,4,0.011,5,0.006,7,0.07,8,0.847,26,2.03,27,0.531,29,1.019,30,0.001,31,0.704,32,0.181,33,0.603,34,1.853,35,1.436,39,1.9,47,0.499,48,2.198,49,4.07,51,3.437,55,2.434,59,3.206,87,2.327,94,2.252,95,0.121,99,0.772,101,0.014,103,0,104,0,112,0.561,120,3.107,133,2.47,140,2.592,153,1.947,154,2.205,155,2.357,176,4.28,177,1.293,180,1.266,236,1.149,239,2.367,271,4.918,319,3.189,349,0.885,353,3.179,379,0.579,382,3.839,413,2.175,437,1.335,445,6.92,446,4.629,447,7.198,448,4.457,449,5.415,450,7.063,451,7.063,452,3.991,453,5.415,454,5.674,455,3.991,456,3.991,457,3.991,458,3.92,459,4.395,460,4.839,461,6.224,462,5.727,463,7.023,464,2.64,465,7.063,466,4.629,467,7.063,468,4.629,469,2.616,470,3.991,471,2.64,472,5.064,473,5.229,474,4.093,475,4.917,476,3.955,477,2.616,478,2.466,479,4.074,480,3.238,481,2.547,482,2.505,483,2.616,484,4.989,485,2.64,486,3.508,487,4.754,488,2.616,489,7.19,490,4.135,491,6.59,492,2.64,493,4.248,494,2.616,495,2.64,496,2.616,497,2.64,498,2.616,499,2.949,500,2.748,501,2.616,502,6.036,503,2.64,504,2.616,505,3.991,506,3.733,507,3.991,508,2.64,509,2.526,510,2.505,511,2.068,512,2.616,513,2.616,514,2.616,515,2.64,516,2.64,517,1.775,518,2.616,519,1.434,520,2.64,521,2.797,522,2.616,523,2.64,524,2.64,525,2.692,526,2.748,527,4.238,528,3.677,529,1.31,530,4.629,531,4.05,532,4.629,533,7.063,534,4.629,535,3.367,536,4.28,537,4.629,538,4.629]],["title/injectables/AccountIdmToDtoMapper.html",[539,0.901,540,5.503]],["body/injectables/AccountIdmToDtoMapper.html",[0,0.33,3,0.023,4,0.023,5,0.012,7,0.147,8,1.41,9,6.204,27,0.398,29,0.756,30,0.001,31,0.544,32,0.133,33,0.466,35,1.167,66,8.167,78,7.943,94,4.726,95,0.16,99,1.62,101,0.016,103,0.001,104,0.001,226,1.389,411,9.502,416,9.502,422,9.851,424,8.138,539,1.556,540,9.502,541,2.325,542,9.714,543,10.62,544,9.714]],["title/classes/AccountIdmToDtoMapperDb.html",[0,0.231,545,5.958]],["body/classes/AccountIdmToDtoMapperDb.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.343,27,0.368,29,0.699,30,0.001,31,0.503,32,0.123,33,0.431,34,1.529,35,1.079,39,2.415,48,4.263,51,4.368,66,8.258,78,7.567,83,2.756,94,5.451,95,0.155,99,1.498,101,0.015,103,0.001,104,0.001,180,2.008,236,1.822,349,0.927,376,3.91,377,4.075,378,7.521,382,2.709,411,7.254,416,9.053,422,9.385,424,7.521,425,6.53,429,6.397,437,1.161,540,10.333,543,10.333,545,9.8,546,8.977,547,8.3,548,8.3,549,10.683,550,10.357,551,8.3,552,7.854,553,7.854]],["title/classes/AccountIdmToDtoMapperIdm.html",[0,0.231,554,5.958]],["body/classes/AccountIdmToDtoMapperIdm.html",[0,0.306,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,8,1.347,27,0.369,29,0.702,30,0.001,31,0.505,32,0.123,33,0.433,34,1.536,35,1.083,39,2.426,48,4.282,51,4.387,66,8.271,78,7.588,83,2.769,94,5.466,95,0.155,99,1.504,101,0.015,103,0.001,104,0.001,180,2.013,236,1.827,349,0.931,376,3.928,377,4.093,378,7.554,382,2.721,411,7.287,416,9.078,422,9.411,424,7.554,425,6.559,429,6.426,437,1.166,540,10.35,543,10.35,547,8.337,548,8.337,549,10.705,550,10.386,552,7.889,553,7.889,554,9.828,555,9.018,556,2.271]],["title/injectables/AccountLookupService.html",[539,0.901,557,5.705]],["body/injectables/AccountLookupService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.082,8,0.95,26,2.522,27,0.385,29,0.731,30,0.001,31,0.526,32,0.128,33,0.451,34,2.433,35,1.243,36,2.201,47,0.559,49,4.914,78,5.353,94,3.856,95,0.146,99,0.901,101,0.009,103,0,104,0,133,2.771,143,1.765,153,2.134,177,1.451,226,0.772,236,1.289,262,2.524,333,3.354,349,1.19,353,7.911,379,0.991,425,3.927,437,1.025,482,5.599,524,5.356,539,1.049,541,1.293,557,6.64,558,9.565,559,5.399,560,4.259,561,11.289,562,5.443,563,7.711,564,3.989,565,7.248,566,9.565,567,9.051,568,5.05,569,7.372,570,4.864,571,7.926,572,6.209,573,5.353,574,5.895,575,7.926,576,6.934,577,10.077,578,6.988,579,6.135,580,7.926,581,7.328,582,5.399,583,8.36,584,7.797,585,5.399,586,7.926,587,7.926,588,5.399,589,10.346,590,6.35,591,5.846,592,12.21,593,4.266,594,10.346,595,6.507,596,7.328,597,5.399,598,3.109,599,3.927,600,3.354,601,4.23,602,4.363,603,1.592,604,3.22,605,7.328,606,4.724,607,7.926,608,1.827,609,5.399,610,5.399,611,5.399]],["title/modules/AccountModule.html",[201,1.804,213,4.853]],["body/modules/AccountModule.html",[0,0.228,3,0.016,4,0.016,5,0.008,30,0.001,95,0.174,99,1.118,101,0.011,103,0.001,104,0.001,143,1.493,201,2.804,203,2.411,204,2.591,205,2.666,206,2.655,207,2.644,208,3.876,209,3.98,213,10.169,214,5.742,216,10.366,217,7.425,218,3.677,219,2.612,220,2.55,225,3.647,226,0.958,227,2.76,236,1.504,349,0.955,474,2.864,540,8.553,545,8.089,554,8.089,557,10.366,584,6.933,598,3.86,599,4.876,600,4.164,601,5.252,612,6.704,613,6.704,614,6.704,615,6.704,616,9.694,617,10.304,618,11.826,619,10,620,10.826,621,12.374,622,9.001,623,6.704,624,6.704,625,5.865,626,6.704,627,6.704,628,10.584,629,6.704,630,6.704,631,3.44,632,6.704,633,6.198,634,6.704,635,6.704,636,3.898,637,4.777,638,6.704,639,3.146]],["title/interfaces/AccountParams.html",[105,0.735,640,5.705]],["body/interfaces/AccountParams.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.1,26,2.405,30,0.001,32,0.125,33,0.545,47,0.892,48,5.66,49,4.478,51,5.8,94,6.612,95,0.151,99,1.105,101,0.015,103,0.001,104,0.001,105,1.135,107,1.59,112,0.728,180,1.187,239,3.069,271,4.945,349,1.231,413,3.671,437,1.692,445,5.355,524,3.779,603,1.842,640,9.511,641,5.797,642,5.797,643,5.046,644,4.186,645,4.82,646,4.722,647,5.797,648,8.09,649,5.051,650,9.632,651,4.381,652,4.381,653,4.741,654,2.728,655,4.61,656,10.329,657,5.551,658,5.797,659,8.024,660,5.797,661,5.797,662,3.308,663,5.797,664,8.812,665,8.024,666,8.024,667,5.551,668,9.203,669,9.203,670,5.797,671,8.024,672,8.024,673,5.551,674,5.797,675,8.024,676,6.536,677,5.551]],["title/injectables/AccountRepo.html",[539,0.901,619,5.503]],["body/injectables/AccountRepo.html",[0,0.123,3,0.008,4,0.008,5,0.004,7,0.055,8,0.698,10,2.365,11,4.877,12,2.671,13,4.234,14,5.093,15,5.093,16,5.093,17,5.093,18,2.946,19,5.093,20,5.093,26,2.763,27,0.52,29,0.98,30,0.001,31,0.698,32,0.172,33,0.598,34,1.934,35,1.512,36,2.818,37,4.877,39,2.772,40,1.749,42,4.234,44,5.093,46,5.093,47,0.834,48,3.975,49,5.046,51,5.215,52,2.781,53,4.234,54,5.093,55,2.753,56,6.028,58,6.33,60,5.093,62,2.125,67,5.093,69,5.093,70,5.351,85,2.336,94,5.647,95,0.124,96,1.599,97,1.568,99,0.603,101,0.006,102,1.818,103,0,104,0,119,1.487,143,0.805,145,1.004,153,0.822,154,1.789,155,1.943,173,1.07,180,1.043,226,0.517,236,1.492,239,1.921,262,3.022,333,1.531,349,1.199,382,2.526,437,1.268,479,4.347,480,2.028,486,2.518,493,1.794,519,1.803,539,0.77,541,0.866,566,9.528,603,1.467,606,3.165,608,2.115,619,4.704,678,3.618,679,6.054,680,4.07,681,7.739,682,7.305,683,5.382,684,7.305,685,2.463,686,2.748,687,5.598,688,5.821,689,3.618,690,3.618,691,3.618,692,5.093,693,3.618,694,3.618,695,3.618,696,3.866,697,4.234,698,3.618,699,3.618,700,3.618,701,3.618,702,5.821,703,3.618,704,3.618,705,8.371,706,3.618,707,3.618,708,3.034,709,3.618,710,3.998,711,2.22,712,2.247,713,2.22,714,2.247,715,2.578,716,2.22,717,2.247,718,2.008,719,3.618,720,3.618,721,2.275,722,3.618,723,2.758,724,5.821,725,4.33,726,4.877,727,3.618,728,3.618,729,3.618,730,3.618,731,3.618,732,3.618,733,3.165,734,5.821,735,3.618,736,3.618,737,3.618,738,3.618,739,2.548,740,3.031,741,3.998,742,2.444,743,3.618,744,3.618,745,3.618,746,2.631,747,3.618,748,3.345,749,7.305,750,3.618,751,3.618,752,3.345,753,3.165,754,2.37,755,3.345,756,2.758,757,3.618,758,2.834,759,2.758,760,3.618,761,2.37,762,2.691,763,3.618,764,2.37,765,2.008,766,3.031,767,3.165,768,2.485,769,3.618,770,3.618,771,3.618]],["title/classes/AccountResponse.html",[0,0.231,279,5.503]],["body/classes/AccountResponse.html",[0,0.283,2,0.932,3,0.019,4,0.019,5,0.01,7,0.126,27,0.539,29,0.648,30,0.001,31,0.466,32,0.18,33,0.642,34,2.192,39,3.461,47,0.929,51,6.259,83,3.28,95,0.106,101,0.014,103,0.001,104,0.001,112,0.848,119,2.174,138,2.34,150,1.897,157,8.427,183,6.729,191,4.507,199,7.285,245,3.644,279,10.396,377,5.839,379,1.336,404,3.398,408,5.378,772,8.327,773,4.214,774,8.327,775,8.327,776,8.327,777,8.327,778,8.327,779,8.327]],["title/classes/AccountResponseMapper.html",[0,0.231,780,6.296]],["body/classes/AccountResponseMapper.html",[0,0.294,2,0.968,3,0.02,4,0.02,5,0.01,7,0.131,8,1.312,27,0.448,29,0.852,30,0.001,31,0.613,32,0.15,33,0.525,34,1.864,35,1.315,39,2.944,51,5.325,66,8.148,94,6.468,95,0.152,99,1.443,101,0.014,103,0.001,104,0.001,157,7.168,236,1.78,279,10.91,349,1.13,377,4.967,411,9.701,413,4.094,425,7.96,427,10.118,428,7.567,429,7.798,430,9.574,780,10.118,781,5.134,782,6.074,783,10.944,784,10.944,785,6.776,786,10.944,787,6.433,788,8.649,789,4.318,790,7.246]],["title/classes/AccountSaveDto.html",[0,0.231,64,5.335]],["body/classes/AccountSaveDto.html",[0,0.286,2,0.658,3,0.014,4,0.014,5,0.007,7,0.089,26,2.588,27,0.55,29,0.458,30,0.001,31,0.329,32,0.183,33,0.673,34,1.679,39,2.652,47,0.912,48,4.681,51,4.796,64,8.931,82,7.723,83,3.838,87,4.955,95,0.137,99,0.981,101,0.01,103,0,104,0,112,0.67,119,1.716,124,4.955,138,2.423,147,4.527,148,1.866,157,6.457,158,7.966,159,6.658,177,2.33,181,2.257,183,4.752,184,5.437,185,5.437,186,5.437,187,4.483,188,4.927,189,5.437,190,5.437,191,3.183,192,3.747,193,4.277,194,4.607,195,5.437,196,5.437,197,4.607,198,4.927,199,5.145,200,5.437,246,6.814,247,2.574,248,4.494,249,5.431,250,3.972,252,4.927,253,2.879,254,4.927,376,4.294,377,4.474,378,8.258,379,0.735,381,1.975,386,5.437,388,7.064,390,9.956,394,5.437,396,9.114,400,5.145,404,2.4,405,3.236,406,3.798,407,4.483,408,3.798,409,4.483,791,13.513,792,5.881,793,8.432,794,5.881,795,5.881,796,5.881,797,5.881,798,5.881,799,5.881,800,5.881,801,5.881,802,5.881,803,5.881,804,5.881,805,5.881,806,7.263,807,4.394,808,5.059,809,5.881,810,5.881,811,5.881]],["title/classes/AccountSearchListResponse.html",[0,0.231,317,5.958]],["body/classes/AccountSearchListResponse.html",[0,0.267,2,0.881,3,0.018,4,0.018,5,0.009,7,0.119,27,0.518,29,0.613,30,0.001,31,0.441,32,0.185,33,0.606,55,3.025,56,6.269,59,3.2,70,6.473,95,0.146,101,0.013,103,0.001,104,0.001,112,0.818,138,2.215,150,1.793,180,1.846,233,8.628,245,2.7,247,3.445,279,10.675,284,3.904,317,9.01,379,0.984,382,3.674,556,1.983,812,7.339,813,5.503,814,8.108,815,7.017,816,5.874,817,7.277,818,3.956,819,7.277,820,5.268,821,3.783,822,4.408,823,2.762,824,5.503,825,6.651,826,5.931,827,5.156,828,4.192,829,5.503,830,5.503,831,7.871,832,4.95,833,4.369]],["title/classes/AccountSearchQueryParams.html",[0,0.231,311,5.958]],["body/classes/AccountSearchQueryParams.html",[0,0.35,2,0.883,3,0.018,4,0.018,5,0.009,7,0.12,27,0.499,30,0.001,32,0.183,33,0.585,47,0.728,55,2.473,56,5.556,70,5.149,94,3.837,95,0.155,101,0.013,103,0.001,104,0.001,112,0.819,138,2.217,142,4.767,143,2.713,144,4.015,145,3.384,148,2.503,150,1.797,153,2.344,180,1.848,233,9.626,245,3.013,247,3.452,248,4.304,257,5.866,311,9.022,314,9.022,382,3.111,480,3.669,486,3.102,696,3.11,708,3.276,710,7.083,812,9.012,821,3.79,827,5.166,834,7.886,835,8.842,836,12.647,837,7.886,838,3.233,839,7.886,840,7.886,841,7.291,842,5.514,843,6.607,844,6.012,845,7.291,846,7.886,847,7.291,848,4.34,849,6.607,850,7.886,851,3.767,852,7.886]],["title/injectables/AccountServiceDb.html",[539,0.901,620,5.958]],["body/injectables/AccountServiceDb.html",[0,0.112,1,10.9,3,0.008,4,0.008,5,0.004,7,0.05,8,0.647,10,2.194,11,4.523,12,2.478,13,3.927,14,4.724,15,4.724,16,4.724,17,4.724,18,2.732,19,4.724,20,4.724,21,4.724,22,4.992,23,4.992,24,4.992,25,4.724,26,2.859,27,0.51,29,0.97,30,0.001,31,0.698,32,0.17,33,0.598,34,1.35,35,1.483,36,2.872,37,4.523,39,2.132,40,2.611,42,3.927,44,4.724,46,4.724,47,0.9,48,4.152,49,3.91,51,5.034,54,4.724,55,2.371,56,5.003,58,2.13,60,4.724,62,1.937,63,4.992,64,6.209,66,5.647,67,4.724,69,4.724,70,3.957,81,4.992,82,6.85,83,2.105,85,4.428,86,4.992,87,4.395,89,4.992,91,4.992,92,6.339,94,5.491,95,0.14,96,0.906,97,1.429,98,1.957,99,0.55,100,1.108,101,0.005,103,0,104,0,124,1.657,157,2.16,158,2.665,159,2.227,177,0.988,180,0.968,182,1.073,226,0.471,236,1.613,262,3.027,291,2.398,292,1.669,340,1.585,345,1.05,349,1.287,379,0.412,382,3.64,410,2.762,421,6.339,429,3.848,430,2.885,431,3.049,432,3.049,433,4.724,434,6.64,436,3.049,437,1.596,444,7.328,480,0.916,486,0.992,529,1.528,539,0.715,541,0.789,556,1.727,557,8.305,558,7.328,581,4.992,593,2,596,4.992,603,1.991,608,3.024,619,7.588,620,4.724,625,2.885,631,1.692,633,3.049,696,2.13,697,3.927,710,2.265,790,2.762,853,3.298,854,5.4,855,3.049,856,3.298,857,3.298,858,3.298,859,5.4,860,3.298,861,3.298,862,3.298,863,3.298,864,3.298,865,3.298,866,3.298,867,3.298,868,3.298,869,3.298,870,3.298,871,3.298,872,3.298,873,3.298,874,3.298,875,2.762,876,2.885,877,3.298,878,10.709,879,5.4,880,9.914,881,8.744,882,3.298,883,3.298,884,4.992,885,3.298,886,3.298,887,3.298,888,3.298,889,5.4,890,2.665,891,5.4,892,5.4,893,5.4,894,5.4,895,5.4,896,5.4,897,5.4,898,5.4,899,5.4,900,5.4,901,8.744,902,7.926,903,6.857,904,3.298,905,3.298,906,3.298,907,3.298,908,5.4,909,3.298,910,3.298,911,3.298,912,3.298,913,3.298,914,2.305,915,3.298,916,3.298,917,3.298]],["title/injectables/AccountValidationService.html",[539,0.901,618,5.958]],["body/injectables/AccountValidationService.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.1,8,1.098,26,2.926,27,0.465,29,0.883,30,0.001,31,0.635,32,0.155,33,0.544,35,1.263,36,2.622,39,3.465,47,0.923,48,5.387,49,2.609,59,3.266,85,8.16,94,4.458,95,0.151,99,1.104,101,0.011,103,0.001,104,0.001,154,1.414,179,4.334,217,7.581,226,0.946,227,2.724,262,2.865,345,2.106,349,1.086,379,0.827,410,5.542,425,4.812,428,5.788,437,1.467,478,3.524,539,1.213,541,1.584,593,2.45,603,1.329,608,2.423,618,8.015,619,9.959,625,5.788,653,5.432,708,4.713,855,6.117,884,6.117,918,6.616,919,9.162,920,9.162,921,9.162,922,6.616,923,9.162,924,6.616,925,9.162,926,6.616,927,9.162,928,6.616,929,6.616,930,6.616,931,6.117,932,3.641,933,3.927,934,5.183,935,4.215,936,5.542,937,3.809,938,6.117,939,6.117,940,6.616,941,6.616,942,6.616,943,6.616,944,6.117,945,9.162,946,9.162,947,6.616,948,6.616,949,4.06,950,3.07,951,6.616,952,6.616,953,6.616,954,6.616,955,9.162,956,6.616,957,9.162,958,6.616]],["title/interfaces/AdminIdAndToken.html",[105,0.735,959,5.503]],["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.124,34,1.813,36,2.783,39,3.43,47,0.996,51,4.029,55,1.552,72,2.603,83,1.761,87,3.625,95,0.105,101,0.014,103,0,104,0,105,0.778,107,0.852,112,0.455,119,1.978,124,5.35,133,1.242,143,0.791,177,1.05,180,0.636,226,0.508,236,1.478,239,1.655,262,2.866,316,3.872,324,4.19,347,2.1,349,1.364,379,0.444,437,1.377,479,1.33,490,1.259,509,1.938,517,2.765,519,1.1,521,4.471,529,2.571,539,0.759,603,2.402,608,2.24,639,1.666,653,1.835,662,3.943,676,4.086,761,4.725,823,2.906,842,2.482,959,8.601,960,2.869,961,2.975,962,5.043,963,2.045,964,6.312,965,2.326,966,2.782,967,2.707,968,4.492,969,3.938,970,4.492,971,4.492,972,4.492,973,4.634,974,1.717,975,3.156,976,2.975,977,2.975,978,2.975,979,2.975,980,2.975,981,2.975,982,2.583,983,2.975,984,2.975,985,2.975,986,2.293,987,7.613,988,1.531,989,2.869,990,1.939,991,2.398,992,2.482,993,1.971,994,2.53,995,2.975,996,5.392,997,5.328,998,5.328,999,5.636,1000,6.298,1001,7.927,1002,6.565,1003,6.042,1004,2.707,1005,2.975,1006,2.975,1007,2.482,1008,2.975,1009,2.975,1010,2.975,1011,2.782,1012,2.975,1013,5.651,1014,2.869,1015,2.975,1016,2.975,1017,2.975,1018,2.869,1019,2.975,1020,2.975,1021,2.975,1022,8.567,1023,2.975,1024,2.975,1025,1.389,1026,2.975,1027,2.975,1028,2.975,1029,2.975,1030,2.975,1031,2.975,1032,2.975,1033,2.975,1034,8.142,1035,8.142,1036,2.975,1037,2.975,1038,2.975,1039,2.975,1040,2.975,1041,2.975,1042,2.439,1043,2.975,1044,2.975,1045,2.975,1046,2.975,1047,2.975,1048,2.975,1049,2.975,1050,2.975,1051,2.975,1052,2.975,1053,2.975,1054,2.975,1055,2.975,1056,2.975,1057,4.371,1058,4.371,1059,2.975,1060,2.975,1061,2.975,1062,2.975,1063,2.975,1064,2.398,1065,2.975,1066,2.975,1067,2.975,1068,4.804,1069,2.975,1070,4.804,1071,4.804,1072,2.975,1073,2.975,1074,2.707,1075,6.042,1076,4.796,1077,4.427,1078,2.975,1079,3.368,1080,5.276,1081,4.371,1082,5.651,1083,6.042,1084,6.042,1085,6.042,1086,2.782,1087,2.975,1088,2.975,1089,2.975,1090,7.613,1091,6.042,1092,6.042,1093,6.042,1094,2.975,1095,4.804,1096,4.804,1097,2.975,1098,2.975,1099,2.975,1100,2.975,1101,2.975,1102,4.804,1103,4.492]],["title/modules/AntivirusModule.html",[201,1.804,1104,5.705]],["body/modules/AntivirusModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,8,1.028,27,0.351,29,0.668,30,0.001,31,0.48,32,0.117,33,0.411,35,1.03,95,0.159,101,0.014,103,0.001,104,0.001,107,2.058,145,2.381,201,3.167,203,3.084,208,3.141,209,3.225,226,1.226,236,1.395,349,1.124,413,3.352,437,1.109,490,3.041,636,6.329,637,6.111,1104,10.017,1105,8.576,1106,6.237,1107,7.476,1108,10.164,1109,8.576,1110,7.95,1111,10.063,1112,7.502,1113,10.461,1114,8.576,1115,8.576,1116,6.111,1117,5.203,1118,8.576,1119,6.93,1120,8.576,1121,5.327,1122,7.502,1123,5.538,1124,7.502,1125,11.957,1126,10.884,1127,7.502,1128,8.576,1129,8.576,1130,8.576,1131,6.718,1132,5.995,1133,8.576,1134,8.576,1135,8.576]],["title/interfaces/AntivirusModuleOptions.html",[105,0.735,1108,5.503]],["body/interfaces/AntivirusModuleOptions.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,32,0.183,47,1.012,55,2.625,101,0.02,103,0.001,104,0.001,105,1.316,107,2.149,112,0.888,119,2.677,990,3.028,1108,9.04,1117,7.979,1119,10.627,1121,8.168,1123,8.493,1132,8.933,1136,7.836,1137,10.704,1138,7.238,1139,5.707,1140,5.867,1141,5.867]],["title/injectables/AntivirusService.html",[539,0.901,1113,5.958]],["body/injectables/AntivirusService.html",[0,0.209,3,0.014,4,0.014,5,0.007,7,0.093,8,1.043,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,35,1.213,36,1.85,47,0.931,95,0.157,101,0.01,103,0,104,0,107,1.474,124,5.075,143,2.248,145,1.705,177,1.848,226,0.878,236,1.642,262,2.637,349,0.898,360,3.439,379,1.088,437,1.557,490,3.58,529,2.46,539,1.151,541,1.47,556,3.117,579,4.632,593,3.221,603,2.417,608,2.005,639,2.882,662,3.784,990,2.076,1111,10.153,1112,5.373,1113,7.608,1138,8.874,1139,6.996,1140,4.023,1141,4.023,1142,6.141,1143,8.697,1144,7.285,1145,7.608,1146,4.963,1147,8.952,1148,10.097,1149,6.141,1150,8.697,1151,6.906,1152,6.141,1153,5.697,1154,2.442,1155,8.697,1156,6.141,1157,8.697,1158,6.141,1159,7.825,1160,4.293,1161,3.966,1162,4.154,1163,4.376,1164,4.811,1165,4.963,1166,5.678,1167,3.862,1168,4.681,1169,4.811,1170,6.141,1171,10.097,1172,6.141,1173,6.141,1174,10.097,1175,6.141,1176,6.141,1177,6.141,1178,4.669,1179,5.782,1180,7.608,1181,6.141,1182,6.141,1183,8.697,1184,6.141,1185,8.697,1186,6.141,1187,6.141,1188,6.141,1189,5.373,1190,6.141,1191,6.141,1192,5.373,1193,5.373,1194,6.141,1195,6.141,1196,6.141,1197,6.141,1198,2.111,1199,6.141,1200,6.141,1201,6.141]],["title/interfaces/AntivirusServiceOptions.html",[105,0.735,1138,5.503]],["body/interfaces/AntivirusServiceOptions.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.177,47,1.01,55,1.99,101,0.02,103,0.001,104,0.001,105,1.335,107,2.218,112,0.906,119,2.701,990,3.126,1108,7.471,1117,8.052,1119,10.725,1121,8.244,1123,8.571,1132,6.464,1136,8.088,1137,7.745,1138,9.219,1139,5.891,1140,6.056,1141,6.056]],["title/classes/ApiValidationError.html",[0,0.231,1202,4.6]],["body/classes/ApiValidationError.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.539,29,0.602,30,0.001,31,0.433,32,0.186,33,0.546,35,0.929,47,0.803,55,1.664,95,0.129,101,0.013,103,0.001,104,0.001,112,0.809,138,2.286,177,2.495,180,1.825,182,2.516,226,1.106,283,7.423,347,2.833,379,0.967,382,3.893,511,3.455,595,4.865,820,5.55,823,2.714,950,5.281,988,3.336,990,4.249,1025,4.453,1202,6.877,1203,10.182,1204,7.735,1205,8.289,1206,6.899,1207,3.862,1208,7.252,1209,7.735,1210,7.735,1211,9.958,1212,4.995,1213,4.293,1214,4.995,1215,4.995,1216,4.995,1217,4.995,1218,4.995,1219,4.641,1220,4.412,1221,6.06,1222,6.48,1223,7.151,1224,5.702,1225,6.249,1226,4.865,1227,6.06]],["title/classes/ApiValidationErrorResponse.html",[0,0.231,1228,5.958]],["body/classes/ApiValidationErrorResponse.html",[0,0.221,2,0.729,3,0.015,4,0.015,5,0.008,7,0.099,8,1.086,27,0.525,29,0.705,30,0.001,31,0.507,32,0.185,33,0.541,35,0.782,47,0.905,55,1.401,95,0.143,101,0.011,103,0.001,104,0.001,112,0.719,153,2.059,168,3.712,177,2.415,180,1.623,226,0.931,283,7.72,340,3.128,348,4.523,361,3.678,379,0.814,382,3.573,437,1.348,480,2.515,486,2.725,519,2.806,603,2.093,823,3.179,950,5.495,988,2.807,990,4.004,1025,4.407,1202,8.282,1206,5.943,1207,3.597,1211,9.115,1219,7.697,1224,5.073,1225,7.72,1228,7.925,1229,11.266,1230,6.509,1231,7.579,1232,6.738,1233,7.379,1234,9.059,1235,9.059,1236,9.059,1237,9.115,1238,6.509,1239,6.509,1240,5.321,1241,5.167,1242,6.509,1243,3.995,1244,6.509,1245,5.694,1246,3.748,1247,6.509,1248,6.018,1249,4.203,1250,6.018,1251,9.059,1252,11.266,1253,6.509,1254,6.509,1255,6.509,1256,6.509,1257,6.509,1258,6.509,1259,9.059,1260,6.509,1261,6.509,1262,6.509,1263,6.509,1264,6.509,1265,6.509,1266,6.509,1267,6.509,1268,6.509]],["title/interfaces/AppStartInfo.html",[105,0.735,1269,5.958]],["body/interfaces/AppStartInfo.html",[0,0.286,3,0.025,4,0.02,5,0.01,7,0.128,30,0.001,32,0.171,33,0.634,47,0.969,55,2.553,95,0.107,101,0.014,103,0.001,104,0.001,105,0.91,107,2.023,112,0.855,177,1.543,284,3.326,330,5.791,345,2.684,349,0.871,437,1.091,556,2.988,828,4.491,1025,3.298,1132,8.739,1269,10.379,1270,7.796,1271,7.377,1272,11.298,1273,10.935,1274,10.935,1275,4.941,1276,5.526,1277,9.42,1278,2.668,1279,7.064,1280,2.635,1281,4.155,1282,7.796,1283,9.955,1284,7.796,1285,9.955,1286,7.796,1287,9.955,1288,7.796,1289,5.445,1290,7.796]],["title/classes/AppStartLoggable.html",[0,0.231,1279,5.705]],["body/classes/AppStartLoggable.html",[0,0.291,2,0.96,3,0.028,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.668,30,0.001,31,0.48,32,0.117,33,0.411,35,1.03,47,0.844,55,1.845,95,0.109,101,0.014,103,0.001,104,0.001,105,0.925,177,1.57,284,3.362,330,5.89,345,2.73,349,0.886,379,1.072,437,1.109,556,3.012,828,6.369,1025,3.355,1132,5.995,1269,11.003,1270,11.055,1271,7.502,1272,9.522,1273,7.502,1274,7.502,1275,5.487,1276,6.136,1277,9.522,1278,2.713,1279,9.118,1280,3.402,1281,6.198,1282,7.929,1283,10.063,1284,7.929,1285,10.063,1286,7.929,1287,10.063,1288,7.929,1289,5.538,1290,7.929,1291,8.576,1292,8.576,1293,8.576]],["title/interfaces/AppendedAttachment.html",[105,0.735,1294,5.065]],["body/interfaces/AppendedAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.504,47,1.004,77,5.732,101,0.015,103,0.001,104,0.001,105,1.47,107,2.159,112,0.891,180,2.36,1294,9.092,1295,6.859,1296,9.518,1297,10.038,1298,6.859,1299,5.038,1300,8.344,1301,6.544,1302,6.859,1303,6.544,1304,9.092,1305,6.859,1306,8.344,1307,8.551,1308,8.551,1309,8.344,1310,6.806,1311,6.692,1312,6.692,1313,6.859,1314,6.859]],["title/modules/AuthenticationApiModule.html",[201,1.804,1315,5.335]],["body/modules/AuthenticationApiModule.html",[0,0.316,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.288,203,3.348,204,3.598,205,3.703,206,3.687,207,3.672,208,4.546,209,4.308,218,4.557,219,3.627,220,3.541,222,5.783,223,4.717,225,4.519,226,1.331,1315,10.854,1316,9.31,1317,9.31,1318,9.31,1319,8.87,1320,11.343,1321,9.31,1322,10.859,1323,9.31,1324,9.31,1325,8.607]],["title/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.231,1326,5.503]],["body/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.288,2,0.948,3,0.02,4,0.02,5,0.01,7,0.128,27,0.542,29,0.659,30,0.001,31,0.474,32,0.181,33,0.406,47,0.96,95,0.107,101,0.014,103,0.001,104,0.001,112,0.857,181,2.89,379,1.059,381,2.844,950,6.423,1326,10.449,1327,13.437,1328,10.993,1329,8.467,1330,8.47,1331,9.605,1332,10.399,1333,10.399,1334,10.797,1335,8.467,1336,8.467,1337,9.982,1338,8.467,1339,8.467,1340,7.828,1341,7.093,1342,6.298,1343,7.828,1344,8.467,1345,8.467,1346,8.467,1347,8.467,1348,8.467,1349,8.467,1350,8.467,1351,7.408,1352,8.467]],["title/modules/AuthenticationModule.html",[201,1.804,1319,4.461]],["body/modules/AuthenticationModule.html",[0,0.189,3,0.013,4,0.013,5,0.007,30,0.001,32,0.076,95,0.174,101,0.009,103,0,104,0,201,2.529,203,1.998,204,2.147,205,2.21,206,2.2,207,2.191,208,3.496,209,3.589,213,8.291,214,5.399,217,6.981,218,3.219,219,2.165,220,2.114,225,3.192,226,0.794,227,2.287,236,0.904,437,1.356,529,1.572,578,3.371,599,4.041,600,3.451,616,9.115,622,8.463,1232,4.132,1278,1.758,1319,9.353,1353,5.556,1354,5.556,1355,5.556,1356,5.556,1357,9.402,1358,9.115,1359,8.654,1360,8.134,1361,9.717,1362,10.179,1363,9.402,1364,9.747,1365,10.179,1366,8.134,1367,10.179,1368,10.179,1369,5.556,1370,5.556,1371,9.546,1372,4.861,1373,8.093,1374,4.132,1375,4.861,1376,4.235,1377,5.556,1378,4.654,1379,3.884,1380,8.733,1381,11.147,1382,4.132,1383,4.654,1384,4.861,1385,4.654,1386,5.137,1387,5.137,1388,4.861,1389,5.556,1390,5.556,1391,5.556,1392,5.556,1393,3.959,1394,4.353,1395,3.639,1396,5.137,1397,5.556,1398,4.861,1399,5.137,1400,3.884,1401,5.137,1402,5.556,1403,5.556,1404,5.556,1405,4.654,1406,5.556,1407,5.556,1408,5.556,1409,5.556,1410,5.556,1411,5.556,1412,5.556,1413,5.556,1414,3.884,1415,5.556,1416,5.556,1417,3.298,1418,5.556,1419,9.546,1420,5.556,1421,4.235,1422,5.556,1423,5.137,1424,5.556,1425,3.451,1426,5.556,1427,4.654,1428,5.556,1429,5.556,1430,3.231,1431,5.137,1432,5.556,1433,5.556]],["title/interfaces/AuthenticationResponse.html",[105,0.735,1434,5.958]],["body/interfaces/AuthenticationResponse.html",[0,0.177,3,0.012,4,0.012,5,0.006,7,0.079,30,0.001,32,0.071,36,1.11,47,0.97,51,3.76,55,1.123,87,3.884,94,3.76,95,0.129,99,0.87,101,0.009,103,0,104,0,105,0.563,107,1.252,112,0.614,119,1.062,133,1.824,137,4.86,177,1.685,226,0.746,236,1.655,261,2.477,262,1.143,271,2.041,284,2.843,324,5.757,349,1.332,360,7.423,429,3.718,437,1.788,529,2.186,531,6.761,593,1.932,603,2.481,608,1.203,662,3.578,696,3.048,708,2.167,754,3.418,823,3.23,990,1.764,1086,6.054,1154,2.075,1224,2.922,1417,6.449,1434,8.902,1435,4.824,1436,4.824,1437,7.565,1438,9.408,1439,6.761,1440,4.824,1441,4.824,1442,3.795,1443,4.564,1444,4.824,1445,4.371,1446,4.824,1447,4.824,1448,4.564,1449,6.761,1450,4.824,1451,3.324,1452,4.824,1453,4.824,1454,3.718,1455,4.564,1456,4.371,1457,4.216,1458,2.948,1459,6.694,1460,8.509,1461,4.824,1462,4.824,1463,7.145,1464,7.145,1465,4.824,1466,10.519,1467,4.824,1468,4.824,1469,10.044,1470,10.044,1471,11.616,1472,4.824,1473,4.824,1474,10.044,1475,4.824,1476,9.408,1477,4.824,1478,4.824,1479,7.71,1480,4.824,1481,4.824,1482,4.824,1483,4.824,1484,4.824,1485,4.824,1486,4.824,1487,4.824,1488,7.145,1489,4.824,1490,4.564,1491,4.824,1492,3.977,1493,7.145,1494,4.824,1495,4.824,1496,4.824,1497,7.145,1498,4.824,1499,7.145,1500,4.824,1501,4.824,1502,7.145,1503,4.824,1504,4.824,1505,4.824,1506,7.145,1507,3.324,1508,4.824,1509,4.824,1510,4.824,1511,4.824,1512,4.824,1513,4.824,1514,4.824,1515,4.824,1516,4.824,1517,4.824]],["title/injectables/AuthenticationService.html",[539,0.901,1361,5.065]],["body/injectables/AuthenticationService.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,21,6.703,27,0.494,29,0.938,30,0.001,31,0.675,32,0.168,33,0.578,34,0.879,35,1.409,36,2.564,47,0.971,48,5.38,51,3.728,59,1.602,66,6.982,73,4.768,74,4.167,77,3.286,83,1.583,87,2.592,94,5.512,95,0.166,101,0.008,103,0,104,0,143,1.148,177,1.852,179,3.378,226,0.737,236,1.759,239,1.183,262,2.82,285,5.019,349,1.045,379,0.958,433,4.512,437,1.465,519,2.373,529,2.168,539,1.014,541,1.235,556,1.299,584,7.684,593,3.386,598,2.97,601,4.04,603,2.032,608,2.492,617,8.942,739,3.354,944,4.768,1233,3.378,1361,5.699,1363,9.479,1372,4.512,1376,3.931,1382,3.836,1387,4.768,1388,4.512,1417,3.061,1437,3.429,1442,3.751,1507,3.286,1518,5.157,1519,7.662,1520,7.662,1521,7.083,1522,7.662,1523,7.662,1524,7.662,1525,5.157,1526,11.329,1527,5.157,1528,7.662,1529,5.157,1530,7.662,1531,7.927,1532,5.157,1533,7.083,1534,5.157,1535,7.662,1536,5.157,1537,7.662,1538,5.157,1539,7.662,1540,5.157,1541,5.157,1542,7.662,1543,5.157,1544,3.836,1545,4.167,1546,3.836,1547,4.512,1548,4.512,1549,7.662,1550,3.751,1551,5.573,1552,4.512,1553,4.32,1554,4.32,1555,2.888,1556,7.161,1557,3.606,1558,5.157,1559,5.157,1560,5.157,1561,4.768,1562,6.799,1563,5.157,1564,5.157,1565,5.157,1566,5.157,1567,7.083,1568,5.157,1569,7.662,1570,7.662,1571,5.157,1572,7.662,1573,4.768,1574,5.157,1575,3.751,1576,4.512,1577,7.083,1578,5.157,1579,5.157,1580,5.157,1581,5.157,1582,2.999,1583,5.157,1584,4.04,1585,5.157,1586,5.157,1587,5.157]],["title/classes/AuthenticationValues.html",[0,0.231,1588,6.296]],["body/classes/AuthenticationValues.html",[0,0.326,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,27,0.515,29,0.747,30,0.001,31,0.538,32,0.172,33,0.461,47,0.924,101,0.016,103,0.001,104,0.001,112,0.927,181,3.124,379,1.2,381,3.224,1588,12.402,1589,7.329,1590,13.089,1591,9.598,1592,12.58,1593,12.58,1594,11.674,1595,9.598,1596,9.598,1597,9.598,1598,9.598,1599,9.598]],["title/interfaces/AuthorizableObject.html",[105,0.735,1600,3.96]],["body/interfaces/AuthorizableObject.html",[0,0.33,3,0.023,4,0.023,5,0.012,9,4.586,26,2.679,30,0.001,34,2.003,95,0.123,101,0.019,103,0.001,104,0.001,105,1.048,107,2.331,181,2.6,349,1.215,381,3.95,437,1.256,448,3.982,479,4.737,662,3.698,1280,3.036,1600,7.354,1601,8.981,1602,8.499,1603,3.653,1604,4.111,1605,9.851,1606,8.981,1607,6.274,1608,10.872]],["title/interfaces/AuthorizationContext.html",[105,0.735,1609,3.686]],["body/interfaces/AuthorizationContext.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.164,95,0.152,99,1.677,101,0.017,103,0.001,104,0.001,105,1.085,107,2.413,112,0.953,643,5.908,1609,6.497,1610,8.796,1611,9.296,1612,7.731,1613,8.159,1614,10.054]],["title/classes/AuthorizationContextBuilder.html",[0,0.231,1615,4.132]],["body/classes/AuthorizationContextBuilder.html",[0,0.279,2,0.919,3,0.019,4,0.019,5,0.01,7,0.124,8,1.269,27,0.48,29,0.912,30,0.001,31,0.656,32,0.169,33,0.562,35,1.407,95,0.134,99,1.369,101,0.014,103,0.001,104,0.001,131,4.912,349,1.21,413,4.206,437,1.515,454,5.026,603,2.353,643,6.121,1609,7.22,1612,7.439,1613,7.595,1615,6.421,1616,12.374,1617,8.208,1618,6.421,1619,7.037,1620,10.584,1621,8.208,1622,10.584,1623,8.208,1624,10.584,1625,8.208,1626,10.584,1627,5.638,1628,5.377]],["title/classes/AuthorizationError.html",[0,0.231,1629,6.296]],["body/classes/AuthorizationError.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.539,29,0.602,30,0.001,31,0.433,32,0.186,33,0.546,35,0.929,47,0.911,55,1.664,59,3.164,95,0.129,101,0.013,103,0.001,104,0.001,112,0.809,138,2.286,177,2.495,180,1.825,182,2.516,226,1.106,347,2.833,379,0.967,382,3.893,820,5.55,823,2.714,950,5.281,988,5.217,990,4.249,1025,4.916,1205,8.289,1206,7.503,1207,3.862,1208,7.252,1212,4.995,1213,4.293,1214,4.995,1215,4.995,1216,4.995,1217,4.995,1218,4.995,1219,4.641,1220,4.412,1221,6.06,1226,4.865,1612,4.256,1629,9.414,1630,7.735,1631,7.977,1632,7.735,1633,7.735,1634,4.804,1635,6.767,1636,7.151]],["title/injectables/AuthorizationHelper.html",[539,0.901,1637,4.23]],["body/injectables/AuthorizationHelper.html",[0,0.206,3,0.014,4,0.014,5,0.007,7,0.092,8,1.035,27,0.473,29,0.961,30,0.001,31,0.647,32,0.169,33,0.554,35,1.387,47,0.918,95,0.127,96,1.669,101,0.01,103,0,104,0,119,2.61,143,1.353,145,2.396,154,2.637,173,1.797,226,0.869,239,3.175,276,4.908,349,1.274,437,1.631,479,4.722,528,3.164,539,1.142,541,1.455,603,2.016,604,3.507,662,4.178,696,2.396,739,5.4,1154,2.417,1613,7.872,1637,5.361,1638,6.076,1639,8.631,1640,10.492,1641,8.631,1642,7.98,1643,8.631,1644,8.631,1645,10.038,1646,12.607,1647,6.076,1648,7.98,1649,6.076,1650,8.631,1651,6.076,1652,7.98,1653,6.076,1654,8.631,1655,10.929,1656,6.076,1657,4.098,1658,3.646,1659,5.618,1660,7.551,1661,7.98,1662,5.618,1663,5.045,1664,5.316,1665,8.631,1666,2.571,1667,6.076,1668,3.98,1669,3.821,1670,4.91,1671,4.632,1672,3.164,1673,5.618,1674,5.618,1675,5.237,1676,6.076,1677,6.076,1678,6.076,1679,5.268,1680,6.076,1681,6.076]],["title/interfaces/AuthorizationLoaderService.html",[105,0.735,1682,5.503]],["body/interfaces/AuthorizationLoaderService.html",[3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,12,5.349,26,2.84,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,34,1.631,35,1.15,36,2.674,40,6.077,95,0.159,99,1.597,101,0.019,103,0.001,104,0.001,105,1.258,107,2.298,133,3.348,180,1.716,1600,5.568,1610,10.198,1682,10.155,1683,9.132,1684,8.377,1685,9.576,1686,5.568,1687,5.948,1688,6.823,1689,7.299,1690,8.022]],["title/interfaces/AuthorizationLoaderServiceGeneric.html",[105,0.735,1690,5.705]],["body/interfaces/AuthorizationLoaderServiceGeneric.html",[3,0.022,4,0.022,5,0.011,7,0.144,8,1.393,12,5.333,26,2.836,27,0.39,29,0.742,30,0.001,31,0.534,32,0.13,33,0.457,34,1.623,35,1.145,36,2.669,40,6.064,95,0.159,99,1.59,101,0.019,103,0.001,104,0.001,105,1.254,107,2.287,133,3.333,180,2.083,1600,5.542,1610,10.168,1682,10.134,1683,9.106,1684,8.338,1686,5.542,1687,5.92,1688,6.791,1689,7.265,1690,9.737,1691,9.53]],["title/modules/AuthorizationModule.html",[201,1.804,1692,3.716]],["body/modules/AuthorizationModule.html",[0,0.217,3,0.015,4,0.015,5,0.008,30,0.001,95,0.159,101,0.011,103,0.001,104,0.001,201,2.732,203,2.296,204,2.467,205,2.539,206,2.529,207,2.518,208,3.777,209,3.878,214,5.655,217,7.312,218,3.555,219,2.487,220,2.429,225,3.525,226,0.913,227,2.629,1278,2.02,1637,7.57,1692,7.908,1693,6.385,1694,6.385,1695,6.385,1696,6.385,1697,9.848,1698,7.085,1699,11.23,1700,10.209,1701,10.209,1702,9.848,1703,9.064,1704,9.848,1705,10.209,1706,10.209,1707,9.848,1708,10.209,1709,10.209,1710,10.209,1711,9.848,1712,10.209,1713,10.209,1714,10.209,1715,6.385,1716,5.586,1717,6.385,1718,2.689,1719,3.874,1720,5.002]],["title/classes/AuthorizationParams.html",[0,0.231,1721,5.335]],["body/classes/AuthorizationParams.html",[0,0.369,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,27,0.531,30,0.001,32,0.177,33,0.654,47,0.962,95,0.138,101,0.014,102,5.456,103,0.001,104,0.001,112,0.862,138,2.358,148,2.71,238,6.872,248,5.41,249,5.245,388,9.093,400,7.47,808,7.16,851,4.079,950,5.537,990,4.035,1721,8.504,1722,8.539,1723,9.349,1724,11.033,1725,7.895,1726,8.539,1727,11.033,1728,7.895,1729,8.539,1730,8.539,1731,8.539,1732,8.539,1733,7.895,1734,5.44,1735,7.895,1736,7.895]],["title/modules/AuthorizationReferenceModule.html",[201,1.804,1737,5.065]],["body/modules/AuthorizationReferenceModule.html",[0,0.216,3,0.015,4,0.015,5,0.008,30,0.001,72,4.048,95,0.158,101,0.01,103,0.001,104,0.001,153,1.447,201,3.311,203,2.289,204,2.46,205,2.531,206,2.521,207,2.51,208,3.771,209,3.871,214,5.649,217,7.305,218,3.547,219,2.48,220,2.421,225,3.517,226,0.91,227,2.62,238,5.135,284,3.446,358,4.908,493,4.423,1278,2.014,1366,8.512,1634,5.539,1637,7.562,1666,2.693,1692,6.961,1718,2.681,1737,10.646,1738,6.365,1739,6.365,1740,6.365,1741,6.365,1742,10.496,1743,9.538,1744,7.387,1745,7.975,1746,9.838,1747,9.055,1748,9.28,1749,8.512,1750,8.362,1751,6.365,1752,6.365,1753,6.235,1754,8.918,1755,5.842,1756,6.125,1757,8.918,1758,6.125,1759,6.125,1760,5.93,1761,8.74,1762,5.351,1763,7.802,1764,6.355,1765,7.207,1766,8.245,1767,7.418,1768,6.633,1769,5.332,1770,6.633,1771,4.629,1772,6.365,1773,3.473,1774,6.365,1775,4.535,1776,6.365]],["title/injectables/AuthorizationReferenceService.html",[539,0.901,1742,5.335]],["body/injectables/AuthorizationReferenceService.html",[0,0.237,3,0.016,4,0.016,5,0.008,7,0.106,8,1.14,26,2.994,27,0.443,29,0.842,30,0.001,31,0.606,32,0.159,33,0.519,35,1.142,36,2.47,39,3.122,95,0.159,99,1.165,101,0.012,103,0.001,104,0.001,131,4.955,133,3.325,153,1.587,177,1.741,201,2.519,226,0.998,236,1.136,239,1.602,262,2.745,345,2.223,349,0.721,358,4.183,379,0.873,437,1.23,511,4.248,529,1.976,539,1.258,541,1.672,563,5.644,603,1.403,608,2.192,662,3.94,687,6.602,932,3.843,990,2.361,1609,6.938,1634,5.906,1675,5.769,1683,7.449,1698,6.775,1742,7.449,1746,9.379,1777,11.607,1778,6.456,1779,7.683,1780,8.318,1781,9.508,1782,10.811,1783,10.811,1784,6.983,1785,6.983,1786,6.983,1787,9.135,1788,6.983,1789,6.983,1790,6.983,1791,6.456,1792,5.471,1793,6.983,1794,6.983,1795,6.109,1796,4.237,1797,6.983,1798,5.471]],["title/injectables/AuthorizationService.html",[539,0.901,1698,3.599]],["body/injectables/AuthorizationService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.082,8,0.947,26,2.187,27,0.5,29,0.95,30,0.001,31,0.683,32,0.17,33,0.585,35,1.428,36,1.681,39,1.447,47,0.916,95,0.155,99,0.897,101,0.009,103,0,104,0,119,2.341,131,4.74,133,4.425,143,1.197,177,1.715,217,7.133,226,0.769,227,2.214,236,1.524,239,3.191,262,2.053,349,1.067,379,0.988,437,1.212,519,3.563,529,2.65,539,1.046,541,1.287,560,2.214,591,3.039,603,1.882,608,1.24,662,4.319,990,1.818,1600,6.913,1609,6.434,1613,8.231,1637,7.384,1640,6.913,1642,7.306,1648,7.306,1652,7.306,1666,3.344,1675,6.265,1686,6.913,1687,3.34,1698,4.177,1708,9.635,1780,4.705,1792,7.339,1799,5.378,1800,7.902,1801,7.902,1802,5.631,1803,9.368,1804,5.378,1805,5.378,1806,7.902,1807,5.378,1808,7.902,1809,5.378,1810,7.902,1811,5.378,1812,7.902,1813,5.378,1814,5.378,1815,5.378,1816,5.103,1817,5.378,1818,6.229,1819,5.378,1820,4.908,1821,4.346,1822,5.378,1823,5.378,1824,5.378,1825,5.378,1826,5.378,1827,5.254,1828,7.902,1829,4.213,1830,5.378,1831,7.902,1832,4.213]],["title/injectables/AutoContextIdStrategy.html",[539,0.901,1833,5.958]],["body/injectables/AutoContextIdStrategy.html",[0,0.309,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,27,0.373,29,0.709,30,0.001,31,0.51,32,0.124,33,0.437,35,1.093,47,0.797,95,0.163,101,0.015,103,0.001,104,0.001,131,4.602,226,1.301,349,0.94,363,6.326,539,1.495,541,2.178,556,2.846,564,3.469,654,2.706,1280,2.844,1589,6.326,1833,9.883,1834,9.129,1835,9.129,1836,8.413,1837,9.129,1838,9.129,1839,7.037,1840,7.006,1841,8.413,1842,5.567,1843,8.85,1844,5.96,1845,7.623,1846,8.413]],["title/injectables/AutoContextNameStrategy.html",[539,0.901,1847,5.958]],["body/injectables/AutoContextNameStrategy.html",[0,0.21,3,0.014,4,0.014,5,0.007,7,0.094,8,1.048,26,2.627,27,0.451,29,0.858,30,0.001,31,0.617,32,0.151,33,0.529,35,1.218,36,2.567,47,0.778,95,0.163,99,1.032,101,0.01,103,0,104,0,131,4.519,177,1.856,226,0.885,236,1.007,262,2.822,349,1.201,363,6.509,379,1.093,437,1.56,486,1.862,529,1.751,539,1.157,541,1.481,556,2.202,564,2.685,603,2.587,608,2.781,654,1.841,990,2.092,1246,5.035,1280,1.934,1589,6.509,1771,4.501,1834,9.393,1835,9.393,1837,8.193,1838,5.001,1839,6.426,1840,6.364,1842,4.309,1843,6.85,1844,4.054,1845,5.184,1847,7.649,1848,6.188,1849,8.744,1850,8.744,1851,5.721,1852,8.149,1853,9.02,1854,9.453,1855,6.188,1856,8.744,1857,6.188,1858,4.848,1859,8.744,1860,6.188,1861,2.956,1862,6.188,1863,5.001,1864,7.066,1865,4.326,1866,5.19,1867,3.755,1868,4.41,1869,3.892,1870,3.011,1871,7.649,1872,3.892,1873,5.414,1874,4.41,1875,8.744,1876,6.188,1877,5.414,1878,8.744,1879,6.188,1880,6.188,1881,4.603,1882,4.603,1883,2.559,1884,6.188,1885,2.582,1886,6.188,1887,6.188,1888,4.717,1889,6.005,1890,6.188]],["title/interfaces/AutoParameterStrategy.html",[105,0.735,1843,5.335]],["body/interfaces/AutoParameterStrategy.html",[3,0.022,4,0.022,5,0.011,7,0.142,8,1.381,27,0.385,29,0.732,30,0.001,31,0.526,32,0.128,33,0.451,35,1.129,36,2.452,47,0.813,95,0.146,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,131,3.52,363,6.453,556,2.903,564,3.538,654,2.795,1589,6.453,1834,9.312,1835,9.312,1837,10.072,1838,7.593,1839,7.228,1840,7.054,1842,5.678,1843,9.027,1891,9.397,1892,9.397]],["title/injectables/AutoSchoolIdStrategy.html",[539,0.901,1893,5.958]],["body/injectables/AutoSchoolIdStrategy.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.135,8,1.334,27,0.364,29,0.691,30,0.001,31,0.497,32,0.121,33,0.426,35,1.067,47,0.785,95,0.161,101,0.015,103,0.001,104,0.001,131,3.326,226,1.269,349,0.917,363,6.23,521,3.516,539,1.472,541,2.125,556,2.802,564,3.416,654,3.614,996,4.241,997,4.191,998,4.191,999,4.433,1000,4.845,1280,2.775,1589,6.23,1834,8.99,1835,8.99,1836,8.208,1837,9.818,1838,7.174,1839,7.128,1840,6.969,1841,8.208,1842,5.482,1843,8.715,1844,5.816,1845,7.438,1893,9.733,1894,6.458,1895,6.326,1896,7.767]],["title/injectables/AutoSchoolNumberStrategy.html",[539,0.901,1897,5.958]],["body/injectables/AutoSchoolNumberStrategy.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,8,1.267,27,0.433,29,0.823,30,0.001,31,0.592,32,0.144,33,0.507,35,0.984,36,2.249,95,0.166,99,1.366,101,0.013,103,0.001,104,0.001,131,3.068,177,1.499,226,1.171,262,2.564,345,2.607,349,0.846,363,6.553,379,1.024,437,1.059,521,3.244,539,1.399,541,1.961,564,3.245,608,1.888,654,3.898,996,3.913,997,3.867,998,3.867,999,4.09,1000,4.47,1280,2.56,1589,6.553,1834,9.456,1835,9.456,1837,9.456,1838,6.619,1839,6.981,1840,6.843,1842,5.208,1843,8.28,1844,5.366,1845,6.862,1894,5.958,1895,5.837,1897,9.247,1898,8.192,1899,6.619,1900,7.776,1901,8.192,1902,6.924,1903,8.192,1904,4.587,1905,5.919,1906,7.573,1907,6.619]],["title/classes/AxiosResponseImp.html",[0,0.231,1908,6.296]],["body/classes/AxiosResponseImp.html",[0,0.256,2,0.845,3,0.018,4,0.018,5,0.009,7,0.114,27,0.525,29,0.588,30,0.001,31,0.423,32,0.181,33,0.362,47,0.845,55,2.42,95,0.127,101,0.017,103,0.001,104,0.001,112,0.795,181,2.681,236,1.829,278,5.183,284,3.85,347,4.566,349,0.779,379,0.944,381,2.535,437,0.976,447,4.153,479,4.212,521,2.989,526,4.479,833,4.189,996,3.605,997,3.562,998,3.562,999,3.768,1000,4.118,1079,7.527,1280,3.131,1908,10.396,1909,13.075,1910,6.977,1911,8.012,1912,5.752,1913,12.466,1914,12.466,1915,10.017,1916,11.978,1917,7.546,1918,12.466,1919,7.546,1920,7.546,1921,6.977,1922,10.017,1923,5.276,1924,10.017,1925,4.084,1926,7.546,1927,4.433,1928,5.276,1929,7.546,1930,7.546,1931,7.546,1932,7.546,1933,6.098,1934,6.322,1935,5.276,1936,7.546,1937,6.977]],["title/classes/BBBBaseMeetingConfig.html",[0,0.231,1938,5.065]],["body/classes/BBBBaseMeetingConfig.html",[0,0.335,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.486,29,0.768,30,0.001,31,0.552,32,0.162,33,0.473,47,0.837,101,0.016,103,0.001,104,0.001,112,0.942,379,1.233,1912,4.548,1938,10.051,1939,6.578,1940,11.134,1941,7.259,1942,9.857,1943,9.068,1944,10.378,1945,9.857,1946,9.857,1947,9.113,1948,8.623]],["title/interfaces/BBBBaseResponse.html",[105,0.735,1949,4.761]],["body/interfaces/BBBBaseResponse.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.174,47,0.97,95,0.126,101,0.016,103,0.001,104,0.001,105,1.069,107,2.377,112,0.945,1025,5.175,1939,5.12,1949,8.318,1950,8.298,1951,9.906,1952,13.229,1953,13.229,1954,12.23,1955,5.943,1956,8.005]],["title/classes/BBBCreateConfig.html",[0,0.231,1957,5.705]],["body/classes/BBBCreateConfig.html",[0,0.234,2,0.772,3,0.016,4,0.016,5,0.008,7,0.105,27,0.552,29,0.537,30,0.001,31,0.739,32,0.184,33,0.669,47,0.965,95,0.087,101,0.016,103,0.001,104,0.001,112,0.749,119,2.35,180,1.69,379,0.863,382,2.082,838,2.163,1912,3.183,1938,8.59,1939,6.965,1940,11.788,1941,3.935,1943,6.72,1944,8.25,1947,6.379,1948,6.036,1955,4.14,1957,10.13,1958,6.899,1959,10.744,1960,10.744,1961,10.921,1962,6.939,1963,10.744,1964,9.771,1965,6.654,1966,10.744,1967,10.744,1968,9.933,1969,6.899,1970,6.899,1971,6.899,1972,6.899,1973,6.899,1974,6.899,1975,6.899,1976,6.899,1977,6.899,1978,6.899,1979,6.379,1980,6.379,1981,9.43,1982,9.43,1983,9.43,1984,6.379,1985,2.744,1986,6.899,1987,5.132,1988,6.899,1989,6.899,1990,6.899,1991,6.899,1992,6.899,1993,6.899,1994,6.899,1995,6.899,1996,6.899,1997,6.899,1998,6.899,1999,6.899,2000,6.899]],["title/classes/BBBCreateConfigBuilder.html",[0,0.231,2001,5.958]],["body/classes/BBBCreateConfigBuilder.html",[0,0.239,2,0.787,3,0.016,4,0.016,5,0.008,7,0.107,8,1.145,27,0.514,29,0.906,30,0.001,31,0.682,32,0.166,33,0.559,35,1.462,47,0.906,95,0.138,101,0.012,102,3.534,103,0.001,104,0.001,112,0.759,119,2.208,141,3.359,143,1.566,177,1.749,180,1.712,349,1.257,382,2.882,448,3.916,454,5.527,478,3.745,479,2.634,480,3.013,517,2.696,685,5.312,764,4.606,990,2.377,1939,6.291,1955,4.219,1957,9.09,1961,10.983,1962,6.17,1964,5.682,1965,3.87,1968,8.833,2001,11.72,2002,11.254,2003,6.501,2004,8.48,2005,8.003,2006,9.553,2007,9.553,2008,9.553,2009,9.553,2010,6.501,2011,7.032,2012,9.553,2013,7.032,2014,9.553,2015,7.032,2016,9.553,2017,7.032,2018,9.553,2019,7.032,2020,3.078,2021,3.443,2022,3.319,2023,4.48,2024,5.23,2025,7.032,2026,7.032,2027,7.032,2028,7.032,2029,4.541,2030,7.032,2031,6.501,2032,5.23,2033,6.152,2034,3.974,2035,4.422,2036,4.75,2037,5.509,2038,7.032,2039,5.682,2040,7.032,2041,6.501,2042,7.032,2043,7.032]],["title/interfaces/BBBCreateResponse.html",[105,0.735,2044,5.958]],["body/interfaces/BBBCreateResponse.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,32,0.189,47,1.001,55,2.958,95,0.108,101,0.014,103,0.001,104,0.001,105,0.918,107,2.04,112,0.86,119,2.694,180,1.94,1939,4.395,1943,8.934,1949,8.327,1950,7.123,1955,5.102,2044,9.471,2045,8.503,2046,11.592,2047,11.592,2048,11.592,2049,10.969,2050,11.592,2051,11.592,2052,11.592,2053,11.592,2054,11.592,2055,7.123]],["title/classes/BBBJoinConfig.html",[0,0.231,2056,5.705]],["body/classes/BBBJoinConfig.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,27,0.544,29,0.628,30,0.001,31,0.451,32,0.182,33,0.637,39,3.124,47,0.938,95,0.102,101,0.017,103,0.001,104,0.001,112,0.831,119,2.129,180,1.874,191,4.362,276,4.937,379,1.008,382,2.432,838,2.527,1912,3.719,1938,9.141,1939,6.867,1940,11.622,1941,4.597,1943,7.453,1944,9.151,1955,4.836,1979,7.452,1980,7.452,1984,7.452,2024,8.637,2056,10.668,2057,8.06,2058,10.159,2059,11.612,2060,7.499,2061,8.06,2062,8.06,2063,8.06,2064,8.06,2065,8.06,2066,8.06,2067,9.151,2068,10.46,2069,8.06,2070,8.06,2071,5.863,2072,8.06,2073,8.06,2074,8.06,2075,8.06,2076,6.752,2077,8.06]],["title/classes/BBBJoinConfigBuilder.html",[0,0.231,2078,5.958]],["body/classes/BBBJoinConfigBuilder.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,8,1.254,27,0.522,29,0.904,30,0.001,31,0.65,32,0.168,33,0.557,35,1.476,47,0.82,95,0.133,101,0.013,103,0.001,104,0.001,112,0.831,119,2.363,177,1.915,180,1.874,349,1.199,382,3.156,448,4.287,454,5.514,479,3.918,480,3.623,1939,6.352,2002,11.362,2003,7.452,2004,8.815,2005,8.762,2010,7.452,2024,9.141,2056,6.752,2078,11.781,2079,9.368,2080,10.46,2081,9.671,2082,9.671,2083,10.46,2084,8.06,2085,10.46,2086,8.06,2087,10.46,2088,8.06,2089,8.06,2090,8.06,2091,8.06,2092,8.06,2093,8.06,2094,8.06]],["title/interfaces/BBBJoinResponse.html",[105,0.735,2095,6.296]],["body/interfaces/BBBJoinResponse.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.182,47,1.012,95,0.119,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,112,0.915,180,2.065,1198,4.467,1939,4.857,1949,8.714,1950,7.872,1955,5.638,2055,7.872,2095,10.654,2096,8.688,2097,12.994,2098,12.994,2099,12.994,2100,10.179]],["title/interfaces/BBBMeetingInfoResponse.html",[105,0.735,2101,5.335]],["body/interfaces/BBBMeetingInfoResponse.html",[3,0.015,4,0.015,5,0.007,7,0.095,30,0.001,32,0.195,33,0.531,39,1.678,47,0.986,55,3.079,95,0.079,101,0.01,103,0,104,0,105,0.673,107,1.496,112,0.698,119,2.835,120,5.321,180,1.575,276,2.651,461,3.432,1154,2.48,1939,3.223,1943,7.879,1949,7.119,1950,5.224,1955,3.742,2046,10.222,2047,10.222,2048,10.222,2049,9.673,2050,10.222,2051,10.222,2052,10.222,2053,5.766,2054,10.222,2055,5.224,2058,5.456,2101,6.887,2102,5.766,2103,4.886,2104,11.057,2105,11.657,2106,11.057,2107,10.222,2108,11.057,2109,11.057,2110,11.057,2111,11.057,2112,7.594,2113,11.057,2114,11.057,2115,11.057,2116,8.042,2117,10.222,2118,11.057,2119,11.057,2120,5.766,2121,6.236,2122,6.236,2123,6.236,2124,6.236,2125,6.236,2126,6.236]],["title/interfaces/BBBResponse.html",[105,0.735,2127,5.191]],["body/interfaces/BBBResponse.html",[3,0.024,4,0.024,5,0.012,7,0.158,30,0.001,32,0.142,95,0.132,101,0.017,103,0.001,104,0.001,105,1.121,107,2.494,112,0.972,479,4.875,823,4.716,1939,5.371,1949,7.265,1955,6.235,2055,8.705,2127,9.332,2128,10.392]],["title/injectables/BBBService.html",[539,0.901,2129,5.191]],["body/injectables/BBBService.html",[0,0.118,3,0.008,4,0.008,5,0.004,7,0.053,8,0.676,27,0.479,29,0.952,30,0.001,31,0.643,32,0.153,33,0.524,35,1.526,36,2.441,47,0.937,95,0.145,101,0.006,103,0,104,0,133,3.547,141,1.662,153,0.791,177,1.302,226,0.498,236,1.824,262,1.559,271,2.207,284,1.743,333,4.619,349,1.262,379,0.706,437,1.615,448,4.794,474,2.41,478,4.359,529,2.725,539,0.747,541,0.833,591,1.967,593,1.289,603,2.037,608,0.802,639,1.633,685,3.463,686,2.663,764,3.696,823,1.221,962,7.091,963,2.004,965,2.28,1079,2.044,1144,4.726,1162,4.6,1163,2.48,1164,2.726,1193,4.936,1198,4.089,1224,3.159,1243,3.463,1550,4.104,1911,5.831,1912,4.874,1923,2.433,1925,1.883,1938,8.846,1939,6.147,1943,2.48,1948,3.045,1949,2.433,1954,3.217,1955,7.136,1957,8.849,2032,4.196,2035,3.548,2036,3.811,2037,4.42,2044,3.045,2056,7.535,2079,7.341,2101,2.726,2102,9.766,2127,7.341,2129,4.301,2130,3.48,2131,3.811,2132,5.642,2133,5.642,2134,5.216,2135,5.642,2136,4.021,2137,5.75,2138,7.869,2139,3.48,2140,6.613,2141,8.496,2142,3.48,2143,6.225,2144,5.642,2145,3.48,2146,5.831,2147,5.642,2148,3.423,2149,5.216,2150,5.642,2151,5.642,2152,3.48,2153,4.936,2154,5.642,2155,9.55,2156,11.3,2157,3.48,2158,5.216,2159,5.216,2160,9.63,2161,3.218,2162,8.184,2163,5.642,2164,3.48,2165,5.642,2166,3.48,2167,5.642,2168,3.48,2169,7.16,2170,5.642,2171,5.642,2172,3.48,2173,3.159,2174,5.642,2175,3.48,2176,4.936,2177,5.216,2178,3.48,2179,3.48,2180,3.48,2181,3.48,2182,3.48,2183,3.48,2184,3.48,2185,7.731,2186,2.915,2187,2.915,2188,3.48,2189,3.48,2190,3.48,2191,3.48,2192,6.613,2193,3.48,2194,8.184,2195,5.642,2196,1.408,2197,3.48,2198,3.48,2199,3.48,2200,7.115,2201,6.578,2202,9.63,2203,5.642,2204,5.642,2205,7.115,2206,7.115,2207,7.115,2208,7.115,2209,6.578,2210,6.578,2211,3.48,2212,3.48,2213,3.48,2214,3.48,2215,5.216,2216,3.48,2217,3.48,2218,3.48,2219,3.48,2220,4.936,2221,5.216,2222,3.48,2223,3.48,2224,3.48,2225,3.48,2226,3.48,2227,3.48,2228,3.48,2229,3.48,2230,3.48,2231,3.48,2232,3.217,2233,3.217,2234,3.48,2235,3.217,2236,3.217]],["title/classes/BaseDO.html",[0,0.231,1686,3.96]],["body/classes/BaseDO.html",[0,0.336,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,9,4.676,27,0.487,29,0.771,30,0.001,31,0.555,32,0.163,33,0.612,34,2.305,47,0.955,59,3.078,101,0.016,102,4.979,103,0.001,104,0.001,112,0.945,379,1.239,404,4.042,448,4.877,1686,6.919,2237,9.906,2238,9.321,2239,11.898]],["title/injectables/BaseDORepo.html",[539,0.901,2240,4.677]],["body/injectables/BaseDORepo.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,8,0.773,9,5.678,10,3.656,12,2.958,18,3.262,26,2.657,27,0.519,29,0.977,30,0.001,31,0.703,32,0.171,33,0.602,34,2.01,35,1.489,36,2.818,40,3.117,47,0.455,49,1.622,55,0.885,95,0.124,96,1.771,97,1.783,99,0.686,101,0.007,102,2.067,103,0,104,0,112,0.512,133,2.254,154,2.649,155,2.151,173,1.216,177,1.18,226,0.588,236,1.049,262,2.849,280,4.427,305,3.712,349,1.191,358,1.81,379,0.514,381,1.382,437,1.682,448,4.837,519,1.274,539,0.853,541,0.985,565,2.442,603,2.455,608,2.659,680,4.507,686,3.043,687,4.945,696,1.622,718,2.283,733,3.599,815,4.302,1278,1.301,1604,3.808,1666,1.741,1686,2.392,1829,3.222,1941,3.677,2173,2.303,2240,4.427,2241,4.113,2242,4.593,2243,4.593,2244,4.593,2245,4.593,2246,4.507,2247,4.507,2248,4.593,2249,4.507,2250,4.593,2251,2.992,2252,5.181,2253,3.258,2254,4.062,2255,4.113,2256,4.689,2257,4.593,2258,4.113,2259,7.663,2260,4.593,2261,4.113,2262,4.593,2263,4.113,2264,5.207,2265,4.507,2266,4.593,2267,4.113,2268,4.593,2269,4.113,2270,4.593,2271,8.121,2272,4.113,2273,4.113,2274,4.593,2275,4.113,2276,4.354,2277,4.507,2278,4.113,2279,4.593,2280,4.113,2281,3.868,2282,3.956,2283,4.593,2284,4.113,2285,4.593,2286,4.113,2287,2.876,2288,4.593,2289,4.113,2290,4.113,2291,5.341,2292,2.778,2293,3.599,2294,2.778,2295,7.949,2296,4.113,2297,4.113,2298,4.689,2299,4.113,2300,6.859,2301,4.113,2302,4.113,2303,5.05,2304,3.803,2305,2.876,2306,4.795,2307,9.584,2308,6.446,2309,4.107,2310,3.803,2311,4.113,2312,4.113,2313,4.113,2314,4.113,2315,5.64,2316,4.113,2317,4.113,2318,4.113,2319,3.446,2320,4.113,2321,4.113,2322,4.113,2323,4.113,2324,4.113,2325,4.113,2326,4.113,2327,4.113,2328,3.446,2329,4.113,2330,4.113,2331,4.113,2332,4.113,2333,4.113,2334,4.113,2335,3.599,2336,2.416,2337,2.346,2338,4.113,2339,4.113,2340,4.113,2341,3.599]],["title/classes/BaseDomainObject.html",[0,0.231,2342,6.296]],["body/classes/BaseDomainObject.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,9,6.353,27,0.398,30,0.001,32,0.133,34,2.154,47,0.83,95,0.123,101,0.016,102,5.91,103,0.001,104,0.001,105,1.048,112,0.934,133,3.397,1280,3.675,1600,7.354,1602,8.499,1612,5.346,1718,5.326,2342,10.872,2343,11.759,2344,9.714,2345,8.981,2346,6.672,2347,5.541,2348,7.85,2349,8.981,2350,9.714]],["title/classes/BaseEntity.html",[0,0.231,2292,4.6]],["body/classes/BaseEntity.html",[0,0.385,2,0.859,3,0.018,4,0.018,5,0.009,7,0.116,9,4.782,27,0.415,30,0.001,32,0.171,34,2.193,47,0.8,49,4.756,72,3.484,83,3.482,95,0.153,96,2.783,97,3.327,101,0.02,103,0.001,104,0.001,105,0.828,112,0.958,133,2.684,138,2.063,154,2.165,155,2.561,172,3.62,173,2.27,174,4.029,236,1.845,358,3.377,376,4.412,377,4.598,437,0.993,459,3.939,511,3.429,746,5.583,754,5.028,768,5.272,937,4.42,950,3.562,975,7.086,1007,5.366,1280,3.544,1600,7.012,1666,3.248,1718,3.233,2032,5.709,2282,4.711,2292,7.659,2293,6.715,2351,7.097,2352,8.883,2353,11.149,2354,7.676,2355,11.149,2356,7.676,2357,6.43,2358,4.711,2359,5.583,2360,6.43,2361,6.203,2362,6.43,2363,6.43,2364,7.097,2365,4.605,2366,4.89,2367,5.272,2368,5.028,2369,7.097,2370,6.715,2371,7.097,2372,5.272,2373,6.43,2374,6.715,2375,7.097,2376,6.715,2377,7.097]],["title/classes/BaseEntityWithTimestamps.html",[0,0.231,174,2.708]],["body/classes/BaseEntityWithTimestamps.html",[0,0.376,2,0.819,3,0.017,4,0.017,5,0.009,7,0.111,9,4.631,27,0.484,30,0.001,32,0.169,34,2.163,47,0.781,49,4.665,72,3.319,83,3.788,95,0.15,96,2.695,97,3.17,101,0.019,103,0.001,104,0.001,105,0.789,112,0.939,133,2.557,138,2.244,154,2.097,155,2.44,172,3.777,173,2.163,174,4.402,236,2.007,358,3.217,376,5.152,377,5.369,437,0.946,459,3.753,480,2.724,486,2.951,511,3.267,746,5.319,754,4.79,768,5.023,937,4.211,950,3.393,975,6.989,1007,5.113,1280,3.46,1600,6.878,1666,3.094,1718,3.08,2032,5.439,2282,4.488,2292,6.626,2293,6.398,2351,6.761,2352,7.685,2353,10.936,2355,10.936,2357,6.126,2358,4.488,2359,5.319,2360,6.126,2361,5.91,2362,6.126,2363,6.126,2364,6.761,2365,4.388,2366,4.659,2367,5.023,2368,4.79,2369,6.761,2370,6.398,2371,6.761,2372,5.023,2373,6.126,2374,6.398,2375,6.761,2376,6.398,2377,6.761,2378,7.313,2379,7.313,2380,7.313,2381,7.313,2382,7.313]],["title/classes/BaseFactory.html",[0,0.231,447,3.747]],["body/classes/BaseFactory.html",[0,0.231,2,0.365,3,0.008,4,0.008,5,0.004,7,0.049,8,0.642,27,0.486,29,0.977,30,0.001,31,0.63,32,0.171,33,0.54,34,1.681,35,1.479,47,0.48,49,1.287,55,2.363,59,2.701,95,0.068,101,0.005,103,0,104,0,105,0.578,112,0.625,120,3.465,133,2.754,140,1.827,153,1.79,154,2.681,155,2.628,177,1.442,236,1.901,271,4.765,319,4.218,333,4.646,345,1.039,349,1.102,379,0.851,381,2.92,413,2.096,437,1.608,447,2.946,448,4.373,449,6.708,452,3.025,453,5.28,454,5.714,455,3.025,456,3.025,457,3.025,458,2.971,459,4.462,460,4.45,461,6.042,462,6.094,463,7.469,469,1.844,470,3.846,472,5.216,473,5.385,474,3.714,475,5.064,476,4.869,477,1.844,478,1.738,479,4.698,480,3.123,481,1.795,482,1.766,483,3.025,484,4.864,486,3.455,487,5.186,488,3.025,489,6.8,490,4.209,491,6.605,493,4.634,494,3.025,496,1.844,498,3.025,500,3.177,501,1.844,502,6.244,504,1.844,505,5.822,506,4.162,507,4.45,509,5.385,510,3.684,511,2.391,512,3.025,513,4.45,514,3.025,517,2.052,518,3.025,519,1.658,521,4.08,522,3.025,525,1.897,606,2.854,696,2.111,756,2.487,975,1.795,996,3.762,997,3.718,998,3.718,999,3.932,1000,3.714,1001,2.241,1013,2.556,1077,6.323,1490,2.854,1935,3.742,2309,3.41,2383,3.263,2384,3.41,2385,5.353,2386,3.263,2387,5.353,2388,3.263,2389,3.263,2390,3.263,2391,3.263,2392,3.263,2393,3.263,2394,3.263,2395,3.263,2396,3.263,2397,3.263,2398,3.263,2399,3.263,2400,4.949,2401,4.08,2402,3.263,2403,3.263,2404,3.263,2405,3.263,2406,3.263,2407,3.017,2408,5.353,2409,5.353,2410,3.263,2411,3.263,2412,7.875,2413,3.263,2414,10.303,2415,7.875,2416,3.263,2417,3.263,2418,3.263,2419,3.263,2420,3.263,2421,3.144,2422,3.263,2423,3.263,2424,3.263,2425,3.263,2426,3.263]],["title/injectables/BaseRepo.html",[539,0.901,679,4]],["body/injectables/BaseRepo.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.114,9,4.385,10,3.774,12,4.262,18,4.701,26,2.424,27,0.508,29,0.934,30,0.001,31,0.672,32,0.164,33,0.576,34,1.582,35,1.375,36,2.794,40,4.491,49,4.513,95,0.157,96,2.552,97,2.925,101,0.011,103,0.001,104,0.001,153,1.534,154,1.985,155,3.1,173,1.996,177,1.235,226,0.965,262,2.878,349,0.959,379,0.844,437,0.873,479,5.209,524,3.849,539,1.229,541,1.616,569,6.619,608,2.141,679,5.456,685,3.93,686,4.385,687,6.072,711,5.701,713,5.701,716,5.701,718,3.746,1658,4.049,1669,5.842,1718,3.912,1755,6.085,1756,6.38,2173,3.779,2240,6.38,2251,4.909,2252,6.588,2256,6.756,2291,5.514,2292,4.558,2294,4.558,2304,6.24,2310,6.24,2315,5.904,2427,6.749,2428,6.192,2429,8.588,2430,9.289,2431,9.289,2432,8.588,2433,5.573,2434,6.085,2435,6.619,2436,6.749,2437,6.749,2438,6.749,2439,6.749,2440,6.749,2441,6.749,2442,3.304,2443,6.749]],["title/interfaces/BaseResponseMapper.html",[105,0.735,2444,5.065]],["body/interfaces/BaseResponseMapper.html",[3,0.022,4,0.022,5,0.011,7,0.144,8,1.389,27,0.475,29,0.902,30,0.001,31,0.649,32,0.178,33,0.556,35,1.392,95,0.147,99,1.582,100,3.186,101,0.016,103,0.001,104,0.001,105,1.024,107,2.276,119,2.359,479,5.095,782,6.433,1883,4.793,2444,8.62,2445,12.515,2446,9.485,2447,9.079,2448,9.079,2449,9.485,2450,8.834,2451,9.485,2452,10.113,2453,4.504]],["title/classes/BaseUc.html",[0,0.231,2454,5.191]],["body/classes/BaseUc.html",[0,0.222,2,0.733,3,0.015,4,0.015,5,0.008,7,0.099,8,1.091,9,3.092,26,2.799,27,0.463,29,0.88,30,0.001,31,0.633,32,0.154,33,0.542,35,1.256,36,2.404,39,3.193,59,2.035,95,0.143,99,1.093,101,0.011,103,0.001,104,0.001,131,3.409,143,1.459,145,1.819,177,1.666,226,0.937,236,1.48,239,1.503,262,2.859,276,2.785,349,1.08,379,1.138,437,1.535,448,5.471,493,3.249,529,2.575,560,2.697,608,2.604,643,2.912,1612,7.071,1613,4.021,1628,4.291,1666,2.772,1698,6.494,1720,5.132,1753,4.58,1796,3.975,1802,7.45,1885,2.734,2337,3.736,2453,6.273,2454,6.936,2455,6.551,2456,7.129,2457,7.129,2458,4.765,2459,8.655,2460,6.551,2461,4.873,2462,8.634,2463,8.979,2464,6.551,2465,7.129,2466,7.547,2467,6.551,2468,7.129,2469,7.45,2470,6.551,2471,5.401,2472,2.973,2473,7.605,2474,6.551,2475,6.057,2476,4.58,2477,6.551,2478,6.551,2479,5.731,2480,6.551,2481,6.551,2482,6.551,2483,7.623,2484,5.731,2485,4.873]],["title/classes/BasicToolConfig.html",[0,0.231,2486,4.953]],["body/classes/BasicToolConfig.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,27,0.508,29,0.723,30,0.001,31,0.52,32,0.185,33,0.446,47,0.656,95,0.145,101,0.015,103,0.001,104,0.001,112,0.909,180,2.05,181,3.062,182,3.021,379,1.162,381,3.12,382,3.452,564,2.852,1870,4.519,2136,7.007,2486,9.666,2487,5.193,2488,11.441,2489,4.111,2490,7.781,2491,9.885,2492,8.587,2493,8.126,2494,6.351,2495,8.126,2496,8.126,2497,6.494,2498,6.619]],["title/classes/BasicToolConfigEntity.html",[0,0.231,2499,5.503]],["body/classes/BasicToolConfigEntity.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,27,0.391,29,0.744,30,0.001,31,0.535,32,0.131,33,0.458,95,0.159,96,2.624,101,0.016,103,0.001,104,0.001,173,2.825,180,1.712,181,3.115,379,1.195,381,3.209,403,5.302,564,2.933,1870,4.648,2487,5.283,2489,4.162,2494,5.302,2497,8.138,2498,6.807,2499,10.825,2500,11.64,2501,8.003,2502,9.553,2503,6.016,2504,9.406,2505,8.357,2506,5.398,2507,4.268,2508,6.807]],["title/classes/BasicToolConfigParams.html",[0,0.231,2509,5.503]],["body/classes/BasicToolConfigParams.html",[0,0.388,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.468,30,0.001,32,0.182,47,0.806,95,0.164,101,0.015,103,0.001,104,0.001,112,0.907,138,2.078,148,2.941,150,2.111,180,2.047,245,3.248,248,4.768,382,3.447,564,2.845,851,4.427,1870,4.509,2136,7,2487,4.206,2489,3.788,2494,6.875,2509,9.232,2510,9.267,2511,8.568,2512,9.66,2513,6.603,2514,7.488,2515,7.488,2516,7.488,2517,7.488,2518,7.488]],["title/classes/BasicToolConfigResponse.html",[0,0.231,2519,5.705]],["body/classes/BasicToolConfigResponse.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.499,29,0.694,30,0.001,31,0.5,32,0.183,33,0.428,47,0.787,95,0.154,101,0.015,103,0.001,104,0.001,112,0.886,138,2.029,150,2.032,180,1.999,181,2.986,182,2.901,245,3.444,379,1.115,381,2.995,382,3.366,564,2.738,1870,4.339,2136,6.879,2487,5.064,2489,4.036,2494,6.758,2497,6.235,2498,6.354,2507,3.984,2508,6.354,2519,11.002,2520,11.156,2521,7.206,2522,10.613,2523,8.918,2524,7.802,2525,7.802,2526,7.206]],["title/injectables/BasicToolLaunchStrategy.html",[539,0.901,2527,5.705]],["body/injectables/BasicToolLaunchStrategy.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.069,8,0.837,9,2.153,26,2.29,27,0.525,29,0.988,30,0.001,31,0.71,32,0.178,33,0.609,35,1.524,36,2.394,39,2.283,47,0.857,95,0.13,99,0.761,101,0.008,103,0,104,0,112,0.859,119,0.928,120,3.072,172,2.23,177,1.278,180,1.251,226,0.652,262,2.661,271,2.732,284,3.339,349,0.982,382,3.868,437,1.326,480,1.939,519,2.163,521,2.766,539,0.924,541,1.092,556,2.395,593,3.143,603,2.657,662,3.988,696,1.799,988,1.967,996,3.336,997,3.297,998,3.297,999,3.487,1000,3.811,1198,3.269,1555,2.554,1589,2.554,1603,1.715,1839,6.673,1840,6.429,1894,5.079,1895,4.976,2029,5.48,2489,2.315,2527,5.85,2528,3.821,2529,4.561,2530,4.217,2531,12.151,2532,6.456,2533,7.845,2534,6.456,2535,6.456,2536,6.456,2537,6.456,2538,6.456,2539,6.456,2540,6.456,2541,6.456,2542,6.109,2543,6.109,2544,6.456,2545,6.456,2546,4.217,2547,9.379,2548,4.217,2549,6.456,2550,10.811,2551,4.561,2552,6.456,2553,4.561,2554,9.057,2555,4.217,2556,6.456,2557,7.267,2558,5.323,2559,4.217,2560,4.217,2561,6.456,2562,6.648,2563,4.217,2564,4.217,2565,6.456,2566,4.217,2567,4.217,2568,4.181,2569,4.217,2570,8.241,2571,4.217,2572,4.217,2573,4.217,2574,4.217,2575,3.99,2576,3.99,2577,4.217,2578,4.217,2579,4.217,2580,3.317,2581,4.217,2582,6.456,2583,6.228,2584,4.217,2585,4.217,2586,6.456,2587,4.217,2588,2.532,2589,4.217,2590,3.99,2591,4.217,2592,3.033,2593,3.99,2594,3.573,2595,6.983,2596,4.561,2597,6.983,2598,6.456,2599,4.561,2600,4.561,2601,4.561,2602,4.561,2603,6.983,2604,4.561,2605,4.561,2606,3.99]],["title/entities/Board.html",[154,1.456,1885,2.842]],["body/entities/Board.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.085,26,2.471,27,0.333,30,0.001,32,0.144,34,0.953,95,0.167,96,1.537,101,0.013,103,0,104,0,105,0.604,112,0.646,119,1.139,138,1.479,143,2.343,154,1.739,155,1.867,168,4.639,173,1.655,174,3.235,175,2.474,178,2.324,180,1.003,181,1.497,182,1.82,226,0.8,236,2.006,349,1.205,355,3.519,361,3.161,437,1.692,480,1.553,486,1.683,519,1.733,529,2.712,535,4.069,556,2.049,578,3.394,603,2.245,604,3.894,848,4.476,1603,2.104,1657,2.657,1861,3.885,1867,4.567,1883,4.823,1885,4.867,2336,3.286,2359,6.971,2607,7.508,2608,5.595,2609,7.57,2610,5.595,2611,4.855,2612,6.2,2613,5.595,2614,4.439,2615,8.134,2616,6.573,2617,5.595,2618,3.053,2619,6.372,2620,4.069,2621,3.222,2622,2.98,2623,5.182,2624,3.286,2625,4.299,2626,3.911,2627,4.282,2628,3.475,2629,7.497,2630,11.401,2631,8.029,2632,6.2,2633,4.267,2634,5.796,2635,4.894,2636,6.573,2637,2.626,2638,6.573,2639,8.134,2640,5.595,2641,3.665,2642,5.595,2643,5.595,2644,8.134,2645,4.687,2646,5.595,2647,9.584,2648,5.595,2649,5.595,2650,5.595,2651,5.595,2652,5.595,2653,8.134,2654,5.595,2655,8.134,2656,8.134,2657,5.595,2658,5.595,2659,4.521,2660,5.595,2661,5.595,2662,5.172,2663,5.595,2664,4.161,2665,5.595,2666,4.687,2667,5.595,2668,5.595,2669,5.595,2670,5.595,2671,5.595,2672,5.595,2673,5.595,2674,5.595,2675,5.595,2676,5.595,2677,5.595,2678,5.595,2679,5.595,2680,4.75,2681,5.595,2682,8.134,2683,5.595,2684,5.595,2685,5.595,2686,5.595,2687,11.663,2688,4.894]],["title/modules/BoardApiModule.html",[201,1.804,2689,5.503]],["body/modules/BoardApiModule.html",[0,0.268,3,0.018,4,0.018,5,0.009,30,0.001,95,0.17,101,0.013,103,0.001,104,0.001,201,3.047,203,2.842,204,3.054,205,3.143,206,3.13,207,3.117,208,4.213,209,2.971,214,6.023,218,4.107,219,3.079,220,3.006,222,4.908,223,4.251,225,4.073,226,1.13,259,3.006,1278,2.5,1692,5.634,1767,6.865,1770,9.654,2472,3.587,2689,11.472,2690,7.902,2691,7.902,2692,7.902,2693,10.489,2694,10.168,2695,10.489,2696,10.489,2697,10.874,2698,7.902,2699,10.062,2700,10.062,2701,10.062,2702,10.062,2703,10.062,2704,7.902,2705,3.73,2706,6.913,2707,7.306,2708,7.306]],["title/classes/BoardColumnBoardResponse.html",[0,0.231,2709,5.705]],["body/classes/BoardColumnBoardResponse.html",[0,0.257,2,0.846,3,0.018,4,0.018,5,0.009,7,0.115,27,0.536,29,0.589,30,0.001,31,0.424,32,0.179,33,0.363,34,2.125,47,0.905,83,3.681,95,0.127,101,0.012,103,0.001,104,0.001,112,0.796,119,2.041,138,2.332,150,1.723,245,3.613,247,3.309,376,5.433,377,5.662,379,1.254,404,3.085,406,4.883,408,4.883,773,3.826,1207,3.983,2633,7.366,2709,10.45,2710,10.406,2711,10.406,2712,7.56,2713,9.509,2714,8.171,2715,7.56,2716,7.56,2717,7.56,2718,7.56,2719,7.56,2720,5.387,2721,7.56,2722,7.56,2723,6.308,2724,7.56,2725,3.88,2726,6.99]],["title/classes/BoardComposite.html",[0,0.231,2727,4.132]],["body/classes/BoardComposite.html",[0,0.199,2,0.655,3,0.014,4,0.014,5,0.007,7,0.089,8,1.007,9,6.089,26,1.779,27,0.535,29,0.922,30,0.001,31,0.663,32,0.174,33,0.568,34,1.43,35,1.465,36,1.787,55,2.114,59,1.817,83,3.297,95,0.144,99,0.975,101,0.014,103,0,104,0,105,0.631,112,0.667,119,2.186,133,2.936,137,5.281,180,1.505,226,0.836,236,1.598,349,1.109,376,4.677,377,4.874,381,2.82,382,2.534,437,0.756,448,3.442,479,3.145,519,3.668,529,2.78,662,2.64,686,3.964,696,2.306,937,3.367,1458,4.745,1603,2.198,1604,5.01,1607,6.346,1666,2.474,1687,3.632,1688,4.166,1689,4.457,2337,3.335,2453,6.411,2471,3.47,2621,3.367,2727,5.095,2728,11.925,2729,5.405,2730,5.983,2731,5.983,2732,5.983,2733,5.583,2734,5.983,2735,7.376,2736,3.887,2737,5.154,2738,6.308,2739,5.847,2740,5.871,2741,5.154,2742,6.184,2743,5.847,2744,5.871,2745,6.596,2746,5.847,2747,7.671,2748,5.871,2749,5.847,2750,5.983,2751,5.847,2752,5.871,2753,5.847,2754,3.887,2755,5.405,2756,5.847,2757,5.115,2758,5.847,2759,5.115,2760,5.847,2761,7.763,2762,4.58,2763,4.58,2764,5.405,2765,5.405,2766,5.405,2767,7.763,2768,5.405,2769,5.405,2770,5.405,2771,3.47,2772,5.405,2773,5.405,2774,5.405,2775,5.405,2776,7.346,2777,3.83,2778,5.983,2779,5.405,2780,5.115,2781,3.547]],["title/interfaces/BoardCompositeProps.html",[105,0.735,2781,4.132]],["body/interfaces/BoardCompositeProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,9,5.551,26,2.491,30,0.001,32,0.173,33,0.466,34,2.091,36,1.534,55,1.551,83,4.035,95,0.156,99,1.202,101,0.016,103,0.001,104,0.001,105,0.778,107,1.73,112,0.771,119,1.977,133,3.397,180,1.292,226,1.031,236,1.788,349,1.215,376,5.347,377,5.572,437,0.932,519,3.404,529,3.109,696,2.843,937,4.151,1458,5.49,1603,2.71,1604,4.111,1666,3.05,1687,4.477,1688,5.136,1689,5.495,2337,4.111,2453,6.323,2471,4.279,2621,4.151,2727,4.373,2728,6.664,2729,6.664,2735,8.431,2737,4.424,2738,5.707,2741,4.424,2742,5.594,2744,5.04,2745,6.684,2747,7.396,2748,5.04,2750,5.136,2752,5.04,2761,8.982,2762,5.647,2763,5.647,2764,6.664,2765,6.664,2766,6.664,2767,8.982,2768,6.664,2769,6.664,2770,6.664,2771,4.279,2772,6.664,2773,6.664,2774,6.664,2775,6.664,2776,8.499,2777,4.722,2778,6.923,2779,6.664,2780,6.306,2781,5.894]],["title/interfaces/BoardCompositeVisitor.html",[105,0.735,2738,4]],["body/interfaces/BoardCompositeVisitor.html",[3,0.014,4,0.014,5,0.01,7,0.093,8,1.039,27,0.526,29,1,30,0.001,31,0.719,32,0.189,33,0.616,35,1.543,36,2.733,95,0.163,101,0.014,103,0,104,0,105,0.935,107,1.467,519,4.273,564,1.877,1866,7.133,2173,3.423,2466,7.059,2489,2.027,2633,6.482,2738,5.092,2742,3.52,2782,10.203,2783,12.041,2784,5.652,2785,8.014,2786,8.014,2787,8.014,2788,8.014,2789,8.014,2790,8.014,2791,8.014,2792,8.014,2793,8.014,2794,7.584,2795,6.791,2796,6.113,2797,7.584,2798,6.113,2799,7.584,2800,6.113,2801,7.584,2802,7.872,2803,6.113,2804,7.584,2805,7.375,2806,6.113,2807,7.584,2808,7.872,2809,6.113,2810,7.584,2811,7.291,2812,6.113,2813,7.584,2814,7.558,2815,6.113,2816,7.584,2817,6.113,2818,5.121,2819,5.652,2820,5.121,2821,8.416,2822,4.547,2823,2.956,2824,3.813,2825,3.668,2826,4.94,2827,5.121,2828,5.121,2829,5.121,2830,5.121,2831,5.121,2832,5.121,2833,5.121,2834,5.652,2835,5.121]],["title/interfaces/BoardCompositeVisitorAsync.html",[105,0.735,2742,3.921]],["body/interfaces/BoardCompositeVisitorAsync.html",[3,0.014,4,0.014,5,0.01,7,0.093,8,1.039,27,0.526,29,1,30,0.001,31,0.719,32,0.189,33,0.616,35,1.543,36,2.935,95,0.163,101,0.014,103,0,104,0,105,0.935,107,1.467,519,3.979,564,1.877,1866,7.133,2173,3.423,2466,7.059,2489,2.027,2633,6.482,2738,3.591,2742,4.991,2782,10.203,2783,12.041,2784,5.652,2794,5.348,2795,6.791,2797,5.348,2799,5.348,2801,5.348,2802,7.872,2804,5.348,2805,7.375,2807,5.348,2808,7.872,2810,5.348,2811,7.291,2813,5.348,2814,7.558,2816,5.348,2818,5.121,2819,5.652,2820,5.121,2821,8.416,2822,4.547,2823,2.956,2824,3.813,2825,3.668,2826,4.94,2827,7.262,2828,7.262,2829,7.262,2830,7.262,2831,7.262,2832,7.262,2833,7.262,2834,8.014,2835,7.262,2836,7.262,2837,7.262,2838,7.262,2839,7.262,2840,7.262,2841,7.262,2842,7.262,2843,7.262,2844,7.262,2845,6.113,2846,6.113,2847,6.113,2848,6.113,2849,6.113,2850,6.113,2851,6.113,2852,6.113,2853,6.113]],["title/classes/BoardContextResponse.html",[0,0.231,2854,5.958]],["body/classes/BoardContextResponse.html",[0,0.304,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,27,0.5,29,0.697,30,0.001,31,0.502,32,0.188,33,0.43,34,2.24,47,0.79,95,0.142,99,1.494,101,0.015,103,0.001,104,0.001,112,0.888,138,2.035,150,2.041,245,3.199,253,4.386,379,1.399,404,3.655,773,4.533,838,2.808,1865,9.512,2507,4.002,2854,11.505,2855,12.777,2856,8.957,2857,8.957,2858,5.867,2859,5.959,2860,5.959,2861,8.957,2862,5.498,2863,5.513,2864,8.957]],["title/controllers/BoardController.html",[259,2.591,2699,5.958]],["body/controllers/BoardController.html",[0,0.153,3,0.011,4,0.011,5,0.005,7,0.068,8,0.83,10,3.424,27,0.418,29,0.794,30,0.001,31,0.571,32,0.193,33,0.489,35,1.225,36,2.576,95,0.147,100,1.515,101,0.007,103,0,104,0,131,2.593,138,1.855,150,1.028,177,0.826,223,1.857,226,0.645,236,1.371,259,1.716,261,2.141,262,2.829,270,6.375,278,6.492,282,7.52,287,7.93,290,8.806,294,6.746,324,3.504,333,4.315,334,2.912,335,6.458,336,8.337,337,2.331,338,2.384,340,2.167,343,2.402,345,1.435,346,6.053,347,4.892,349,0.87,437,1.392,608,2.351,631,2.314,685,2.93,823,3.777,1202,7.27,1207,2.21,1885,4.492,2471,6.389,2622,5.733,2633,4.42,2693,6.809,2699,6.057,2705,2.129,2854,6.057,2865,4.51,2866,4.17,2867,7.791,2868,6.401,2869,8.426,2870,8.426,2871,7.791,2872,4.51,2873,11.391,2874,7.417,2875,10.198,2876,5.277,2877,4.51,2878,7.773,2879,7.773,2880,4.51,2881,4.51,2882,7.93,2883,4.51,2884,5.595,2885,4.51,2886,4.51,2887,4.51,2888,4.51,2889,4.51,2890,4.51,2891,4.51,2892,6.923,2893,4.51,2894,4.51,2895,4.51,2896,4.51,2897,6.601,2898,7.639,2899,4.154,2900,4.51,2901,4.51,2902,3.214,2903,2.548,2904,2.421,2905,5.8,2906,5.595,2907,4.51,2908,4.51,2909,3.945,2910,3.778,2911,3.644,2912,4.51,2913,4.51,2914,4.51,2915,10.198,2916,4.51,2917,4.51,2918,4.51,2919,4.51,2920,4.51,2921,5.595,2922,5.595,2923,4.51,2924,4.51,2925,3.945,2926,4.51,2927,4.51,2928,4.51,2929,4.51,2930,4.51,2931,4.17]],["title/injectables/BoardCopyService.html",[539,0.901,2932,5.705]],["body/injectables/BoardCopyService.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.706,27,0.455,29,0.866,30,0.001,31,0.623,32,0.162,33,0.533,34,0.625,35,1.295,36,2.48,39,0.987,55,0.79,95,0.148,99,0.612,101,0.006,103,0,104,0,154,0.785,177,1.806,226,0.525,227,1.511,236,1.503,239,3.135,262,2.711,271,2.304,347,4.072,349,1.278,379,0.737,437,1.633,521,2.333,528,1.911,539,0.78,541,0.879,556,0.925,579,1.955,603,2.687,604,2.997,608,1.7,646,2.616,848,4.059,1167,2.308,1178,1.971,1179,2.441,1207,1.88,1278,1.161,1492,7.521,1672,1.911,1865,2.566,1866,3.496,1867,4.582,1885,4.326,1888,2.798,2253,2.414,2254,3.811,2281,3.534,2298,2.67,2609,5.309,2625,4.885,2627,4.129,2629,8.128,2632,4.489,2634,7.387,2636,4.759,2638,4.759,2645,3.075,2680,3.811,2713,2.798,2932,4.934,2933,11.406,2934,2.876,2935,5.89,2936,7.376,2937,6.82,2938,4.934,2939,4.759,2940,5.89,2941,5.89,2942,5.89,2943,2.479,2944,7.71,2945,8.121,2946,8.684,2947,8.684,2948,7.54,2949,3.671,2950,5.89,2951,8.441,2952,3.671,2953,3.671,2954,9.974,2955,3.394,2956,7.376,2957,3.671,2958,3.671,2959,5.89,2960,3.671,2961,3.394,2962,5.89,2963,3.671,2964,3.211,2965,5.89,2966,7.99,2967,3.671,2968,9.242,2969,5.89,2970,3.671,2971,4.934,2972,5.89,2973,3.671,2974,5.445,2975,5.623,2976,3.671,2977,3.671,2978,3.394,2979,3.075,2980,3.671,2981,3.075,2982,2.876,2983,2.73,2984,2.227,2985,2.055,2986,3.671,2987,3.671,2988,2.966,2989,2.966,2990,2.798,2991,5.153,2992,3.671,2993,3.671,2994,3.671,2995,7.376,2996,3.671,2997,3.211,2998,2.876,2999,3.075,3000,3.671,3001,3.671,3002,9.584,3003,3.671,3004,3.671,3005,3.671,3006,3.075,3007,3.671,3008,5.445,3009,3.671,3010,3.671,3011,6.453,3012,3.075,3013,3.671,3014,3.671,3015,7.376,3016,3.075,3017,3.671,3018,3.671,3019,3.075,3020,3.671,3021,3.671,3022,4.197,3023,3.671,3024,4.197,3025,4.489,3026,3.671,3027,3.671,3028,3.671,3029,3.671,3030,3.211,3031,3.211,3032,3.394,3033,3.211,3034,3.075,3035,3.394,3036,3.671,3037,3.394,3038,3.211,3039,3.394,3040,3.671,3041,3.671,3042,3.671,3043,3.671,3044,3.671,3045,3.671,3046,3.671,3047,3.671,3048,3.671,3049,3.671,3050,5.89,3051,3.671,3052,5.89,3053,5.89,3054,3.671,3055,3.671,3056,3.671,3057,3.671,3058,3.671,3059,3.671,3060,3.671,3061,3.671]],["title/classes/BoardDoAuthorizable.html",[0,0.231,2473,4.953]],["body/classes/BoardDoAuthorizable.html",[0,0.256,2,0.843,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,26,2.38,27,0.51,29,0.586,30,0.001,31,0.422,32,0.137,33,0.361,34,1.283,35,1.202,39,2.026,47,0.706,95,0.127,101,0.021,102,3.786,103,0.001,104,0.001,105,1.08,112,0.794,133,2.634,180,2.013,302,6.087,349,1.033,381,3.36,382,3.019,448,4.101,479,3.748,517,2.888,519,2.333,556,3.015,643,3.348,651,3.598,652,3.598,662,3.146,686,4.723,838,3.137,1600,5.818,1604,5.272,1607,7.255,1669,4.737,1687,4.678,1756,5.173,2442,3.688,2462,8.706,2463,9.668,2473,7.277,2736,5.008,2754,5.008,2782,9.377,3062,6.589,3063,5.213,3064,6.964,3065,7.532,3066,7.532,3067,7.532,3068,7.532,3069,7.532,3070,8.085,3071,8.085,3072,8.753,3073,6.087,3074,6.589,3075,3.437,3076,7.157,3077,5.653,3078,6.589,3079,6.589,3080,8.563,3081,3.76,3082,6.31,3083,6.087,3084,8.753,3085,6.589]],["title/interfaces/BoardDoAuthorizableProps.html",[105,0.735,3082,5.705]],["body/interfaces/BoardDoAuthorizableProps.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.122,26,2.698,30,0.001,32,0.159,33,0.502,34,2.093,39,2.168,47,0.738,95,0.133,101,0.021,102,4.051,103,0.001,104,0.001,105,1.129,107,1.934,112,0.831,133,2.819,180,2.081,302,6.513,349,1.08,517,3.09,556,2.635,643,3.582,651,3.85,652,3.85,838,3.279,1600,6.753,1604,4.426,1669,5.069,1687,5.006,1756,5.536,2442,3.946,2462,9.263,2463,9.699,2473,5.863,2782,6.314,3062,7.051,3063,5.547,3070,8.452,3071,8.452,3072,9.151,3073,6.513,3074,7.051,3075,3.678,3076,7.398,3077,5.911,3078,7.051,3079,7.051,3080,9.707,3081,4.024,3082,8.762,3083,6.513,3084,9.151,3085,7.051]],["title/injectables/BoardDoAuthorizableService.html",[539,0.901,2459,4.677]],["body/injectables/BoardDoAuthorizableService.html",[0,0.207,3,0.014,4,0.014,5,0.007,7,0.093,8,1.038,12,3.973,26,2.32,27,0.449,29,0.853,30,0.001,31,0.613,32,0.15,33,0.525,34,1.866,35,1.209,36,2.33,39,2.707,40,4.187,95,0.147,99,1.018,101,0.01,103,0,104,0,177,1.585,226,0.873,227,2.513,236,1.781,262,2.632,349,1.276,379,1.083,437,1.684,528,5.239,529,1.727,539,1.146,541,1.461,565,3.623,603,2.323,604,2.48,608,2.665,639,2.865,651,4.807,652,4.807,708,3.597,1280,1.908,1682,6.997,1744,7.495,1767,4.058,1865,4.267,1866,5.973,1867,4.448,1888,4.653,2428,3.303,2453,5.2,2459,5.947,2463,7.804,2469,6.17,2472,2.77,2473,8.736,2483,5.113,3063,5.38,3070,4.932,3080,7.671,3081,5.024,3086,8.815,3087,5.643,3088,8.659,3089,8.659,3090,4.54,3091,8.636,3092,6.104,3093,6.104,3094,8.659,3095,6.104,3096,8.659,3097,6.104,3098,4.54,3099,5.643,3100,6.104,3101,7.254,3102,5.643,3103,9.304,3104,5.643,3105,6.104,3106,8.006,3107,5.643,3108,6.104,3109,6.104,3110,6.104,3111,6.104,3112,3.202,3113,4.782,3114,6.104,3115,6.691,3116,6.499,3117,8.659,3118,6.104,3119,6.104,3120,6.104,3121,6.104,3122,6.104]],["title/interfaces/BoardDoBuilder.html",[105,0.735,3123,4.086]],["body/interfaces/BoardDoBuilder.html",[3,0.015,4,0.015,5,0.011,7,0.095,8,1.061,27,0.53,29,1.007,30,0.001,31,0.724,32,0.19,33,0.62,35,1.554,95,0.166,101,0.01,103,0.001,104,0.001,105,0.679,107,1.51,564,1.933,1604,2.664,1866,6.075,1883,4.838,1885,2.627,2173,3.525,2466,6.012,2489,2.087,2633,6.136,2795,6.274,2802,6.704,2805,6.281,2808,6.704,2811,6.209,2814,6.436,2822,4.682,2823,3.044,2824,3.893,2825,3.777,3112,6.783,3123,5.31,3124,13.104,3125,6.295,3126,8.182,3127,8.182,3128,8.182,3129,8.182,3130,8.182,3131,8.182,3132,8.182,3133,8.182,3134,8.182,3135,8.182,3136,8.698,3137,6.295,3138,8.182,3139,8.972,3140,6.295,3141,8.182,3142,8.463,3143,6.295,3144,8.182,3145,8.698,3146,6.295,3147,8.182,3148,8.698,3149,6.295,3150,8.182,3151,8.698,3152,6.295,3153,8.182,3154,8.698,3155,6.295,3156,8.182,3157,8.698,3158,6.295,3159,8.182,3160,8.698,3161,6.295,3162,11.956,3163,4.011]],["title/classes/BoardDoBuilderImpl.html",[0,0.231,3164,5.958]],["body/classes/BoardDoBuilderImpl.html",[0,0.119,2,0.393,3,0.008,4,0.008,5,0.004,7,0.053,8,0.681,27,0.507,29,0.974,30,0.001,31,0.686,32,0.18,33,0.587,34,1.865,35,1.452,39,0.944,95,0.091,99,0.947,101,0.006,103,0,104,0,112,0.451,131,1.314,226,0.501,236,1.871,349,1.211,376,4.767,377,4.968,379,0.439,437,1.668,479,4.212,480,0.974,486,1.055,519,1.759,529,1.606,603,1.437,662,4.181,696,1.383,848,5.318,988,2.449,1198,1.206,1207,2.625,1280,1.775,1866,5.737,1883,4.848,2453,1.665,2466,4.829,2633,5.07,2664,2.609,2735,8.304,2755,5.249,2795,5.461,2802,5.915,2805,5.046,2808,5.385,2811,4.988,2814,5.17,2823,1.696,3112,7.226,3123,4.292,3126,5.249,3127,5.249,3128,5.249,3129,5.249,3130,5.249,3131,5.249,3132,5.249,3133,5.249,3134,5.249,3135,5.249,3136,6.441,3138,5.249,3139,6.644,3141,5.249,3142,6.267,3144,5.249,3145,6.441,3147,5.249,3148,6.441,3150,5.249,3151,6.441,3153,5.249,3154,6.441,3156,5.249,3157,6.441,3159,5.249,3160,6.441,3164,4.967,3165,10.941,3166,11.562,3167,3.507,3168,6.613,3169,5.678,3170,5.678,3171,5.678,3172,5.678,3173,5.678,3174,5.678,3175,4.967,3176,3.507,3177,5.678,3178,3.507,3179,3.507,3180,3.507,3181,5.678,3182,3.507,3183,3.507,3184,3.507,3185,3.507,3186,3.507,3187,3.507,3188,3.507,3189,5.678,3190,6.718,3191,3.507,3192,5.678,3193,3.507,3194,5.678,3195,3.507,3196,2.235,3197,3.507,3198,3.507,3199,3.507,3200,9.031,3201,3.243,3202,4.223,3203,9.031,3204,10.12,3205,8.221,3206,10.946,3207,10.946,3208,3.507,3209,3.068,3210,4.328,3211,4.967,3212,3.068,3213,4.967,3214,3.068,3215,3.068,3216,2.235,3217,3.507,3218,8.221,3219,2.082,3220,3.507,3221,2.082,3222,3.507,3223,3.507,3224,2.06,3225,3.507,3226,3.507,3227,1.813,3228,3.507,3229,3.068,3230,1.8,3231,3.507,3232,2.128,3233,3.507,3234,3.507,3235,1.964,3236,3.507,3237,3.507,3238,3.507,3239,3.507,3240,5.678,3241,3.507,3242,3.507,3243,3.507,3244,3.507,3245,3.507,3246,3.507,3247,3.507,3248,3.835,3249,2.332,3250,2.206,3251,3.507,3252,4.756,3253,3.507,3254,3.507,3255,5.678,3256,3.507,3257,3.507,3258,3.507,3259,3.507,3260,3.507]],["title/injectables/BoardDoCopyService.html",[539,0.901,3261,5.705]],["body/injectables/BoardDoCopyService.html",[0,0.299,3,0.021,4,0.021,5,0.013,7,0.133,8,1.326,27,0.36,29,0.685,30,0.001,31,0.493,32,0.151,33,0.422,35,1.057,36,2.354,95,0.166,99,1.468,101,0.018,103,0.001,104,0.001,226,1.258,236,1.432,262,2.652,271,3.443,349,0.909,437,1.431,539,1.464,541,2.107,608,2.029,654,2.618,662,3.805,739,4.843,993,4.885,2421,7.458,2453,5.254,2740,6.153,2934,6.895,2966,5.684,2984,5.339,2985,4.928,3086,8.434,3261,9.268,3262,9.679,3263,11.064,3264,12.696,3265,8.801,3266,7.699,3267,7.699,3268,8.801,3269,8.668,3270,7.373,3271,6.271,3272,7.699,3273,8.801,3274,8.801]],["title/injectables/BoardDoRepo.html",[539,0.901,3091,4.761]],["body/injectables/BoardDoRepo.html",[0,0.151,3,0.01,4,0.01,5,0.005,7,0.068,8,0.823,10,2.789,12,3.15,18,3.474,26,2.809,27,0.494,29,0.956,30,0.001,31,0.676,32,0.173,33,0.579,34,1.963,35,1.42,36,2.805,40,3.319,49,1.759,55,2.306,59,2.6,95,0.146,96,1.886,97,1.933,99,0.744,101,0.007,103,0,104,0,120,3.02,173,1.319,177,1.532,226,0.638,236,1.743,262,3.003,349,1.221,379,0.858,381,1.498,437,1.705,479,2.571,529,1.262,539,0.909,541,1.068,556,1.123,565,6.361,603,1.681,604,1.812,608,2.91,1584,5.378,1604,5.197,1679,2.035,1885,2.865,2252,5.411,2264,4.496,2335,6.005,2453,6.17,2469,3.178,2588,2.475,2622,2.375,2735,3.063,3091,4.799,3112,4.929,3142,3.4,3164,3.902,3165,10.745,3166,4.123,3168,4.123,3175,3.902,3248,3.012,3267,6.005,3275,4.123,3276,8.368,3277,5.75,3278,6.346,3279,6.346,3280,6.864,3281,6.864,3282,3.118,3283,9.021,3284,8.368,3285,7.872,3286,4.46,3287,4.165,3288,4.46,3289,4.46,3290,10.654,3291,4.46,3292,8.368,3293,4.46,3294,6.005,3295,4.46,3296,6.346,3297,6.696,3298,4.46,3299,6.864,3300,4.46,3301,4.46,3302,6.864,3303,4.46,3304,6.864,3305,4.46,3306,6.005,3307,4.692,3308,4.46,3309,3.604,3310,4.46,3311,4.123,3312,4.46,3313,3.902,3314,4.46,3315,4.46,3316,4.46,3317,4.46,3318,4.46,3319,3.902,3320,4.46,3321,5.747,3322,6.346,3323,4.46,3324,4.46,3325,4.46,3326,4.46,3327,4.46,3328,6.346,3329,4.46,3330,4.46,3331,4.46,3332,4.46,3333,3.604,3334,4.46,3335,3.902,3336,4.46,3337,4.46,3338,4.46,3339,4.46,3340,4.46,3341,4.46,3342,4.46,3343,4.46,3344,4.46,3345,4.46,3346,4.46,3347,4.46,3348,5.547,3349,4.46]],["title/injectables/BoardDoRule.html",[539,0.901,1700,5.705]],["body/injectables/BoardDoRule.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,8,1.166,27,0.45,29,0.856,30,0.001,31,0.616,32,0.161,33,0.528,35,1.169,39,2.617,95,0.156,101,0.012,103,0.001,104,0.001,119,2.395,131,4.12,143,2.166,145,3.411,177,1.322,226,1.032,239,3.056,345,2.299,349,1.336,379,0.903,437,1.423,528,3.76,539,1.287,541,1.729,604,2.934,662,3.979,1280,2.257,1609,6.369,1612,3.974,1627,4.96,1628,4.73,1637,7.859,1658,4.333,1675,7.14,1700,8.148,1816,6.282,1820,6.042,1827,4.801,2473,10.117,2475,8.993,3070,5.835,3350,11.768,3351,7.221,3352,6.467,3353,4.878,3354,7.221,3355,7.221,3356,6.371,3357,7.221,3358,4.878,3359,4.878,3360,6.57,3361,5.371,3362,9.727,3363,7.221,3364,7.221,3365,9.727,3366,9.727,3367,7.221]],["title/injectables/BoardDoService.html",[539,0.901,3368,5.065]],["body/injectables/BoardDoService.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,8,1.243,27,0.472,29,0.898,30,0.001,31,0.646,32,0.158,33,0.553,35,1.245,36,2.601,55,2.482,59,2.47,95,0.146,99,1.326,101,0.013,103,0.001,104,0.001,177,1.455,226,1.136,262,2.849,345,2.53,379,0.994,437,1.341,539,1.372,541,1.903,608,2.997,1604,3.363,2428,4.302,2453,6.504,2747,4.999,3086,9.318,3090,5.912,3091,9.089,3307,5.759,3368,7.71,3369,7.949,3370,10.366,3371,7.119,3372,7.949,3373,10.366,3374,7.949,3375,10.366,3376,12.224,3377,9.318,3378,7.949,3379,7.949,3380,7.949,3381,6.659,3382,7.949,3383,7.949,3384,7.949,3385,11.535,3386,7.949,3387,7.949,3388,7.949,3389,7.949,3390,7.949]],["title/entities/BoardElement.html",[154,1.456,2629,4.853]],["body/entities/BoardElement.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,9,4.893,26,2.196,27,0.425,30,0.001,31,0.685,32,0.167,34,1.766,95,0.165,96,2.184,101,0.02,103,0.001,104,0.001,112,0.823,138,1.446,143,1.77,154,2.216,155,2.653,173,2.351,174,4.122,175,3.515,180,1.424,181,2.127,182,2.586,838,3.832,1603,2.989,1657,5.804,1679,4.73,1866,6.153,1885,3.317,2607,9.036,2625,5.479,2626,5.557,2627,5.461,2628,4.937,2629,7.386,2630,11.302,2633,4.169,2634,7.386,2635,6.954,2637,4.865,2680,5.978,2975,10.093,3391,7.949,3392,7.949,3393,7.119,3394,7.949,3395,6.604,3396,7.247,3397,10.366,3398,5.664,3399,5.557,3400,5.912]],["title/classes/BoardElementResponse.html",[0,0.231,3401,5.705]],["body/classes/BoardElementResponse.html",[0,0.27,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.472,29,0.619,30,0.001,31,0.445,32,0.187,33,0.381,95,0.161,101,0.013,103,0.001,104,0.001,112,0.823,138,1.885,150,1.811,153,2.356,245,3.024,379,1.296,773,4.022,820,4.756,838,3.832,993,5.754,1603,3.898,1883,4.287,1885,5.526,2196,5.492,2336,6.089,2434,6.79,2507,3.551,2627,4.631,2633,6.65,2637,4.865,2709,9.663,2710,9.576,2711,9.576,3401,10.621,3402,5.557,3403,7.949,3404,9.663,3405,9.663,3406,7.949,3407,10.621,3408,10.366,3409,7.349,3410,7.949,3411,7.349,3412,7.949,3413,7.949,3414,4.879]],["title/interfaces/BoardExternalReference.html",[105,0.735,3297,4.853]],["body/interfaces/BoardExternalReference.html",[3,0.023,4,0.023,5,0.012,7,0.151,26,2.807,30,0.001,32,0.188,34,2.257,95,0.126,101,0.02,103,0.001,104,0.001,105,1.074,107,2.389,112,0.948,564,3.056,838,3.121,1865,9.264,1867,4.42,2442,4.874,2782,7.799,3297,8.503,3415,8.709]],["title/classes/BoardLessonResponse.html",[0,0.231,3405,5.705]],["body/classes/BoardLessonResponse.html",[0,0.313,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,27,0.543,29,0.519,30,0.001,31,0.692,32,0.181,33,0.607,34,2.034,47,0.872,55,2.657,83,3.493,95,0.134,101,0.011,103,0.001,104,0.001,112,0.731,119,1.873,138,2.382,148,2.113,149,3.501,150,1.517,245,3.566,247,2.915,249,4.267,376,5.201,377,5.42,379,1.151,404,2.718,406,4.301,408,4.301,773,3.37,1889,7.244,1985,2.649,2633,7.023,2710,10.489,2711,10.489,2720,4.745,2723,6.633,3405,10.003,3416,6.659,3417,7.51,3418,11.04,3419,11.04,3420,10.003,3421,6.659,3422,5.826,3423,6.659,3424,6.659,3425,6.659,3426,6.659,3427,6.659,3428,9.204,3429,6.659,3430,6.659,3431,6.157,3432,6.659,3433,6.659,3434,8.107,3435,4.745,3436,4.745,3437,6.659,3438,6.659,3439,6.659,3440,7.671]],["title/classes/BoardManagementConsole.html",[0,0.231,3441,5.958]],["body/classes/BoardManagementConsole.html",[0,0.27,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,8,1.243,27,0.425,29,0.807,30,0.001,31,0.581,32,0.142,33,0.497,35,0.955,36,2.206,47,0.732,49,3.135,95,0.155,101,0.013,103,0.001,104,0.001,138,1.446,153,2.622,236,1.293,262,2.527,345,2.53,349,0.821,379,0.994,437,1.028,480,2.207,486,2.391,524,4.534,578,4.823,603,1.597,608,1.832,636,4.622,685,5.172,1861,5.839,1885,5.603,2336,4.669,2633,5.437,3232,4.823,3441,9.068,3442,11.535,3443,6.954,3444,9.583,3445,6.659,3446,8.128,3447,11.093,3448,7.949,3449,8.376,3450,9.583,3451,6.423,3452,10.366,3453,7.949,3454,5.459,3455,8.396,3456,7.688,3457,4.718,3458,7.349,3459,6.227,3460,5.207,3461,7.949,3462,7.949,3463,6.659,3464,10.24,3465,7.949,3466,7.949,3467,5.912]],["title/injectables/BoardManagementUc.html",[539,0.901,3447,5.705]],["body/injectables/BoardManagementUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,26,2.484,27,0.493,29,0.958,30,0.001,31,0.675,32,0.171,33,0.578,34,0.877,35,1.409,36,2.152,55,2.951,95,0.137,96,1.415,97,2.232,99,0.859,101,0.008,103,0,104,0,131,2.867,143,1.147,145,1.43,226,0.736,262,2.481,345,1.639,349,1.271,379,0.644,437,1.517,474,2.2,479,2.867,480,1.43,486,1.55,519,1.596,539,1.013,541,1.233,556,1.297,579,2.743,603,2.721,608,2.61,708,4.201,825,5.899,848,2.834,1178,2.765,1179,3.425,1207,2.444,1395,3.374,1861,5.409,1865,3.601,1867,2.835,1885,3.194,1888,3.926,2252,5.823,2633,4.015,2745,4.828,2795,4.325,2823,3.701,3112,6.987,3202,3.831,3210,3.926,3216,3.282,3227,3.956,3287,5.542,3307,6.423,3435,6.509,3444,7.077,3445,4.315,3446,6.723,3447,6.412,3449,6.185,3450,7.077,3454,3.538,3468,12.307,3469,4.762,3470,7.654,3471,7.654,3472,7.654,3473,7.654,3474,7.654,3475,7.077,3476,5.151,3477,5.151,3478,7.654,3479,5.151,3480,7.654,3481,5.151,3482,7.654,3483,5.151,3484,7.654,3485,5.151,3486,7.654,3487,9.134,3488,5.151,3489,4.315,3490,7.654,3491,8.171,3492,5.151,3493,5.151,3494,5.151,3495,5.151,3496,5.151,3497,4.762,3498,5.151,3499,5.151,3500,5.151,3501,5.151,3502,5.151,3503,5.151,3504,5.151,3505,5.151,3506,4.162,3507,5.151,3508,5.151,3509,5.151,3510,4.762,3511,5.151,3512,5.151,3513,5.151,3514,4.762,3515,9.134,3516,5.151,3517,5.151,3518,5.151,3519,5.151,3520,5.151,3521,4.506,3522,5.151,3523,5.151,3524,5.151,3525,5.151,3526,5.151]],["title/modules/BoardModule.html",[201,1.804,1770,5.065]],["body/modules/BoardModule.html",[0,0.195,3,0.013,4,0.013,5,0.007,30,0.001,95,0.168,99,0.956,101,0.009,103,0,104,0,201,2.818,203,2.061,204,2.214,205,2.279,206,2.269,207,2.26,208,3.558,209,3.653,214,5.456,218,3.291,219,2.232,220,2.18,225,3.264,226,0.819,227,2.359,560,4,564,1.759,569,4.083,1167,3.604,1278,1.813,1546,4.262,1666,2.425,1744,7.135,1770,10.741,1853,9.559,1854,10.018,1885,2.391,2337,3.268,2421,3.366,2428,3.101,2434,3.753,2459,9.026,2489,1.9,2947,11.01,2981,4.8,3091,8.222,3261,9.851,3262,5.013,3283,9.503,3285,9.851,3368,8.747,3454,3.936,3527,5.73,3528,5.73,3529,5.73,3530,5.73,3531,8.964,3532,9.213,3533,8.747,3534,7.304,3535,10.296,3536,10.62,3537,10.62,3538,9.503,3539,9.851,3540,5.73,3541,2.824,3542,2.338,3543,3.701,3544,2.9,3545,5.73,3546,4.489,3547,3.87,3548,5.73,3549,4.489]],["title/entities/BoardNode.html",[154,1.456,3112,3.572]],["body/entities/BoardNode.html",[0,0.214,3,0.015,4,0.015,5,0.008,7,0.169,9,4.187,26,2.481,27,0.48,30,0.001,32,0.179,33,0.426,34,1.894,47,0.88,55,2.52,95,0.158,96,1.735,101,0.015,103,0.001,104,0.001,105,0.681,112,0.704,138,2.13,143,1.975,144,3.663,145,3.372,154,1.896,155,2.107,160,5.847,172,3.739,173,1.867,174,3.527,175,2.792,178,2.623,180,1.132,181,1.69,182,2.054,226,0.903,236,1.027,349,1.21,360,5.741,404,3.619,405,4.881,413,1.945,437,1.326,529,1.787,556,2.234,593,3.285,685,2.672,696,4.043,708,3.684,838,2.78,1162,3.016,1207,3.55,1603,3.335,1604,2.672,1885,2.635,2453,4.211,2725,3.24,2745,5.876,3101,5.29,3112,5.377,3123,5.321,3190,6.823,3248,5.991,3307,4.428,3321,4.337,3398,4.5,3550,5.838,3551,7.625,3552,6.315,3553,5.838,3554,6.315,3555,6.315,3556,6.315,3557,6.315,3558,6.315,3559,4.813,3560,8.2,3561,5.443,3562,9.478,3563,8.2,3564,5.524,3565,4.947,3566,5.838,3567,5.838,3568,5.838,3569,5.838,3570,4.415,3571,4.415,3572,4.023,3573,5.019,3574,5.838,3575,5.838,3576,7.759,3577,5.838,3578,5.838,3579,5.838,3580,5.838,3581,5.838,3582,3.922,3583,5.838,3584,5.838]],["title/interfaces/BoardNodeProps.html",[105,0.735,3561,4.18]],["body/interfaces/BoardNodeProps.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.171,9,4.281,26,2.666,30,0.001,32,0.172,33,0.616,34,2.144,47,0.888,55,2.55,95,0.16,96,1.791,101,0.015,103,0.001,104,0.001,105,0.703,107,1.564,112,0.72,143,1.451,144,3.714,145,2.895,154,1.938,172,3.783,173,1.928,174,3.607,175,2.883,178,2.708,180,1.168,181,1.745,182,2.121,226,0.932,236,1.06,349,1.224,360,3.651,404,3.701,405,4.991,413,2.008,437,1.349,529,1.844,556,2.284,593,3.359,685,2.759,696,4.113,708,3.767,838,2.843,1162,3.114,1207,3.783,1603,3.41,1604,2.759,1885,2.721,2453,4.306,2725,3.345,2745,6.263,3101,5.461,3112,5.913,3123,5.441,3190,6.4,3248,6.126,3307,5.916,3321,4.478,3398,4.645,3550,6.027,3551,4.849,3559,4.969,3560,8.385,3561,6.4,3562,9.642,3563,8.385,3564,5.703,3565,5.107,3566,6.027,3567,6.027,3568,6.027,3569,6.027,3570,4.558,3571,4.558,3572,4.153,3573,5.106,3574,6.027,3575,6.027,3576,7.934,3577,6.027,3578,6.027,3579,6.027,3580,6.027,3581,6.027,3582,4.049,3583,6.027,3584,6.027]],["title/injectables/BoardNodeRepo.html",[539,0.901,3283,5.503]],["body/injectables/BoardNodeRepo.html",[0,0.216,3,0.015,4,0.015,5,0.008,7,0.097,8,1.07,12,4.097,26,2.365,27,0.457,29,0.869,30,0.001,31,0.625,32,0.153,33,0.536,34,1.755,35,1.238,36,2.592,40,4.317,55,2.217,59,1.981,95,0.131,96,1.751,97,2.763,99,1.063,101,0.011,103,0.001,104,0.001,154,2.512,177,1.167,226,0.911,262,2.842,345,2.029,349,1.292,358,2.804,360,5,379,0.797,437,1.677,539,1.182,541,1.526,556,1.606,608,2.375,696,2.514,739,3.908,765,3.538,766,7.479,974,3.082,988,2.749,1666,2.697,1669,4.009,2252,6.429,2588,5.719,3112,6.802,3165,10.282,3175,10.282,3248,4.306,3282,4.457,3283,7.215,3287,5.417,3290,10.866,3322,8.254,3551,4.741,3585,6.375,3586,8.928,3587,8.928,3588,6.375,3589,6.375,3590,8.928,3591,6.375,3592,8.928,3593,6.375,3594,6.375,3595,5.894,3596,6.375,3597,8.928,3598,8.254,3599,10.304,3600,5.151,3601,8.928,3602,8.928,3603,6.375,3604,6.375,3605,5.577,3606,6.375,3607,6.375,3608,8.928,3609,6.375,3610,6.375,3611,6.375,3612,4.457,3613,6.375,3614,6.375,3615,6.375,3616,6.375,3617,5.34,3618,6.375,3619,6.375,3620,6.375,3621,6.375,3622,6.375]],["title/injectables/BoardRepo.html",[539,0.901,2944,5.065]],["body/injectables/BoardRepo.html",[0,0.195,3,0.013,4,0.013,5,0.007,7,0.087,8,0.992,10,3.363,12,3.798,18,4.188,26,2.809,27,0.518,29,0.967,30,0.001,31,0.695,32,0.17,33,0.596,34,1.41,35,1.491,36,2.732,40,4.002,95,0.123,99,0.956,101,0.009,103,0,104,0,154,1.225,155,2.762,180,1.483,226,0.819,236,0.932,262,3.01,349,1.215,382,3.21,437,1.605,479,4.871,539,1.095,541,1.372,603,2.54,604,3.947,608,3.029,679,7.122,685,3.502,686,3.907,687,4.916,711,3.517,712,3.559,713,3.517,714,3.559,716,3.517,717,3.559,718,3.181,848,3.153,1154,2.279,1861,5.39,1867,3.941,1885,5.708,2609,3.604,2632,6.309,2636,6.688,2638,6.688,2680,4.386,2944,6.156,3623,5.73,3624,8.276,3625,8.276,3626,8.276,3627,8.276,3628,8.276,3629,5.73,3630,8.276,3631,5.73,3632,5.73,3633,8.276,3634,5.73,3635,8.276,3636,5.73,3637,5.73,3638,3.936,3639,5.73,3640,8.276,3641,5.73,3642,5.73,3643,5.013,3644,5.73,3645,5.73,3646,5.73,3647,5.73,3648,5.73,3649,9.715,3650,8.982,3651,5.73,3652,5.73,3653,5.73,3654,5.73,3655,5.73]],["title/classes/BoardResponse.html",[0,0.231,2905,5.705]],["body/classes/BoardResponse.html",[0,0.28,2,0.923,3,0.019,4,0.019,5,0.01,7,0.125,27,0.525,29,0.642,30,0.001,31,0.462,32,0.179,33,0.563,34,2.185,47,0.875,95,0.157,101,0.014,103,0.001,104,0.001,112,0.843,138,2.254,150,1.878,245,3.442,247,3.608,253,4.035,379,1.327,404,3.363,556,2.076,773,4.171,818,4.142,1207,4.094,2720,5.873,2723,6.674,2725,4.229,2858,5.399,2859,5.652,2860,5.652,2905,10.743,2906,10.015,3202,9.538,3656,8.242,3657,7.612,3658,8.242,3659,8.242,3660,8.242,3661,6.825,3662,8.242,3663,8.242,3664,8.242,3665,5.48,3666,6.904,3667,5.48]],["title/classes/BoardResponseMapper.html",[0,0.231,2909,5.958]],["body/classes/BoardResponseMapper.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,27,0.353,29,0.671,30,0.001,31,0.482,32,0.149,33,0.413,34,1.467,35,1.035,95,0.16,99,1.437,100,2.893,101,0.014,103,0.001,104,0.001,226,1.231,236,1.949,349,1.127,376,3.751,413,3.69,437,1.114,521,3.411,529,2.437,604,3.499,739,4.777,781,5.112,782,6.058,1207,2.75,1220,4.912,1866,7.477,1885,3.594,2281,5.167,2633,6.608,2747,5.416,2905,10.553,2909,9.548,2910,7.215,2931,7.962,3022,6.137,3202,6.406,3514,7.962,3657,5.112,3661,6.346,3668,10.914,3669,10.09,3670,7.534,3671,8.55,3672,5.726,3673,7.534,3674,8.612,3675,8.612,3676,8.612,3677,7.534,3678,6.137,3679,8.612,3680,8.612]],["title/controllers/BoardSubmissionController.html",[259,2.591,2703,5.958]],["body/controllers/BoardSubmissionController.html",[0,0.173,3,0.012,4,0.012,5,0.006,7,0.077,8,0.912,27,0.372,29,0.707,30,0.001,31,0.509,32,0.188,33,0.436,35,1.092,36,2.142,95,0.158,100,1.715,101,0.008,103,0,104,0,138,1.653,150,1.163,177,1.663,223,2.102,226,0.73,236,1.237,259,1.942,261,2.424,262,2.69,270,6.119,278,5.222,282,7.011,287,7.393,290,7.323,294,6.375,319,3.433,324,4.598,333,4.26,334,3.297,335,6.041,336,7.977,337,2.639,338,2.698,340,2.453,343,2.719,346,5.393,347,4.645,349,0.785,379,0.638,437,1.46,603,1.825,608,2.094,631,3.902,685,3.217,823,3.533,826,4.378,1202,6.8,1883,3.758,1885,2.13,2471,5.976,2622,4.84,2694,7.118,2696,7.342,2697,7.612,2703,6.652,2705,2.41,2706,4.466,2707,4.72,2708,4.72,2824,5.143,2825,3.063,2874,6.609,2876,5.796,2878,6.926,2879,5.796,2882,7.87,2884,4.125,2897,9.159,2899,4.562,2902,3.638,2903,2.885,2904,2.741,2911,4.125,2921,4.125,2922,4.125,3063,3.312,3163,4.844,3250,4.782,3307,3.796,3681,10.068,3682,5.105,3683,4.297,3684,7.612,3685,7.612,3686,8.401,3687,4.72,3688,10.228,3689,8.434,3690,5.105,3691,5.105,3692,5.418,3693,4.466,3694,5.105,3695,5.105,3696,5.105,3697,8.808,3698,5.105,3699,5.105,3700,5.105,3701,5.105,3702,5.105,3703,8.808,3704,5.105,3705,5.105,3706,5.105,3707,3.891,3708,3.171,3709,6.37,3710,5.105,3711,5.105,3712,5.418,3713,3.638,3714,3.891,3715,4.276,3716,5.105,3717,5.105,3718,4.466,3719,5.105,3720,4.466,3721,5.105,3722,4.72,3723,5.105,3724,5.105,3725,5.105,3726,7.604,3727,4.72,3728,5.105,3729,3.171,3730,4.613,3731,4.125,3732,4.125,3733,5.105,3734,5.105,3735,4.72]],["title/classes/BoardTaskResponse.html",[0,0.231,3404,5.705]],["body/classes/BoardTaskResponse.html",[0,0.226,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,27,0.548,29,0.519,30,0.001,31,0.692,32,0.183,33,0.642,34,2.034,47,0.936,83,3.961,95,0.134,101,0.011,103,0.001,104,0.001,112,0.731,138,2.411,149,4.981,150,1.517,153,2.397,245,3.475,247,2.915,347,4.373,376,5.201,377,5.42,379,1.151,404,2.718,406,4.301,408,4.301,773,3.37,1885,2.779,1889,7.244,1927,3.912,1985,2.649,2627,2.975,2633,7.083,2710,10.578,2711,10.578,2720,4.745,2723,7.155,3230,5.412,3404,10.003,3422,8.052,3736,6.659,3737,6.811,3738,6.551,3739,6.659,3740,6.659,3741,6.659,3742,6.659,3743,6.659,3744,6.659,3745,6.659,3746,6.659,3747,6.659,3748,8.835,3749,6.659,3750,6.659,3751,5.217]],["title/classes/BoardTaskStatusMapper.html",[0,0.231,3752,5.958]],["body/classes/BoardTaskStatusMapper.html",[0,0.33,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,8,1.41,27,0.398,29,0.756,30,0.001,31,0.544,32,0.133,33,0.466,35,1.167,95,0.149,99,1.62,100,3.95,101,0.016,103,0.001,104,0.001,236,1.58,347,3.558,349,1.003,413,3.894,437,1.256,782,6.527,789,4.85,3748,10.594,3752,10.287,3753,11.759,3754,9.714,3755,10.287,3756,8.738,3757,9.714,3758,9.714]],["title/classes/BoardTaskStatusResponse.html",[0,0.231,3748,5.705]],["body/classes/BoardTaskStatusResponse.html",[0,0.26,2,0.856,3,0.018,4,0.018,5,0.009,7,0.116,27,0.537,29,0.595,30,0.001,31,0.428,32,0.179,33,0.367,55,2.768,95,0.097,101,0.013,103,0.001,104,0.001,112,0.802,119,2.618,138,2.339,150,1.742,245,3.64,379,1.264,773,3.87,2627,5.949,2633,6.985,2710,10.432,2711,10.432,3748,10.489,3759,7.07,3760,8.457,3761,8.754,3762,8.202,3763,8.202,3764,8.922,3765,8.457,3766,7.07,3767,7.647,3768,7.647,3769,7.647,3770,7.647,3771,7.647,3772,7.647,3773,6.406,3774,7.07,3775,6.406,3776,6.179,3777,7.07,3778,7.07]],["title/injectables/BoardUc.html",[539,0.901,2693,5.503]],["body/injectables/BoardUc.html",[0,0.152,3,0.01,4,0.01,5,0.005,7,0.068,8,0.826,26,3.003,27,0.495,29,0.941,30,0.001,31,0.677,32,0.165,33,0.58,35,1.422,36,2.718,39,3.498,47,0.592,55,1.806,59,1.392,95,0.146,99,0.747,101,0.007,103,0,104,0,177,1.965,180,1.234,226,0.64,262,2.975,349,0.867,379,0.861,382,2.532,437,1.493,448,4.73,539,0.912,541,1.072,560,1.844,603,1.892,608,3.04,639,2.102,1207,3.246,1278,1.417,1612,6.766,1627,6.983,1628,4.512,1698,5.909,1767,2.979,1802,4.908,1854,8.523,1866,2.659,1885,5.131,2253,3.439,2254,4.253,2453,5.097,2454,8.183,2456,5.396,2457,5.396,2458,3.258,2459,7.926,2461,3.332,2462,5.01,2463,4.908,2465,3.509,2466,5.533,2468,3.509,2469,4.908,2472,2.033,2485,8.316,2633,5.333,2693,5.566,2867,7.758,2868,7.758,2871,7.758,3098,3.332,3262,3.919,3297,3.192,3377,7.75,3464,11.178,3535,8.759,3536,9.035,3779,4.48,3780,8.391,3781,8.391,3782,8.709,3783,4.48,3784,6.888,3785,4.48,3786,6.888,3787,4.48,3788,6.888,3789,4.48,3790,6.888,3791,4.48,3792,4.48,3793,7.891,3794,9.419,3795,4.48,3796,6.888,3797,4.48,3798,3.62,3799,3.62,3800,3.62,3801,3.258,3802,4.48,3803,3.62,3804,3.62,3805,4.48,3806,7.808,3807,10.167,3808,4.48,3809,4.48,3810,4.48,3811,4.48,3812,4.142,3813,7.758,3814,4.48,3815,4.48]],["title/classes/BoardUrlParams.html",[0,0.231,2873,5.958]],["body/classes/BoardUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,1885,4.936,2873,10.348,3464,10.639,3816,9.809,3817,5.762,3818,9.809]],["title/classes/BruteForceError.html",[0,0.231,1552,5.958]],["body/classes/BruteForceError.html",[0,0.255,2,0.842,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,27,0.543,29,0.585,30,0.001,31,0.421,32,0.187,33,0.539,35,0.903,47,0.904,55,2.755,95,0.127,101,0.012,103,0.001,104,0.001,112,0.793,138,2.265,154,1.607,177,2.535,180,1.791,182,2.446,226,1.075,292,3.805,340,3.613,347,2.754,379,0.94,382,3.862,820,5.488,823,2.638,950,5.208,988,3.243,990,4.044,1025,5.11,1205,8.243,1206,6.401,1207,3.819,1208,7.151,1212,4.855,1213,4.173,1214,4.855,1215,4.855,1216,4.855,1217,4.855,1218,4.855,1219,4.511,1220,4.288,1226,4.728,1552,8.742,1577,11.835,3819,11.224,3820,7.518,3821,9.992,3822,9.992,3823,6.951,3824,7.518,3825,7.518]],["title/injectables/BsonConverter.html",[539,0.901,3826,5.705]],["body/injectables/BsonConverter.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.227,27,0.419,29,0.797,30,0.001,31,0.573,32,0.14,33,0.491,35,1.457,95,0.13,101,0.013,103,0.001,104,0.001,153,2.326,226,1.114,333,4.33,349,1.057,437,1.324,524,4.446,539,1.354,541,1.866,573,9.032,1154,5.143,1442,9.726,2177,12.363,3826,8.573,3827,7.795,3828,9.462,3829,9.462,3830,10.234,3831,7.795,3832,10.234,3833,11.031,3834,9.504,3835,9.508,3836,9.023,3837,11.216,3838,12.132,3839,10.234,3840,7.795,3841,10.234,3842,7.795,3843,7.795,3844,8.953,3845,7.795]],["title/classes/Builder.html",[0,0.231,2004,4.6]],["body/classes/Builder.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,8,1.387,27,0.512,29,0.737,30,0.001,31,0.53,32,0.158,33,0.454,35,1.137,101,0.016,103,0.001,104,0.001,112,0.919,177,2.289,349,0.977,379,1.183,448,5.124,454,6.185,479,5.156,1939,6.732,2004,7.817,2005,10.473,3846,9.463,3847,11.573,3848,11.573,3849,11.573,3850,9.463,3851,11.573]],["title/classes/BusinessError.html",[0,0.231,1205,4.18]],["body/classes/BusinessError.html",[0,0.34,2,0.676,3,0.014,4,0.014,5,0.007,7,0.092,8,1.03,9,4.723,27,0.504,29,0.47,30,0.001,31,0.338,32,0.185,33,0.48,35,0.726,47,0.845,55,1.849,59,2.67,95,0.138,101,0.01,103,0,104,0,112,0.682,133,2.112,138,2.095,149,3.269,150,1.376,153,2.721,177,2.484,180,1.54,182,1.965,226,0.863,236,1.628,245,3.02,347,3.148,349,0.624,379,1.075,437,0.781,448,3.523,556,1.521,590,3.707,604,2.454,773,3.056,820,5.001,823,3.016,950,6.098,988,4.967,990,4.33,1025,4.682,1154,2.402,1205,5.275,1206,7.305,1207,4.019,1208,6.944,1213,3.352,1219,7.389,1220,6.216,1225,3.707,1226,6.292,1233,7.14,1351,7.519,1507,3.848,1941,4.902,2029,3.9,2507,3.839,2725,4.41,3542,3.507,3671,8.539,3852,6.04,3853,6.945,3854,6.945,3855,5.903,3856,6.551,3857,5.476,3858,9.535,3859,9.648,3860,8.594,3861,6.04,3862,6.04,3863,6.04,3864,6.04,3865,6.04,3866,6.04,3867,6.04,3868,5.284,3869,5.584,3870,5.584,3871,6.551,3872,7.946,3873,8.594,3874,6.04,3875,6.04]],["title/injectables/CacheService.html",[539,0.901,3876,5.705]],["body/injectables/CacheService.html",[0,0.334,3,0.023,4,0.023,5,0.012,7,0.149,8,1.42,27,0.403,30,0.001,35,1.181,95,0.161,101,0.016,103,0.001,104,0.001,226,1.406,349,1.016,539,1.568,541,2.354,1342,7.314,2020,4.304,2021,4.814,2022,4.642,3876,9.923,3877,9.833,3878,13.196,3879,9.833,3880,11.122,3881,5.506,3882,9.833,3883,7.495,3884,9.091,3885,8.602,3886,9.833]],["title/modules/CacheWrapperModule.html",[201,1.804,1357,5.503]],["body/modules/CacheWrapperModule.html",[0,0.267,3,0.018,4,0.018,5,0.009,30,0.001,47,0.727,95,0.17,101,0.013,103,0.001,104,0.001,105,0.849,201,3.041,203,2.831,204,3.042,205,3.13,206,3.117,207,3.104,208,4.205,209,4.317,214,4.779,218,4.096,219,3.066,220,2.994,225,4.062,226,1.125,349,1.064,437,1.485,637,5.609,639,3.694,685,4.358,990,2.661,1198,2.706,1278,2.49,1357,10.828,1821,8.323,2020,3.445,2021,3.854,2022,3.716,2253,3.226,2254,5.183,3542,3.212,3876,11.777,3880,6.886,3881,4.408,3883,8.751,3885,6.886,3887,7.871,3888,7.871,3889,7.871,3890,7.871,3891,10.299,3892,10.299,3893,6.886,3894,6.166,3895,8.069,3896,8.628,3897,7.871,3898,7.871,3899,7.871,3900,9.522,3901,7.277,3902,7.871,3903,6.886,3904,7.277,3905,6.886,3906,6.886,3907,7.277]],["title/classes/CalendarEventDto.html",[0,0.231,3908,5.705]],["body/classes/CalendarEventDto.html",[0,0.329,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,27,0.517,29,0.755,30,0.001,31,0.543,32,0.173,33,0.465,47,0.927,100,3.255,101,0.016,103,0.001,104,0.001,112,0.932,379,1.212,1207,4.033,2725,4.973,3908,11.267,3909,13.131,3910,9.691,3911,8.677,3912,9.836,3913,11.742,3914,9.691,3915,9.691,3916,8.96,3917,8.96]],["title/injectables/CalendarMapper.html",[539,0.901,3918,5.705]],["body/injectables/CalendarMapper.html",[0,0.321,3,0.022,4,0.022,5,0.011,7,0.143,8,1.385,27,0.387,29,0.735,30,0.001,31,0.529,32,0.129,33,0.453,35,1.134,95,0.158,101,0.016,103,0.001,104,0.001,226,1.35,236,1.536,349,0.975,416,9.339,437,1.221,539,1.53,541,2.26,1207,3.014,3908,10.903,3911,7.937,3918,9.681,3919,9.441,3920,11.556,3921,10.903,3922,9.441,3923,7.629,3924,9.441,3925,8.728,3926,8.728,3927,8.728,3928,7.629,3929,9.441,3930,9.441,3931,7.196,3932,9.441]],["title/modules/CalendarModule.html",[201,1.804,3933,5.705]],["body/modules/CalendarModule.html",[0,0.314,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.278,203,3.325,204,3.573,205,3.677,206,3.662,207,3.647,208,4.532,209,4.653,218,4.537,219,3.602,220,3.517,225,3.647,226,1.322,963,5.324,3918,11.324,3933,11.684,3934,9.246,3935,9.246,3936,9.246,3937,12.399,3938,9.246,3939,7.586,3940,9.246,3941,8.548]],["title/injectables/CalendarService.html",[539,0.901,3937,5.958]],["body/injectables/CalendarService.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.084,26,2.662,27,0.484,29,0.81,30,0.001,31,0.583,32,0.162,33,0.499,34,1.105,35,1.086,36,1.923,39,2.431,47,0.865,55,2.238,95,0.169,99,1.082,101,0.011,103,0.001,104,0.001,112,0.718,137,4.08,177,2.346,226,0.928,236,1.692,262,2.279,271,3.536,345,2.065,349,0.934,360,5.825,379,0.811,437,1.169,529,1.836,539,1.196,541,1.553,593,2.403,603,2.649,962,8.564,963,3.736,965,4.25,1074,4.945,1079,3.811,1162,4.317,1163,4.623,1164,5.083,1198,3.867,1443,5.676,1634,4.03,1911,6.44,1912,5.191,1923,4.536,2020,2.84,2021,3.177,2022,3.063,2136,5.878,2155,9.1,2156,10.936,2185,7.929,2186,7.572,2201,5.998,2209,5.998,2210,5.998,2221,5.998,2232,5.998,2233,5.998,2235,5.998,2508,4.623,3881,3.633,3908,5.435,3918,10.528,3921,5.435,3925,5.998,3926,5.998,3927,5.998,3937,7.907,3941,5.998,3942,6.488,3943,10.402,3944,9.038,3945,5.998,3946,9.038,3947,9.038,3948,11.25,3949,6.488,3950,9.091,3951,6.488,3952,6.488,3953,6.488,3954,6.488,3955,9.038,3956,6.488,3957,6.488,3958,6.488,3959,4.825,3960,6.488,3961,6.488,3962,6.488]],["title/classes/Card.html",[0,0.231,2795,3.848]],["body/classes/Card.html",[0,0.196,2,0.646,3,0.013,4,0.013,5,0.01,7,0.087,8,0.997,27,0.539,29,0.968,30,0.001,31,0.697,32,0.176,33,0.597,35,1.522,36,1.77,47,0.799,55,2.615,59,1.793,95,0.154,101,0.016,103,0,104,0,105,0.623,112,0.661,119,1.985,137,5.232,180,1.748,262,2.137,349,1.103,381,2.794,382,3.752,437,0.746,448,3.41,474,2.465,479,3.116,517,3.189,519,3.652,564,1.772,604,4.79,608,1.33,662,2.616,686,3.927,1154,2.295,1207,3.764,1603,2.17,1604,5.262,1607,6.299,1679,3.796,1885,2.408,2173,3.232,2453,6.107,2489,1.913,2727,7.686,2730,5.928,2731,5.928,2732,5.928,2733,5.531,2734,5.928,2736,3.837,2737,5.106,2738,6.271,2740,5.816,2741,5.106,2742,6.147,2744,4.035,2745,4.397,2747,6.135,2748,4.035,2750,5.928,2752,4.035,2754,3.837,2781,5.047,2795,6.032,2802,5.449,2805,5.106,2808,5.449,2811,5.047,2814,5.232,2821,8.231,2822,4.292,2823,2.791,2824,2.539,2825,3.463,3216,7.511,3963,5.336,3964,5.771,3965,5.771,3966,5.336,3967,4.198,3968,4.198,3969,4.198,3970,4.835,3971,5.771,3972,5.049,3973,5.771,3974,5.771,3975,5.771,3976,5.771,3977,5.771,3978,3.63,3979,5.714,3980,4.521,3981,7.691,3982,5.336,3983,5.047,3984,5.336,3985,5.336,3986,5.049,3987,5.336]],["title/controllers/CardController.html",[259,2.591,2701,5.958]],["body/controllers/CardController.html",[0,0.128,3,0.009,4,0.009,5,0.004,7,0.057,8,0.722,10,3.053,27,0.409,29,0.778,30,0.001,31,0.56,32,0.191,33,0.479,35,1.2,36,2.544,95,0.138,100,1.268,101,0.006,103,0,104,0,138,1.817,150,0.86,177,1.102,223,1.554,226,0.54,236,1.222,259,1.436,261,1.792,262,2.804,270,6.313,278,4.136,282,7.427,284,1.166,287,7.833,290,8.368,294,6.667,310,2.61,319,2.719,324,4.742,333,3.965,334,2.437,335,6.289,336,8.24,337,1.951,338,1.995,340,1.814,343,2.01,345,1.201,346,5.929,347,4.836,349,0.622,437,1.356,565,2.24,603,0.758,608,2.302,631,1.937,685,2.548,739,2.636,823,2.113,1202,7.08,1207,1.923,1883,3.107,2452,3.05,2471,6.222,2622,5.32,2694,5.886,2695,6.072,2701,5.268,2705,1.781,2795,5.644,2874,7.265,2876,4.59,2878,7.614,2879,7.143,2882,7.536,2884,6.93,2897,9.512,2898,6.93,2899,5.146,2902,2.689,2903,2.133,2904,2.026,2911,3.05,2921,6.93,2922,6.93,2925,3.302,3210,6.537,3216,3.837,3250,6.846,3371,4.136,3510,3.489,3684,6.294,3687,3.489,3689,7.185,3692,4.291,3693,3.302,3707,4.59,3708,2.344,3712,5.354,3713,5.354,3714,2.877,3729,2.344,3730,5.686,3731,3.05,3732,3.05,3988,3.774,3989,5.567,3990,7.514,3991,6.573,3992,6.947,3993,6.947,3994,11.004,3995,3.774,3996,5.728,3997,3.774,3998,3.774,3999,3.774,4000,3.774,4001,8.576,4002,3.774,4003,3.774,4004,3.774,4005,7.514,4006,7.503,4007,3.774,4008,3.774,4009,3.774,4010,3.774,4011,3.774,4012,7.503,4013,3.774,4014,3.774,4015,3.774,4016,7.503,4017,3.774,4018,3.774,4019,3.774,4020,3.774,4021,3.774,4022,2.373,4023,6.573,4024,4.59,4025,4.59,4026,3.774,4027,3.774,4028,3.161,4029,3.774,4030,5.268,4031,3.774,4032,6.022,4033,3.774,4034,6.022,4035,3.489,4036,3.774,4037,3.774,4038,9.371,4039,3.774,4040,3.302,4041,3.774,4042,3.774,4043,3.774,4044,3.774,4045,3.774,4046,3.774,4047,3.774,4048,3.774,4049,3.302,4050,3.302,4051,3.302,4052,3.774,4053,4.59,4054,3.774,4055,3.302]],["title/classes/CardIdsParams.html",[0,0.231,4006,5.958]],["body/classes/CardIdsParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.172,47,0.947,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,138,1.75,143,2.142,148,3.053,150,2.192,153,2.187,245,3.065,556,2.424,565,7.967,807,4.771,1672,6.087,2347,5.488,4006,10.228,4056,10.809,4057,9.621,4058,9.621,4059,7.775,4060,6.867,4061,9.621]],["title/classes/CardListResponse.html",[0,0.231,4023,5.958]],["body/classes/CardListResponse.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,27,0.477,29,0.744,30,0.001,31,0.535,32,0.172,33,0.458,95,0.148,101,0.016,103,0.001,104,0.001,112,0.924,138,1.738,150,2.177,245,3.052,284,4.137,379,1.456,556,2.406,773,4.834,813,6.679,818,4.801,833,5.302,4023,11.719,4056,11.607,4062,9.553,4063,10.56,4064,9.553,4065,9.553]],["title/entities/CardNode.html",[154,1.456,3136,5.335]],["body/entities/CardNode.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.135,27,0.364,30,0.001,32,0.152,55,2.615,95,0.166,96,2.439,101,0.018,103,0.001,104,0.001,105,0.958,112,0.883,138,1.615,154,2.378,155,2.963,172,3.879,173,2.626,180,1.994,181,2.376,349,0.917,403,4.928,437,1.148,1603,3.338,1604,4.707,2506,5.017,2507,3.966,2795,6.287,3112,5.836,3123,6.675,3136,8.715,3190,5.449,3209,9.733,3216,8.115,3248,5.997,3358,5.997,3559,6.768,3561,6.828,3582,5.515,4066,10.286,4067,5.657,4068,8.208,4069,5.657,4070,9.733,4071,7.438,4072,8.208,4073,8.208]],["title/interfaces/CardNodeProps.html",[105,0.735,4070,5.958]],["body/interfaces/CardNodeProps.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.152,55,2.745,95,0.167,96,2.45,101,0.018,103,0.001,104,0.001,105,0.962,107,2.14,112,0.886,154,2.384,172,3.562,173,2.637,180,2.182,181,2.387,349,0.921,403,4.95,437,1.153,1603,3.353,1604,4.721,2506,5.039,2507,3.984,2795,6.304,3112,5.852,3123,6.693,3136,6.986,3190,5.473,3209,9.76,3216,8.368,3248,6.023,3358,6.023,3559,6.798,3561,7.472,3582,5.539,4066,8.245,4067,5.682,4069,5.682,4070,10.651,4071,7.471,4072,8.245,4073,8.245]],["title/interfaces/CardProps.html",[105,0.735,3986,5.958]],["body/interfaces/CardProps.html",[0,0.257,3,0.018,4,0.018,5,0.012,7,0.115,30,0.001,32,0.154,36,1.612,47,0.881,55,2.686,95,0.166,101,0.019,103,0.001,104,0.001,105,0.817,107,1.818,112,0.797,119,1.542,180,2.019,262,1.66,349,1.239,437,0.98,474,3.236,517,3.85,519,2.346,564,2.326,604,5.212,608,1.746,1154,3.013,1207,4.096,1603,2.848,1604,5.282,1679,4.583,1885,3.161,2173,4.242,2453,4.768,2489,2.511,2727,6.093,2737,4.649,2738,5.899,2741,4.649,2742,5.783,2750,5.397,2781,6.835,2795,6.366,2802,6.578,2805,6.163,2808,6.578,2811,6.093,2814,6.316,2821,9.079,2822,5.634,2823,3.663,2824,3.332,2825,4.545,3216,8.173,3963,7.003,3978,4.764,3979,6.897,3980,5.934,3981,9.284,3982,7.003,3983,6.093,3984,7.003,3985,7.003,3986,8.785,3987,7.003]],["title/classes/CardResponse.html",[0,0.231,4063,5.503]],["body/classes/CardResponse.html",[0,0.239,2,0.789,3,0.016,4,0.016,5,0.008,7,0.107,27,0.526,29,0.549,30,0.001,31,0.395,32,0.179,33,0.521,34,2.075,47,0.822,55,2.058,95,0.154,101,0.012,103,0.001,104,0.001,112,0.759,138,2.285,149,3.638,150,1.605,245,3.475,247,3.083,253,3.449,379,1.196,404,2.875,556,1.774,773,3.565,818,3.541,826,5.508,848,6.702,1207,3.889,1672,4.98,1883,2.913,2452,8.776,2723,6.015,2725,3.615,2858,4.614,2859,5.095,2860,5.095,3216,7.76,3422,6.163,3657,7.229,3661,6.315,3665,4.684,3667,4.684,3707,7.291,3708,4.375,3712,6.816,3713,6.816,3729,4.375,3730,7.389,3731,5.692,3732,5.692,3996,7.291,4024,7.291,4025,7.291,4049,6.163,4050,6.163,4051,6.163,4063,9.842,4071,5.901,4074,7.044,4075,11.261,4076,7.044,4077,7.044,4078,7.044,4079,7.044,4080,7.044,4081,7.044,4082,9.098,4083,7.044,4084,6.163,4085,7.044,4086,6.163,4087,7.044]],["title/classes/CardResponseMapper.html",[0,0.231,4028,5.705]],["body/classes/CardResponseMapper.html",[0,0.307,2,1.012,3,0.021,4,0.021,5,0.011,7,0.137,8,1.349,27,0.37,29,0.704,30,0.001,31,0.506,32,0.124,33,0.434,34,1.54,35,1.086,95,0.155,99,1.508,100,3.036,101,0.015,103,0.001,104,0.001,236,1.992,349,0.934,376,3.936,413,3.772,437,1.169,739,4.924,781,5.365,782,6.244,787,6.722,848,4.974,1207,2.886,1883,3.738,2196,3.656,2795,7.451,3216,5.758,3657,5.365,3661,6.542,3678,6.44,3714,6.889,4028,9.424,4055,7.907,4063,10.358,4075,8.356,4082,9.424,4088,11.249,4089,11.249,4090,8.356,4091,7.907,4092,7.907,4093,7.571,4094,9.038,4095,9.038,4096,9.038]],["title/injectables/CardService.html",[539,0.901,3535,5.335]],["body/injectables/CardService.html",[0,0.177,3,0.012,4,0.012,5,0.006,7,0.079,8,0.927,10,3.143,12,3.549,26,2.495,27,0.506,29,0.962,30,0.001,31,0.692,32,0.169,33,0.593,34,0.89,35,1.453,36,2.841,47,0.65,49,2.06,55,2.449,59,2.403,83,2.375,95,0.144,99,0.871,101,0.009,103,0,104,0,177,1.686,226,0.747,236,1.768,262,3.03,349,0.951,376,2.275,377,2.371,379,0.967,437,1.406,524,2.98,529,1.478,539,1.024,541,1.251,565,3.101,603,2.286,604,2.123,608,2.939,685,3.273,1207,3.471,1853,8.568,1885,2.18,2196,2.113,2428,2.827,2622,2.783,2633,6.179,2735,3.588,2795,7.894,3090,3.886,3091,7.958,3210,5.896,3216,6.925,3277,6.48,3307,5.683,3368,8.761,3371,5.313,3377,7.762,3381,4.376,3535,6.06,4030,4.57,4092,4.57,4093,4.376,4097,5.224,4098,7.735,4099,7.735,4100,6.767,4101,5.224,4102,6.767,4103,10.349,4104,6.226,4105,5.224,4106,7.735,4107,5.224,4108,7.735,4109,5.224,4110,7.735,4111,5.224,4112,6.06,4113,7.735,4114,5.224,4115,7.735,4116,9.414,4117,5.224,4118,7.735,4119,5.224,4120,7.735,4121,5.224,4122,4.222,4123,5.224,4124,5.224,4125,5.224,4126,5.224,4127,5.224,4128,4.83,4129,3.422,4130,4.83,4131,5.224,4132,5.224,4133,5.224,4134,5.224,4135,7.735,4136,7.735,4137,7.735,4138,5.224]],["title/classes/CardSkeletonResponse.html",[0,0.231,4139,5.705]],["body/classes/CardSkeletonResponse.html",[0,0.292,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,27,0.49,29,0.669,30,0.001,31,0.481,32,0.164,33,0.412,47,0.769,55,2.345,72,4.947,95,0.109,101,0.014,103,0.001,104,0.001,112,0.865,138,1.982,150,1.958,153,1.954,245,3.138,253,4.208,379,1.363,480,3.026,754,7.139,773,4.349,820,3.943,2401,8.308,2795,6.159,2858,5.629,2859,5.805,2860,5.805,3216,8.59,3393,7.486,4071,7.199,4112,10.176,4139,10.882,4140,12.587,4141,8.594,4142,8.594,4143,8.594,4144,10.899,4145,9.535,4146,10.899,4147,9.535,4148,7.139,4149,10.899,4150,10.077,4151,10.077,4152,8.594,4153,8.594]],["title/injectables/CardUc.html",[539,0.901,2694,5.335]],["body/injectables/CardUc.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.06,8,0.745,26,2.985,27,0.487,29,0.941,30,0.001,31,0.665,32,0.175,33,0.57,35,1.399,36,2.698,39,3.469,47,0.545,55,2.506,59,1.932,95,0.129,99,0.655,101,0.006,103,0,104,0,131,2.329,177,1.75,180,1.114,226,0.562,239,0.901,262,2.958,349,0.987,379,0.778,382,2.328,437,1.606,448,4.526,479,3.58,539,0.823,541,0.94,556,0.99,560,1.617,603,2.042,608,3.047,639,1.844,739,1.72,848,2.162,1207,3.052,1278,1.243,1507,2.503,1612,7.096,1613,2.411,1627,6.982,1628,2.573,1698,5.628,1767,2.612,1796,2.384,1798,3.078,1802,4.43,1853,6.381,1858,6.872,1864,3.175,1883,3.628,2253,3.162,2254,3.961,2298,2.857,2303,3.078,2453,5.056,2454,7.749,2456,4.871,2457,4.871,2458,2.857,2459,7.584,2461,2.922,2462,4.522,2463,4.43,2465,3.078,2466,5.153,2468,3.078,2469,6.251,2472,1.783,2473,5.612,2485,7.561,2694,4.871,2795,6.58,3098,2.922,3210,4.739,3216,6.09,3377,7.286,3535,8.342,3684,7.349,3798,3.175,3799,3.175,3800,3.175,3803,3.175,3804,3.175,3806,7.394,3983,3.772,3989,7.133,3991,3.437,3992,7.133,3993,7.133,4030,7.675,4053,7.749,4104,4.637,4112,9.935,4154,3.929,4155,6.217,4156,7.716,4157,6.463,4158,6.75,4159,3.929,4160,3.632,4161,3.929,4162,6.217,4163,3.929,4164,6.217,4165,7.716,4166,3.929,4167,6.217,4168,3.929,4169,3.929,4170,8.773,4171,3.929,4172,6.217,4173,3.929,4174,6.217,4175,3.929,4176,3.929,4177,3.929,4178,6.217,4179,3.929,4180,8.111,4181,3.929,4182,3.929,4183,3.929,4184,3.929,4185,6.217,4186,3.632,4187,7.133,4188,3.929,4189,3.929,4190,3.929,4191,3.929,4192,3.929,4193,3.929]],["title/classes/CardUrlParams.html",[0,0.231,3994,5.958]],["body/classes/CardUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,2795,6.684,3817,5.762,3994,10.348,4112,9.949,4194,9.809,4195,9.809]],["title/classes/ChallengeParams.html",[0,0.231,4196,5.958]],["body/classes/ChallengeParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,128,4.75,135,6.546,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,248,4.922,257,7.26,4196,10.318,4197,9.761,4198,9.603,4199,9.761]],["title/classes/ChangeLanguageParams.html",[0,0.231,4200,5.705]],["body/classes/ChangeLanguageParams.html",[0,0.405,2,1.112,3,0.023,4,0.023,5,0.012,7,0.151,27,0.407,30,0.001,32,0.136,95,0.162,99,1.656,101,0.016,103,0.001,104,0.001,112,0.946,138,1.806,148,3.151,150,2.262,245,3.124,838,3.113,851,4.743,2862,6.095,4200,9.982,4201,9.93,4202,8.926,4203,10.092,4204,9.93,4205,9.93,4206,9.93]],["title/classes/Class.html",[0,0.317]],["body/classes/Class.html",[0,0.376,2,0.7,3,0.015,4,0.028,5,0.007,7,0.095,8,1.056,26,2.803,27,0.562,29,0.487,30,0.001,31,0.654,32,0.12,33,0.3,35,1.058,39,2.37,47,0.934,55,1.896,62,6.504,83,3.4,95,0.129,101,0.015,103,0,104,0,105,0.675,112,0.7,133,2.188,180,1.828,349,1.391,376,4.822,377,5.025,381,2.959,382,2.658,448,3.611,479,3.3,519,1.938,556,3.199,662,3.67,686,4.159,1600,5.124,1604,4.938,1607,6.587,1687,3.886,2442,3.063,2736,4.159,2754,4.159,2757,5.473,2759,5.473,2762,4.901,2763,4.901,4207,5.784,4208,8.146,4209,3.756,4210,7.741,4211,8.44,4212,8.053,4213,8.44,4214,6.963,4215,8.44,4216,8.44,4217,8.146,4218,6.256,4219,4.769,4220,6.256,4221,3.934,4222,6.256,4223,6.256,4224,6.256,4225,5.241,4226,6.256,4227,6.256,4228,6.256,4229,6.256,4230,6.256,4231,6.256,4232,6.256,4233,6.256,4234,6.256,4235,6.256,4236,6.256,4237,6.256,4238,6.256,4239,6.256,4240,6.256,4241,6.256,4242,6.256,4243,7.775,4244,5.241,4245,5.241,4246,5.241,4247,5.784,4248,8.146,4249,5.784,4250,5.784,4251,5.784,4252,5.784,4253,5.784,4254,5.784,4255,5.784,4256,5.784,4257,5.784,4258,5.784]],["title/entities/ClassEntity.html",[154,1.456,4259,4.953]],["body/entities/ClassEntity.html",[0,0.267,2,0.598,3,0.012,4,0.027,5,0.006,7,0.18,26,1.666,27,0.525,30,0.001,31,0.577,32,0.175,33,0.643,34,0.91,47,0.915,49,5.284,55,2.008,62,6.046,95,0.139,96,2.16,97,2.315,99,0.891,101,0.013,103,0,104,0,105,0.576,112,0.741,133,2.75,138,2.33,143,2.983,144,4.093,154,1.681,155,1.783,160,6.766,170,6.16,172,4.139,173,1.58,174,3.127,178,2.219,180,0.957,181,1.43,182,1.738,236,0.869,404,2.18,405,4.327,480,1.483,529,1.511,556,3.183,603,1.073,708,2.219,1985,2.125,4209,3.492,4210,7.196,4211,7.846,4212,7.98,4213,7.846,4214,6.9,4215,7.846,4216,7.846,4259,5.72,4260,4.939,4261,5.342,4262,5.342,4263,5.342,4264,5.342,4265,5.342,4266,6.588,4267,5.342,4268,8.595,4269,3.807,4270,5.342,4271,5.342,4272,5.342,4273,5.342,4274,5.342,4275,4.291,4276,3.241,4277,4.939,4278,7.818,4279,4.475,4280,9.516,4281,6.588,4282,4.939,4283,4.939,4284,4.475,4285,2.338,4286,3.171,4287,3.973,4288,7.27,4289,4.185,4290,4.939,4291,4.939,4292,7.27,4293,4.939,4294,7.27,4295,4.939,4296,4.939,4297,6.16,4298,3.973,4299,7.27,4300,4.939,4301,5.994,4302,3.886,4303,7.27,4304,4.939]],["title/classes/ClassEntityFactory.html",[0,0.231,4305,6.296]],["body/classes/ClassEntityFactory.html",[0,0.162,2,0.536,3,0.011,4,0.02,5,0.006,7,0.073,8,0.868,27,0.53,29,1.016,30,0.001,31,0.718,32,0.181,33,0.599,34,1.66,35,1.449,47,0.511,49,4.757,55,2.462,59,3.253,62,5.133,95,0.124,101,0.008,103,0,104,0,112,0.575,120,3.185,133,2.532,140,2.679,153,1.986,154,2.238,155,2.416,177,1.325,180,1.298,236,1.861,271,4.887,319,3.269,349,0.748,379,0.598,382,3.865,413,2.23,437,0.937,447,7.24,448,4.514,449,5.506,452,4.092,453,5.506,454,5.727,455,4.092,456,4.092,457,4.092,458,4.019,459,4.484,460,4.937,461,7.05,462,5.811,463,7.065,464,2.728,469,2.703,470,4.092,471,2.728,472,5.15,473,5.317,474,4.163,475,5.001,476,4.055,477,2.703,478,2.548,479,4.126,480,3.271,481,2.632,482,2.589,483,2.703,484,5.074,485,2.728,486,3.544,487,4.85,488,2.703,489,7.156,490,4.177,491,6.657,492,2.728,493,4.334,494,2.703,495,2.728,496,2.703,497,2.728,498,2.703,499,3.047,500,2.839,501,2.703,502,6.113,503,2.728,504,2.703,505,4.092,506,3.827,507,4.092,508,2.728,509,2.61,510,2.589,511,2.137,512,2.703,513,2.703,514,2.703,515,2.728,516,2.728,517,1.834,518,2.703,519,1.482,520,2.728,521,2.868,522,2.703,523,2.728,524,2.728,525,2.781,527,2.87,1672,2.49,2173,2.679,4209,1.623,4210,3.344,4211,3.646,4212,3.479,4213,3.646,4214,3.008,4215,3.646,4216,3.646,4259,3.479,4268,5.673,4278,4.007,4305,8.078,4306,4.783,4307,6.695,4308,6.695,4309,4.783,4310,4.007,4311,4.783,4312,4.783,4313,3.408,4314,3.646]],["title/classes/ClassFactory.html",[0,0.231,4315,6.296]],["body/classes/ClassFactory.html",[0,0.294,2,0.529,3,0.011,4,0.023,5,0.006,7,0.072,8,0.86,27,0.529,29,1.014,30,0.001,31,0.716,32,0.181,33,0.598,34,1.649,35,1.444,47,0.735,49,1.862,55,2.451,59,3.234,62,5.092,83,2.201,95,0.132,96,1.297,97,2.046,101,0.008,103,0,104,0,112,0.569,120,3.154,133,2.507,140,2.644,153,1.97,154,1.853,155,2.393,177,1.312,180,1.285,236,2.026,271,4.872,319,3.237,349,0.741,376,2.056,377,2.143,379,0.59,382,3.855,413,2.208,437,0.927,447,7.031,448,4.492,449,5.47,452,4.052,453,5.47,454,5.572,455,4.052,456,4.052,457,4.052,458,3.98,459,4.448,460,4.898,461,7.031,462,5.778,463,6.986,464,2.693,469,2.668,470,4.052,471,2.693,472,5.116,473,5.282,474,4.135,475,4.968,476,4.015,477,2.668,478,2.515,479,4.105,480,3.258,481,2.598,482,2.555,483,2.668,484,5.04,485,2.693,486,3.53,487,4.812,488,2.668,489,7.135,490,4.161,491,6.631,492,2.693,493,3.556,494,2.668,495,2.693,496,2.668,497,2.693,498,2.668,501,2.668,502,6.083,503,2.693,504,2.668,505,4.052,506,3.79,507,4.052,508,2.693,509,2.576,510,2.555,511,2.109,512,2.668,513,2.668,514,2.668,515,2.693,516,2.693,517,1.81,518,2.668,519,1.463,520,2.693,521,2.84,522,2.668,523,2.693,525,2.746,527,2.833,2173,2.644,3497,4.365,4129,7.686,4209,1.602,4210,3.301,4211,3.599,4212,3.434,4213,3.599,4214,2.969,4215,3.599,4216,3.599,4243,5.466,4244,3.955,4245,3.955,4307,6.629,4308,6.629,4313,3.364,4314,3.599,4315,8.014,4316,4.721,4317,6.177,4318,4.721,4319,3.434,4320,4.721,4321,4.721]],["title/classes/ClassFilterParams.html",[0,0.231,4322,5.958]],["body/classes/ClassFilterParams.html",[0,0.398,2,1.08,3,0.023,4,0.023,5,0.011,7,0.146,27,0.395,30,0.001,32,0.179,33,0.562,95,0.16,101,0.016,103,0.001,104,0.001,105,1.041,112,0.93,138,1.754,148,3.06,149,4.454,150,2.197,249,4.736,838,3.024,851,4.607,2863,5.769,4322,10.242,4323,10.824,4324,7.103,4325,8.079,4326,13.819,4327,9.644,4328,9.644,4329,9.644]],["title/classes/ClassInfoDto.html",[0,0.231,4330,5.503]],["body/classes/ClassInfoDto.html",[0,0.352,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.556,29,0.619,30,0.001,31,0.685,32,0.191,33,0.635,34,1.965,47,0.967,55,2.231,95,0.101,101,0.013,103,0.001,104,0.001,112,0.823,119,2.11,181,2.774,379,0.994,381,2.67,404,3.244,405,4.374,1985,3.161,2367,5.459,2507,3.551,4285,3.479,4330,10.245,4331,13.697,4332,7.349,4333,9.663,4334,9.663,4335,7.669,4336,9.663,4337,10.664,4338,10.366,4339,7.949,4340,7.949,4341,7.949,4342,7.949,4343,7.949,4344,7.949,4345,10.091,4346,7.949,4347,4.769,4348,7.349,4349,7.349,4350,7.949,4351,7.949,4352,6.059,4353,6.227,4354,7.349,4355,7.349,4356,7.349,4357,7.349]],["title/classes/ClassInfoResponse.html",[0,0.231,4358,5.705]],["body/classes/ClassInfoResponse.html",[0,0.247,2,0.816,3,0.017,4,0.017,5,0.009,7,0.11,27,0.547,29,0.567,30,0.001,31,0.662,32,0.189,33,0.622,34,1.882,47,0.96,55,2.106,95,0.124,101,0.012,103,0.001,104,0.001,112,0.777,119,1.992,138,2.396,149,4.93,150,1.66,181,2.619,245,3.499,379,0.911,381,2.447,404,2.973,405,4.01,556,1.835,818,3.662,838,2.284,1985,2.898,2103,5.708,2367,5.005,2507,3.255,2862,4.472,4285,3.189,4333,9.256,4334,9.256,4335,7.346,4336,9.256,4345,10.779,4347,4.372,4348,6.737,4349,6.737,4352,5.554,4353,5.708,4354,6.737,4355,6.737,4356,6.737,4357,6.737,4358,10.322,4359,12.468,4360,7.039,4361,9.786,4362,7.287,4363,7.287,4364,6.737,4365,7.287,4366,7.287,4367,6.375,4368,7.287,4369,7.287,4370,7.287,4371,7.287]],["title/classes/ClassInfoSearchListResponse.html",[0,0.231,4372,5.705]],["body/classes/ClassInfoSearchListResponse.html",[0,0.348,2,0.876,3,0.027,4,0.018,5,0.009,7,0.119,27,0.517,29,0.609,30,0.001,31,0.438,32,0.185,33,0.605,55,3.023,56,6.259,59,3.188,70,6.463,95,0.145,101,0.013,103,0.001,104,0.001,112,0.815,138,2.21,150,1.783,180,1.839,245,2.69,247,3.425,284,3.896,379,0.979,382,3.666,556,1.971,812,7.311,813,5.471,814,8.096,815,7.006,816,5.852,817,7.235,818,3.933,819,7.235,820,5.253,821,3.761,822,4.382,823,2.746,824,5.471,825,6.626,826,5.908,827,5.126,828,4.168,829,5.471,830,5.471,832,4.921,833,4.343,4358,11.051,4359,9.486,4372,8.595,4373,6.555]],["title/classes/ClassMapper.html",[0,0.231,4374,5.958]],["body/classes/ClassMapper.html",[0,0.463,2,0.763,3,0.016,4,0.027,5,0.008,7,0.103,8,1.121,27,0.471,29,0.895,30,0.001,31,0.697,32,0.157,33,0.551,34,1.593,35,1.38,49,2.689,62,5.494,95,0.146,96,1.873,97,2.955,101,0.011,103,0.001,104,0.001,154,1.999,155,2.275,236,2.11,349,1.187,376,2.969,377,3.094,413,4.174,556,2.894,603,2.145,725,5.071,1604,2.885,1718,2.871,2264,4.466,2300,5.197,2305,4.766,4209,3.173,4210,6.539,4211,7.13,4212,6.803,4213,7.13,4214,5.883,4215,7.13,4216,7.13,4243,7.13,4244,5.711,4259,9.86,4314,5.197,4374,8.183,4375,6.817,4376,9.354,4377,9.354,4378,9.354,4379,9.354,4380,9.354,4381,6.817,4382,9.354,4383,6.817,4384,9.354,4385,6.817,4386,9.354,4387,6.817,4388,6.817,4389,4.344,4390,5.341,4391,6.817,4392,6.817,4393,6.817,4394,6.817,4395,6.817,4396,6.817,4397,6.817,4398,6.817,4399,5.964,4400,6.817,4401,6.817,4402,6.817,4403,5.711,4404,5.711,4405,5.964,4406,6.817,4407,6.817,4408,6.817,4409,6.817,4410,6.817,4411,6.817,4412,6.817,4413,6.817,4414,6.303,4415,6.817,4416,6.817,4417,6.817,4418,6.817,4419,6.817,4420,6.303,4421,6.817]],["title/modules/ClassModule.html",[201,1.804,4422,5.705]],["body/modules/ClassModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.158,101,0.015,103,0.001,104,0.001,201,3.301,203,3.38,204,3.631,205,3.737,206,3.722,207,3.706,208,4.565,209,4.686,218,4.583,219,3.661,220,3.575,226,1.343,560,3.869,2428,5.086,4422,11.716,4423,9.397,4424,9.397,4425,9.397,4426,12.424,4427,11.369,4428,9.397]],["title/interfaces/ClassProps.html",[105,0.735,4245,5.705]],["body/interfaces/ClassProps.html",[0,0.347,3,0.015,4,0.029,5,0.007,7,0.095,26,2.962,30,0.001,31,0.655,32,0.184,33,0.658,39,1.691,47,0.973,55,2.387,62,6.868,83,3.905,95,0.13,101,0.015,103,0,104,0,105,0.678,107,1.508,112,0.702,133,2.198,180,1.832,349,1.392,376,5.092,377,5.307,556,3.203,662,1.976,1600,5.946,1604,3.74,1687,3.904,2442,3.077,2762,4.924,2763,4.924,4207,5.811,4209,3.966,4210,8.174,4211,8.912,4212,8.504,4213,8.912,4214,7.353,4215,8.912,4216,8.912,4217,5.811,4243,8.912,4244,5.265,4245,7.405,4246,5.265,4247,5.811,4248,8.173,4249,5.811,4250,5.811,4251,5.811,4252,5.811,4253,5.811,4254,5.811,4255,5.811,4256,5.811,4257,5.811,4258,5.811]],["title/injectables/ClassService.html",[539,0.901,4426,5.958]],["body/injectables/ClassService.html",[0,0.42,2,1.33,3,0.017,4,0.017,5,0.009,7,0.112,8,1.185,26,2.864,27,0.487,29,0.925,30,0.001,31,0.666,32,0.162,33,0.57,34,1.26,35,1.337,36,2.711,39,2.994,95,0.151,99,1.233,101,0.012,103,0.001,104,0.001,177,1.353,226,1.057,236,1.203,262,2.933,345,2.353,349,1.227,379,0.925,437,1.537,529,2.092,539,1.308,541,1.77,556,1.862,591,4.178,608,2.739,662,4.209,935,4.711,1162,3.532,1604,3.129,1718,3.114,2264,4.843,2428,4.001,4209,2.508,4420,6.836,4426,8.645,4427,10.673,4429,7.394,4430,9.882,4431,7.742,4432,8.645,4433,7.394,4434,7.394,4435,9.882,4436,7.394,4437,7.985,4438,7.394,4439,8.645,4440,7.394,4441,7.394,4442,9.882,4443,5.378,4444,6.194,4445,6.836,4446,7.394,4447,7.394,4448,7.394,4449,7.394,4450,7.394]],["title/classes/ClassSortParams.html",[0,0.231,4451,5.958]],["body/classes/ClassSortParams.html",[0,0.385,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,27,0.465,30,0.001,32,0.155,33,0.544,95,0.163,101,0.015,103,0.001,104,0.001,105,0.989,112,0.901,138,2.063,148,2.907,149,4.316,150,2.087,180,2.033,247,4.01,249,4.589,382,3.423,480,2.544,486,2.756,721,8.1,742,6.188,838,2.872,851,4.376,2990,9.394,4323,8.47,4325,7.675,4451,9.925,4452,7.403,4453,10.697,4454,13.237,4455,9.161,4456,9.161,4457,7.675,4458,8.015,4459,9.161]],["title/classes/ClassSourceOptions.html",[0,0.231,4243,5.191]],["body/classes/ClassSourceOptions.html",[0,0.316,2,1.042,3,0.022,4,0.031,5,0.011,7,0.141,27,0.508,29,0.725,30,0.001,31,0.521,32,0.157,33,0.447,47,0.809,101,0.019,103,0.001,104,0.001,105,1.005,112,0.91,181,3.066,349,0.962,379,1.164,381,4.467,448,5.088,556,2.345,686,5.409,1605,7.799,4243,8.734,4314,9.873,4460,11.975,4461,8.607,4462,11.846,4463,11.458,4464,9.31,4465,9.31,4466,8.607]],["title/classes/ClassSourceOptionsEntity.html",[0,0.231,4268,5.335]],["body/classes/ClassSourceOptionsEntity.html",[0,0.314,2,1.035,3,0.022,4,0.03,5,0.011,7,0.14,27,0.467,29,0.72,30,0.001,31,0.518,32,0.156,33,0.594,47,0.873,95,0.117,96,2.54,101,0.019,103,0.001,104,0.001,105,0.998,112,0.906,138,1.682,143,2.54,144,3.046,160,5.273,172,3.643,173,2.734,181,3.053,379,1.156,381,3.105,556,2.329,2503,5.897,4268,8.938,4314,9.849,4467,11.44,4468,8.548,4469,11.304,4470,11.409,4471,10.548,4472,8.548]],["title/interfaces/ClassSourceOptionsEntityProps.html",[105,0.735,4469,5.958]],["body/interfaces/ClassSourceOptionsEntityProps.html",[0,0.329,3,0.023,4,0.027,5,0.012,7,0.147,30,0.001,32,0.132,33,0.563,47,0.927,95,0.123,96,2.662,101,0.019,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,143,2.158,144,3.193,172,3.749,173,2.866,181,2.594,556,2.441,2503,6.069,4268,7.592,4314,10.252,4467,8.96,4468,8.96,4469,11.052,4471,10.856,4472,8.96]],["title/interfaces/ClassSourceOptionsProps.html",[105,0.735,4462,5.958]],["body/interfaces/ClassSourceOptionsProps.html",[0,0.336,3,0.023,4,0.028,5,0.012,7,0.15,30,0.001,32,0.135,33,0.57,47,0.933,101,0.02,103,0.001,104,0.001,105,1.066,107,2.371,112,0.943,181,2.645,349,1.021,381,3.99,448,4.05,556,2.489,1605,8.278,4243,7.532,4314,10.308,4460,9.136,4461,9.136,4462,11.563,4466,9.136]],["title/injectables/ClassesRepo.html",[539,0.901,4427,5.705]],["body/injectables/ClassesRepo.html",[0,0.455,2,1.183,3,0.016,4,0.016,5,0.008,7,0.101,8,1.106,26,2.684,27,0.467,29,0.887,30,0.001,31,0.638,32,0.156,33,0.547,34,1.571,35,1.269,36,2.63,39,1.797,47,0.472,49,2.635,62,3.925,95,0.161,96,1.836,97,2.896,99,1.115,101,0.011,103,0.001,104,0.001,154,1.428,177,1.223,226,0.955,236,1.945,262,2.871,345,2.127,349,0.953,379,0.836,437,1.67,529,1.89,539,1.221,541,1.599,556,1.683,608,2.626,631,3.429,725,6.861,1718,2.814,2252,6.56,2588,5.12,3282,4.671,3287,5.597,4209,3.129,4210,4.671,4259,8.696,4374,5.845,4389,4.257,4427,7.728,4431,7.227,4437,7.454,4473,6.682,4474,9.225,4475,9.225,4476,6.682,4477,9.225,4478,6.682,4479,6.682,4480,9.225,4481,6.682,4482,4.513,4483,4.671,4484,3.966,4485,10.565,4486,6.177,4487,6.693,4488,9.225,4489,6.682,4490,6.682,4491,6.177,4492,6.177,4493,6.682,4494,6.682,4495,6.682,4496,6.682,4497,6.682,4498,6.682,4499,6.682,4500,6.682,4501,6.682,4502,6.682,4503,9.225,4504,6.682,4505,6.682,4506,6.682]],["title/injectables/CloseUserLoginMigrationUc.html",[539,0.901,4507,5.705]],["body/injectables/CloseUserLoginMigrationUc.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.101,8,1.101,26,2.679,27,0.431,29,0.82,30,0.001,31,0.59,32,0.144,33,0.505,35,1.103,36,1.954,39,1.786,47,0.468,95,0.151,99,1.107,101,0.011,103,0.001,104,0.001,119,2.312,128,5.192,177,2.08,236,1.494,239,2.902,262,2.307,349,1.173,379,1.148,437,1.543,529,2.598,539,1.215,541,1.589,556,1.672,560,2.733,593,2.458,603,2.54,608,2.844,643,2.95,990,2.244,1612,5.053,1613,4.074,1627,4.559,1698,6.684,1796,4.027,2472,3.013,2476,4.641,4209,4.046,4507,7.693,4508,5.075,4509,11.361,4510,5.364,4511,8.033,4512,11.361,4513,5.364,4514,8.791,4515,9.406,4516,10.22,4517,6.137,4518,9.183,4519,6.638,4520,9.183,4521,7.967,4522,6.638,4523,7.408,4524,4.937,4525,7.194,4526,5.06,4527,5.2,4528,5.56,4529,6.137,4530,8.248,4531,6.638,4532,5.56,4533,4.937,4534,8.033,4535,6.638,4536,8.033,4537,6.137,4538,6.137,4539,6.137,4540,5.06,4541,5.56]],["title/injectables/CollaborativeStorageAdapter.html",[539,0.901,4542,5.705]],["body/injectables/CollaborativeStorageAdapter.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.946,27,0.487,29,0.895,30,0.001,31,0.644,32,0.162,33,0.552,34,1.345,35,1.321,36,2.594,47,0.661,72,3.583,95,0.151,100,4.095,101,0.009,103,0,104,0,112,0.627,153,2.613,226,0.768,273,6.018,274,6.898,276,5.29,284,2.438,301,5.249,333,5.028,349,1.066,379,0.987,517,3.956,519,1.664,539,1.045,541,1.286,564,2.424,603,1.586,631,4.804,639,2.521,1278,1.699,1663,6.254,2146,5.625,2253,3.837,2254,4.659,2899,4.737,3541,6.131,3911,5.422,4542,6.613,4543,8.235,4544,10.666,4545,5.371,4546,5.742,4547,8.339,4548,10.213,4549,6.907,4550,6.379,4551,8.997,4552,6.907,4553,6.379,4554,6.379,4555,7.895,4556,6.379,4557,6.379,4558,5.371,4559,10.055,4560,8.645,4561,7.895,4562,6.379,4563,9.015,4564,5.371,4565,8.561,4566,6.379,4567,5.371,4568,7.895,4569,5.371,4570,6.379,4571,5.371,4572,7.895,4573,7.353,4574,8.084,4575,5.371,4576,5.872,4577,4.698,4578,4.207,4579,4.499,4580,6.613,4581,5.371,4582,4.698,4583,4.965,4584,4.094,4585,5.371,4586,5.371,4587,7.895,4588,5.371,4589,5.371,4590,5.371,4591,5.371]],["title/injectables/CollaborativeStorageAdapterMapper.html",[539,0.901,4560,5.705]],["body/injectables/CollaborativeStorageAdapterMapper.html",[0,0.269,3,0.019,4,0.019,5,0.009,7,0.12,8,1.241,27,0.325,29,0.618,30,0.001,31,0.444,32,0.108,33,0.381,35,0.953,95,0.161,100,4.599,101,0.013,103,0.001,104,0.001,153,1.803,226,1.134,236,1.29,276,5.627,333,4.876,349,1.069,539,1.37,541,1.899,662,3.624,1663,6.652,1718,4.36,3541,5.101,3911,5.449,4487,6.081,4543,6.992,4547,9.87,4550,8.365,4560,8.672,4563,8.704,4565,7.587,4573,8.704,4574,9.569,4576,7.7,4577,6.94,4578,8.11,4579,6.646,4582,9.057,4584,6.047,4592,7.933,4593,10.352,4594,10.352,4595,7.933,4596,8.365,4597,8.365,4598,9.87,4599,6.411,4600,6.94,4601,6.94,4602,6.94,4603,4.329,4604,5.653,4605,7.933,4606,7.933,4607,7.933,4608,7.933,4609,7.933]],["title/modules/CollaborativeStorageAdapterModule.html",[201,1.804,4610,5.705]],["body/modules/CollaborativeStorageAdapterModule.html",[0,0.242,3,0.017,4,0.017,5,0.008,30,0.001,47,0.502,95,0.173,101,0.012,103,0.001,104,0.001,201,2.892,203,2.56,204,2.751,205,2.831,206,2.819,207,2.808,208,3.999,209,4.106,214,5.847,218,3.831,219,2.773,220,2.708,225,3.799,226,1.018,437,0.921,636,5.602,963,4.099,1116,5.073,1278,2.252,1768,9.372,1769,5.964,2020,3.116,2021,3.486,2022,3.361,3534,7.827,3541,4.747,3544,3.603,3881,3.987,3939,6.405,4542,11.436,4543,4.809,4544,6.228,4548,5.964,4559,5.753,4560,10.556,4580,9.147,4582,6.228,4583,6.582,4610,11.911,4611,7.119,4612,7.119,4613,7.119,4614,7.119,4615,9.372,4616,9.165,4617,11.65,4618,11.271,4619,7.119,4620,4.979,4621,7.119,4622,7.119,4623,6.582,4624,5.577,4625,7.119,4626,9.633,4627,7.119,4628,7.119,4629,7.119]],["title/controllers/CollaborativeStorageController.html",[259,2.591,4630,5.958]],["body/controllers/CollaborativeStorageController.html",[0,0.359,3,0.016,4,0.016,5,0.008,7,0.101,8,1.107,27,0.274,29,0.521,30,0.001,31,0.375,32,0.091,33,0.321,35,0.804,36,1.965,95,0.161,101,0.011,103,0.001,104,0.001,138,1.217,141,3.197,150,1.525,153,3.016,177,1.225,223,2.755,226,0.957,236,1.502,239,2.616,259,2.546,261,3.178,270,5.582,276,5.258,278,6.343,282,5.736,287,6.05,290,6.717,292,4.674,294,6.012,301,7.581,305,5.318,316,4.958,324,4.674,333,5.062,334,4.322,336,7.43,337,3.459,338,3.537,343,3.565,345,2.13,347,4.176,349,0.691,564,3.501,603,1.344,643,2.974,990,3.122,993,5.126,1278,2.117,1663,5.73,2253,2.743,2254,4.17,2348,7.463,2904,3.593,3541,6.095,4548,10.021,4557,8.545,4565,8.022,4599,7.463,4630,8.08,4631,6.457,4632,9.235,4633,6.693,4634,7.737,4635,6.693,4636,11.06,4637,9.551,4638,11.962,4639,9.213,4640,6.693,4641,6.693,4642,7.463,4643,9.235,4644,6.693,4645,7.04,4646,6.693,4647,6.693,4648,9.235,4649,6.343,4650,8.08,4651,7.737,4652,6.188,4653,6.188,4654,5.855,4655,6.188,4656,6.693,4657,6.693,4658,6.693,4659,6.693,4660,6.693,4661,6.693]],["title/modules/CollaborativeStorageModule.html",[201,1.804,4662,5.503]],["body/modules/CollaborativeStorageModule.html",[0,0.252,3,0.017,4,0.017,5,0.009,30,0.001,95,0.173,101,0.012,103,0.001,104,0.001,201,2.951,203,2.664,204,2.863,205,2.946,206,2.934,207,2.922,208,4.08,209,4.189,214,5.914,218,3.935,219,2.886,220,2.818,223,4.073,225,3.902,226,1.059,227,3.05,1278,2.343,1359,9.481,1692,6.956,1750,8.755,2472,3.362,3541,3.65,4544,8.656,4576,8.286,4580,6.205,4610,10.678,4630,9.746,4631,5.179,4651,11.508,4652,6.848,4653,6.848,4662,11.529,4663,7.407,4664,7.407,4665,7.407,4666,7.407,4667,10.678,4668,10.678,4669,10.678,4670,6.848,4671,7.407,4672,6.48,4673,6.848,4674,7.407,4675,6.48,4676,6.205,4677,6.848,4678,7.407,4679,7.407]],["title/injectables/CollaborativeStorageService.html",[539,0.901,4667,5.705]],["body/injectables/CollaborativeStorageService.html",[0,0.184,3,0.013,4,0.013,5,0.006,7,0.082,8,0.952,26,2.194,27,0.472,29,0.898,30,0.001,31,0.646,32,0.158,33,0.553,34,1.353,35,1.325,36,2.697,47,0.917,95,0.161,99,0.903,100,3.479,101,0.009,103,0,104,0,143,1.768,145,2.205,153,1.805,154,1.697,226,0.774,227,2.229,236,1.292,239,1.822,262,2.526,276,3.376,333,4.879,349,1.262,379,0.993,480,1.503,486,1.629,539,1.051,541,1.296,603,2.316,608,2.388,643,2.406,1278,1.713,1615,3.285,1663,5.207,1698,5.475,1750,8.183,1760,5.28,2253,3.855,2254,4.677,2472,2.457,3063,3.459,3541,2.668,3911,8.825,4487,4.665,4542,8.678,4547,6.417,4553,6.417,4554,6.417,4556,6.417,4557,7.6,4562,6.417,4563,8.489,4565,7.161,4566,6.417,4570,6.417,4574,8.115,4578,4.241,4580,4.535,4599,4.375,4631,8.329,4649,5.454,4667,6.653,4668,8.678,4675,10.423,4680,5.414,4681,7.941,4682,5.414,4683,9.082,4684,9.405,4685,8.228,4686,5.414,4687,5.414,4688,5.414,4689,7.941,4690,7.921,4691,5.414,4692,4.166,4693,6.653,4694,5.454,4695,5.414,4696,5.414,4697,8.575,4698,10.199,4699,5.414,4700,6.221,4701,6.653,4702,6.352,4703,7.342,4704,7.342,4705,4.535,4706,5.414,4707,5.414,4708,5.414,4709,5.414,4710,7.941,4711,5.414,4712,5.414,4713,5.414,4714,5.414,4715,5.414,4716,5.414,4717,5.414,4718,5.414,4719,5.414]],["title/injectables/CollaborativeStorageUc.html",[539,0.901,4651,5.705]],["body/injectables/CollaborativeStorageUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,8,1.102,27,0.489,29,0.929,30,0.001,31,0.668,32,0.163,33,0.573,35,1.366,36,2.744,47,0.871,95,0.156,101,0.011,103,0.001,104,0.001,153,1.511,177,1.683,226,0.951,236,1.495,239,2.109,262,2.309,276,4.833,333,4.459,349,1.174,379,1.15,539,1.217,541,1.592,560,3.785,603,1.847,1663,5.714,1760,6.113,3911,4.566,4553,7.429,4554,7.429,4556,7.429,4562,7.429,4563,9.016,4565,7.666,4566,7.429,4570,7.429,4576,7.838,4579,5.57,4631,8.629,4636,10.511,4637,9.524,4639,9.187,4649,6.314,4651,7.701,4654,5.816,4655,6.147,4667,9.524,4669,9.524,4672,5.816,4673,6.147,4675,5.816,4676,5.57,4700,7.202,4701,7.701,4702,7.679,4703,8.5,4704,8.5,4720,12.343,4721,6.648,4722,10.538,4723,6.648,4724,10.538,4725,6.648,4726,6.648,4727,6.648,4728,6.648,4729,6.648,4730,11.369,4731,6.648,4732,9.193,4733,8.5,4734,6.648,4735,6.648,4736,6.648,4737,6.648,4738,6.648,4739,6.648,4740,6.648]],["title/classes/Column.html",[0,0.231,2633,3.572]],["body/classes/Column.html",[0,0.221,2,0.729,3,0.015,4,0.015,5,0.008,7,0.099,8,1.086,27,0.54,29,0.979,30,0.001,31,0.705,32,0.178,33,0.604,35,1.541,36,1.928,47,0.836,55,1.949,59,2.022,95,0.132,101,0.017,103,0.001,104,0.001,105,0.702,112,0.719,119,2.121,137,5.697,180,1.867,262,2.283,349,1.076,381,3.043,382,3.87,437,0.842,448,3.713,474,2.78,479,3.393,517,2.495,519,3.669,604,3.681,608,1.5,662,2.849,686,4.276,1154,2.589,1207,3.915,1603,2.447,1604,4.767,1607,6.729,1679,4.134,1885,2.716,2453,6.265,2633,5.909,2727,7.905,2730,6.455,2731,6.455,2732,6.455,2733,6.023,2734,6.455,2736,4.328,2737,5.56,2738,6.618,2740,6.333,2741,5.56,2742,6.487,2744,4.55,2745,4.788,2747,6.553,2748,4.55,2750,6.455,2752,4.55,2754,4.328,2781,5.496,2795,5.119,2818,5.452,3967,6.589,3968,4.734,3969,4.734,3970,5.452,3972,5.694,3978,4.093,3979,6.222,3980,5.099,3983,5.496,4741,6.018,4742,6.018,4743,6.018,4744,6.509,4745,6.509,4746,6.018,4747,6.018,4748,5.694,4749,6.018]],["title/classes/ColumnBoard.html",[0,0.231,1866,4.042]],["body/classes/ColumnBoard.html",[0,0.207,2,0.683,3,0.014,4,0.014,5,0.007,7,0.093,8,1.038,27,0.545,29,0.983,30,0.001,31,0.707,32,0.178,33,0.606,35,1.542,36,1.842,47,0.816,55,1.863,59,1.896,95,0.128,101,0.017,103,0,104,0,105,0.659,112,0.688,119,2.048,131,4.499,137,5.446,180,1.803,262,2.205,349,1.131,381,2.908,382,3.808,437,0.789,448,3.549,474,2.607,479,3.244,517,3.32,519,3.721,604,3.518,608,1.407,662,2.723,686,4.088,1154,2.428,1207,3.835,1603,2.295,1604,4.634,1607,6.499,1679,3.952,1866,6.5,1885,2.547,2453,6.182,2633,4.542,2727,7.79,2730,6.17,2731,6.17,2732,6.17,2733,5.757,2734,6.17,2736,4.058,2737,5.314,2738,6.433,2740,6.054,2741,5.314,2742,6.306,2744,4.267,2745,4.577,2747,6.329,2748,4.267,2750,6.17,2752,4.267,2754,4.058,2781,5.254,2820,5.113,3297,8.559,3967,4.44,3968,4.44,3969,4.44,3970,5.113,3972,5.34,3978,3.839,3979,5.947,3980,4.782,3983,5.254,4750,10.691,4751,5.643,4752,6.104,4753,6.104,4754,5.34,4755,6.104,4756,6.104,4757,6.104,4758,6.104,4759,6.104,4760,6.104,4761,8.006,4762,5.643,4763,5.643,4764,5.643,4765,5.113,4766,5.643]],["title/injectables/ColumnBoardCopyService.html",[539,0.901,2947,5.705]],["body/injectables/ColumnBoardCopyService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.129,26,2.274,27,0.386,29,0.733,30,0.001,31,0.528,32,0.158,33,0.452,35,0.827,36,2.004,39,2.534,95,0.162,99,1.149,101,0.011,103,0.001,104,0.001,120,4.144,177,2.212,192,4.388,226,0.985,227,2.836,236,1.532,239,1.58,262,2.352,349,0.711,379,1.178,381,2.313,437,1.563,521,3.73,529,2.665,539,1.247,541,1.649,560,2.836,603,2.427,608,2.786,1162,3.29,1454,4.908,1666,2.914,1744,7.749,1865,4.815,1866,6.372,1867,2.551,1885,5.043,1888,5.25,2281,5.651,2421,5.533,2428,3.728,2934,5.396,2937,8.709,2947,7.891,2966,6.932,2984,4.179,2985,3.857,2991,8.24,3022,6.712,3037,6.368,3039,6.368,3090,5.123,3091,8.723,3196,4.388,3261,10.7,3271,4.908,3272,8.24,3297,6.712,3539,9.668,3544,3.485,4767,9.925,4768,7.503,4769,10.735,4770,6.887,4771,9.419,4772,6.025,4773,6.887,4774,6.368,4775,6.887,4776,6.887,4777,6.887,4778,6.887,4779,3.823,4780,6.368,4781,6.887,4782,6.887,4783,6.887,4784,6.368,4785,6.887,4786,6.368,4787,5.566,4788,6.887,4789,6.887,4790,6.887,4791,6.887,4792,6.887,4793,6.887]],["title/classes/ColumnBoardFactory.html",[0,0.231,4794,6.296]],["body/classes/ColumnBoardFactory.html",[0,0.166,2,0.547,3,0.011,4,0.011,5,0.006,7,0.074,8,0.882,27,0.532,29,1.012,30,0.001,31,0.693,32,0.183,33,0.593,34,1.8,35,1.458,47,0.519,49,1.928,55,2.48,59,3.283,83,2.26,95,0.125,99,0.815,101,0.012,103,0,104,0,112,0.584,120,3.238,131,2.757,133,2.574,140,2.737,153,2.012,154,2.259,155,2.456,177,1.621,180,1.319,236,1.603,271,4.912,319,3.323,349,0.76,376,2.129,377,2.219,379,0.611,382,3.882,413,2.267,437,0.952,447,7.266,448,4.552,449,5.567,452,4.159,453,5.567,454,5.762,455,4.159,456,4.159,457,4.159,458,4.085,459,4.543,460,5.003,461,6.526,462,5.866,463,7.093,464,2.788,469,2.762,470,4.159,471,2.788,472,5.207,473,5.376,474,4.208,475,5.056,476,4.122,477,2.762,478,2.603,479,4.16,480,3.293,481,2.69,482,2.645,483,2.762,484,5.129,485,2.788,486,3.568,487,4.914,488,2.762,489,6.986,490,4.205,491,6.701,492,2.788,493,4.391,494,2.762,495,2.788,496,2.762,497,2.788,498,2.762,499,3.114,500,2.901,501,2.762,502,6.164,503,2.788,504,2.762,505,4.159,506,3.89,507,4.159,508,2.788,509,2.667,510,2.645,511,2.184,512,2.762,513,2.762,514,2.762,515,2.788,516,2.788,517,1.874,518,2.762,519,1.514,520,2.788,521,2.915,522,2.762,523,2.788,524,2.788,526,2.901,527,2.933,556,1.231,1207,1.561,1865,3.417,1866,2.901,1885,2.04,1888,3.726,2633,2.564,2735,3.357,2979,4.095,4129,4.821,4765,4.095,4794,8.185,4795,7.36,4796,4.888,4797,9.852,4798,4.888,4799,4.888,4800,4.888]],["title/entities/ColumnBoardNode.html",[154,1.456,3142,5.191]],["body/entities/ColumnBoardNode.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,27,0.428,30,0.001,32,0.168,34,1.37,49,4.576,95,0.165,96,2.21,101,0.017,103,0.001,104,0.001,105,0.868,112,0.829,131,4.6,138,1.9,154,2.233,155,2.684,172,3.704,173,2.379,180,1.872,181,2.153,236,1.309,349,1.079,403,4.465,437,1.04,524,4.588,1603,3.025,1604,4.42,1865,8.111,1885,4.841,2453,4.96,2506,4.546,2507,3.594,2611,4.82,2979,6.739,3112,5.48,3123,6.268,3142,7.963,3190,4.937,3248,5.433,3297,8.267,3333,9.375,3335,10.149,3559,6.132,3561,6.411,3582,4.996,4067,5.125,4069,5.125,4801,10.149,4802,7.963,4803,8.044,4804,6.268,4805,8.044,4806,9.658,4807,9.139,4808,9.658,4809,7.437,4810,6.739,4811,7.437,4812,7.437,4813,7.437]],["title/interfaces/ColumnBoardNodeProps.html",[105,0.735,4807,5.958]],["body/interfaces/ColumnBoardNodeProps.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.126,30,0.001,32,0.161,34,1.419,49,4.213,95,0.167,96,2.288,101,0.018,103,0.001,104,0.001,105,0.899,107,1.998,112,0.848,131,4.931,154,2.283,172,3.766,173,2.463,180,2.113,181,2.229,236,1.355,349,1.103,403,4.622,437,1.077,524,4.749,1603,3.131,1604,4.52,1865,7.468,1885,3.475,2453,5.072,2506,4.705,2507,3.72,2611,4.929,2979,6.976,3112,5.603,3123,6.409,3142,6.348,3190,5.111,3248,5.625,3297,9.167,3333,6.729,3335,7.285,3559,6.348,3561,7.238,3582,5.172,4067,5.305,4069,5.305,4801,7.285,4804,4.996,4806,9.876,4807,10.318,4808,9.876,4809,7.699,4810,6.976,4811,7.699,4812,7.699,4813,7.699]],["title/interfaces/ColumnBoardProps.html",[105,0.735,4765,5.705]],["body/interfaces/ColumnBoardProps.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.125,30,0.001,32,0.16,36,1.75,47,0.905,95,0.149,101,0.019,103,0.001,104,0.001,105,0.888,107,1.974,112,0.842,119,1.674,131,4.915,180,2.101,262,1.802,349,1.279,437,1.064,474,3.513,517,4.063,519,2.548,604,4.306,608,1.896,1154,3.271,1207,4.189,1603,3.093,1604,3.48,1679,4.836,1866,6.96,1885,3.432,2453,5.032,2633,5.559,2727,6.43,2737,5.048,2738,6.225,2741,5.048,2742,6.102,2750,5.861,2781,7.114,2820,6.89,3297,9.35,3978,5.173,3979,7.279,3980,6.444,3983,6.43,4750,7.604,4751,7.604,4761,9.798,4762,7.604,4763,7.604,4764,7.604,4765,8.878,4766,7.604]],["title/injectables/ColumnBoardService.html",[539,0.901,1854,5.191]],["body/injectables/ColumnBoardService.html",[0,0.141,3,0.01,4,0.01,5,0.005,7,0.063,8,0.778,10,2.636,12,2.977,26,2.506,27,0.484,29,0.921,30,0.001,31,0.663,32,0.162,33,0.568,34,1.671,35,1.389,36,2.674,47,0.865,49,1.636,83,3.454,95,0.138,99,0.692,101,0.007,103,0,104,0,131,2.993,177,1.463,226,0.593,236,2.102,262,2.946,349,1.123,376,3.937,377,4.103,379,0.811,437,1.705,480,1.151,486,1.952,524,2.365,529,1.173,539,0.859,541,0.993,565,3.851,603,2.089,604,1.685,608,2.506,685,2.745,708,1.723,1154,1.649,1207,3.849,1679,1.893,1854,4.946,1866,7.46,1883,2.683,1885,4.695,2020,1.815,2021,2.031,2022,1.958,2173,2.322,2428,2.244,2453,4.658,2469,2.955,2633,4.192,2735,6.208,2795,4.516,2811,5.952,2823,3.137,2866,3.834,3090,3.085,3091,7.272,3101,5.435,3102,3.834,3103,3.834,3104,5.998,3106,7.388,3107,3.834,3216,2.642,3278,5.998,3296,5.998,3297,8.429,3368,8.085,3464,5.435,3538,8.784,3673,3.628,3881,2.322,4100,5.676,4104,2.192,4122,3.351,4129,5.921,4130,3.834,4482,2.801,4483,2.899,4484,2.462,4767,11.145,4774,3.834,4814,4.147,4815,6.488,4816,6.488,4817,6.488,4818,6.488,4819,4.147,4820,6.488,4821,4.147,4822,6.488,4823,4.147,4824,6.488,4825,4.147,4826,5.998,4827,6.488,4828,4.147,4829,6.488,4830,4.147,4831,6.488,4832,4.147,4833,4.147,4834,6.488,4835,4.147,4836,4.147,4837,6.488,4838,4.147,4839,4.147,4840,4.147,4841,4.147,4842,4.147,4843,6.488,4844,4.147,4845,6.488,4846,4.147,4847,4.147,4848,4.147,4849,4.147,4850,4.147,4851,4.147,4852,4.147,4853,4.147,4854,4.147,4855,4.147,4856,9.039,4857,7.991,4858,4.147,4859,4.147,4860,4.147,4861,4.147,4862,6.488,4863,4.147,4864,4.147,4865,4.147,4866,4.147,4867,4.147,4868,4.147,4869,4.147,4870,4.147,4871,4.147,4872,4.147,4873,4.147,4874,4.147,4875,4.147,4876,6.488,4877,4.147,4878,4.147,4879,6.488,4880,6.488,4881,4.147,4882,4.147,4883,4.147,4884,4.147,4885,4.147,4886,4.147,4887,4.147,4888,4.147,4889,4.147,4890,4.147,4891,4.147,4892,6.488,4893,6.488,4894,4.147,4895,6.488,4896,6.488,4897,4.147,4898,4.147,4899,4.147,4900,6.488,4901,4.147,4902,2.848,4903,3.249,4904,4.147,4905,4.147,4906,4.147,4907,4.147,4908,3.834]],["title/entities/ColumnBoardTarget.html",[154,1.456,2634,4.853]],["body/entities/ColumnBoardTarget.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,26,2.423,27,0.468,30,0.001,32,0.156,47,0.807,49,4.511,95,0.16,96,2.145,101,0.017,103,0.001,104,0.001,112,0.814,138,2.08,143,1.739,145,3.175,154,2.19,155,2.606,172,4.131,173,2.31,174,4.075,175,3.453,180,1.4,181,2.09,182,2.54,236,1.27,349,1.058,474,3.336,480,2.168,486,2.35,519,3.174,524,4.454,604,3.173,1154,3.106,1207,3.876,1280,2.441,1679,4.676,1866,6.082,1885,5.067,2442,3.824,2607,9.511,2611,3.604,2623,6.528,2634,8.651,2713,7.811,2714,7.491,2725,4.008,2726,9.474,3572,4.976,4802,5.953,4909,11.225,4910,7.81,4911,10.573,4912,7.81,4913,7.81,4914,7.81,4915,4.793,4916,10.247,4917,7.81,4918,7.81,4919,4.912,4920,5.044,4921,7.81,4922,7.81]],["title/injectables/ColumnBoardTargetService.html",[539,0.901,4923,5.705]],["body/injectables/ColumnBoardTargetService.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.173,26,2.746,27,0.453,29,0.86,30,0.001,31,0.619,32,0.151,33,0.53,34,1.667,35,1.176,36,2.513,95,0.156,96,2.688,97,3.158,99,1.215,101,0.012,103,0.001,104,0.001,173,2.155,177,1.791,226,1.042,236,1.185,262,2.78,345,2.319,349,1.141,379,0.911,437,1.594,539,1.295,541,1.744,603,2.372,608,2.723,1154,2.898,1207,3.528,1771,5.3,1854,9.671,1885,4.929,2252,6.801,2291,5.809,2634,6.973,2680,5.332,2713,5.554,3287,6.703,3328,6.737,3348,5.888,4911,6.737,4923,8.198,4924,11.811,4925,7.287,4926,9.786,4927,9.786,4928,7.287,4929,7.287,4930,9.786,4931,7.287,4932,10.215,4933,9.786,4934,7.287,4935,11.049,4936,7.287,4937,7.287,4938,9.786,4939,7.287,4940,7.287,4941,7.287,4942,7.287,4943,7.287,4944,7.287,4945,7.287]],["title/controllers/ColumnController.html",[259,2.591,2700,5.958]],["body/controllers/ColumnController.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.874,10,3.568,27,0.401,29,0.762,30,0.001,31,0.548,32,0.191,33,0.47,35,1.176,36,2.513,59,1.499,95,0.15,100,1.62,101,0.008,103,0,104,0,138,1.78,142,1.887,145,2.023,150,1.099,177,1.334,223,1.986,226,0.69,236,1.185,259,1.835,261,2.29,262,2.78,270,6.283,282,7.336,287,7.737,290,8.591,294,6.667,324,4.952,333,4.141,334,3.115,335,6.304,336,8.239,337,2.493,338,2.549,340,2.318,343,2.569,345,1.535,346,5.809,347,4.825,349,0.498,437,1.136,603,0.969,608,2.256,631,2.475,685,3.083,823,2.557,1202,7.097,1207,2.327,2471,6.236,2622,5.596,2633,5.511,2693,7.097,2695,7.097,2700,6.375,2705,2.277,2795,4.963,2874,7.118,2876,5.555,2878,7.46,2879,7.46,2882,7.737,2884,7.097,2897,8.656,2898,7.908,2899,4.372,2902,3.437,2903,2.726,2904,2.589,2911,3.898,2921,7.097,2922,7.097,2925,4.22,3202,3.588,3250,6.949,3371,5.005,3782,8.119,4022,3.033,4028,4.041,4035,4.459,4040,4.22,4063,5.888,4103,6.104,4946,4.823,4947,8.119,4948,6.737,4949,8.119,4950,4.823,4951,11.227,4952,10.576,4953,9.786,4954,4.823,4955,4.459,4956,4.823,4957,4.823,4958,4.823,4959,4.823,4960,4.823,4961,4.823,4962,8.561,4963,4.823,4964,4.823,4965,4.823,4966,4.823,4967,4.823,4968,6.737,4969,4.823,4970,4.823,4971,4.823,4972,4.823,4973,4.823,4974,9.786,4975,4.823,4976,4.823,4977,4.823,4978,4.823,4979,4.823,4980,4.823,4981,4.823,4982,4.823]],["title/entities/ColumnNode.html",[154,1.456,3139,5.503]],["body/entities/ColumnNode.html",[0,0.323,3,0.022,4,0.022,5,0.011,30,0.001,32,0.13,95,0.17,96,2.612,101,0.016,103,0.001,104,0.001,154,2.481,155,3.173,173,2.812,180,1.704,181,2.545,349,0.982,403,5.277,437,1.23,1603,3.575,1604,5.301,2453,5.511,2506,5.373,2507,4.248,3112,6.088,3123,6.964,3139,9.379,3190,5.835,3201,10.731,3248,6.422,3559,7.247,3561,7.123,3582,5.906,4067,6.058,4069,6.058,4801,8.318,4983,9.508]],["title/interfaces/ColumnProps.html",[105,0.735,4748,5.958]],["body/interfaces/ColumnProps.html",[0,0.294,3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.15,36,1.844,47,0.919,95,0.152,101,0.02,103,0.001,104,0.001,105,0.935,107,2.08,112,0.87,119,1.764,180,2.153,262,1.899,349,1.241,437,1.121,474,3.703,517,3.323,519,2.685,604,4.452,608,1.998,1154,3.447,1207,4.247,1603,3.259,1604,3.668,1679,5.001,1885,3.617,2453,5.203,2633,6.303,2727,6.649,2737,5.32,2738,6.437,2741,5.32,2742,6.31,2750,6.177,2781,7.291,2795,6.192,2818,7.261,3978,5.451,3979,7.526,3980,6.791,3983,6.649,4741,8.014,4746,8.014,4747,8.014,4748,9.587,4749,8.014]],["title/classes/ColumnResponse.html",[0,0.231,2906,5.503]],["body/classes/ColumnResponse.html",[0,0.279,2,0.921,3,0.019,4,0.019,5,0.01,7,0.125,27,0.525,29,0.64,30,0.001,31,0.461,32,0.179,33,0.563,34,2.183,47,0.874,95,0.157,101,0.014,103,0.001,104,0.001,112,0.842,138,2.252,150,1.874,245,3.44,247,3.6,253,4.027,379,1.325,404,3.356,556,2.072,773,4.162,818,4.134,1207,4.092,2720,5.861,2723,6.665,2725,4.221,2795,4.648,2858,5.388,2859,5.645,2860,5.645,2906,10.356,3210,9.769,3657,7.607,3661,6.818,3665,5.469,3667,5.469,4139,10.374,4984,8.225,4985,8.225,4986,8.225,4987,8.225,4988,8.225,4989,8.225,4990,8.225,4991,8.225]],["title/classes/ColumnResponseMapper.html",[0,0.231,2910,5.705]],["body/classes/ColumnResponseMapper.html",[0,0.293,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.31,27,0.353,29,0.672,30,0.001,31,0.483,32,0.149,33,0.414,34,1.47,35,1.037,95,0.152,99,1.44,100,2.899,101,0.014,103,0.001,104,0.001,226,1.234,236,2.051,349,1.129,376,3.759,413,3.693,437,1.116,521,3.418,529,2.442,604,3.507,739,4.784,781,5.123,782,6.066,787,6.419,1207,2.756,1220,4.923,2281,5.178,2633,6.822,2747,5.428,2795,6.777,2906,10.187,2910,9.155,3022,6.15,3210,6.579,3216,5.499,3657,5.123,3661,6.355,3671,6.761,3677,7.551,3678,6.15,4091,7.551,4093,7.23,4112,6.761,4139,9.155,4992,10.929,4993,10.929,4994,7.98,4995,7.551,4996,8.631,4997,8.631,4998,8.631,4999,8.631,5000,8.631]],["title/injectables/ColumnService.html",[539,0.901,3536,5.503]],["body/injectables/ColumnService.html",[0,0.222,3,0.015,4,0.015,5,0.008,7,0.099,8,1.091,10,3.697,12,4.175,26,2.393,27,0.503,29,0.957,30,0.001,31,0.688,32,0.168,33,0.59,34,1.116,35,1.426,36,2.811,47,0.738,49,2.584,55,2.25,59,2.035,83,2.794,95,0.15,99,1.093,101,0.011,103,0.001,104,0.001,177,1.666,226,0.937,236,1.838,262,3.008,345,2.085,349,0.94,376,2.853,377,2.973,379,0.819,437,1.352,524,3.736,539,1.204,541,1.568,603,1.316,608,2.832,685,3.85,1207,3.79,1866,7.48,1885,2.734,2428,3.545,2633,7.296,2735,4.499,3090,4.873,3091,8.59,3307,5.64,3368,9.373,3371,6.25,3377,8.612,3381,5.488,3536,7.353,3793,7.623,3813,10.445,4100,7.961,4102,7.961,4122,5.294,4129,4.291,4995,5.731,5001,6.551,5002,6.551,5003,6.551,5004,9.1,5005,6.551,5006,9.1,5007,6.551,5008,9.1,5009,6.551,5010,9.1,5011,6.551,5012,6.551,5013,6.551,5014,6.551,5015,6.551,5016,6.551,5017,6.551]],["title/injectables/ColumnUc.html",[539,0.901,2695,5.503]],["body/injectables/ColumnUc.html",[0,0.172,3,0.012,4,0.012,5,0.006,7,0.077,8,0.908,26,2.985,27,0.491,29,0.934,30,0.001,31,0.672,32,0.164,33,0.576,35,1.402,36,2.656,39,3.408,47,0.639,55,1.949,59,2.354,95,0.143,99,0.847,101,0.008,103,0,104,0,177,1.966,180,1.357,226,0.726,262,2.947,349,0.525,379,0.947,382,2.733,437,1.457,448,4.917,539,1.003,541,1.216,560,2.091,603,1.82,608,3.017,639,2.384,1207,3.43,1278,1.607,1612,6.747,1627,6.897,1628,3.327,1698,6.169,1767,3.377,1802,5.398,2253,3.713,2254,4.534,2453,5.349,2454,8.588,2456,5.934,2457,5.934,2458,3.694,2459,8.239,2461,3.778,2462,5.51,2463,5.398,2465,3.979,2466,5.899,2468,3.979,2469,5.398,2472,2.305,2485,7.99,2633,5.909,2695,6.121,2795,6.07,3098,3.778,3377,8.189,3535,9.144,3536,9.432,3793,10.747,3798,4.104,3799,4.104,3800,4.104,3803,4.104,3804,4.104,3806,7.304,3812,8.375,3991,7.925,4053,3.872,4103,8.413,4104,5.308,4112,7.867,4116,8.375,4180,4.696,4947,8.375,4948,8.375,4949,8.375,5018,5.079,5019,5.079,5020,7.575,5021,5.079,5022,7.575,5023,5.079,5024,7.575,5025,10.042,5026,5.079,5027,7.575,5028,5.079,5029,5.079,5030,5.079,5031,5.079,5032,5.079,5033,5.079,5034,5.079]],["title/classes/ColumnUrlParams.html",[0,0.231,4951,5.958]],["body/classes/ColumnUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,2633,6.204,3793,10.639,3817,5.762,4951,10.348,5035,9.809,5036,9.809]],["title/entities/ColumnboardBoardElement.html",[154,1.456,2632,5.191]],["body/entities/ColumnboardBoardElement.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.143,27,0.386,30,0.001,32,0.129,95,0.158,96,2.587,101,0.016,103,0.001,104,0.001,112,0.916,138,1.713,154,2.467,155,3.143,173,2.785,180,1.688,181,2.521,403,5.228,1885,5.207,2506,5.322,2607,9.04,2629,8.223,2631,7.89,2632,8.796,2633,4.94,2634,9.266,2635,8.24,2680,5.871,2975,7.18,3019,9.667,4909,10.669,5037,9.419,5038,11.54,5039,9.419,5040,4.322,5041,8.24]],["title/injectables/CommonCartridgeExportService.html",[539,0.901,5042,5.705]],["body/injectables/CommonCartridgeExportService.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.064,8,0.785,26,2.721,27,0.447,29,0.85,30,0.001,31,0.611,32,0.17,33,0.524,35,1.256,36,2.224,39,2.937,47,0.819,95,0.143,99,0.7,101,0.007,103,0,104,0,177,1.474,226,0.6,236,0.682,262,2.543,333,1.775,349,1.167,363,3.666,379,0.819,437,1.564,481,3.602,539,0.866,541,1.004,556,2.028,591,3.699,603,2.62,608,2.273,739,2.865,1198,3.391,1207,3.705,1249,6.749,1657,3.108,1851,3.878,1852,7.059,1861,5.669,1867,4.298,1881,3.12,1882,3.12,2004,6.662,2196,3.679,2627,4.669,2988,3.39,2989,3.39,3076,4.171,3855,4.496,4360,4.171,4443,3.051,4596,5.29,5042,5.484,5043,11.293,5044,7.208,5045,4.195,5046,8.05,5047,8.05,5048,5.727,5049,8.05,5050,6.546,5051,8.05,5052,8.552,5053,8.321,5054,4.195,5055,4.195,5056,8.847,5057,7.388,5058,8.823,5059,4.195,5060,4.195,5061,4.195,5062,6.052,5063,4.195,5064,4.195,5065,6.246,5066,4.195,5067,3.972,5068,6.136,5069,6.546,5070,4.195,5071,6.546,5072,4.171,5073,4.195,5074,4.195,5075,7.042,5076,2.989,5077,4.195,5078,3.878,5079,3.39,5080,3.769,5081,4.195,5082,6.052,5083,4.195,5084,4.195,5085,3.286,5086,4.195,5087,3.286,5088,4.195,5089,4.195,5090,4.195,5091,4.195,5092,2.37,5093,4.195,5094,4.195,5095,5.29,5096,6.546,5097,4.195,5098,3.514,5099,4.171,5100,4.195,5101,5.29,5102,4.195,5103,4.195,5104,3.769,5105,3.878,5106,2.748,5107,2.833,5108,4.195,5109,4.195,5110,9.863,5111,6.546,5112,6.744,5113,6.546,5114,6.052,5115,8.05,5116,2.989,5117,5.727,5118,6.052,5119,6.052,5120,4.761,5121,4.195,5122,2.989,5123,4.195,5124,5.484,5125,5.727,5126,5.727,5127,2.989,5128,6.546,5129,6.546,5130,4.195,5131,3.878,5132,4.195,5133,4.195,5134,4.195,5135,4.195,5136,6.546,5137,4.195,5138,6.546,5139,4.195,5140,4.195,5141,3.878,5142,4.195,5143,4.195,5144,4.195]],["title/classes/CommonCartridgeFileBuilder.html",[0,0.231,5056,5.335]],["body/classes/CommonCartridgeFileBuilder.html",[0,0.262,2,0.583,3,0.012,4,0.012,5,0.015,7,0.079,8,0.926,27,0.495,29,0.716,30,0.001,31,0.515,32,0.139,33,0.441,35,1.105,36,1.957,47,0.718,95,0.149,101,0.017,103,0,104,0,105,0.833,112,0.613,177,2.443,236,2.139,262,2.015,345,1.659,349,1.175,379,0.966,381,3.089,437,1.471,454,5.156,480,2.823,486,3.059,490,2.738,603,2.662,1207,2.465,1249,4.986,1280,2.875,1672,5.295,1883,3.803,2004,6.869,3163,4.919,5044,8.167,5056,6.048,5057,4.178,5058,5.302,5068,8.971,5080,6.252,5085,6.048,5087,6.048,5095,6.239,5099,7.245,5101,4.211,5107,5.215,5145,7.972,5146,7.972,5147,4.365,5148,9.189,5149,8.506,5150,7.752,5151,8.519,5152,7.138,5153,7.138,5154,4.211,5155,8.519,5156,7.72,5157,5.211,5158,5.211,5159,8.519,5160,5.211,5161,7.704,5162,9.189,5163,5.211,5164,9.511,5165,7.704,5166,5.211,5167,5.211,5168,4.211,5169,4.211,5170,3.972,5171,3.713,5172,6.024,5173,3.52,5174,6.048,5175,6.239,5176,4.082,5177,5.501,5178,4.082,5179,6.468,5180,4.211,5181,4.365,5182,4.365,5183,4.365,5184,8.519,5185,4.365,5186,6.468,5187,4.365,5188,4.365,5189,6.468,5190,4.365,5191,4.365,5192,4.365,5193,4.365,5194,4.365,5195,4.365,5196,4.365,5197,4.365,5198,4.365,5199,4.365,5200,4.365,5201,4.211,5202,4.365,5203,4.365,5204,4.365,5205,4.365,5206,4.365,5207,3.365,5208,4.365,5209,4.365,5210,4.365]],["title/classes/CommonCartridgeLtiResource.html",[0,0.231,5211,5.958]],["body/classes/CommonCartridgeLtiResource.html",[0,0.214,2,0.707,3,0.015,4,0.015,5,0.011,7,0.096,8,1.063,27,0.455,29,0.492,30,0.001,31,0.354,32,0.152,33,0.303,35,1.232,47,0.88,95,0.141,101,0.015,103,0.001,104,0.001,119,1.805,145,1.753,153,2.016,177,1.624,181,1.69,345,2.01,349,1.059,379,0.79,381,2.979,437,0.817,486,1.9,603,1.268,988,3.825,1198,2.171,1207,2.832,1246,3.636,1249,5.728,1280,2.772,1872,3.971,2004,7.509,2196,4.498,3979,4.337,5044,7.908,5057,3.417,5058,6.091,5079,5.103,5080,5.903,5112,7.43,5124,5.29,5145,7.563,5146,7.563,5150,7.814,5170,4.813,5171,4.5,5172,6.715,5173,4.265,5207,7.18,5211,7.759,5212,9.811,5213,5.524,5214,8.031,5215,8.984,5216,10.279,5217,6.315,5218,5.838,5219,6.315,5220,6.315,5221,5.29,5222,5.838,5223,6.315,5224,6.315,5225,5.524,5226,6.315,5227,6.315,5228,6.315,5229,5.524,5230,5.524,5231,3.971,5232,5.524,5233,6.315,5234,5.524,5235,6.315,5236,7.43,5237,6.315,5238,6.315,5239,8.2,5240,6.315,5241,6.315,5242,6.315,5243,5.524,5244,8.869,5245,8.869,5246,8.869,5247,8.869,5248,8.869,5249,8.869,5250,8.869,5251,8.869,5252,8.869,5253,6.315,5254,6.315,5255,6.315,5256,6.315,5257,5.897,5258,8.869,5259,8.869,5260,8.869,5261,8.869,5262,6.315,5263,6.315,5264,6.315,5265,6.315,5266,6.315,5267,5.103,5268,5.103,5269,5.524]],["title/classes/CommonCartridgeManifestElement.html",[0,0.231,5174,5.335]],["body/classes/CommonCartridgeManifestElement.html",[0,0.232,2,0.765,3,0.016,4,0.016,5,0.008,7,0.104,8,1.123,27,0.384,29,0.532,30,0.001,31,0.383,32,0.128,33,0.328,35,0.82,47,0.482,95,0.153,101,0.015,103,0.001,104,0.001,177,2.105,181,1.828,236,2.024,349,0.967,379,1.171,381,3.145,437,0.883,486,2.055,603,2.31,988,4.039,1246,3.932,1249,6.902,1280,2.927,1872,4.295,1883,4.42,2112,7.34,5044,8.061,5058,4.69,5080,6.938,5099,7.676,5107,4.613,5124,5.721,5145,6.902,5146,6.902,5149,9.439,5171,4.866,5172,8.625,5173,4.613,5174,7.336,5175,9.736,5177,4.866,5207,7.426,5225,8.192,5229,8.192,5230,8.192,5231,5.889,5232,8.192,5267,7.567,5270,5.35,5271,11.499,5272,10.687,5273,10.631,5274,6.314,5275,6.829,5276,5.974,5277,5.974,5278,8.192,5279,5.974,5280,9.364,5281,6.829,5282,9.364,5283,9.364,5284,9.364,5285,9.364,5286,9.364,5287,6.829,5288,9.364,5289,6.829,5290,6.829,5291,6.829,5292,6.829,5293,9.364,5294,9.364,5295,9.364,5296,9.364,5297,9.364,5298,9.364,5299,6.829,5300,6.829,5301,6.829]],["title/classes/CommonCartridgeMetadataElement.html",[0,0.231,5276,5.958]],["body/classes/CommonCartridgeMetadataElement.html",[0,0.286,2,0.942,3,0.02,4,0.02,5,0.01,7,0.128,8,1.289,27,0.44,29,0.655,30,0.001,31,0.471,32,0.147,33,0.404,35,1.011,47,0.837,59,2.614,95,0.136,101,0.018,103,0.001,104,0.001,177,1.54,181,2.252,345,2.678,349,0.869,379,1.052,381,3.612,988,4.638,1207,2.686,1280,3.361,2112,8.14,3692,5.996,3979,5.779,5044,8.199,5057,4.554,5058,7.386,5080,6.824,5085,6.592,5087,6.592,5145,7.654,5146,7.654,5171,5.996,5172,7.763,5173,5.683,5207,8.066,5243,7.361,5270,6.592,5273,11.547,5274,7.779,5276,9.408,5302,8.414,5303,8.414,5304,8.414,5305,8.414,5306,8.414,5307,8.414,5308,10.753,5309,8.414,5310,8.414,5311,8.414,5312,8.414,5313,8.414,5314,8.414]],["title/classes/CommonCartridgeOrganizationBuilder.html",[0,0.231,5180,5.503]],["body/classes/CommonCartridgeOrganizationBuilder.html",[0,0.283,2,0.647,3,0.013,4,0.013,5,0.014,7,0.088,8,0.998,27,0.438,29,0.648,30,0.001,31,0.466,32,0.133,33,0.4,35,0.694,36,1.772,47,0.754,95,0.154,101,0.018,103,0,104,0,105,0.899,177,2.277,181,1.547,236,2.093,262,1.266,345,1.84,349,1.218,379,1.041,381,3.279,437,1.525,454,3.954,490,2.049,603,2.442,686,3.931,1207,2.659,1249,5.378,1280,3.051,1672,4.336,1883,4.037,2004,7.648,3163,5.306,5044,7.991,5056,4.528,5057,4.507,5058,5.719,5068,9.266,5080,6.52,5085,6.524,5087,6.524,5095,6.729,5099,7.514,5101,4.67,5107,7.215,5145,7.312,5146,7.312,5147,4.842,5148,8.632,5149,7.648,5150,8.143,5151,8.949,5155,6.976,5159,9.485,5161,6.976,5162,9.531,5164,10.054,5165,6.976,5168,4.67,5169,4.67,5170,4.406,5171,4.118,5172,6.395,5173,3.904,5174,6.524,5175,6.729,5176,4.528,5177,5.934,5178,4.528,5179,8.178,5180,6.729,5181,4.842,5182,4.842,5183,4.842,5184,8.949,5185,4.842,5186,6.976,5187,4.842,5188,4.842,5189,6.976,5190,4.842,5191,4.842,5192,4.842,5193,4.842,5194,4.842,5195,4.842,5196,4.842,5197,4.842,5198,4.842,5199,4.842,5200,4.842,5201,4.67,5202,4.842,5203,4.842,5204,4.842,5205,4.842,5206,4.842,5207,3.732,5208,4.842,5209,4.842,5210,4.842,5315,7.699,5316,5.779,5317,5.779,5318,5.779,5319,5.779,5320,5.779,5321,5.779]],["title/classes/CommonCartridgeOrganizationItemElement.html",[0,0.231,5178,5.335]],["body/classes/CommonCartridgeOrganizationItemElement.html",[0,0.284,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,8,1.284,27,0.439,29,0.651,30,0.001,31,0.468,32,0.146,33,0.401,35,1.005,47,0.834,95,0.15,101,0.018,103,0.001,104,0.001,177,1.531,181,2.238,345,2.662,349,1.106,379,1.046,381,3.597,988,4.619,1207,3.773,1249,7.631,1280,3.348,1883,3.458,3163,8.207,3309,6.757,3979,5.743,5044,8.001,5057,4.525,5068,8.164,5080,6.167,5082,9.902,5099,5.327,5107,7.982,5114,7.731,5145,7.631,5146,7.631,5162,10.069,5172,7.741,5173,5.648,5177,5.958,5178,8.391,5207,8.047,5239,7.731,5267,6.757,5270,6.551,5322,8.362,5323,8.362,5324,8.362,5325,8.362]],["title/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.231,5277,5.958]],["body/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.299,2,0.985,3,0.021,4,0.021,5,0.01,7,0.133,8,1.326,27,0.453,29,0.685,30,0.001,31,0.493,32,0.12,33,0.422,35,1.057,95,0.112,101,0.015,103,0.001,104,0.001,177,1.611,345,2.801,349,0.909,379,1.101,708,3.656,988,4.772,1249,7.145,1280,3.458,3163,7.049,5044,7.886,5080,5.068,5107,8.576,5145,7.815,5146,7.815,5172,8.747,5173,5.944,5207,8.199,5270,6.895,5277,9.679,5278,10.587,5326,8.801,5327,8.137,5328,11.064,5329,8.137,5330,8.801,5331,6.895,5332,8.801,5333,8.137,5334,8.801,5335,8.801,5336,8.801]],["title/classes/CommonCartridgeResourceItemElement.html",[0,0.231,5176,5.335]],["body/classes/CommonCartridgeResourceItemElement.html",[0,0.23,2,0.758,3,0.016,4,0.016,5,0.008,7,0.103,8,1.116,27,0.492,29,0.527,30,0.001,31,0.379,32,0.145,33,0.325,35,1.278,47,0.657,95,0.161,101,0.015,103,0.001,104,0.001,112,0.739,119,1.895,177,1.948,181,2.492,236,1.864,349,1.099,379,0.847,381,2.274,529,1.916,603,2.137,988,4.015,1154,2.693,1280,2.91,2004,7.739,2173,3.792,2196,4.859,3163,7.908,4347,6.875,5044,8.41,5068,8.734,5075,8.145,5079,5.472,5080,7.147,5117,5.924,5125,5.924,5126,5.924,5145,8.016,5146,8.016,5150,9.157,5170,5.162,5171,4.825,5172,7.506,5173,4.574,5176,7.294,5177,9.365,5207,7.4,5211,5.924,5212,5.673,5214,8.976,5215,9.259,5216,8.608,5221,5.673,5222,6.261,5270,5.305,5337,8.913,5338,9.31,5339,6.772,5340,6.772,5341,6.772,5342,5.924,5343,7.523,5344,5.924,5345,8.608,5346,10.64,5347,6.772,5348,6.772,5349,6.772,5350,6.772,5351,6.772,5352,6.772,5353,6.772]],["title/classes/CommonCartridgeResourceWrapperElement.html",[0,0.231,5279,5.958]],["body/classes/CommonCartridgeResourceWrapperElement.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.469,29,0.723,30,0.001,31,0.52,32,0.127,33,0.446,35,1.116,95,0.118,101,0.015,103,0.001,104,0.001,177,1.7,345,2.956,349,0.959,379,1.162,988,4.935,1280,3.576,5044,8.038,5080,5.348,5145,8.008,5146,8.008,5172,8.865,5173,6.274,5177,9.222,5207,8.358,5270,7.276,5278,10.848,5279,10.009,5327,8.587,5329,8.587,5354,9.288,5355,11.441,5356,9.288,5357,9.288]],["title/classes/CommonCartridgeWebContentResource.html",[0,0.231,5342,5.958]],["body/classes/CommonCartridgeWebContentResource.html",[0,0.261,2,0.859,3,0.018,4,0.018,5,0.012,7,0.116,8,1.214,27,0.494,29,0.598,30,0.001,31,0.43,32,0.165,33,0.368,35,1.362,47,0.909,95,0.144,101,0.017,103,0.001,104,0.001,119,2.062,145,2.131,177,1.405,181,2.054,345,2.443,349,1.171,379,0.96,381,3.403,988,4.369,1207,2.451,1249,6.542,1280,3.166,2196,5.455,5044,8.278,5057,4.154,5058,6.958,5075,10.55,5078,9.366,5079,6.203,5080,6.53,5112,8.487,5117,6.715,5118,9.366,5119,7.097,5120,5.583,5145,8.096,5146,8.096,5171,5.47,5172,7.428,5173,5.185,5207,7.788,5213,6.715,5214,8.883,5215,9.745,5218,7.097,5221,6.43,5267,6.203,5268,6.203,5269,6.715,5342,8.863,5343,10.13,5358,7.097,5359,7.676,5360,7.676,5361,7.676,5362,7.676]],["title/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.231,5344,5.958]],["body/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.23,2,0.759,3,0.016,4,0.016,5,0.011,7,0.103,8,1.117,27,0.47,29,0.528,30,0.001,31,0.38,32,0.157,33,0.325,35,1.279,47,0.877,95,0.145,101,0.015,103,0.001,104,0.001,119,1.897,145,1.883,177,1.706,181,1.815,345,2.159,349,1.184,379,0.848,381,3.131,437,0.877,486,2.041,603,1.362,988,4.02,1198,3.204,1207,2.976,1246,3.906,1249,6.02,1280,2.913,1872,4.266,2004,7.745,2173,6.731,2196,4.639,2680,3.062,3979,4.659,5044,8.048,5057,3.671,5058,6.402,5079,5.481,5080,6.132,5112,8.921,5124,5.682,5125,5.934,5126,5.934,5145,7.762,5146,7.762,5150,8.118,5170,5.17,5171,4.833,5172,6.976,5173,4.582,5201,7.532,5207,7.405,5213,5.934,5214,8.343,5215,9.266,5221,5.682,5225,8.154,5229,8.154,5230,8.154,5231,5.862,5232,8.154,5236,5.682,5243,5.934,5267,5.481,5268,5.481,5269,5.934,5343,9.713,5344,8.154,5345,10.601,5358,6.271,5363,6.783,5364,6.783,5365,6.783,5366,10.649,5367,6.783,5368,6.783,5369,6.783,5370,6.783,5371,9.321,5372,9.321,5373,6.783,5374,9.321,5375,6.783]],["title/modules/CommonToolModule.html",[201,1.804,5376,4.953]],["body/modules/CommonToolModule.html",[0,0.267,3,0.018,4,0.018,5,0.009,30,0.001,95,0.16,101,0.013,103,0.001,104,0.001,155,2.621,201,3.038,203,2.825,204,3.036,205,3.124,206,3.111,207,3.098,208,4.201,209,4.312,214,6.013,218,4.091,219,3.06,220,2.988,225,4.057,226,1.123,227,3.234,560,3.234,654,2.336,1278,2.485,1666,3.324,1668,5.146,1747,10.308,1773,4.287,1904,4.399,2368,5.146,5376,10.369,5377,7.856,5378,7.856,5379,7.856,5380,7.856,5381,8.256,5382,10.857,5383,10.857,5384,10.857,5385,7.856,5386,6.348,5387,6.872,5388,7.856,5389,7.856,5390,7.856,5391,6.581]],["title/injectables/CommonToolService.html",[539,0.901,5382,5.335]],["body/injectables/CommonToolService.html",[0,0.276,3,0.019,4,0.019,5,0.01,7,0.123,8,1.26,27,0.431,29,0.819,30,0.001,31,0.589,32,0.144,33,0.505,35,1.263,95,0.166,101,0.013,103,0.001,104,0.001,105,0.877,119,2.14,131,3.044,226,1.162,349,1.204,539,1.392,541,1.945,564,3.579,603,2.342,654,2.417,838,2.547,1839,7.185,1840,6.83,1842,5.744,2568,6.647,5382,8.237,5392,10.778,5393,6.566,5394,11.657,5395,10.515,5396,8.125,5397,8.125,5398,8.307,5399,10.515,5400,7.819,5401,11.657,5402,8.125,5403,8.125,5404,8.125,5405,10.515,5406,6.807,5407,7.512,5408,8.125,5409,8.125]],["title/injectables/CommonToolValidationService.html",[539,0.901,5383,5.335]],["body/injectables/CommonToolValidationService.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.063,8,0.783,27,0.475,29,0.903,30,0.001,31,0.697,32,0.165,33,0.541,35,1.356,47,0.819,95,0.143,101,0.011,103,0,104,0,112,0.519,119,2.005,131,1.568,142,1.637,143,2.023,145,3.293,226,0.598,236,1.699,274,2.512,283,6.047,292,2.118,333,5.384,340,2.012,349,0.432,363,4.502,413,2.476,437,1.351,480,1.815,486,1.259,517,1.605,519,3.901,529,2.57,539,0.865,541,1.002,556,3.092,564,2.468,603,2.619,604,2.655,646,2.983,654,1.245,662,3.647,838,1.312,1241,2.388,1718,1.763,1820,2.6,1839,4.282,1840,4.126,1842,3.961,1868,7.021,1925,2.266,2036,2.827,2148,2.54,2489,4.07,2557,8.293,2568,4.477,2583,8.411,3252,5.475,5383,5.12,5392,10.965,5410,3.279,5411,8.039,5412,6.535,5413,6.535,5414,6.535,5415,6.535,5416,6.535,5417,6.535,5418,6.535,5419,6.535,5420,6.535,5421,12.946,5422,4.186,5423,3.662,5424,6.535,5425,3.87,5426,6.535,5427,12.445,5428,4.186,5429,6.535,5430,4.186,5431,6.535,5432,4.186,5433,6.535,5434,4.186,5435,6.535,5436,12.277,5437,4.186,5438,6.535,5439,4.186,5440,4.982,5441,5.717,5442,6.535,5443,5.717,5444,5.717,5445,5.717,5446,5.717,5447,5.717,5448,4.186,5449,4.186,5450,2.875,5451,4.186,5452,4.186,5453,4.186,5454,4.186,5455,6.535,5456,4.186,5457,4.186,5458,4.186,5459,4.186,5460,3.87,5461,4.186,5462,2.6,5463,6.535,5464,4.186,5465,4.186,5466,4.186,5467,5.717,5468,3.114,5469,6.535,5470,3.191,5471,4.186,5472,4.186,5473,4.186,5474,4.186,5475,3.662,5476,4.186,5477,3.383,5478,6.535,5479,4.186,5480,3.87,5481,6.535,5482,3.507,5483,3.507,5484,4.186,5485,4.186,5486,3.383,5487,4.186,5488,2.742]],["title/classes/ConsentRequestBody.html",[0,0.231,5489,5.705]],["body/classes/ConsentRequestBody.html",[0,0.285,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,27,0.511,30,0.001,32,0.171,33,0.652,34,1.432,47,0.836,55,2.116,95,0.125,101,0.01,103,0,104,0,110,7.993,111,4.731,112,0.667,114,8.603,116,9.56,117,7.704,119,1.711,135,5.965,138,2.271,142,5.109,143,2.189,144,4.303,145,3.864,147,4.513,148,1.858,150,1.334,153,2.443,180,1.506,239,1.929,245,2.818,248,3.508,249,4.347,282,3.637,287,3.835,347,2.144,348,4.197,382,3.434,517,4.12,662,1.841,696,3.315,842,5.877,950,2.717,990,4.126,1151,3.682,1231,4.259,1243,3.594,1634,7.358,1723,6.585,1965,3.222,2148,7.187,2347,3.34,2365,5.043,3542,4.385,4620,4.345,4700,6.585,5462,3.637,5489,7.042,5490,10.747,5491,10.089,5492,7.042,5493,7.042,5494,6.585,5495,5.855,5496,5.855,5497,6.442,5498,5.855,5499,4.905,5500,7.354,5501,5.609,5502,7.354,5503,7.772,5504,7.354,5505,3.415,5506,5.855,5507,5.413,5508,7.772,5509,6.114,5510,9.936,5511,6.252,5512,7.772,5513,5.855,5514,8.419,5515,4.463,5516,5.122,5517,5.122,5518,5.122,5519,5.413,5520,3.893,5521,6.407,5522,5.877,5523,4.463,5524,4.731,5525,4.463,5526,4.905,5527,4.731,5528,5.413,5529,4.905,5530,5.413,5531,4.463,5532,5.413,5533,5.122,5534,4.905,5535,4.905,5536,5.413,5537,5.355,5538,6.793,5539,5.413]],["title/classes/ConsentResponse.html",[0,0.231,5540,5.503]],["body/classes/ConsentResponse.html",[0,0.337,2,0.555,3,0.012,4,0.012,5,0.006,7,0.075,27,0.534,29,0.386,30,0.001,31,0.278,32,0.178,33,0.662,34,1.69,47,0.946,70,5.307,72,3.375,77,6.772,95,0.126,101,0.008,103,0,104,0,110,7.377,112,0.59,118,7.111,119,1.513,122,5.022,128,4.496,129,9.299,130,7.808,131,3.343,133,2.6,135,7.292,138,2.347,141,5.332,142,3.88,143,2.366,144,3.677,145,3.543,148,1.572,150,1.129,153,2.707,239,2.561,245,3.416,248,4.139,249,5.22,303,5.825,379,0.62,480,2.064,556,1.873,820,2.273,1198,2.556,1609,4.024,1634,6.161,1679,3.393,1734,6.319,2131,5.022,2148,6.018,2347,5.09,2558,7.561,3271,5.298,3399,3.464,3542,4.724,4059,4.003,4198,8.678,5501,5.657,5534,6.229,5537,6.319,5540,9.354,5541,4.954,5542,8.251,5543,8.251,5544,7.477,5545,7.477,5546,7.477,5547,7.212,5548,7.435,5549,4.954,5550,9.765,5551,4.954,5552,7.808,5553,7.435,5554,4.954,5555,7.435,5556,6.229,5557,4.954,5558,7.477,5559,8.251,5560,4.954,5561,4.954,5562,7.435,5563,6.505,5564,4.954,5565,7.435,5566,4.954,5567,7.477,5568,4.954,5569,7.435,5570,8.677,5571,6.7,5572,4.954,5573,4.954,5574,4.954,5575,6.874,5576,6.874,5577,4.954,5578,4.954,5579,4.334,5580,4.58,5581,4.58,5582,4.58]],["title/classes/ConsentSessionResponse.html",[0,0.231,5583,5.705]],["body/classes/ConsentSessionResponse.html",[0,0.348,2,0.874,3,0.018,4,0.018,5,0.009,7,0.118,27,0.497,29,0.608,30,0.001,31,0.641,32,0.166,33,0.633,34,1.746,47,0.991,95,0.13,101,0.013,103,0.001,104,0.001,110,7.621,112,0.814,135,6.998,138,2.08,141,4.895,148,2.478,150,1.779,153,2.6,245,3.183,249,4.145,379,0.977,556,3.408,820,4.702,1330,8.149,1343,7.221,1634,6.365,3542,4.954,4198,9.396,5550,6.832,5583,8.584,5584,12.607,5585,7.221,5586,8.959,5587,9.474,5588,12.141,5589,7.81,5590,5.116,5591,9.474,5592,7.81,5593,7.81,5594,7.81,5595,7.81,5596,7.81]],["title/modules/ConsoleWriterModule.html",[201,1.804,3531,5.191]],["body/modules/ConsoleWriterModule.html",[0,0.327,3,0.022,4,0.022,5,0.011,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.336,203,3.46,204,3.718,205,3.827,206,3.811,207,3.795,208,4.612,209,4.735,218,4.649,219,3.748,220,3.66,226,1.376,3446,9.47,3456,6.051,3531,10.529,5597,9.621,5598,9.621,5599,9.621,5600,8.895,5601,7.775,5602,9.621,5603,8.417]],["title/injectables/ConsoleWriterService.html",[539,0.901,3446,4.528]],["body/injectables/ConsoleWriterService.html",[0,0.333,3,0.03,4,0.023,5,0.012,7,0.149,8,1.418,27,0.402,29,0.764,30,0.001,31,0.549,32,0.134,33,0.471,35,1.178,47,0.896,95,0.124,101,0.016,103,0.001,104,0.001,226,1.402,519,3.664,521,3.885,539,1.565,541,2.348,996,4.686,997,4.63,998,4.63,2823,5.719,3446,7.864,3456,6.169,5600,10.936,5601,9.558,5604,9.809,5605,11.828,5606,9.809,5607,9.809]],["title/injectables/ContentElementFactory.html",[539,0.901,3538,5.503]],["body/injectables/ContentElementFactory.html",[0,0.202,3,0.014,4,0.014,5,0.01,7,0.09,8,1.019,27,0.488,29,0.463,30,0.001,31,0.333,32,0.157,33,0.286,34,1.951,35,1.431,49,2.347,83,3.976,95,0.162,101,0.01,103,0,104,0,226,0.851,236,2.261,349,1.23,376,4.988,377,5.198,437,1.481,454,4.038,486,1.79,524,3.394,529,1.684,539,1.125,541,1.424,564,1.827,593,2.204,603,2.719,1198,2.046,1207,1.9,1246,6.594,1603,2.237,1864,8.748,1872,3.742,1883,5.708,2173,3.332,2442,2.913,2489,1.973,2735,7.436,2802,5.57,2805,5.219,2808,5.57,2811,5.159,2814,5.348,2821,8.329,2822,4.426,2823,4.112,2824,2.618,2825,3.57,3196,3.791,3219,3.532,3221,3.532,3227,4.395,3230,3.054,3521,5.206,3538,6.872,4104,5.722,4129,7.501,5257,7.919,5608,12.261,5609,5.95,5610,10.826,5611,10.009,5612,10.826,5613,10.826,5614,10.826,5615,8.504,5616,5.95,5617,5.95,5618,5.95,5619,5.95,5620,5.95,5621,5.95,5622,3.791,5623,5.95,5624,3.843,5625,5.95,5626,3.791,5627,5.95,5628,3.843,5629,5.95,5630,3.843,5631,5.95,5632,5.95]],["title/classes/ContentElementResponseFactory.html",[0,0.231,3714,5.191]],["body/classes/ContentElementResponseFactory.html",[0,0.238,2,0.783,3,0.016,4,0.016,5,0.011,7,0.106,8,1.141,27,0.443,29,0.741,30,0.001,31,0.533,32,0.159,33,0.457,35,1.144,95,0.168,99,1.167,100,2.35,101,0.012,103,0.001,104,0.001,112,0.756,226,1,236,1.549,349,0.983,413,4.075,437,1.4,480,1.942,486,2.105,529,2.693,564,2.148,603,2.174,739,5.084,782,5.284,1883,5.667,1910,6.467,1921,6.467,1941,3.99,2173,3.917,2444,8.049,2450,7.256,2452,8.744,2453,5.515,2489,2.319,2805,7.129,2811,7.047,2822,5.203,2823,3.382,2824,3.077,2825,4.197,3196,4.457,3672,8.079,3712,7.711,3713,7.711,3714,7.256,5633,11.615,5634,10.005,5635,10.821,5636,9.52,5637,9.52,5638,9.52,5639,9.52,5640,9.52,5641,6.995,5642,6.995,5643,6.995,5644,5.913,5645,6.995,5646,6.995,5647,5.48,5648,6.12,5649,6.12,5650,6.12,5651,6.12,5652,6.12,5653,9.52,5654,6.995,5655,6.995,5656,6.995,5657,6.12,5658,6.995,5659,6.995,5660,6.995,5661,6.995]],["title/injectables/ContentElementService.html",[539,0.901,1853,4.953]],["body/injectables/ContentElementService.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,10,3.394,12,3.833,26,2.578,27,0.498,29,0.948,30,0.001,31,0.682,32,0.176,33,0.584,34,1.423,35,1.419,36,2.803,55,2.106,95,0.15,99,0.968,101,0.01,103,0,104,0,177,1.791,226,0.83,236,1.592,262,3.002,349,1.106,379,1.045,437,1.467,529,2.363,539,1.106,541,1.389,603,1.966,608,2.871,685,3.535,789,2.898,1853,6.076,1858,6.544,1864,10.406,1883,5.247,1885,2.422,2196,4.33,2428,3.141,2453,2.756,2466,6.288,2622,3.092,2795,6.878,2899,5.012,3090,4.317,3091,8.258,3248,3.921,3279,7.723,3307,6.077,3319,5.078,3368,9.053,3371,5.737,3377,8.159,3381,4.863,3538,9.835,4102,7.308,4104,5.657,4122,4.69,4187,9.896,5657,5.078,5662,11.516,5663,5.804,5664,5.804,5665,5.804,5666,8.353,5667,5.804,5668,8.353,5669,5.804,5670,8.353,5671,5.804,5672,8.353,5673,5.804,5674,8.353,5675,7.011,5676,5.804,5677,5.804,5678,5.078,5679,5.804,5680,5.804,5681,5.804,5682,5.804,5683,5.804,5684,5.804,5685,5.804,5686,5.804,5687,5.804,5688,4.222,5689,5.804,5690,5.804,5691,5.804,5692,5.804]],["title/injectables/ContentElementUpdateVisitor.html",[539,0.901,5678,5.958]],["body/injectables/ContentElementUpdateVisitor.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.071,8,0.85,27,0.515,29,0.966,30,0.001,31,0.695,32,0.174,33,0.595,35,1.466,36,2.855,47,0.328,95,0.131,99,0.776,101,0.008,103,0,104,0,112,0.563,177,1.572,226,0.665,236,1.153,247,2.036,262,3.017,301,3.092,349,1.352,379,0.582,437,1.111,539,0.938,541,1.113,556,1.785,603,2.188,604,4.201,789,2.322,1198,2.952,1280,1.454,1679,2.122,1773,2.538,1866,6.137,1883,5.322,2196,4.183,2370,4.069,2453,4.561,2466,5.642,2489,2.35,2594,8.1,2633,5.423,2742,4.081,2771,2.76,2795,5.843,2802,6.773,2805,6.346,2808,6.773,2811,6.273,2814,6.502,2821,3.383,2824,2.046,2827,5.938,2828,5.938,2829,5.938,2830,5.938,2831,5.938,2832,5.938,2833,5.938,2835,5.938,2836,5.938,2837,5.938,2838,5.938,2839,5.938,2840,5.938,2841,5.938,2842,5.938,2843,5.938,2844,5.938,2899,2.79,3008,4.3,3227,2.404,3414,6.686,5662,11.775,5675,7.136,5678,6.201,5693,4.651,5694,7.088,5695,7.088,5696,7.088,5697,7.088,5698,4.651,5699,3.194,5700,4.651,5701,4.651,5702,4.651,5703,4.651,5704,4.651,5705,4.651,5706,4.651,5707,4.651,5708,6.553,5709,4.651,5710,4.3,5711,3.896,5712,4.713,5713,4.713,5714,4.713,5715,4.713,5716,4.713,5717,4.651,5718,4.651,5719,4.651,5720,4.3,5721,4.651,5722,7.088,5723,4.3,5724,4.651,5725,4.651,5726,4.3,5727,4.651,5728,4.3,5729,4.651,5730,4.651,5731,4.651,5732,7.088,5733,4.651,5734,8.588,5735,4.651,5736,4.651,5737,4.651,5738,4.3,5739,4.651,5740,4.651,5741,4.3,5742,4.651,5743,4.3,5744,4.651,5745,7.088,5746,4.3,5747,4.651,5748,7.088,5749,4.3,5750,4.651,5751,4.651,5752,7.088,5753,4.651,5754,3.758,5755,4.069,5756,4.651,5757,4.3,5758,4.651]],["title/classes/ContentElementUrlParams.html",[0,0.231,5759,5.958]],["body/classes/ContentElementUrlParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,807,4.813,1883,4.877,3817,5.734,5759,10.318,5760,11.794,5761,9.025,5762,11.717,5763,9.025]],["title/classes/ContextExternalTool.html",[0,0.231,1840,3.495]],["body/classes/ContextExternalTool.html",[0,0.243,2,0.801,3,0.017,4,0.017,5,0.009,7,0.109,8,1.159,27,0.537,29,0.954,30,0.001,31,0.401,32,0.176,33,0.588,34,1.865,35,0.86,47,0.864,55,2.635,95,0.155,101,0.016,103,0.001,104,0.001,105,0.772,112,0.768,131,2.681,180,1.733,181,2.587,349,0.739,379,0.895,381,2.404,382,2.159,564,4.3,654,2.129,1280,3.022,1686,6.818,1840,4.961,1842,3.527,2583,7.68,3730,4.342,5400,7.579,5764,7.63,5765,11.479,5766,5.607,5767,8.595,5768,5.975,5769,8.938,5770,8.938,5771,9.822,5772,8.939,5773,7.157,5774,7.157,5775,7.157,5776,9.475,5777,7.157,5778,5.206,5779,7.157,5780,5.607,5781,4.759,5782,5.1,5783,5.456,5784,6.617,5785,6.617,5786,6.617,5787,6.617,5788,4.56,5789,4.916,5790,4.759,5791,5.206,5792,6.889,5793,5.323]],["title/injectables/ContextExternalToolAuthorizableService.html",[539,0.901,5794,5.503]],["body/injectables/ContextExternalToolAuthorizableService.html",[0,0.295,3,0.02,4,0.02,5,0.01,7,0.132,8,1.316,12,5.035,26,2.677,27,0.449,29,0.854,30,0.001,31,0.615,32,0.15,33,0.527,34,1.48,35,1.044,36,2.335,40,5.306,95,0.165,99,1.449,101,0.014,103,0.001,104,0.001,177,1.59,226,1.242,227,3.576,262,2.636,345,2.765,349,0.897,379,1.086,437,1.124,539,1.452,541,2.079,564,4.086,608,2.002,1280,2.715,1682,8.867,1718,3.659,1840,6.485,2472,3.943,2489,3.988,3087,8.031,5384,10.426,5764,6.995,5794,8.867,5795,10.523,5796,8.031,5797,8.687,5798,8.687,5799,8.687]],["title/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.231,5800,5.705]],["body/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,27,0.465,29,0.713,30,0.001,31,0.513,32,0.168,33,0.44,95,0.144,101,0.015,103,0.001,104,0.001,112,0.901,131,3.432,138,1.666,150,2.087,245,2.975,284,4.088,379,1.146,556,2.308,564,3.954,813,6.405,816,6.47,818,4.605,833,5.085,1077,7.564,2020,5.637,2487,5.594,2489,4.27,5800,9.504,5801,11.394,5802,11.048,5803,8.887,5804,8.47]],["title/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.231,5802,5.503]],["body/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.25,2,0.825,3,0.017,4,0.017,5,0.009,7,0.112,26,2.62,27,0.532,29,0.924,30,0.001,31,0.665,32,0.18,33,0.533,47,0.837,55,2.121,95,0.141,99,1.229,101,0.012,103,0.001,104,0.001,112,0.783,138,2.315,149,4.226,150,1.678,245,3.543,379,0.921,556,1.856,564,4.055,818,3.703,1241,4.202,1985,2.93,2020,5.855,2487,5.995,2489,4.379,5057,6.013,5790,4.898,5801,12.211,5802,9.993,5805,6.811,5806,7.767,5807,6.278,5808,8.081,5809,9.114,5810,9.858,5811,6.811,5812,6.811,5813,6.811,5814,9.294,5815,6.811,5816,6.811,5817,6.445,5818,6.171,5819,6.811,5820,7.367,5821,7.367,5822,6.811,5823,4.825,5824,6.811,5825,6.811,5826,5.771,5827,6.811]],["title/classes/ContextExternalToolContextParams.html",[0,0.231,5828,5.705]],["body/classes/ContextExternalToolContextParams.html",[0,0.373,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,27,0.449,30,0.001,32,0.15,47,0.775,95,0.153,101,0.014,103,0.001,104,0.001,112,0.871,138,1.996,142,4.943,143,2.814,144,3.963,145,3.509,148,2.757,150,1.979,245,3.154,556,2.188,564,4.086,807,4.478,838,2.723,851,4.149,1869,8.499,1870,4.226,1874,6.19,2433,7.582,2489,3.988,2863,5.407,4804,7.217,5764,6.995,5828,9.193,5829,9.72,5830,8.687,5831,7.565,5832,7.6,5833,8.687,5834,8.687,5835,8.687,5836,8.687,5837,8.687,5838,7.6]],["title/entities/ContextExternalToolEntity.html",[154,1.456,5839,4.953]],["body/entities/ContextExternalToolEntity.html",[0,0.238,3,0.016,4,0.016,5,0.008,7,0.106,27,0.514,29,0.906,30,0.001,32,0.171,33,0.458,47,0.886,55,2.333,95,0.154,96,1.928,101,0.016,103,0.001,104,0.001,105,0.758,112,0.758,131,2.629,138,2.282,143,2.59,144,2.313,154,2.04,155,2.342,160,4.004,172,4.171,173,2.076,174,3.795,178,2.916,180,1.258,181,1.879,182,2.283,564,4.273,654,2.088,1342,5.221,1672,4.968,2489,2.327,4269,5.002,4275,5.207,4276,4.259,4804,6.979,5040,4.974,5400,6.833,5764,7.465,5768,5.927,5788,4.472,5789,4.821,5790,4.667,5791,5.106,5792,5.002,5793,5.221,5831,7.315,5839,6.94,5840,10.754,5841,5.672,5842,9.744,5843,7.02,5844,10.176,5845,7.02,5846,7.02,5847,9.273,5848,7.02,5849,8.461,5850,7.02,5851,7.02,5852,5.881,5853,4.533,5854,7.994,5855,6.49,5856,6.49,5857,6.49,5858,6.141,5859,5.881,5860,5.672,5861,5.881]],["title/classes/ContextExternalToolFactory.html",[0,0.231,5862,6.296]],["body/classes/ContextExternalToolFactory.html",[0,0.159,2,0.524,3,0.011,4,0.011,5,0.006,7,0.071,8,0.854,27,0.528,29,1.021,30,0.001,31,0.706,32,0.182,33,0.596,34,1.469,35,1.44,47,0.826,49,1.847,55,2.444,59,3.394,95,0.138,96,1.286,97,2.03,101,0.008,103,0,104,0,112,0.566,120,3.135,133,2.492,140,2.622,153,1.961,154,1.844,155,2.378,177,1.304,180,1.277,236,1.159,271,4.862,319,3.217,333,1.982,349,0.736,379,0.586,382,3.848,413,2.194,437,0.922,447,7.019,448,4.478,449,5.447,452,4.027,453,5.447,454,5.558,455,4.027,456,4.027,457,4.027,458,3.955,459,4.426,460,4.874,461,6.441,462,5.757,463,6.974,464,2.671,469,2.646,470,4.027,471,2.671,472,5.095,473,5.26,474,4.118,475,4.947,476,3.99,477,2.646,478,2.494,479,4.092,480,3.395,481,2.577,482,2.534,483,2.646,484,5.019,485,2.671,486,3.521,487,4.787,488,2.646,489,7.122,490,4.15,491,6.614,492,2.671,493,3.534,494,2.646,495,2.671,496,2.646,497,2.671,498,2.646,501,2.646,502,6.064,503,2.671,504,2.646,505,4.027,506,3.766,507,4.027,508,2.671,509,2.555,510,2.534,511,2.092,512,2.646,513,2.646,514,2.646,515,2.671,516,2.671,517,1.795,518,2.646,519,1.451,520,2.671,521,2.822,522,2.646,523,2.671,525,2.723,526,2.78,527,2.81,556,2.173,564,2.648,708,2.96,1840,2.403,1842,2.308,1867,1.734,1869,2.945,1874,3.337,2489,1.553,2583,4.668,3543,3.024,4129,3.068,4209,3.706,4317,6.146,4319,3.406,5400,2.751,5767,3.068,5768,2.386,5769,5.432,5771,3.923,5862,7.974,5863,7.126,5864,3.784,5865,7.126,5866,7.126,5867,4.683,5868,7.011,5869,3.669,5870,3.163,5871,4.683]],["title/classes/ContextExternalToolIdParams.html",[0,0.231,5872,5.191]],["body/classes/ContextExternalToolIdParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,47,0.83,95,0.149,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,142,4.6,143,2.618,144,3.2,145,3.265,148,3.083,150,2.213,245,3.083,256,6.922,564,4.035,807,4.799,2489,3.899,3235,7.082,5764,6.838,5829,9.502,5872,8.964,5873,8.138,5874,8.499]],["title/classes/ContextExternalToolIdParams-1.html",[0,0.192,708,2.352,5872,4.316]],["body/classes/ContextExternalToolIdParams-1.html",[0,0.402,2,1.101,3,0.023,4,0.023,5,0.012,7,0.149,26,2.693,27,0.403,30,0.001,32,0.134,95,0.161,99,1.64,101,0.016,103,0.001,104,0.001,112,0.941,138,1.789,148,3.12,150,2.24,245,3.106,256,7.007,564,3.637,807,4.834,2487,5.377,2489,3.927,3235,7.119,5872,9.03,5875,10.952,5876,7.152,5877,7.946]],["title/modules/ContextExternalToolModule.html",[201,1.804,3532,5.335]],["body/modules/ContextExternalToolModule.html",[0,0.257,3,0.018,4,0.018,5,0.009,30,0.001,95,0.163,101,0.012,103,0.001,104,0.001,201,2.981,203,2.719,204,2.922,205,3.007,206,2.994,207,2.982,208,4.122,209,4.232,214,5.949,218,3.989,219,2.945,220,2.876,225,3.956,226,1.081,560,3.113,564,3.681,654,2.249,1278,2.392,2489,3.325,3532,11.215,5080,4.353,5376,9.326,5386,6.109,5764,4.396,5794,11.136,5878,7.56,5879,7.56,5880,7.56,5881,7.56,5882,9.773,5883,10.044,5884,8.899,5885,11.544,5886,11.544,5887,7.56]],["title/classes/ContextExternalToolPostParams.html",[0,0.231,5888,5.705]],["body/classes/ContextExternalToolPostParams.html",[0,0.378,2,0.828,3,0.017,4,0.017,5,0.009,7,0.112,27,0.522,29,0.867,30,0.001,32,0.183,33,0.57,47,0.899,55,2.126,95,0.157,101,0.012,103,0.001,104,0.001,112,0.785,138,2.317,143,1.646,148,2.346,149,4.234,150,1.685,245,3.246,248,4.124,249,4.503,564,4.283,654,2.199,807,4.542,851,3.532,1869,7,1870,3.597,2347,4.217,2489,4.313,3434,7.042,4804,6.678,5400,6.538,5537,6.296,5764,7.565,5768,5.672,5829,10.512,5831,7,5838,6.468,5868,8.096,5888,8.278,5889,6.836,5890,7.985,5891,7.394,5892,7.394,5893,7.394,5894,5.378,5895,7.394,5896,9.438,5897,6.194,5898,6.194,5899,6.194,5900,7.394,5901,6.836,5902,6.836,5903,7.394,5904,4.65,5905,5.534,5906,5.636]],["title/interfaces/ContextExternalToolProps.html",[105,0.735,5771,5.705]],["body/interfaces/ContextExternalToolProps.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,29,0.987,30,0.001,32,0.178,33,0.587,34,2.082,47,0.935,55,2.728,95,0.161,101,0.017,103,0.001,104,0.001,105,0.858,107,1.907,112,0.823,131,2.977,180,1.424,181,2.127,349,0.821,564,3.542,654,2.364,1280,2.484,1686,6.028,1840,4.079,1842,3.917,2583,8.305,3730,4.823,5400,7.778,5764,4.622,5765,6.954,5766,6.227,5767,8.972,5768,6.461,5769,9.664,5770,6.059,5771,9.663,5776,10.245,5780,6.227,5781,5.285,5782,5.664,5783,6.059,5784,7.349,5785,7.349,5786,7.349,5787,7.349,5788,5.064,5789,5.459,5790,5.285,5791,5.782,5792,7.386,5793,5.912]],["title/injectables/ContextExternalToolRepo.html",[539,0.901,5384,5.335]],["body/injectables/ContextExternalToolRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.708,10,2.4,12,2.71,18,2.989,26,2.419,27,0.529,29,1.013,30,0.001,31,0.719,32,0.181,33,0.616,34,1.683,35,1.531,36,2.568,40,2.856,47,0.522,95,0.155,96,1.623,97,1.597,101,0.006,103,0,104,0,112,0.293,131,2.213,133,2.066,154,1.979,155,1.229,173,1.09,177,1.081,180,1.059,226,0.527,227,1.517,236,1.689,262,2.813,310,2.56,349,1.227,379,0.461,381,1.237,382,3.641,437,1.44,448,3.031,486,1.777,519,1.141,529,1.671,539,0.782,541,0.882,564,3.802,603,2.538,608,1.362,662,2.325,680,4.13,686,2.788,687,4.686,718,2.045,740,3.086,753,3.223,1246,4.871,1278,1.165,1342,2.74,1604,3.129,1718,1.552,1840,5.712,1842,2.911,1869,6.529,1872,3.715,1874,4.209,1877,5.168,1941,2.101,2029,2.379,2240,8.595,2242,4.209,2243,4.209,2244,4.209,2245,4.209,2246,4.13,2247,4.13,2248,4.209,2249,4.13,2250,4.209,2251,2.68,2252,4.871,2253,3.467,2254,3.819,2256,4.296,2257,2.625,2259,4.871,2260,2.625,2262,2.625,2264,2.413,2265,4.13,2266,2.625,2268,2.625,2270,4.209,2274,4.209,2276,3.99,2277,4.13,2279,2.625,2281,2.21,2282,2.261,2283,2.625,2285,2.625,2287,2.576,2288,2.625,2294,2.488,2305,2.576,2306,4.393,2328,4.948,2341,3.223,2568,1.815,3543,4.775,4209,1.25,4389,2.347,4487,3.47,4690,3.927,4692,3.098,4804,2.21,5384,4.628,5400,3.47,5505,3.004,5767,6.065,5768,3.01,5769,4.503,5776,5.975,5831,2.317,5839,8.306,5842,4.948,5844,9.082,5849,2.68,5853,3.815,5854,8.279,5868,2.68,5907,9.976,5908,3.223,5909,5.461,5910,5.907,5911,5.907,5912,5.907,5913,3.684,5914,5.461,5915,9.598,5916,3.684,5917,8.645,5918,5.907,5919,3.684,5920,5.461,5921,3.684,5922,4.948,5923,3.406,5924,3.684,5925,5.907,5926,3.684,5927,5.907,5928,3.684,5929,3.684,5930,3.684,5931,2.68,5932,2.68,5933,2.68,5934,2.68,5935,2.68,5936,2.68,5937,2.68,5938,2.68,5939,2.68,5940,3.684,5941,3.684,5942,3.684,5943,2.625,5944,4.209,5945,2.977,5946,3.223,5947,2.808,5948,3.684,5949,3.435,5950,3.406,5951,2.576,5952,5.907,5953,3.684,5954,3.684,5955,3.684,5956,3.684,5957,3.684,5958,3.406,5959,3.684,5960,3.684,5961,3.406,5962,3.684,5963,3.406,5964,3.406,5965,3.684,5966,3.684,5967,3.684,5968,3.684,5969,3.684,5970,3.684,5971,3.406,5972,3.406,5973,5.907,5974,5.907,5975,5.907]],["title/classes/ContextExternalToolRequestMapper.html",[0,0.231,5976,5.958]],["body/classes/ContextExternalToolRequestMapper.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,8,1.254,27,0.428,29,0.904,30,0.001,31,0.65,32,0.159,33,0.502,34,1.373,35,1.257,95,0.156,101,0.013,103,0.001,104,0.001,141,3.85,349,1.199,413,4.019,480,2.238,564,4.135,603,2.333,654,2.397,789,4.024,2489,3.85,2583,7.607,5400,4.735,5764,6.753,5767,5.28,5768,4.107,5769,6.144,5781,5.359,5868,5.863,5888,10.295,5896,9.707,5906,6.144,5943,5.743,5976,9.151,5977,10.736,5978,6.513,5979,10.46,5980,10.159,5981,10.46,5982,8.06,5983,10.159,5984,7.051,5985,8.06,5986,8.762,5987,7.051,5988,8.06,5989,8.06,5990,8.06,5991,8.06,5992,8.06,5993,7.452,5994,7.051,5995,6.752,5996,7.051]],["title/classes/ContextExternalToolResponse.html",[0,0.231,5997,5.503]],["body/classes/ContextExternalToolResponse.html",[0,0.231,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,27,0.539,29,0.894,30,0.001,31,0.381,32,0.182,33,0.577,34,1.817,47,0.94,55,2.01,95,0.135,101,0.011,103,0.001,104,0.001,112,0.742,138,2.359,149,4.578,150,1.551,245,3.524,379,0.851,404,2.777,480,1.89,486,2.048,556,1.714,564,4.328,654,2.024,818,3.421,823,2.388,838,2.134,1869,7.568,1870,3.311,2862,4.177,4804,6.401,5400,6.267,5764,7.741,5768,5.436,5788,4.336,5790,4.525,5792,4.85,5807,6.028,5823,4.458,5829,10.757,5831,6.709,5858,5.954,5860,5.5,5868,7.759,5906,5.188,5997,9.724,5998,5.954,5999,7.55,6000,8.173,6001,5.954,6002,5.954,6003,5.954,6004,5.954,6005,8.996,6006,5.954,6007,5.954,6008,5.954,6009,5.188,6010,6.292,6011,6.806,6012,6.806,6013,6.806,6014,6.806,6015,5.954,6016,6.292,6017,5.954]],["title/classes/ContextExternalToolResponseMapper.html",[0,0.231,6018,5.705]],["body/classes/ContextExternalToolResponseMapper.html",[0,0.226,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,8,1.103,27,0.466,29,0.93,30,0.001,31,0.669,32,0.155,33,0.546,34,1.134,35,1.367,95,0.144,101,0.011,103,0.001,104,0.001,236,1.716,347,3.371,349,1.233,413,4.158,437,1.544,480,1.849,564,4.111,603,2.119,654,1.981,781,3.953,789,3.325,823,3.23,1718,2.805,1840,6.128,1846,6.157,1873,5.826,2489,3.959,3670,5.826,3672,4.428,4487,6.683,4804,3.996,5400,3.912,5764,6.944,5768,4.69,5807,3.763,5831,4.188,5868,4.844,5896,9.102,5906,5.076,5977,11.04,5980,9.227,5984,5.826,5986,7.71,5995,5.579,5996,5.826,5997,9.649,6005,10.106,6018,7.71,6019,9.204,6020,9.204,6021,9.204,6022,9.204,6023,5.826,6024,9.204,6025,9.982,6026,6.659,6027,10.229,6028,9.204,6029,6.157,6030,6.157,6031,5.579,6032,6.157,6033,5.217,6034,4.656,6035,5.826,6036,6.659,6037,6.659,6038,6.659,6039,6.659,6040,8.509,6041,6.659,6042,6.659,6043,5.381,6044,6.157,6045,6.157,6046,5.826,6047,5.579,6048,6.157,6049,6.659]],["title/injectables/ContextExternalToolRule.html",[539,0.901,1701,5.705]],["body/injectables/ContextExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.17,27,0.452,29,0.859,30,0.001,31,0.618,32,0.161,33,0.529,35,1.173,95,0.161,101,0.012,103,0.001,104,0.001,119,2.579,131,4.131,154,2.85,177,1.329,226,1.038,239,3.092,345,2.311,349,1.008,379,0.908,437,0.939,539,1.292,541,1.738,564,3.891,604,4.481,662,3.985,1280,2.269,1609,6.383,1637,7.872,1658,4.356,1675,7.856,1701,8.178,1816,4.689,1820,6.063,1827,6.491,1840,6.755,1842,3.578,3352,6.491,3353,4.904,3356,6.395,3359,4.904,3360,6.594,3361,7.261,3543,6.304,5839,9.7,5853,4.689,6050,11.794,6051,6.712,6052,6.712,6053,6.712,6054,6.712,6055,6.956,6056,7.26,6057,7.26]],["title/classes/ContextExternalToolScope.html",[0,0.231,5917,5.958]],["body/classes/ContextExternalToolScope.html",[0,0.216,2,0.714,3,0.015,4,0.015,5,0.008,7,0.097,8,1.07,26,2.783,27,0.531,29,0.948,30,0.001,31,0.682,32,0.177,33,0.584,34,1.755,35,1.463,95,0.142,99,1.063,101,0.011,103,0.001,104,0.001,112,0.709,119,2.097,180,1.6,227,2.624,310,2.763,349,1.153,382,3.546,480,1.77,486,1.918,519,1.975,556,3.462,564,3.74,603,2.447,1869,7.021,2291,6.116,3543,4.117,4804,6.182,5505,5.269,5831,6.48,5839,4.637,5842,5.34,5853,4.117,5868,7.495,5870,4.306,5907,10.866,5917,11.494,6058,5.577,6059,6.03,6060,6.03,6061,6.03,6062,8.928,6063,8.928,6064,8.928,6065,8.928,6066,6.03,6067,6.03,6068,4.378,6069,4.306,6070,4.378,6071,4.378,6072,8.928,6073,6.375,6074,8.928,6075,6.375,6076,8.928,6077,6.375,6078,8.928,6079,6.375,6080,4.306,6081,6.03,6082,4.378,6083,4.306,6084,4.378,6085,4.306,6086,7.541]],["title/classes/ContextExternalToolSearchListResponse.html",[0,0.231,6087,5.958]],["body/classes/ContextExternalToolSearchListResponse.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,27,0.466,29,0.717,30,0.001,31,0.516,32,0.169,33,0.442,95,0.144,101,0.015,103,0.001,104,0.001,112,0.903,131,3.447,138,1.674,150,2.097,245,2.983,284,4.094,379,1.151,556,2.318,564,4.202,812,8.799,813,6.434,816,6.489,818,4.626,833,5.108,2489,4.094,5764,7.181,5803,8.913,5829,9.979,5997,11.059,6087,9.953,6088,8.051]],["title/injectables/ContextExternalToolService.html",[539,0.901,5884,4.398]],["body/injectables/ContextExternalToolService.html",[0,0.213,3,0.015,4,0.015,5,0.007,7,0.095,8,1.057,12,4.047,26,2.636,27,0.51,29,0.969,30,0.001,31,0.697,32,0.17,33,0.597,35,1.455,36,2.786,95,0.148,99,1.045,101,0.01,103,0,104,0,131,2.347,177,1.147,226,0.896,227,2.579,262,3.032,310,2.715,345,1.994,349,1.144,379,0.784,437,1.51,539,1.167,541,1.5,564,4.23,608,2.869,1718,2.639,1840,6.959,2489,2.924,3235,3.509,5384,9.49,5393,5.063,5764,7.389,5767,7.935,5769,4.776,5795,11.116,5796,5.793,5808,6.416,5868,4.557,5884,5.696,5915,10.243,5943,4.465,5987,5.481,6089,8.82,6090,7.717,6091,8.82,6092,8.82,6093,8.82,6094,6.265,6095,8.82,6096,6.265,6097,8.82,6098,6.265,6099,8.82,6100,6.265,6101,8.82,6102,5.793,6103,8.82,6104,5.793,6105,8.82,6106,6.265,6107,8.686,6108,6.265,6109,6.265,6110,8.82,6111,6.265,6112,8.82,6113,6.265,6114,6.265]],["title/injectables/ContextExternalToolUc.html",[539,0.901,6115,5.705]],["body/injectables/ContextExternalToolUc.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.066,8,0.805,26,2.944,27,0.453,29,0.86,30,0.001,31,0.619,32,0.156,33,0.53,34,1.144,35,1.273,36,2.548,39,3.222,47,0.58,95,0.155,99,0.723,101,0.007,103,0,104,0,131,4.638,177,1.833,226,0.62,236,1.629,239,1.886,262,2.875,349,1.034,379,0.84,437,1.672,529,1.9,539,0.889,541,1.038,560,1.785,564,4.053,603,2.293,608,3.003,643,2.985,654,1.997,662,3.331,1154,1.724,1609,5.42,1615,2.63,1698,5.84,1718,1.826,1787,3.089,1792,3.396,1795,5.875,1796,2.63,1798,3.396,1839,5.334,1840,6.813,1842,2.136,1869,5.822,1870,2.109,1896,5.875,2472,1.968,2489,3.512,2985,2.427,3235,6.187,3801,3.153,4209,4.063,4804,5.554,5764,6.639,5767,4.399,5831,5.822,5884,7.136,5885,9.256,5943,3.089,5983,11.099,6033,3.396,6043,6.642,6090,5.875,6115,5.626,6116,11.418,6117,3.792,6118,7.6,6119,8.22,6120,6.209,6121,7.6,6122,7.6,6123,4.335,6124,7.879,6125,7.347,6126,4.008,6127,4.335,6128,4.335,6129,6.715,6130,4.335,6131,4.335,6132,6.381,6133,4.335,6134,6.715,6135,4.335,6136,4.335,6137,4.335,6138,4.335,6139,4.335,6140,3.396,6141,2.661,6142,4.335,6143,8.22,6144,4.884,6145,6.715,6146,6.209,6147,4.335,6148,4.335,6149,8.098,6150,6.715,6151,6.209,6152,6.715,6153,3.396,6154,4.335,6155,6.209,6156,4.335,6157,4.335,6158,3.304,6159,9.257,6160,4.335,6161,4.335,6162,6.209,6163,4.335]],["title/injectables/ContextExternalToolValidationService.html",[539,0.901,5885,5.705]],["body/injectables/ContextExternalToolValidationService.html",[0,0.224,3,0.015,4,0.015,5,0.008,7,0.1,8,1.096,27,0.43,29,0.817,30,0.001,31,0.667,32,0.143,33,0.503,35,1.098,36,1.945,95,0.166,101,0.011,103,0.001,104,0.001,131,3.424,168,3.761,177,2.074,226,0.943,236,1.073,262,2.698,283,5.61,301,4.384,340,3.169,379,1.143,437,1.182,529,1.866,539,1.21,541,1.578,564,4.169,569,4.699,590,4.047,603,2.536,608,2.611,654,2.719,696,2.601,1718,2.777,1759,4.529,1839,4.869,1840,6.858,1842,4.504,1867,3.385,2148,5.546,2489,4.186,2568,4.504,3463,5.524,3854,5.329,3855,4.529,5072,4.201,5383,9.89,5410,5.166,5423,5.769,5425,6.096,5764,6.588,5769,5.026,5795,9.911,5884,7.951,5885,7.658,6033,5.166,6034,4.61,6035,5.769,6125,8.394,6132,4.201,6141,5.61,6144,4.796,6164,9.141,6165,5.988,6166,6.096,6167,7.748,6168,6.594,6169,9.141,6170,9.141,6171,6.594,6172,5.166,6173,5.329,6174,6.594,6175,6.594,6176,6.594,6177,6.096,6178,7.658,6179,6.096,6180,6.594,6181,6.594,6182,5.769,6183,6.096,6184,6.594,6185,6.594,6186,6.594,6187,6.594,6188,6.594,6189,6.594]],["title/classes/ContextRef.html",[0,0.231,5767,4.461]],["body/classes/ContextRef.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.51,29,0.732,30,0.001,31,0.526,32,0.185,33,0.451,34,2.123,47,0.813,95,0.119,101,0.015,103,0.001,104,0.001,112,0.915,181,3.084,379,1.175,381,3.156,404,3.835,405,5.171,564,3.99,1869,7.838,1870,4.572,2507,4.198,4347,5.638,5764,7.556,5765,11.367,5767,8.734,6190,8.688,6191,10.654,6192,8.688]],["title/classes/ContextRefParams.html",[0,0.231,6193,5.958]],["body/classes/ContextRefParams.html",[0,0.39,2,1.045,3,0.022,4,0.022,5,0.011,7,0.141,26,2.632,27,0.47,30,0.001,32,0.17,95,0.164,99,1.557,101,0.015,103,0.001,104,0.001,112,0.911,138,2.087,148,2.961,150,2.126,245,3.258,807,4.682,851,4.457,1869,8.369,1870,4.54,2487,5.64,4804,7.455,5831,7.814,5838,8.163,5875,11.488,5876,6.787,6193,10.038,6194,9.331,6195,9.331,6196,9.331,6197,9.331]],["title/injectables/ConverterUtil.html",[539,0.901,2141,5.705]],["body/injectables/ConverterUtil.html",[0,0.429,3,0.023,4,0.023,5,0.012,7,0.147,8,1.406,27,0.396,29,0.913,30,0.001,31,0.542,32,0.16,33,0.464,35,1.161,47,0.891,95,0.149,101,0.016,103,0.001,104,0.001,153,2.198,226,1.382,349,0.999,479,4.915,539,1.552,541,2.314,2141,9.822,4650,10.257,6198,9.668,6199,11.725,6200,11.725,6201,9.668,6202,9.668,6203,9.668,6204,8.938,6205,9.668]],["title/classes/CookiesDto.html",[0,0.231,6206,5.705]],["body/classes/CookiesDto.html",[0,0.332,2,1.096,3,0.023,4,0.023,5,0.012,7,0.148,27,0.52,29,0.762,30,0.001,31,0.548,32,0.173,33,0.47,47,0.93,101,0.016,103,0.001,104,0.001,112,0.938,181,3.161,379,1.224,381,3.287,6206,11.297,6207,9.785,6208,11.098,6209,11.098,6210,11.811,6211,9.785,6212,9.785,6213,9.785,6214,9.785,6215,9.785]],["title/classes/CopyApiResponse.html",[0,0.231,6216,5.335]],["body/classes/CopyApiResponse.html",[0,0.226,2,0.744,3,0.016,4,0.016,5,0.008,7,0.101,27,0.518,29,0.518,30,0.001,31,0.372,32,0.191,33,0.628,34,2.155,47,0.935,95,0.117,100,3.088,101,0.011,103,0.001,104,0.001,112,0.73,138,2.245,149,4.54,150,1.515,153,3.012,245,2.763,319,4.15,347,4.794,379,1.15,556,1.675,773,3.364,818,4.621,838,3.564,848,6.567,1207,4.117,1213,5.849,1224,5.148,1394,10.102,1867,3.405,1883,5.333,1927,3.905,2421,6.678,2507,2.97,2725,3.412,2982,9.349,2983,8.876,2984,4.034,3267,8.043,5331,7.202,6216,10.102,6217,10.802,6218,6.648,6219,7.202,6220,6.314,6221,6.113,6222,9.219,6223,6.648,6224,8.043,6225,6.648,6226,6.147,6227,8.5,6228,6.551,6229,6.648,6230,6.648,6231,8.5,6232,6.648,6233,6.648,6234,6.648,6235,6.648]],["title/classes/CopyFileDto.html",[0,0.231,6236,5.191]],["body/classes/CopyFileDto.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,26,2.777,27,0.521,29,0.69,30,0.001,31,0.713,32,0.174,33,0.582,34,2.068,47,0.784,95,0.141,99,1.478,101,0.015,103,0.001,104,0.001,107,2.126,112,0.882,284,2.736,379,1.108,404,3.615,556,2.798,816,6.336,1985,3.523,3541,6.459,6236,8.469,6237,6.082,6238,13.108,6239,8.859,6240,8.07,6241,10.661,6242,11.11,6243,8.859,6244,8.859,6245,7.159,6246,7.159,6247,7.159,6248,7.159]],["title/classes/CopyFileListResponse.html",[0,0.231,6249,5.335]],["body/classes/CopyFileListResponse.html",[0,0.369,2,0.672,3,0.014,4,0.014,5,0.007,7,0.091,27,0.471,29,0.467,30,0.001,31,0.559,32,0.177,33,0.551,34,1.458,47,0.903,55,2.973,56,6.077,59,2.659,70,6.275,83,1.843,95,0.138,101,0.018,103,0,104,0,112,0.68,138,1.977,149,3.793,150,1.368,154,1.283,180,1.787,245,3.554,247,2.628,284,3.797,379,0.751,382,3.28,404,3.492,556,1.512,814,7.713,815,6.653,816,6.2,818,3.018,820,4.576,821,2.885,822,4.792,823,2.107,824,4.197,825,5.527,826,4.928,827,3.933,828,3.198,829,4.197,830,4.197,832,5.382,833,4.75,838,3.126,1165,4.851,1169,4.703,1198,2.064,1299,3.362,1985,3.403,2723,6.271,2863,4.914,3573,2.94,6237,3.971,6240,3.992,6245,4.851,6246,4.851,6247,4.851,6248,4.851,6249,6.704,6250,5.606,6251,5.029,6252,9.846,6253,6.004,6254,6.004,6255,5.135,6256,5.931,6257,8.188,6258,6.532,6259,3.126,6260,8.085,6261,5.029,6262,4.851,6263,5.029,6264,3.223,6265,5.029,6266,4.197,6267,5.029,6268,5.029,6269,5.029,6270,4.703,6271,4.851,6272,5.029,6273,5.029,6274,4.278,6275,4.851,6276,3.992,6277,4.851,6278,4.367,6279,5.029,6280,5.029,6281,4.851,6282,5.029,6283,4.465,6284,3.332,6285,2.958,6286,3.933,6287,4.465]],["title/classes/CopyFileParams.html",[0,0.231,6288,4.677]],["body/classes/CopyFileParams.html",[0,0.456,2,0.721,3,0.015,4,0.021,5,0.011,7,0.098,26,2.588,27,0.368,30,0.001,32,0.167,39,1.731,47,0.955,95,0.159,99,1.074,101,0.022,103,0.001,104,0.001,105,0.694,112,0.714,119,1.829,138,1.635,143,1.433,147,4.825,148,2.042,149,4.265,150,1.466,151,5.976,153,1.463,154,1.376,245,3.639,247,2.817,248,5.099,249,4.535,348,3.213,807,4.986,808,6.726,838,3.247,851,3.074,988,2.776,990,2.176,1079,3.78,1139,5.726,1140,4.216,1141,4.216,1198,2.212,1280,2.012,2680,5.325,2863,5.104,3573,3.151,4209,2.183,5905,6.604,6237,4.806,6250,6.784,6256,6.117,6285,3.171,6288,6.173,6289,4.499,6290,7.241,6291,5.63,6292,6.436,6293,8.124,6294,5.95,6295,6.436,6296,4.499,6297,8.124,6298,7.838,6299,7.838,6300,4.499,6301,4.42,6302,6.996,6303,4.42,6304,4.499,6305,4.347,6306,6.071,6307,4.279,6308,4.347,6309,4.42,6310,4.347,6311,4.347,6312,4.1,6313,4.499,6314,4.499,6315,4.499,6316,4.1,6317,4.1,6318,4.216,6319,4.279,6320,4.499]],["title/classes/CopyFileResponse.html",[0,0.231,6252,5.335]],["body/classes/CopyFileResponse.html",[0,0.381,2,0.723,3,0.015,4,0.015,5,0.008,7,0.098,27,0.46,29,0.503,30,0.001,31,0.661,32,0.167,33,0.498,34,1.912,47,0.948,55,2.701,56,5.428,70,5.605,83,1.982,95,0.142,101,0.018,103,0.001,104,0.001,112,0.715,138,1.887,149,4.271,150,1.471,154,1.38,180,1.614,245,3.61,247,2.826,284,3.647,379,0.807,404,3.676,814,6.367,815,4.875,816,6.403,822,3.616,832,5.665,833,5,838,3.253,1165,5.217,1169,5.058,1198,2.22,1299,3.616,1985,3.583,2720,4.601,2723,6.525,2863,5.112,3573,3.161,6237,5.479,6240,6.898,6245,5.217,6246,5.217,6247,5.217,6248,5.217,6249,5.058,6250,7.735,6251,5.409,6252,10.03,6255,5.405,6256,6.126,6257,8.414,6258,6.796,6259,3.362,6260,8.35,6261,5.409,6262,5.217,6263,5.409,6264,3.466,6265,5.409,6266,4.514,6267,5.409,6268,5.409,6269,5.409,6270,5.058,6271,5.217,6272,5.409,6273,5.409,6274,4.601,6275,5.217,6276,4.293,6277,5.217,6278,4.696,6279,5.409,6280,5.409,6281,5.217,6282,5.409,6283,4.802,6284,3.584,6285,3.182,6286,4.229,6287,4.802,6321,6.456,6322,6.456,6323,6.456,6324,6.456]],["title/classes/CopyFileResponseBuilder.html",[0,0.231,6325,6.296]],["body/classes/CopyFileResponseBuilder.html",[0,0.318,2,1.047,3,0.022,4,0.022,5,0.015,7,0.142,8,1.377,27,0.383,29,0.728,30,0.001,31,0.746,32,0.128,33,0.449,34,1.957,35,1.124,47,0.986,95,0.119,101,0.015,103,0.001,104,0.001,236,1.521,349,0.966,413,3.83,437,1.21,454,5.456,662,2.941,789,4.67,6237,5.331,6240,8.625,6252,10.62,6325,10.623,6326,11.49,6327,8.647,6328,11.49,6329,9.353]],["title/interfaces/CopyFiles.html",[105,0.735,6330,5.335]],["body/interfaces/CopyFiles.html",[3,0.022,4,0.022,5,0.014,7,0.14,30,0.001,32,0.156,47,1.012,55,1.985,95,0.117,101,0.021,103,0.001,104,0.001,105,1.393,107,2.213,112,0.905,284,3.519,1151,7.774,1153,6.042,1299,5.165,2035,5.801,6330,8.925,6331,7.226,6332,7.727,6333,10.433,6334,10.433,6335,5.877,6336,7.226,6337,6.449,6338,6.449,6339,6.449,6340,6.449,6341,6.709,6342,6.861,6343,6.573,6344,6.861,6345,6.861]],["title/classes/CopyFilesOfParentParamBuilder.html",[0,0.231,6346,5.958]],["body/classes/CopyFilesOfParentParamBuilder.html",[0,0.307,2,1.012,3,0.026,4,0.031,5,0.013,7,0.137,8,1.349,26,2.715,27,0.37,29,0.704,30,0.001,31,0.506,32,0.124,33,0.434,35,1.086,39,3.026,95,0.155,99,1.508,101,0.015,103,0.001,104,0.001,107,2.169,141,4.317,349,0.934,413,3.772,437,1.169,454,5.342,2680,5.787,3307,5.616,3541,5.543,6237,5.22,6259,5.857,6346,9.842,6347,11.249,6348,8.356,6349,11.249,6350,10.68,6351,8.356,6352,10.261,6353,8.356,6354,10.401]],["title/classes/CopyFilesOfParentParams.html",[0,0.231,6310,4.6]],["body/classes/CopyFilesOfParentParams.html",[0,0.457,2,0.735,3,0.015,4,0.021,5,0.011,7,0.099,26,2.604,27,0.269,30,0.001,32,0.162,39,1.765,47,0.951,95,0.16,99,1.095,101,0.022,103,0.001,104,0.001,105,0.708,112,0.723,119,1.854,138,1.193,143,1.461,147,4.891,148,2.082,149,4.301,150,1.495,151,6.057,153,1.492,154,1.402,245,3.648,247,2.872,248,5.13,249,4.573,348,3.276,807,5.016,808,6.783,838,3.281,851,3.134,988,2.83,990,2.218,1079,3.854,1139,5.804,1140,4.298,1141,4.298,1198,2.256,1280,2.051,2680,5.362,2863,5.157,3573,3.213,4209,2.226,5905,6.651,6237,4.227,6250,5.967,6256,6.169,6285,3.233,6288,4.507,6289,4.588,6290,4.588,6293,8.173,6294,6.067,6296,4.588,6297,8.173,6298,7.904,6299,7.904,6300,4.588,6301,4.507,6302,7.068,6303,4.507,6304,4.588,6305,4.432,6306,6.153,6307,4.363,6308,4.432,6309,4.507,6310,6.153,6311,4.432,6312,4.181,6313,4.588,6314,4.588,6315,4.588,6316,4.181,6317,4.181,6318,4.298,6319,4.363,6320,4.588,6355,6.562]],["title/classes/CopyFilesOfParentPayload.html",[0,0.231,6311,4.6]],["body/classes/CopyFilesOfParentPayload.html",[0,0.454,2,0.707,3,0.015,4,0.026,5,0.011,7,0.096,26,2.642,27,0.42,30,0.001,32,0.17,39,2.758,47,0.944,95,0.158,99,1.053,101,0.022,103,0.001,104,0.001,105,0.681,112,0.704,119,1.805,138,1.865,143,1.406,147,4.761,148,2.004,149,4.229,150,1.439,151,5.897,153,1.435,154,1.35,245,3.631,247,2.764,248,5.068,249,4.498,348,3.153,807,5.09,808,6.671,838,3.214,851,3.016,988,2.723,990,2.135,1079,3.709,1139,5.651,1140,4.136,1141,4.136,1198,2.171,1280,1.974,2680,5.287,2863,5.052,3573,3.092,4209,2.142,5905,6.985,6237,5.159,6250,7.283,6256,6.067,6285,3.112,6288,4.337,6289,4.415,6290,4.415,6293,8.293,6296,4.415,6297,8.075,6298,7.773,6299,7.773,6300,4.415,6301,4.337,6302,6.924,6303,4.337,6304,4.415,6305,4.265,6306,5.991,6307,4.199,6308,4.265,6309,4.337,6310,4.265,6311,5.991,6312,4.023,6313,4.415,6314,4.415,6315,4.415,6316,4.023,6317,4.023,6318,4.136,6319,4.199,6320,4.415,6356,6.315,6357,6.315,6358,6.315]],["title/injectables/CopyFilesService.html",[539,0.901,6359,5.705]],["body/injectables/CopyFilesService.html",[0,0.201,3,0.014,4,0.023,5,0.01,7,0.09,8,1.014,26,2.286,27,0.442,29,0.889,30,0.001,31,0.685,32,0.171,33,0.518,34,1.945,35,1.187,36,1.8,39,2.658,47,0.417,95,0.155,99,0.985,100,1.984,101,0.014,103,0,104,0,107,1.417,177,1.548,226,0.844,236,0.961,262,2.165,347,3.098,349,1.179,358,2.599,379,1.058,437,1.725,479,4.583,539,1.12,541,1.414,603,2.514,608,1.362,631,3.031,739,3.703,848,3.25,1207,1.886,1394,4.627,2680,3.819,2948,8.642,2966,6.968,2982,4.627,2983,4.393,2984,3.584,2985,3.308,2998,8.453,2999,8.278,3006,4.948,3541,5.855,5488,5.541,5531,4.503,6236,9.326,6237,5.298,6240,6.571,6259,3.075,6310,3.99,6346,5.167,6359,7.086,6360,10.558,6361,5.907,6362,9.882,6363,8.459,6364,7.821,6365,5.907,6366,8.718,6367,5.907,6368,5.907,6369,5.907,6370,8.459,6371,5.907,6372,9.882,6373,11.312,6374,8.459,6375,5.907,6376,5.907,6377,5.167,6378,5.461,6379,8.459,6380,5.907,6381,5.907,6382,8.645,6383,5.907,6384,5.907,6385,5.907,6386,5.907,6387,7.821,6388,5.907,6389,7.4,6390,5.907,6391,5.907,6392,4.393,6393,5.907,6394,5.907,6395,5.461,6396,5.907,6397,8.459,6398,5.907,6399,5.461,6400,4.627,6401,4.773,6402,5.167,6403,8.459,6404,5.907,6405,5.907]],["title/modules/CopyHelperModule.html",[201,1.804,6406,4.953]],["body/modules/CopyHelperModule.html",[0,0.327,3,0.022,4,0.022,5,0.011,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.336,203,3.46,204,3.718,205,3.827,206,3.811,207,3.795,208,4.612,209,4.735,218,4.649,219,3.748,220,3.66,226,1.376,2948,10.36,6217,8.06,6406,10.047,6407,9.621,6408,9.621,6409,9.621,6410,8.895,6411,9.621,6412,8.895,6413,9.621]],["title/injectables/CopyHelperService.html",[539,0.901,2948,4.953]],["body/injectables/CopyHelperService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.12,26,1.442,27,0.437,29,0.831,30,0.001,31,0.713,32,0.146,33,0.512,35,1.282,47,0.915,95,0.146,101,0.011,103,0.001,104,0.001,133,2.38,226,0.973,236,1.107,250,6.31,347,4.553,349,1.315,437,1.608,480,1.89,486,2.048,539,1.237,541,1.629,696,2.684,708,3.881,848,3.745,1600,3.958,1687,4.227,1925,3.683,2442,3.332,2588,5.921,2948,6.795,2966,8.375,2983,7.935,3002,8.638,3006,5.701,3650,6.292,6217,9.619,6400,8.357,6414,11.483,6415,6.806,6416,9.343,6417,9.343,6418,9.343,6419,9.343,6420,6.806,6421,10.668,6422,9.343,6423,9.619,6424,6.806,6425,9.343,6426,6.806,6427,6.292,6428,6.806,6429,9.343,6430,6.806,6431,5.701,6432,6.806,6433,4.525,6434,6.806,6435,5.701,6436,4.85,6437,6.806,6438,6.806,6439,6.806,6440,6.806,6441,10.668,6442,6.806,6443,5.062,6444,9.343,6445,6.806,6446,9.343,6447,6.806,6448,6.806,6449,6.806,6450,6.806,6451,6.806,6452,6.806,6453,6.806]],["title/classes/CopyMapper.html",[0,0.231,6454,5.503]],["body/classes/CopyMapper.html",[0,0.24,2,0.791,3,0.017,4,0.017,5,0.008,7,0.107,8,1.149,26,2.724,27,0.446,29,0.847,30,0.001,31,0.609,32,0.159,33,0.522,35,1.307,39,3.52,95,0.163,99,1.179,100,4.223,101,0.012,103,0.001,104,0.001,236,1.15,271,3.75,347,2.589,349,1.124,413,4.084,437,1.509,782,5.322,1207,2.257,1861,4.58,2625,5.067,2627,4.283,2966,7.875,2983,5.258,2998,5.538,5067,4.289,6216,9.139,6217,9.773,6400,7.511,6427,6.536,6454,7.748,6455,7.069,6456,9.588,6457,9.588,6458,9.588,6459,9.773,6460,7.069,6461,10.059,6462,9.588,6463,9.773,6464,7.069,6465,10.059,6466,9.588,6467,7.069,6468,7.069,6469,8.864,6470,7.069,6471,7.069,6472,7.069,6473,7.069,6474,7.069,6475,7.069,6476,9.588,6477,9.588,6478,5.922,6479,7.069,6480,7.069,6481,7.069,6482,9.588,6483,7.069,6484,7.069,6485,7.069,6486,7.069,6487,7.069,6488,8.864,6489,6.536]],["title/modules/CoreModule.html",[201,1.804,6490,4.528]],["body/modules/CoreModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,30,0.001,95,0.162,101,0.013,103,0.001,104,0.001,153,1.847,201,3.382,203,2.922,204,3.14,205,3.232,206,3.218,207,3.205,208,2.976,209,4.383,214,6.462,218,4.182,219,3.166,220,3.091,225,4.147,226,1.162,990,3.941,1225,4.987,2253,3.33,3857,6.699,4634,8.808,6490,9.307,6491,8.125,6492,8.125,6493,8.125,6494,10.568,6495,10.956,6496,10.956,6497,8.125,6498,8.237,6499,8.237,6500,8.808,6501,9.721,6502,7.351,6503,10.515,6504,7.492,6505,7.821,6506,10.515,6507,7.351,6508,9.199,6509,9.721,6510,10.515,6511,8.808,6512,6.566]],["title/classes/County.html",[0,0.231,6513,5.705]],["body/classes/County.html",[0,0.347,2,0.871,3,0.018,4,0.018,5,0.009,7,0.118,27,0.497,29,0.606,30,0.001,31,0.724,32,0.166,33,0.373,47,0.963,55,2.199,83,3.138,95,0.13,96,2.137,101,0.019,103,0.001,104,0.001,105,0.84,112,0.812,143,2.276,144,3.76,145,2.838,154,2.185,172,3.87,173,2.301,174,4.065,175,3.44,178,3.232,180,1.394,181,2.082,182,2.531,376,3.388,377,3.531,379,0.973,406,5.024,407,5.93,408,5.024,409,5.93,1672,4.051,1985,4.065,2503,5.283,4275,5.577,4285,3.405,5807,5.776,5823,5.096,6513,11.326,6514,11.015,6515,6.806,6516,9.986,6517,9.986,6518,8.942,6519,7.78,6520,7.78,6521,7.78,6522,7.78,6523,8.562,6524,8.942,6525,8.942,6526,6.806,6527,6.806,6528,6.806,6529,6.806,6530,6.806,6531,6.806,6532,5.343,6533,6.806,6534,6.806,6535,6.095]],["title/entities/Course.html",[154,1.456,1867,2.522]],["body/entities/Course.html",[0,0.183,2,0.886,3,0.008,4,0.008,5,0.004,7,0.15,26,2.097,27,0.494,30,0.001,31,0.489,32,0.16,33,0.528,34,1.165,39,1.84,47,0.87,62,3.163,83,3.284,95,0.146,96,0.903,101,0.011,103,0,104,0,105,0.355,112,0.428,119,1.096,138,2.193,143,2.648,144,2.876,145,0.913,153,1.984,154,1.151,155,1.097,160,3.902,168,3.071,172,3.6,173,0.972,174,2.142,175,1.453,178,1.365,180,0.589,181,0.88,182,1.069,236,1.935,239,2.151,253,1.609,316,1.765,348,2.689,349,1.297,379,0.411,404,1.341,413,1.658,437,1.624,473,1.794,480,2.97,486,3.462,490,1.165,519,1.668,528,1.711,529,1.524,556,2.899,565,3.196,603,1.589,644,3.983,651,2.572,652,2.572,654,2.353,662,3.461,708,1.365,726,2.753,838,2.145,914,2.298,1162,2.572,1207,1.049,1280,1.027,1603,1.236,1657,2.557,1666,2.279,1672,2.804,1760,2.185,1867,3.472,1965,1.809,1985,3.146,2611,5.31,2614,6.279,2618,3.733,2626,2.298,2628,2.042,3063,3.445,3115,2.185,3116,2.123,3287,1.994,3395,2.094,3553,3.039,3692,2.342,3738,2.042,3762,3.527,3763,3.527,4060,1.931,4209,1.827,4210,5.53,4225,2.753,4259,4.976,4285,2.357,4360,5.561,4779,1.824,4915,2.017,5040,2.471,6443,2.445,6504,2.342,6536,2.875,6537,6.582,6538,5.896,6539,6.22,6540,5.259,6541,5.127,6542,4.699,6543,6.22,6544,5.49,6545,5.53,6546,6.349,6547,4.979,6548,4.711,6549,3.287,6550,4.711,6551,3.287,6552,3.287,6553,4.711,6554,3.478,6555,3.287,6556,4.711,6557,3.287,6558,6.92,6559,2.753,6560,3.287,6561,4.711,6562,3.287,6563,4.711,6564,3.287,6565,2.875,6566,3.287,6567,2.875,6568,3.287,6569,3.287,6570,6.325,6571,3.287,6572,4.711,6573,3.287,6574,3.287,6575,3.287,6576,2.042,6577,2.875,6578,2.875,6579,3.267,6580,3.837,6581,2.875,6582,5.088,6583,2.875,6584,3.917,6585,2.656,6586,3.163,6587,2.185,6588,3.527,6589,2.017,6590,3.387,6591,1.841,6592,4.352,6593,4.352,6594,2.875,6595,2.656,6596,2.342,6597,2.875,6598,2.875,6599,2.753,6600,2.445,6601,2.875,6602,2.875,6603,2.575,6604,2.875,6605,3.305,6606,9.964,6607,4.875,6608,2.656,6609,3.637,6610,2.123,6611,2.042,6612,1.972,6613,2.656,6614,2.875,6615,2.875,6616,4.711,6617,4.711,6618,4.711,6619,6.392,6620,4.352,6621,4.105,6622,4.711,6623,4.005,6624,4.105,6625,2.445,6626,2.875,6627,2.875,6628,2.094,6629,3.581,6630,2.875,6631,2.875,6632,2.875,6633,4.711,6634,2.875,6635,2.875,6636,2.875,6637,2.875,6638,2.875,6639,2.875,6640,2.875,6641,5.528,6642,5.985,6643,2.875,6644,2.875,6645,2.875,6646,2.875,6647,2.875,6648,2.391,6649,2.875,6650,2.875,6651,2.875,6652,2.875,6653,2.875,6654,2.22,6655,2.875,6656,2.753,6657,2.875,6658,5.985,6659,4.711,6660,2.875,6661,2.875,6662,2.656,6663,2.656,6664,2.257,6665,2.875,6666,5.528,6667,2.875,6668,2.875,6669,2.875,6670,2.875]],["title/controllers/CourseController.html",[259,2.591,6671,5.958]],["body/controllers/CourseController.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.103,8,1.116,27,0.381,29,0.725,30,0.001,31,0.522,32,0.145,33,0.447,35,1.118,36,2.438,56,4.502,70,4.648,95,0.169,100,2.274,101,0.011,103,0.001,104,0.001,138,1.693,143,1.508,150,1.543,177,1.948,223,2.788,226,0.968,236,1.731,247,2.964,259,2.576,261,3.215,262,2.72,270,6.226,294,6.391,310,4.611,333,3.94,337,3.5,338,3.579,343,3.607,349,0.962,379,0.847,437,1.554,529,1.916,584,6.97,598,3.899,603,2.137,608,2.146,739,4.657,815,5.039,823,4.462,835,8.011,1303,4.925,2155,9.308,2196,3.766,2622,4.959,2882,6.97,2904,3.635,3720,3.978,4779,5.168,5048,9.308,6671,8.145,6672,6.772,6673,9.837,6674,6.772,6675,10.024,6676,10.024,6677,9.31,6678,6.772,6679,6.261,6680,7.207,6681,6.772,6682,6.289,6683,5.673,6684,4.063,6685,8.913,6686,6.772,6687,8.913,6688,6.261,6689,6.772,6690,5.673,6691,5.924,6692,6.772,6693,6.772,6694,6.772,6695,6.772,6696,6.772,6697,5.305,6698,6.772,6699,6.772,6700,5.673,6701,6.772,6702,6.772,6703,6.772,6704,6.772,6705,6.772,6706,5.673,6707,6.772]],["title/injectables/CourseCopyService.html",[539,0.901,6708,5.503]],["body/injectables/CourseCopyService.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.076,8,0.899,10,2.035,26,1.903,27,0.437,29,0.832,30,0.001,31,0.651,32,0.178,33,0.512,35,1.198,36,2.122,39,2.417,47,0.529,83,1.538,95,0.142,99,0.836,101,0.008,103,0,104,0,120,3.298,143,1.115,177,2.052,217,6.971,226,0.716,227,2.062,236,1.22,239,2.803,262,2.677,271,2.933,347,4.376,349,1.03,379,0.938,437,1.688,539,0.992,541,1.199,556,1.262,603,2.644,608,2.867,654,1.49,696,1.976,848,4.126,1154,1.992,1207,1.599,1744,6.8,1832,3.925,1861,4.292,1867,4.875,1882,3.726,1885,3.749,2421,2.943,2659,4.048,2932,9.733,2934,3.925,2944,8.642,2948,8.451,2954,3.925,2955,4.632,2966,7.238,2974,10.362,2981,4.197,2982,3.925,2983,3.726,2984,3.039,2985,2.805,2991,7.86,2997,4.383,2998,3.925,2999,4.197,3025,3.819,3271,3.57,4360,3.192,4772,4.383,6400,3.925,6423,6.281,6435,7.527,6537,3.331,6538,3.384,6543,3.57,6546,3.644,6708,6.058,6709,11.208,6710,7.527,6711,7.497,6712,7.497,6713,7.497,6714,4.197,6715,9.389,6716,4.632,6717,5.01,6718,7.497,6719,9.974,6720,5.01,6721,7.497,6722,12.44,6723,11.208,6724,7.497,6725,5.01,6726,5.01,6727,8.63,6728,6.559,6729,4.632,6730,5.01,6731,5.01,6732,5.01,6733,5.01,6734,5.01,6735,4.632,6736,5.01,6737,5.01,6738,5.01,6739,5.01,6740,5.01,6741,7.497,6742,5.01,6743,7.497,6744,5.01,6745,4.197,6746,5.01,6747,5.01,6748,5.01,6749,5.01,6750,5.01,6751,5.01,6752,4.632,6753,5.01,6754,5.01,6755,5.01,6756,7.497,6757,5.01,6758,5.01,6759,5.01,6760,5.01,6761,5.01,6762,5.01]],["title/injectables/CourseCopyUC.html",[539,0.901,6763,5.705]],["body/injectables/CourseCopyUC.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.208,26,2.776,27,0.463,29,0.785,30,0.001,31,0.565,32,0.138,33,0.484,35,1.211,36,2.145,39,2.712,95,0.166,99,1.271,101,0.013,102,3.829,103,0.001,104,0.001,119,1.55,131,3.776,177,1.845,226,1.089,236,1.239,262,2.475,349,0.787,379,1.261,437,1.461,519,2.36,529,2.155,539,1.334,541,1.824,560,3.136,603,2.512,608,2.323,643,3.386,739,4.412,1117,6.854,1162,3.639,1615,4.622,1634,6.261,1742,9.419,1787,5.428,1861,5.973,2020,3.334,2021,4.935,2022,4.758,2023,6.422,2472,3.458,2966,4.92,2984,4.622,2985,4.266,3612,5.326,3801,5.541,6708,10.59,6710,8.444,6763,8.444,6764,11.116,6765,6.664,6766,10.072,6767,7.618,6768,7.618,6769,7.618,6770,9.319,6771,7.618,6772,6.664,6773,7.618,6774,7.618,6775,6.382,6776,7.043,6777,7.618,6778,6.664,6779,6.664,6780,4.92]],["title/injectables/CourseExportUc.html",[539,0.901,6687,5.705]],["body/injectables/CourseExportUc.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.125,8,1.272,26,2.829,27,0.435,29,0.826,30,0.001,31,0.594,32,0.145,33,0.509,35,0.99,36,2.258,39,3.45,95,0.166,99,1.375,101,0.014,103,0.001,104,0.001,131,3.975,177,1.942,226,1.178,262,2.572,349,0.851,379,1.327,437,1.066,539,1.404,541,1.973,603,2.132,608,1.9,643,3.663,1615,5,1698,6.203,1742,9.709,1787,5.873,1861,5.069,2472,3.741,3801,5.995,5042,10.382,5044,6.591,5048,9.284,5057,6.707,5058,8.512,5062,9.811,5080,4.746,6687,8.89,6764,10.851,6775,6.904,6781,8.242,6782,8.242,6783,8.242,6784,10.612,6785,8.242,6786,8.242,6787,8.242,6788,8.242,6789,8.242,6790,8.242]],["title/classes/CourseFactory.html",[0,0.231,6791,5.705]],["body/classes/CourseFactory.html",[0,0.15,2,0.495,3,0.01,4,0.01,5,0.005,7,0.067,8,0.818,27,0.536,29,1.01,30,0.001,31,0.706,32,0.18,33,0.597,34,1.419,35,1.417,47,0.482,55,2.712,59,3.141,95,0.128,99,0.738,101,0.007,103,0,104,0,112,0.542,120,3.002,133,2.386,140,2.478,153,2.298,154,2.161,155,2.277,177,1.249,180,1.223,236,1.11,271,4.984,319,3.081,349,1.044,379,0.553,382,3.802,413,2.101,437,1.558,447,7.14,448,4.379,449,5.289,452,3.856,453,5.289,454,5.6,455,3.856,456,3.856,457,3.856,458,3.787,459,4.274,460,4.706,461,6.49,462,5.612,463,6.963,464,2.524,469,2.501,470,3.856,471,2.524,472,4.947,473,5.107,474,3.998,475,4.803,476,3.821,477,2.501,478,2.357,479,4.001,480,3.192,481,2.435,482,2.395,483,2.501,484,4.873,485,2.524,486,3.458,487,4.622,488,2.501,489,7.27,490,4.076,491,6.496,492,2.524,493,4.13,494,2.501,495,2.524,496,2.501,497,2.524,498,2.501,499,2.82,500,2.627,501,2.501,502,5.929,503,2.524,504,2.501,505,3.856,506,3.606,507,3.856,508,2.524,509,2.415,510,2.395,511,1.977,512,2.501,513,2.501,514,2.501,515,2.524,516,2.524,517,1.697,518,2.501,519,1.371,520,2.524,521,2.702,522,2.501,523,2.524,525,2.573,526,2.627,527,5.615,648,3.153,649,3.373,654,1.316,1575,3.219,1867,3.084,3762,6.131,4360,4.347,6537,2.942,6544,4.291,6546,6.807,6592,3.576,6791,6.976,6792,4.425,6793,9.359,6794,6.309,6795,6.824,6796,4.425,6797,4.425,6798,6.309,6799,4.425,6800,4.092,6801,6.824,6802,4.425,6803,4.425,6804,3.467,6805,3.576,6806,8.328,6807,3.467,6808,5.075,6809,5.346,6810,4.092,6811,4.425,6812,4.425,6813,4.425,6814,3.467]],["title/entities/CourseGroup.html",[154,1.456,6586,4]],["body/entities/CourseGroup.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.188,26,2.419,27,0.468,30,0.001,31,0.64,32,0.173,39,1.806,47,0.806,62,3.945,95,0.166,96,1.845,101,0.015,103,0.001,104,0.001,105,0.999,112,0.841,138,2.077,154,1.979,155,2.241,172,3.382,173,1.986,174,3.681,175,2.969,178,2.79,180,1.203,181,1.797,182,2.184,236,1.506,239,2.124,349,0.694,437,0.869,480,1.864,486,2.02,519,2.08,556,2.332,644,5.21,654,3.396,662,2.911,765,3.727,914,4.695,974,3.247,990,2.27,1246,3.867,1280,2.099,1603,2.525,1657,3.189,1861,4.422,1867,4.917,1985,2.671,2337,3.83,2368,4.399,2611,5.713,2614,5.051,2618,3.664,2624,3.945,2626,4.695,2628,4.171,2641,4.399,2771,3.986,2824,2.954,3025,5.119,3393,4.612,4209,2.278,4285,2.939,5040,4.247,6219,5.261,6539,4.785,6544,7.181,6579,5.616,6586,5.438,6588,6.064,6589,4.121,6590,5.822,6591,3.76,6607,6.596,6611,4.171,6613,5.426,6628,4.278,6629,7.043,6666,5.426,6815,6.208,6816,5.875,6817,6.715,6818,6.715,6819,4.536,6820,6.208,6821,6.715,6822,6.715,6823,6.715,6824,7.755,6825,4.171,6826,4.465,6827,6.208,6828,6.208,6829,4.884,6830,6.208,6831,6.208,6832,6.208,6833,6.208,6834,6.208,6835,6.208]],["title/classes/CourseGroupFactory.html",[0,0.231,6836,6.296]],["body/classes/CourseGroupFactory.html",[0,0.167,2,0.552,3,0.012,4,0.012,5,0.006,7,0.075,8,0.888,27,0.533,29,1.022,30,0.001,31,0.714,32,0.182,33,0.604,34,1.516,35,1.461,47,0.523,55,2.666,59,3.295,95,0.134,99,0.822,101,0.008,103,0,104,0,112,0.588,120,3.259,133,2.59,140,2.761,153,2.023,154,2.267,155,2.472,177,1.356,180,1.327,271,4.922,319,3.344,349,0.765,379,0.617,382,3.889,413,2.281,437,1.151,447,7.277,448,4.566,449,5.591,452,4.186,453,5.591,454,5.775,455,4.186,456,4.186,457,4.186,458,4.112,459,4.567,460,5.028,461,6.543,462,5.887,463,7.103,464,2.812,469,2.786,470,4.186,471,2.812,472,5.229,473,5.399,474,4.226,475,5.077,476,4.148,477,2.786,478,2.626,479,4.173,480,3.301,481,2.713,482,2.668,483,2.786,484,5.151,485,2.812,486,3.577,487,4.939,488,2.786,489,7.203,490,4.216,491,6.719,492,2.812,493,4.413,494,2.786,495,2.812,496,2.786,497,2.812,498,2.786,499,3.141,500,2.926,501,2.786,502,6.184,503,2.812,504,2.786,505,4.186,506,3.915,507,4.186,508,2.812,509,2.69,510,2.668,511,2.202,512,2.786,513,2.786,514,2.786,515,2.812,516,2.812,517,1.89,518,2.786,519,1.527,520,2.812,521,2.934,522,2.786,523,2.812,525,2.867,526,2.926,527,2.958,648,3.513,649,3.758,1867,1.826,6544,4.659,6586,4.351,6791,4.13,6794,6.849,6798,6.849,6800,4.558,6810,4.558,6824,4.13,6836,8.227,6837,4.93,6838,4.93,6839,4.558,6840,4.93,6841,4.558]],["title/injectables/CourseGroupRepo.html",[539,0.901,1743,5.335]],["body/injectables/CourseGroupRepo.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,10,3.8,12,4.292,13,6.803,18,4.733,26,2.698,27,0.522,29,0.969,30,0.001,31,0.697,32,0.17,33,0.597,34,1.161,35,1.494,36,2.76,39,1.834,40,4.523,42,6.803,47,0.754,49,2.689,95,0.146,96,1.873,97,2.955,98,4.047,99,1.137,101,0.011,103,0.001,104,0.001,154,1.457,155,3.121,180,1.676,226,0.975,236,1.109,262,2.991,349,1.187,382,3.467,437,1.381,479,5.037,539,1.238,541,1.632,608,2.649,679,7.483,685,3.958,686,4.415,687,5.403,711,4.184,712,4.235,713,4.184,714,4.235,716,4.184,717,4.235,718,3.784,725,5.071,1743,7.328,1867,3.464,3638,4.682,5949,6.682,6539,8.188,6544,4.288,6586,6.75,6842,6.817,6843,8.648,6844,8.648,6845,6.817,6846,7.13,6847,6.817,6848,6.817,6849,6.817,6850,5.197,6851,6.817,6852,9.354]],["title/injectables/CourseGroupRule.html",[539,0.901,1702,5.503]],["body/injectables/CourseGroupRule.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,27,0.46,29,0.874,30,0.001,31,0.629,32,0.163,33,0.539,35,1.2,95,0.158,101,0.012,103,0.001,104,0.001,119,2.434,131,4.48,154,2.836,177,1.829,226,1.075,239,3.081,345,2.393,349,1.032,379,0.94,437,1.547,539,1.323,541,1.8,603,1.51,604,3.055,662,4.025,1280,2.35,1609,6.473,1612,5.499,1613,6.888,1627,5.164,1637,7.951,1640,8.742,1658,4.511,1675,7.257,1702,8.075,1703,9.716,1816,6.453,1820,6.207,1827,4.999,3352,6.644,3353,5.078,3356,6.545,3359,5.078,3360,6.749,6544,4.728,6586,7.793,6853,11.96,6854,7.518,6855,7.518,6856,7.518,6857,7.518,6858,6.577,6859,6.577,6860,6.298,6861,6.577]],["title/injectables/CourseGroupService.html",[539,0.901,6862,6.296]],["body/injectables/CourseGroupService.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.127,8,1.282,26,2.837,27,0.484,29,0.919,30,0.001,31,0.661,32,0.161,33,0.566,35,1.285,36,2.649,39,2.877,95,0.15,98,4.953,99,1.392,101,0.014,103,0.001,104,0.001,177,1.527,226,1.193,227,3.435,262,2.886,345,2.656,349,1.105,379,1.044,437,1.383,539,1.416,541,1.997,608,2.721,662,4.142,1743,9.754,2428,5.789,5949,7.24,6539,8.412,6586,4.902,6862,9.889,6863,8.344,6864,10.696,6865,10.696,6866,7.3,6867,8.344,6868,10.696,6869,8.344,6870,10.696,6871,8.344,6872,10.696,6873,8.344,6874,8.344,6875,8.344]],["title/classes/CourseMapper.html",[0,0.231,6691,5.958]],["body/classes/CourseMapper.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,8,1.389,27,0.388,29,0.739,30,0.001,31,0.531,32,0.13,33,0.455,35,1.14,95,0.147,99,1.582,100,3.893,101,0.016,103,0.001,104,0.001,236,1.543,349,0.98,413,3.854,437,1.499,789,4.736,1867,4.951,6691,10.139,6876,9.485,6877,11.59,6878,11.59,6879,9.485,6880,10.92,6881,9.485,6882,9.485,6883,9.485,6884,9.485,6885,9.485,6886,9.485,6887,9.485,6888,9.485,6889,9.485]],["title/classes/CourseMetadataListResponse.html",[0,0.231,6690,5.705]],["body/classes/CourseMetadataListResponse.html",[0,0.306,2,0.724,3,0.015,4,0.015,5,0.008,7,0.098,26,1.91,27,0.484,29,0.504,30,0.001,31,0.362,32,0.178,33,0.567,34,1.914,47,0.886,55,2.949,56,5.917,59,2.802,70,6.109,83,3.933,95,0.132,99,1.079,101,0.015,103,0.001,104,0.001,112,0.716,138,2.043,149,4.273,150,1.473,153,2.854,172,2.065,180,1.616,245,3.208,247,2.831,253,3.166,284,3.649,379,1.128,382,3.39,404,2.639,517,2.479,556,1.629,814,7.706,815,6.622,816,5.144,818,3.25,820,4.765,821,3.108,822,3.621,823,2.269,824,4.521,825,5.824,826,5.193,827,4.236,828,5.531,829,4.521,830,4.521,832,4.067,833,3.589,1207,3.772,1400,4.521,1867,3.846,1883,4.646,2131,4.368,2725,3.319,2859,3.444,2860,3.444,3738,6.45,6537,4.3,6538,7.014,6543,7.399,6546,7.553,6619,5.226,6621,4.929,6623,4.81,6664,7.132,6690,7.555,6880,10.519,6890,8.338,6891,5.979,6892,6.467,6893,6.467,6894,5.226,6895,5.066,6896,7.716,6897,5.066,6898,5.979,6899,5.066,6900,5.066,6901,4.017,6902,4.704,6903,5.226]],["title/classes/CourseMetadataResponse.html",[0,0.231,6880,5.705]],["body/classes/CourseMetadataResponse.html",[0,0.288,2,0.662,3,0.014,4,0.014,5,0.007,7,0.09,26,2.287,27,0.513,29,0.461,30,0.001,31,0.331,32,0.174,33,0.587,34,2.133,47,0.965,55,2.128,56,4.094,59,3.073,70,4.228,83,4.235,95,0.125,99,0.987,101,0.014,103,0,104,0,112,0.672,138,2.226,149,4.107,150,1.348,153,2.782,172,2.704,180,1.06,245,3.117,247,2.589,253,4.146,284,2.615,379,1.059,404,2.414,517,3.247,814,5.197,815,3.201,816,3.374,820,4.954,828,5.751,832,3.72,833,3.283,1207,4.179,1213,5.49,1400,5.92,1867,4.402,1883,5.177,2131,5.72,2238,4.634,2725,3.036,2859,4.51,2860,4.51,3738,7.603,6537,5.63,6538,8.267,6543,8.722,6546,8.903,6619,4.78,6621,4.509,6623,4.4,6664,8.407,6690,4.955,6880,9.572,6890,11.783,6891,5.469,6894,4.78,6895,4.634,6896,8.598,6897,6.634,6898,7.829,6899,6.634,6900,6.634,6901,5.26,6902,6.159,6903,6.843,6904,5.915,6905,5.915,6906,5.915,6907,5.915,6908,5.915,6909,5.915,6910,5.915,6911,5.915]],["title/entities/CourseNews.html",[154,1.456,6912,5.065]],["body/entities/CourseNews.html",[0,0.344,3,0.012,4,0.021,5,0.006,7,0.172,9,3.617,26,2.143,27,0.211,30,0.001,31,0.429,32,0.138,34,0.879,47,0.869,83,2.352,95,0.153,96,2.511,101,0.018,103,0,104,0,105,0.557,112,0.858,138,0.938,143,2.612,144,3.864,154,2.311,155,1.721,172,3.745,173,1.525,174,3.047,175,2.28,180,1.813,181,2.708,182,1.678,236,1.487,239,2.481,349,0.533,355,5.749,358,4.021,381,1.732,403,5.074,413,1.588,459,4.691,521,3.62,563,4.548,643,2.292,644,5.17,654,3.216,655,3.851,838,2.402,996,4.367,997,4.776,998,4.315,999,4.564,1000,4.988,1207,2.919,1225,4.702,1603,1.939,1657,3.638,1663,2.592,1679,3.496,1755,3.378,1773,2.814,1867,3.386,2196,3.698,2506,5.165,2611,4.218,2624,3.029,2680,5.81,2725,2.647,3393,3.542,3395,3.286,3396,3.606,3398,3.675,3399,3.606,3400,3.836,3414,3.165,3547,3.483,3572,3.286,4209,1.749,4301,3.931,4302,3.751,4443,3.751,5040,4.194,5120,3.751,5688,6.649,6284,2.863,6502,3.606,6589,3.165,6591,2.888,6612,3.094,6825,4.759,6912,5.699,6913,4.167,6914,5.157,6915,4.648,6916,4.167,6917,6.799,6918,5.903,6919,4.167,6920,8.875,6921,5.094,6922,4.947,6923,5.699,6924,5.699,6925,6.725,6926,7.545,6927,4.167,6928,5.459,6929,4.167,6930,3.931,6931,3.931,6932,4.948,6933,4.167,6934,3.931,6935,3.931,6936,4.167,6937,3.836,6938,4.167,6939,3.061,6940,3.165,6941,3.931,6942,4.167,6943,4.167,6944,7.161,6945,4.167,6946,7.387,6947,4.167,6948,4.167,6949,5.84,6950,3.931,6951,6.391,6952,4.04,6953,5.019,6954,3.931,6955,3.751,6956,3.931,6957,4.167]],["title/classes/CourseQueryParams.html",[0,0.231,6676,5.958]],["body/classes/CourseQueryParams.html",[0,0.394,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.388,30,0.001,32,0.13,95,0.159,101,0.021,103,0.001,104,0.001,112,0.92,138,1.725,142,4.534,143,2.58,144,3.818,145,3.218,148,3.01,150,2.161,153,2.156,245,3.039,248,4.837,250,6.407,838,3.633,1312,8.62,5044,5.892,5057,7.236,5058,9.182,5080,5.462,6676,10.139,6958,9.485,6959,9.485,6960,9.485,6961,9.485]],["title/injectables/CourseRepo.html",[539,0.901,1744,4.132]],["body/injectables/CourseRepo.html",[0,0.224,3,0.01,4,0.01,5,0.005,7,0.064,8,0.792,10,2.686,12,3.033,18,3.345,26,2.845,27,0.488,29,0.907,30,0.001,31,0.653,32,0.171,33,0.559,34,1.126,35,1.4,36,2.688,39,3.492,40,3.196,56,3.196,58,4.269,59,3.083,83,1.304,95,0.126,96,1.167,98,2.521,99,0.709,101,0.007,103,0,104,0,119,1.345,120,4.028,143,1.472,145,1.179,154,0.908,155,2.206,173,1.256,180,1.454,226,0.607,236,1.614,262,2.93,349,1.273,382,2.763,437,1.721,479,4.544,480,1.179,486,1.278,490,4.021,539,0.875,541,1.017,608,2.422,679,6.442,685,2.797,686,3.121,687,4.107,711,2.607,712,2.639,713,2.607,714,2.639,716,2.607,717,2.639,718,2.358,741,4.54,1744,4.011,1758,4.54,1861,3.158,1867,4.411,2034,5.174,2291,3.924,2778,3.027,3638,2.918,3643,3.716,3763,5.998,4360,5.834,4431,6.357,4437,3.433,4690,6.088,4779,5.831,5505,4.456,5949,6.109,5951,6.402,6086,6.701,6539,3.027,6544,4.157,6545,5.673,6546,4.808,6680,3.966,6850,3.238,6962,3.927,6963,6.611,6964,7.099,6965,6.611,6966,6.112,6967,6.112,6968,4.248,6969,7.486,6970,6.654,6971,4.248,6972,4.248,6973,4.248,6974,6.112,6975,4.248,6976,4.248,6977,6.112,6978,4.248,6979,4.248,6980,6.036,6981,10.419,6982,3.927,6983,6.112,6984,7.671,6985,3.927,6986,3.927,6987,3.927,6988,6.112,6989,6.112,6990,3.433,6991,3.927,6992,3.927,6993,3.927,6994,5.783,6995,6.112,6996,6.112,6997,6.112,6998,8.011,6999,4.808,7000,4.808,7001,7.503,7002,3.927,7003,3.716,7004,3.927,7005,3.927,7006,3.927]],["title/injectables/CourseRule.html",[539,0.901,1703,5.065]],["body/injectables/CourseRule.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,8,1.225,27,0.468,29,0.889,30,0.001,31,0.639,32,0.166,33,0.548,35,1.228,95,0.154,101,0.013,103,0.001,104,0.001,119,2.467,131,4.541,154,2.857,177,1.424,226,1.112,239,3.131,345,2.476,349,1.056,379,0.973,437,1.476,539,1.353,541,1.862,604,3.161,662,4.064,1280,2.432,1609,6.561,1612,6.281,1613,6.273,1628,5.096,1637,8.028,1658,4.668,1675,7.355,1703,7.602,1816,6.601,1820,6.348,1827,5.173,1867,4.95,3352,6.796,3353,5.255,3356,6.695,3359,5.255,3360,6.904,4360,6.512,6544,4.893,6545,7.146,7007,7.78,7008,7.78,7009,7.78,7010,7.78,7011,7.78]],["title/classes/CourseScope.html",[0,0.231,6981,5.958]],["body/classes/CourseScope.html",[0,0.237,2,0.511,3,0.011,4,0.011,5,0.005,7,0.069,8,0.838,26,2.819,27,0.497,29,0.842,30,0.001,31,0.606,32,0.163,33,0.519,34,0.778,35,1.352,36,2.302,39,3.482,40,2.208,56,3.38,58,4.514,83,1.402,95,0.13,96,1.254,98,2.71,99,0.762,101,0.008,103,0,104,0,112,0.555,119,2.087,143,1.017,145,1.268,173,1.35,180,1.522,226,0.653,236,1.668,262,2.37,310,1.979,349,1.294,382,3.094,437,1.739,480,1.268,486,1.374,490,3.374,519,1.414,539,0.925,603,2.173,608,2.493,679,4.106,687,2.311,741,4.8,1744,2.77,1758,4.8,1861,3.339,1867,4.169,2034,5.376,2291,6.087,2778,3.254,3638,3.136,3643,3.995,3763,6.232,4360,6.062,4431,3.577,4690,4.647,4779,6.004,5505,5.21,5949,6.29,5951,6.652,6059,4.721,6060,4.721,6061,4.721,6066,4.721,6067,4.721,6068,3.136,6069,3.084,6070,3.136,6071,3.136,6080,3.084,6081,4.721,6082,3.136,6083,3.084,6084,3.136,6085,3.084,6086,6.927,6539,3.254,6544,4.396,6545,5.937,6546,5.084,6680,4.194,6850,3.481,6962,4.222,6964,3.995,6967,4.222,6969,4.98,6970,5.152,6974,4.222,6977,4.222,6980,6.316,6981,11.416,6982,6.462,6983,6.462,6984,7.97,6985,6.462,6986,6.462,6987,8.796,6988,6.462,6989,6.462,6990,3.69,6991,6.462,6992,4.222,6993,4.222,6994,6.115,6995,6.462,6996,6.462,6997,6.462,6998,8.323,6999,5.084,7000,5.084,7001,7.851,7002,4.222,7003,3.995,7004,4.222,7005,4.222,7006,4.222,7012,6.989,7013,6.989,7014,6.989,7015,6.989,7016,4.566,7017,4.566,7018,4.566,7019,4.566,7020,4.566]],["title/injectables/CourseService.html",[539,0.901,1852,4.6]],["body/injectables/CourseService.html",[0,0.253,3,0.017,4,0.017,5,0.009,7,0.113,8,1.191,12,4.557,26,2.93,27,0.508,29,0.967,30,0.001,31,0.695,32,0.17,33,0.596,35,1.432,36,2.817,39,3.005,95,0.142,98,4.421,99,1.242,101,0.012,103,0.001,104,0.001,177,1.363,226,1.065,227,3.067,262,3.013,345,2.371,349,1.231,379,0.932,437,1.445,539,1.314,541,1.783,608,2.747,662,4.015,1744,7.23,1852,6.708,1861,3.558,1867,3.678,2428,5.374,4431,7.78,4437,8.025,4779,6.89,5949,6.929,6866,6.516,7021,7.448,7022,9.931,7023,9.931,7024,7.448,7025,9.931,7026,7.448,7027,7.448,7028,9.931,7029,7.448,7030,9.931,7031,7.448,7032,7.448,7033,11.172,7034,7.448,7035,7.448,7036,7.448]],["title/injectables/CourseUc.html",[539,0.901,6685,5.705]],["body/injectables/CourseUc.html",[0,0.302,3,0.021,4,0.021,5,0.011,7,0.135,8,1.336,26,2.7,27,0.456,29,0.867,30,0.001,31,0.624,32,0.152,33,0.535,35,1.069,36,2.37,39,2.394,59,2.765,95,0.162,98,5.282,99,1.484,101,0.015,103,0.001,104,0.001,177,1.629,226,1.272,227,3.663,247,3.895,345,2.832,349,0.919,377,4.039,379,1.113,490,4.52,539,1.474,541,2.13,721,5.596,835,8.912,1744,8.124,1867,3.295,2034,5.028,6680,5.339,6685,9.333,6714,7.454,6735,8.227,7037,8.898,7038,11.14,7039,8.898,7040,11.14,7041,8.898,7042,6.971]],["title/classes/CourseUrlParams.html",[0,0.231,6675,5.958]],["body/classes/CourseUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,1861,6.066,1867,4.381,3817,5.762,6675,10.348,7043,9.809,7044,9.809]],["title/classes/CreateCardBodyParams.html",[0,0.231,4952,5.958]],["body/classes/CreateCardBodyParams.html",[0,0.393,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.388,30,0.001,32,0.129,33,0.555,95,0.159,99,1.579,101,0.016,103,0.001,104,0.001,112,0.919,138,1.721,142,3.702,143,2.784,145,3.213,148,3.003,149,4.402,150,2.156,249,4.682,838,3.628,851,4.52,2347,6.601,4103,10.473,4104,7.061,4952,10.125,5537,7.373,7045,11.573,7046,8.749,7047,7.695,7048,9.463,7049,9.463]],["title/classes/CreateContentElementBodyParams.html",[0,0.231,3689,5.705]],["body/classes/CreateContentElementBodyParams.html",[0,0.365,2,0.94,3,0.02,4,0.02,5,0.01,7,0.127,27,0.44,30,0.001,32,0.187,33,0.515,55,2.685,95,0.15,99,1.401,101,0.014,103,0.001,104,0.001,112,0.853,138,1.953,142,4.882,143,2.391,144,4.111,145,3.663,148,2.664,149,4.085,150,1.913,153,2.441,245,2.816,249,4.344,486,3.231,838,3.367,851,4.011,993,5.961,1883,5.161,2196,4.79,2745,6.596,2863,5.292,3435,5.983,3440,6.107,3689,8.996,4053,9.025,4104,7.088,5538,8.678,7047,5.583,7050,11.84,7051,7.034,7052,8.397,7053,9.929,7054,9.395,7055,8.397,7056,8.397,7057,8.397]],["title/interfaces/CreateJwtParams.html",[105,0.735,7058,5.958]],["body/interfaces/CreateJwtParams.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.111,30,0.001,32,0.18,33,0.658,47,1.004,85,8.202,95,0.124,101,0.012,103,0.001,104,0.001,105,0.789,107,1.755,112,0.779,348,4.898,349,1.013,413,3.021,437,1.53,662,3.085,1380,5.729,1382,5.439,1405,6.126,1417,4.341,1421,5.575,1425,4.542,1550,7.135,1562,7.296,4540,7.478,6228,8.791,7058,9.684,7059,6.761,7060,9.664,7061,10.335,7062,9.664,7063,11.742,7064,10.639,7065,9.069,7066,6.761,7067,6.761,7068,6.761,7069,6.761,7070,8.582,7071,6.761,7072,9.069,7073,9.069,7074,6.761,7075,6.398,7076,6.398,7077,6.761,7078,9.069,7079,6.761,7080,6.761,7081,6.761,7082,6.761,7083,6.761,7084,5.729,7085,5.729,7086,6.398,7087,6.761,7088,6.761,7089,6.761,7090,6.761]],["title/interfaces/CreateJwtPayload.html",[105,0.735,1531,5.335]],["body/interfaces/CreateJwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.182,33,0.594,39,3.445,47,1.008,48,5.876,55,2.277,85,7.991,101,0.017,103,0.001,104,0.001,105,1.142,107,1.97,112,0.84,119,2.669,128,3.306,180,1.471,239,1.883,359,4.925,511,3.667,764,5.377,1421,6.257,1425,5.098,1531,9.177,1551,5.97,1562,6.105,1666,4.478,1760,5.458,2346,8.796,3081,6.178,4209,4.198,5106,5.377,6228,5.849,7060,6.43,7062,6.43,7084,6.43,7085,6.43,7091,7.589,7092,7.589,7093,9.999,7094,6.876,7095,5.098,7096,7.589,7097,7.181,7098,7.181]],["title/classes/CreateNewsParams.html",[0,0.231,7099,5.503]],["body/classes/CreateNewsParams.html",[0,0.327,2,0.797,3,0.017,4,0.017,5,0.008,7,0.108,27,0.501,30,0.001,32,0.167,33,0.462,34,1.641,47,0.925,83,2.958,95,0.148,99,1.188,100,3.236,101,0.012,103,0.001,104,0.001,112,0.765,138,2.223,148,2.259,149,3.665,150,1.622,153,2.979,154,2.87,245,3.205,247,3.116,248,4.557,249,3.897,253,3.486,806,6.138,807,3.931,838,2.232,842,6.735,851,3.401,993,5.347,1207,3.903,1582,5.602,1758,6.616,2196,4.945,2680,5.282,2714,6.31,2859,5.131,2860,5.131,3227,3.68,6220,6.616,6918,7.052,6921,7.26,6925,6.481,6926,7.88,7099,7.785,7100,12.6,7101,6.228,7102,7.547,7103,7.634,7104,7.119,7105,6.582,7106,5.964,7107,6.138,7108,8.07,7109,7.343,7110,6.582,7111,6.582,7112,7.454,7113,7.119,7114,7.119,7115,7.007,7116,7.119,7117,5.753,7118,7.119,7119,7.343,7120,6.582,7121,6.582]],["title/classes/CreateSubmissionItemBodyParams.html",[0,0.231,7122,5.958]],["body/classes/CreateSubmissionItemBodyParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.131,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,119,2.666,138,1.75,142,4.573,143,2.603,147,6.276,148,3.053,150,2.192,153,2.187,245,3.065,2824,5.763,3232,8.144,7122,10.228,7123,9.159,7124,11.691,7125,8.895,7126,8.417,7127,10.228,7128,9.447,7129,8.895]],["title/classes/CurrentUserMapper.html",[0,0.231,7130,5.065]],["body/classes/CurrentUserMapper.html",[0,0.222,2,0.732,3,0.015,4,0.015,5,0.008,7,0.099,8,1.09,27,0.462,29,0.879,30,0.001,31,0.632,32,0.154,33,0.542,34,1.114,35,1.356,39,3.037,47,0.969,48,6.271,59,3.246,85,8.134,95,0.156,99,1.091,101,0.011,103,0.001,104,0.001,105,0.706,143,1.456,145,1.816,236,1.064,239,3.03,270,6.288,276,3.864,283,4.014,294,3.287,340,3.143,349,1.166,413,4.145,528,5.439,529,1.85,1531,8.184,1551,8.629,1554,5.479,1555,3.663,2346,4.492,3081,5.636,3358,4.418,3720,3.842,4209,3.829,4787,5.285,6055,4.661,7093,9.123,7130,6.761,7131,11.864,7132,5.722,7133,9.089,7134,9.089,7135,10.447,7136,9.089,7137,9.089,7138,6.54,7139,9.089,7140,6.54,7141,6.54,7142,5.967,7143,9.123,7144,6.54,7145,7.77,7146,9.089,7147,6.54,7148,6.139,7149,5.285,7150,6.54,7151,5.285,7152,6.54,7153,6.54,7154,5.722,7155,6.54,7156,4.986,7157,6.54,7158,6.047,7159,6.54,7160,6.54,7161,6.54,7162,6.54,7163,6.54,7164,6.54,7165,6.54,7166,5.722,7167,6.54,7168,6.54]],["title/interfaces/CustomLtiProperty.html",[105,0.735,7169,5.958]],["body/interfaces/CustomLtiProperty.html",[0,0.188,3,0.013,4,0.013,5,0.007,7,0.084,26,1.711,30,0.001,31,0.534,32,0.13,47,0.956,49,3.186,95,0.133,96,2.219,97,2.401,101,0.018,103,0,104,0,105,0.598,107,1.329,112,0.641,119,2.266,143,2.981,144,4.525,145,3.717,154,1.726,168,4.607,172,4.402,173,1.639,174,3.212,175,2.45,177,1.014,178,2.302,180,0.993,181,1.483,182,1.802,236,0.901,321,5.875,349,0.572,480,2.908,486,3.35,490,1.965,556,2.034,653,2.864,662,2.54,826,4.651,838,3.491,1198,1.905,1310,3.362,1414,6.663,1430,3.222,1672,2.885,1925,6.026,1985,2.204,2259,3.19,2442,2.713,2611,2.556,3081,2.766,4285,2.425,6264,2.975,6595,4.477,6608,4.477,7169,8.338,7170,5.123,7171,6.766,7172,7.702,7173,7.467,7174,7.467,7175,5.123,7176,5.123,7177,7.467,7178,5.123,7179,5.123,7180,6.243,7181,7.467,7182,7.467,7183,5.123,7184,4.121,7185,4.341,7186,3.578,7187,4.341,7188,3.578,7189,6.766,7190,3.578,7191,4.341,7192,4.341,7193,4.121,7194,5.123,7195,5.123,7196,4.477,7197,4.341,7198,5.123,7199,3.948,7200,4.341,7201,3.53,7202,3.289,7203,4.121,7204,3.324,7205,3.485,7206,4.03,7207,4.477,7208,4.341,7209,4.642,7210,4.642,7211,5.123,7212,4.224,7213,4.477,7214,4.642,7215,5.123,7216,4.224,7217,4.477,7218,4.341,7219,4.477,7220,4.224,7221,4.477,7222,4.642,7223,5.123,7224,4.642,7225,5.123,7226,4.642,7227,5.123,7228,5.123,7229,5.123,7230,5.123,7231,4.642,7232,5.123,7233,4.642,7234,5.123,7235,4.224,7236,4.477,7237,3.874,7238,4.121,7239,4.642,7240,5.123,7241,4.121,7242,4.477]],["title/classes/CustomLtiPropertyDO.html",[0,0.231,7243,5.705]],["body/classes/CustomLtiPropertyDO.html",[0,0.335,2,0.826,3,0.017,4,0.017,5,0.009,7,0.112,26,2.091,27,0.455,29,0.575,30,0.001,31,0.553,32,0.152,33,0.354,47,1.003,95,0.141,101,0.016,103,0.001,104,0.001,112,0.784,119,2.519,180,1.323,379,0.923,480,3.61,1198,2.537,1430,4.292,1686,5.739,1925,6.891,1985,2.935,2442,3.614,3081,3.685,4405,6.457,6264,3.962,7172,7.976,7180,6.465,7185,5.782,7186,4.766,7187,5.782,7188,4.766,7190,4.766,7191,5.782,7192,5.782,7193,5.489,7197,5.782,7199,5.259,7200,5.782,7201,4.702,7202,4.381,7203,5.489,7204,4.428,7206,7.179,7208,5.782,7210,6.183,7212,5.626,7214,6.183,7216,5.626,7218,5.782,7220,5.626,7222,6.183,7224,6.183,7226,6.183,7231,6.183,7233,6.183,7235,5.626,7237,5.16,7239,6.183,7241,5.489,7243,9.316,7244,6.823,7245,9.125,7246,9.87,7247,7.38,7248,6.457,7249,5.626,7250,5.782,7251,6.9,7252,5.782,7253,5.782,7254,6.823,7255,6.823,7256,6.823,7257,6.823,7258,6.823,7259,6.823,7260,6.823,7261,6.457,7262,6.823,7263,6.823,7264,6.823,7265,6.823,7266,6.823,7267,6.823,7268,6.823,7269,6.823,7270,6.823,7271,6.823,7272,6.823,7273,6.823]],["title/classes/CustomParameter.html",[0,0.231,2557,4.398]],["body/classes/CustomParameter.html",[0,0.256,2,0.843,3,0.018,4,0.018,5,0.009,7,0.114,27,0.56,29,0.586,30,0.001,31,0.67,32,0.19,33,0.645,47,0.972,95,0.095,101,0.012,103,0.001,104,0.001,112,0.794,119,2.036,153,2.554,181,2.678,249,4.545,379,0.942,381,2.53,486,3.38,838,2.361,1868,8.005,1985,2.996,2507,3.365,2557,8.046,2562,7.854,4285,3.297,4347,4.519,5450,7.716,5488,7.359,5505,4.564,5768,5.725,5788,4.799,5789,5.173,6609,5.088,6610,4.864,7274,12.733,7275,7.532,7276,7.255,7277,8.356,7278,10.005,7279,7.532,7280,7.532,7281,7.532,7282,7.532,7283,7.532,7284,7.532,7285,7.532,7286,7.532,7287,7.532,7288,6.964,7289,6.964,7290,6.31,7291,6.31,7292,5.088,7293,6.087,7294,6.589,7295,6.589,7296,6.589,7297,6.589,7298,6.589,7299,6.589]],["title/classes/CustomParameterEntity.html",[0,0.231,7300,5.503]],["body/classes/CustomParameterEntity.html",[0,0.219,2,0.723,3,0.015,4,0.015,5,0.008,7,0.098,27,0.545,29,0.503,30,0.001,31,0.629,32,0.186,33,0.624,47,0.948,95,0.114,96,1.774,101,0.011,103,0.001,104,0.001,112,0.715,119,1.833,138,2.396,143,2.85,144,3.698,153,2.358,160,6.403,172,4.25,173,1.909,181,2.411,249,4.197,379,0.807,381,2.169,486,3.121,838,3.935,1868,7.393,1870,3.141,1985,2.568,2487,6.096,2503,4.656,2507,2.884,2562,7.253,4285,2.826,4347,3.874,5450,7.125,5488,6.796,5505,4.215,5768,5.287,5788,4.114,5789,4.434,6609,4.361,6610,4.17,7276,6.7,7277,7.717,7288,5.969,7289,5.969,7290,5.409,7291,5.409,7292,4.361,7293,5.217,7294,5.648,7295,5.648,7296,5.648,7297,5.648,7298,5.648,7299,5.648,7300,9.542,7301,13.431,7302,13.431,7303,6.456,7304,9.008,7305,6.456,7306,6.456,7307,6.456,7308,6.456,7309,6.456,7310,6.456,7311,6.456,7312,6.456,7313,6.456]],["title/classes/CustomParameterEntry.html",[0,0.231,2583,4.461]],["body/classes/CustomParameterEntry.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,27,0.514,29,0.744,30,0.001,31,0.732,32,0.172,33,0.602,47,0.922,101,0.016,103,0.001,104,0.001,112,0.924,181,3.115,363,7.318,379,1.195,381,3.209,480,3.486,1985,3.799,2583,8.775,4285,4.181,7250,7.484,7274,12.082,7314,9.553,7315,11.64,7316,9.553,7317,8.003]],["title/classes/CustomParameterEntryEntity.html",[0,0.231,5847,5.191]],["body/classes/CustomParameterEntryEntity.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,27,0.506,29,0.717,30,0.001,31,0.723,32,0.169,33,0.593,47,0.91,95,0.117,96,2.528,101,0.015,103,0.001,104,0.001,112,0.903,138,2.069,172,4.232,173,2.722,181,3.045,363,7.224,379,1.151,381,3.091,480,3.429,1985,3.66,2503,5.88,4285,4.028,5847,10.104,7250,7.21,7317,7.71,7318,12.9,7319,9.203,7320,11.377,7321,9.203]],["title/classes/CustomParameterEntryParam.html",[0,0.231,5896,5.191]],["body/classes/CustomParameterEntryParam.html",[0,0.392,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.473,30,0.001,31,0.699,32,0.158,33,0.554,47,0.918,95,0.146,101,0.016,103,0.001,104,0.001,112,0.916,138,2.099,148,2.989,149,4.39,150,2.146,245,3.026,248,5.207,249,4.668,363,6.987,480,3.464,564,3.831,2513,6.711,5894,6.851,5896,8.796,7322,7.75,7323,11.535,7324,9.419,7325,9.419,7326,9.419]],["title/classes/CustomParameterEntryResponse.html",[0,0.231,6005,5.335]],["body/classes/CustomParameterEntryResponse.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,27,0.502,29,0.705,30,0.001,31,0.719,32,0.168,33,0.588,47,0.905,95,0.115,101,0.015,103,0.001,104,0.001,112,0.895,138,2.049,149,4.285,150,2.064,181,3.015,245,3.363,363,7.183,379,1.133,381,3.042,480,3.404,564,3.939,1985,3.603,4285,3.965,6005,10.336,7250,7.096,7317,7.588,7322,7.968,7323,11.86,7327,9.058,7328,11.265,7329,9.058,7330,9.058]],["title/classes/CustomParameterFactory.html",[0,0.231,7331,5.705]],["body/classes/CustomParameterFactory.html",[0,0.258,2,0.431,3,0.009,4,0.009,5,0.005,7,0.058,8,0.733,27,0.506,29,0.983,30,0.001,31,0.692,32,0.179,33,0.567,34,1.041,35,1.39,47,0.431,55,2.358,59,3.129,95,0.12,101,0.016,103,0,104,0,112,0.485,120,2.689,133,2.138,140,2.154,145,2.407,153,1.73,154,1.626,155,2.04,177,1.119,180,1.553,239,0.882,249,1.556,271,5.094,319,2.76,349,1.22,363,2.154,379,0.481,382,3.681,413,1.883,437,1.578,447,6.713,448,4.128,449,4.898,452,3.455,453,4.898,454,5.204,455,3.455,456,3.455,457,3.455,458,3.393,459,3.904,460,4.299,461,6.367,462,5.251,463,6.688,464,2.194,469,2.173,470,3.455,471,2.194,472,4.582,473,4.73,474,3.703,475,4.448,476,3.423,477,2.173,478,2.049,479,3.773,480,3.043,481,2.116,482,2.081,483,2.173,484,4.513,485,2.194,486,3.297,487,4.223,488,2.173,489,7.482,490,3.886,491,6.193,492,2.194,493,3.032,494,2.173,495,2.194,496,2.173,497,2.194,498,2.173,501,2.173,502,5.59,503,2.194,504,2.173,505,3.455,506,3.231,507,3.455,508,2.194,509,2.099,510,2.081,511,1.718,512,2.173,513,2.173,514,2.173,515,2.194,516,2.194,517,1.475,518,2.173,519,1.191,520,2.194,521,2.421,522,2.173,523,2.194,525,2.236,526,2.283,527,5.201,564,1.181,708,1.598,1198,1.322,1241,2.194,1430,3.555,1842,1.895,1868,2.741,1912,3.511,1925,3.309,2136,4.299,2486,2.797,2489,1.275,2494,2.135,2497,2.689,2557,4.914,2562,2.689,2568,1.895,4317,6.74,4319,2.797,5057,2.081,5440,2.932,5450,2.641,5468,4.547,5470,2.932,5505,3.843,5590,3.052,5768,1.96,5807,2.173,5864,3.108,5869,3.013,5870,2.598,7180,2.519,7186,2.484,7188,2.484,7190,2.484,7201,2.45,7202,2.283,7204,2.308,7276,2.484,7331,6.374,7332,5.348,7333,6.113,7334,5.348,7335,3.846,7336,2.797,7337,4.547,7338,3.013,7339,2.797,7340,2.641,7341,2.389,7342,3.365,7343,3.365,7344,3.365,7345,6.656,7346,5.121,7347,3.365,7348,3.709,7349,3.108,7350,2.797,7351,2.932,7352,3.365,7353,2.861,7354,3.365,7355,3.365,7356,3.222,7357,3.365,7358,3.365,7359,2.598,7360,3.365,7361,3.365,7362,3.365,7363,2.641,7364,3.365,7365,3.365,7366,3.222,7367,3.365,7368,2.741,7369,4.66,7370,5.348,7371,6.656,7372,3.013,7373,5.348,7374,5.348,7375,3.365,7376,3.222,7377,3.013,7378,5.121,7379,3.365,7380,3.365,7381,3.365,7382,3.365,7383,3.365,7384,5.348,7385,3.365,7386,3.222,7387,2.519,7388,3.222,7389,3.365,7390,3.365,7391,3.365,7392,3.365]],["title/classes/CustomParameterPostParams.html",[0,0.231,7393,5.503]],["body/classes/CustomParameterPostParams.html",[0,0.325,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,27,0.549,30,0.001,31,0.609,32,0.188,33,0.628,47,0.962,95,0.138,101,0.012,103,0.001,104,0.001,112,0.76,119,1.949,138,2.438,147,5.141,148,2.239,149,4.636,150,1.608,153,2.471,245,3.37,248,5.364,249,5.291,808,6.522,851,3.371,1870,3.433,2487,6.14,5488,7.12,5505,4.416,5768,5.539,5894,8.479,7276,7.02,7277,8.085,7393,7.738,7394,13.528,7395,7.057,7396,8.286,7397,7.057,7398,7.057,7399,7.738,7400,7.057,7401,5.379,7402,7.057,7403,9.106,7404,7.057,7405,7.057,7406,7.057,7407,7.057,7408,7.057,7409,9.106,7410,7.057,7411,7.057,7412,9.106,7413,7.057,7414,7.057,7415,7.057,7416,7.057,7417,7.057]],["title/classes/CustomParameterResponse.html",[0,0.231,5814,5.335]],["body/classes/CustomParameterResponse.html",[0,0.226,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,27,0.548,29,0.519,30,0.001,31,0.637,32,0.187,33,0.628,47,0.953,95,0.117,101,0.011,103,0.001,104,0.001,112,0.731,119,1.873,138,2.411,149,4.981,150,1.517,153,2.397,181,2.463,245,3.475,249,4.267,379,0.833,381,2.237,838,3.307,1870,3.24,1985,2.649,2487,6.129,2507,2.975,2862,6.473,4285,2.915,4347,3.996,5488,6.909,5505,4.285,5768,5.374,5788,4.243,5789,4.574,5814,9.355,6609,4.498,6610,4.301,7276,6.811,7277,7.845,7290,5.579,7291,5.579,7292,4.498,7293,5.381,7294,5.826,7295,5.826,7296,5.826,7297,5.826,7298,5.826,7299,5.826,7396,8.04,7403,10.003,7409,10.003,7412,10.003,7418,13.503,7419,6.659,7420,9.204,7421,6.659,7422,6.659,7423,6.659,7424,6.659,7425,6.659,7426,6.659,7427,6.659,7428,6.659,7429,6.659,7430,6.659,7431,6.659]],["title/controllers/DashboardController.html",[259,2.591,7432,5.958]],["body/controllers/DashboardController.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.102,8,1.111,27,0.434,29,0.826,30,0.001,31,0.594,32,0.145,33,0.509,35,1.274,36,2.636,55,2.666,95,0.157,100,4.263,101,0.011,103,0.001,104,0.001,138,1.928,150,1.533,177,1.231,223,2.769,226,0.962,259,2.559,261,3.194,262,2.876,270,6.503,271,4.846,294,6.742,310,2.915,324,5.365,333,4.486,334,4.344,337,3.477,338,3.555,343,3.583,345,2.141,349,1.095,437,1.602,608,2.444,1080,7.279,2882,6.071,2904,3.611,3720,5.444,4157,8.882,6673,8.568,6679,6.219,7432,8.108,7433,6.726,7434,7.186,7435,10.602,7436,6.726,7437,6.726,7438,11.104,7439,9.571,7440,9.267,7441,6.726,7442,6.726,7443,8.141,7444,9.996,7445,9.267,7446,6.726,7447,5.884,7448,6.726,7449,8.882,7450,6.726,7451,5.127,7452,6.726,7453,6.726,7454,6.726,7455,6.726,7456,10.602,7457,8.108,7458,6.726,7459,6.726,7460,6.726,7461,6.726,7462,6.726,7463,6.726,7464,6.726,7465,6.219]],["title/classes/DashboardEntity.html",[0,0.231,7466,4.953]],["body/classes/DashboardEntity.html",[0,0.169,2,0.336,3,0.007,4,0.007,5,0.004,7,0.126,8,0.598,26,2.458,27,0.513,29,0.872,30,0.001,31,0.627,32,0.171,33,0.537,34,1.761,35,1.434,39,2.011,47,0.842,55,2.651,83,0.92,95,0.081,101,0.016,103,0,104,0,105,0.323,112,0.396,119,1.522,181,0.802,191,2.701,192,1.91,226,0.429,236,1.62,349,1.341,379,0.375,381,2.154,404,3.389,405,2.747,413,2.302,437,1.68,480,1.386,519,3.595,529,1.814,556,1.883,603,2.662,696,2.949,708,2.664,739,3.273,848,1.65,974,4.015,1080,4.763,1207,3.035,1280,0.937,1492,5.699,1507,3.18,1679,2.926,1883,4.526,2238,3.91,2442,1.468,2588,3.559,2609,6.706,2621,1.726,2622,1.597,2664,2.23,2725,3.837,2745,5.636,3202,4.769,3399,2.096,3572,3.18,3666,6.956,3738,3.1,4157,4.181,4915,1.84,6431,2.511,6538,2.025,6580,9.373,6584,3.63,6664,3.428,6896,6.157,7443,5.328,7466,3.63,7467,2.623,7468,4.991,7469,6.541,7470,4.991,7471,4.991,7472,6.541,7473,6.263,7474,7.51,7475,4.991,7476,6.042,7477,4.991,7478,4.991,7479,4.991,7480,4.991,7481,4.991,7482,4.991,7483,6.541,7484,2.998,7485,2.998,7486,2.998,7487,2.998,7488,2.998,7489,4.366,7490,2.998,7491,2.23,7492,2.998,7493,4.366,7494,2.998,7495,4.614,7496,4.366,7497,9.559,7498,2.998,7499,9.722,7500,2.998,7501,2.998,7502,6.834,7503,2.998,7504,4.366,7505,9.559,7506,2.998,7507,2.998,7508,4.366,7509,2.998,7510,4.366,7511,2.998,7512,4.366,7513,2.998,7514,4.366,7515,2.998,7516,4.366,7517,2.998,7518,4.366,7519,2.998,7520,2.998,7521,4.366,7522,2.998,7523,4.366,7524,2.23,7525,4.366,7526,2.623,7527,4.366,7528,4.366,7529,4.366,7530,2.623,7531,4.366,7532,2.623,7533,4.366,7534,2.623,7535,3.712,7536,8.768,7537,2.623,7538,4.366,7539,2.623,7540,4.366,7541,2.623,7542,4.366,7543,2.623,7544,2.623,7545,2.623,7546,2.623,7547,2.623,7548,4.366,7549,2.623,7550,4.366,7551,2.511,7552,4.366,7553,2.623,7554,2.096,7555,4.366,7556,2.623,7557,2.623,7558,2.623,7559,2.623,7560,2.422,7561,2.623,7562,4.366,7563,2.623,7564,2.285,7565,2.623,7566,2.623,7567,2.623,7568,2.623,7569,2.623,7570,2.623,7571,2.623,7572,2.623,7573,2.623,7574,4.366,7575,4.366,7576,2.511,7577,5.61,7578,2.623,7579,4.366,7580,2.623,7581,2.623,7582,2.623,7583,2.623,7584,2.623,7585,2.623,7586,2.623,7587,2.623,7588,2.623,7589,2.623,7590,2.623,7591,2.623,7592,2.623,7593,2.623,7594,2.623,7595,2.623,7596,2.623,7597,2.623,7598,2.623,7599,2.623,7600,2.623,7601,2.623,7602,2.623,7603,4.366,7604,2.623,7605,2.623,7606,2.623,7607,4.366,7608,4.366,7609,2.623,7610,2.623,7611,2.623,7612,2.623,7613,2.623,7614,2.623,7615,2.623,7616,5.61,7617,2.623,7618,2.623]],["title/entities/DashboardGridElementModel.html",[154,1.456,7619,5.335]],["body/entities/DashboardGridElementModel.html",[0,0.309,3,0.015,4,0.015,5,0.008,7,0.18,27,0.486,30,0.001,32,0.154,33,0.437,34,2.023,39,2.451,47,0.838,49,2.588,55,2.645,95,0.151,96,2.503,97,2.844,101,0.019,103,0.001,104,0.001,105,0.983,112,0.723,138,2.16,143,2.645,144,2.162,154,2.237,155,2.19,160,3.743,172,3.925,173,1.941,174,4.162,178,3.784,180,1.633,181,1.756,182,2.963,236,1.702,239,2.594,379,0.821,404,3.718,405,3.611,480,1.822,486,1.974,556,2.295,1207,3.925,1657,4.326,1867,3.374,2359,8.223,2609,7.47,2611,4.828,2612,7.977,2614,5.71,2616,7.362,2618,3.581,2620,4.773,2624,3.854,2725,3.367,4276,3.981,5040,3.011,6576,4.076,6591,3.674,6932,4.238,7434,7.929,7619,8.198,7620,5.497,7621,9.933,7622,9.933,7623,6.562,7624,6.562,7625,6.562,7626,6.562,7627,6.562,7628,6.562,7629,6.562,7630,7.362,7631,6.776,7632,5.497,7633,7.632,7634,5.497,7635,5.497,7636,5.497,7637,5.497,7638,5.497,7639,5.302,7640,5.497,7641,5.497,7642,7.362,7643,6.626,7644,5.497,7645,4.588,7646,5.497,7647,5.497,7648,5.497,7649,5.497,7650,5.497]],["title/interfaces/DashboardGridElementModelProperties.html",[105,0.735,7630,5.503]],["body/interfaces/DashboardGridElementModelProperties.html",[0,0.314,3,0.016,4,0.016,5,0.008,7,0.182,30,0.001,32,0.169,33,0.548,34,2.202,39,2.49,47,0.912,49,2.648,55,2.782,95,0.152,96,2.543,97,2.91,101,0.019,103,0.001,104,0.001,105,0.999,107,1.611,112,0.735,143,2.359,144,2.212,154,2.264,172,3.645,173,1.986,174,4.213,178,3.845,180,1.659,181,1.797,182,3.011,236,1.506,239,2.62,379,0.84,404,3.777,405,3.695,556,1.691,1207,4.051,1657,4.395,1867,4.229,2359,7.705,2609,7.786,2611,4.271,2612,7.056,2614,5.051,2616,5.426,2618,3.664,2620,4.884,2624,3.945,2725,3.446,4276,4.074,5040,3.081,6576,4.171,6591,3.76,6932,4.337,7434,8.129,7619,7.252,7620,5.625,7621,10.252,7622,10.252,7630,8.56,7631,8.492,7632,5.625,7633,7.755,7634,5.625,7635,5.625,7636,5.625,7637,5.625,7638,5.625,7639,5.426,7640,5.625,7641,5.625,7642,7.48,7643,6.733,7644,5.625,7645,4.695,7646,5.625,7647,5.625,7648,5.625,7649,5.625,7650,5.625]],["title/classes/DashboardGridElementResponse.html",[0,0.231,7651,5.503]],["body/classes/DashboardGridElementResponse.html",[0,0.313,2,0.585,3,0.012,4,0.012,5,0.006,7,0.079,27,0.515,29,0.407,30,0.001,31,0.293,32,0.176,33,0.612,34,2.288,47,0.936,55,2.191,83,2.375,95,0.098,101,0.015,103,0,104,0,112,0.614,138,2.247,150,1.19,153,3.035,154,1.117,172,2.47,245,3.5,247,2.287,253,5.573,319,4.158,379,1.273,404,3.759,517,2.966,556,1.948,773,2.644,818,2.626,820,5.405,828,4.12,848,2.875,974,4.923,1080,4.928,1207,4.2,1400,5.408,1883,5.585,2723,5.793,2725,3.969,2745,5.382,2859,6.063,2860,6.063,3738,7.513,6537,6.124,6538,7.342,6623,3.886,6664,8.307,6894,6.251,6895,6.06,6896,9.169,6897,7.216,6900,6.06,6901,4.805,6902,5.626,6903,6.251,6928,3.723,7434,4.865,7443,5.512,7451,5.896,7535,8.085,7643,6.7,7651,9.519,7652,4.57,7653,9.51,7654,9.106,7655,9.106,7656,5.224,7657,5.224,7658,5.224,7659,8.784,7660,6.767,7661,5.224,7662,5.224,7663,5.224,7664,5.224,7665,4.57,7666,5.224,7667,5.224,7668,5.224,7669,4.57,7670,4.57,7671,4.57,7672,4.57,7673,4.57]],["title/classes/DashboardGridSubElementResponse.html",[0,0.231,7659,5.503]],["body/classes/DashboardGridSubElementResponse.html",[0,0.335,2,0.659,3,0.014,4,0.014,5,0.007,7,0.089,27,0.467,29,0.459,30,0.001,31,0.33,32,0.167,33,0.283,34,2.316,47,0.948,55,1.816,83,1.808,95,0.107,101,0.016,103,0,104,0,112,0.67,138,1.96,150,1.342,153,3.072,154,1.259,172,1.88,245,3.565,247,2.578,253,5.585,319,3.811,379,1.348,404,4.026,517,2.258,556,1.484,773,2.98,820,4.527,828,3.137,848,3.241,974,4.082,1080,3.752,1207,4.287,1400,4.117,1883,5.59,2723,6.205,2725,4.332,2745,4.461,2859,6.075,2860,6.075,3738,7.767,6537,6.56,6538,6.664,6623,4.38,6664,8.588,6894,6.821,6895,6.613,6896,9.222,6897,7.729,6900,4.614,6901,3.658,6902,4.284,6903,4.759,6928,4.197,7434,5.309,7443,4.197,7451,6.434,7535,7.338,7643,7.176,7651,8.707,7652,5.152,7653,8.631,7654,8.265,7655,8.265,7659,9.878,7660,5.152,7665,5.152,7669,5.152,7670,5.152,7671,5.152,7672,5.152,7673,5.152,7674,5.889,7675,5.889,7676,5.889,7677,5.889,7678,5.889]],["title/classes/DashboardMapper.html",[0,0.231,7447,5.958]],["body/classes/DashboardMapper.html",[0,0.257,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.461,29,0.877,30,0.001,31,0.631,32,0.154,33,0.541,34,1.29,35,1.353,95,0.127,99,1.264,100,4.029,101,0.012,103,0.001,104,0.001,236,1.833,284,2.34,349,1.164,413,4.142,437,1.552,556,1.908,603,2.577,782,5.574,789,3.782,1207,2.418,2112,5.202,2745,4.003,3738,4.705,6478,6.345,6538,5.116,6584,8.725,6664,5.202,7434,6.316,7447,8.785,7451,9.144,7466,8.725,7473,6.345,7502,9.144,7643,5.509,7651,9.694,7654,6.345,7655,6.345,7659,9.103,7679,7.575,7680,10.042,7681,10.042,7682,10.042,7683,7.575,7684,10.042,7685,7.575,7686,10.042,7687,7.575,7688,7.575,7689,7.575,7690,7.575,7691,7.575,7692,7.575,7693,7.575,7694,7.575,7695,7.575,7696,7.575,7697,7.575,7698,7.575,7699,7.575,7700,10.042,7701,7.575,7702,10.042,7703,7.575,7704,7.575,7705,7.575,7706,7.575,7707,7.575]],["title/entities/DashboardModelEntity.html",[154,1.456,7631,5.065]],["body/entities/DashboardModelEntity.html",[0,0.32,3,0.016,4,0.016,5,0.008,7,0.183,27,0.386,30,0.001,32,0.129,34,2.06,39,2.89,47,0.815,49,2.721,55,2.485,95,0.153,96,2.591,97,2.99,101,0.019,103,0.001,104,0.001,105,1.018,112,0.749,138,1.715,143,2.571,144,2.273,154,2.296,155,2.302,172,3.687,173,2.04,174,4.273,178,3.917,180,1.69,181,1.846,182,3.068,236,1.748,239,2.864,379,0.863,404,3.848,405,3.797,480,1.916,486,2.076,556,1.738,1207,3.687,1657,5.102,1867,3.493,2359,8.4,2609,6.757,2611,4.957,2612,8.19,2614,5.863,2616,5.575,2618,3.765,2620,5.018,2624,4.053,2725,3.541,4276,4.186,5040,3.166,6576,4.285,6591,3.863,6932,4.456,7434,7.851,7619,7.388,7620,5.78,7621,9.332,7622,9.332,7630,7.62,7631,7.991,7632,5.78,7633,7.9,7634,5.78,7635,5.78,7636,5.78,7637,5.78,7638,5.78,7639,5.575,7640,5.78,7641,5.78,7642,7.62,7643,8.4,7644,5.78,7645,4.824,7646,5.78,7647,5.78,7648,5.78,7649,7.9,7650,5.78,7708,6.899,7709,6.379,7710,6.899]],["title/injectables/DashboardModelMapper.html",[539,0.901,7711,5.335]],["body/injectables/DashboardModelMapper.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.802,27,0.499,29,0.948,30,0.001,31,0.682,32,0.169,33,0.584,34,1.14,35,1.437,36,2.789,39,1.161,47,0.305,95,0.104,96,1.186,99,0.72,101,0.007,103,0,104,0,154,1.431,173,1.277,177,0.79,226,0.617,236,1.502,239,1.881,262,2.992,349,1.294,379,0.54,437,1.725,529,1.221,539,0.886,541,1.033,556,1.087,603,2.484,608,2.922,739,2.93,932,2.375,1080,2.75,1162,2.062,1492,3.29,1679,3.054,1867,4.336,2112,2.965,2252,5.318,2259,2.485,2294,2.915,2609,6.286,2620,3.139,2771,6.768,3282,3.018,3287,4.061,3546,3.381,6580,6.581,6585,3.488,6663,3.488,6896,4.597,7434,7.778,7443,3.076,7466,8.024,7502,9.553,7536,7.83,7551,3.616,7619,8.932,7621,3.488,7622,3.488,7631,9.428,7639,3.488,7643,3.139,7711,5.243,7712,4.316,7713,8.198,7714,8.198,7715,6.693,7716,6.693,7717,6.693,7718,6.693,7719,8.198,7720,6.693,7721,6.693,7722,8.198,7723,4.316,7724,4.316,7725,4.316,7726,12.532,7727,4.316,7728,4.316,7729,6.693,7730,4.316,7731,6.693,7732,4.316,7733,9.251,7734,6.693,7735,4.316,7736,6.693,7737,4.316,7738,4.316,7739,4.316,7740,6.693,7741,4.316,7742,6.693,7743,4.316,7744,4.316,7745,4.316,7746,9.995,7747,6.693,7748,4.316,7749,4.316,7750,4.316,7751,4.316,7752,4.316,7753,4.316,7754,4.316,7755,4.316,7756,4.316,7757,4.316,7758,4.316,7759,4.316,7760,4.316,7761,4.316,7762,4.316,7763,4.316,7764,3.991,7765,4.316,7766,6.693,7767,4.316,7768,6.693,7769,4.316,7770,4.316,7771,4.316,7772,6.693,7773,4.316,7774,6.693,7775,4.316,7776,6.693,7777,4.316,7778,4.316,7779,4.316,7780,6.693,7781,6.693,7782,4.316,7783,4.316,7784,4.316,7785,3.776,7786,4.316,7787,4.316,7788,4.316,7789,4.316,7790,4.316,7791,4.316,7792,3.776,7793,6.693,7794,4.316,7795,4.316]],["title/injectables/DashboardRepo.html",[539,0.901,7796,5.335]],["body/injectables/DashboardRepo.html",[0,0.307,3,0.015,4,0.015,5,0.008,7,0.099,8,1.085,9,3.067,26,2.794,27,0.485,29,0.922,30,0.001,31,0.663,32,0.162,33,0.568,34,1.541,35,1.352,36,2.836,39,3.029,49,2.563,95,0.143,96,1.785,97,2.816,99,1.084,101,0.015,103,0.001,104,0.001,105,0.701,154,1.934,177,1.656,226,0.929,236,1.057,239,1.491,262,2.946,349,1.266,379,0.813,437,1.685,448,2.663,511,2.903,539,1.198,541,1.556,608,2.898,631,5.342,679,3.817,1280,2.031,1666,2.75,2252,6.482,2294,4.389,3282,4.543,3287,5.49,6896,4.463,7196,7.312,7434,7.707,7466,9.327,7502,6.897,7631,4.833,7711,8.819,7733,7.916,7792,5.685,7796,7.089,7797,6.008,7798,8.366,7799,7.916,7800,8.366,7801,6.498,7802,9.625,7803,6.498,7804,9.108,7805,6.498,7806,8.366,7807,6.498,7808,9.625,7809,6.498,7810,6.008,7811,6.008,7812,8.366,7813,6.008,7814,5.685,7815,7.58,7816,4.953,7817,8.366,7818,6.008,7819,8.366,7820,6.008,7821,9.625,7822,6.008,7823,8.366,7824,6.008,7825,6.008]],["title/classes/DashboardResponse.html",[0,0.231,7451,5.191]],["body/classes/DashboardResponse.html",[0,0.342,2,0.683,3,0.014,4,0.014,5,0.007,7,0.093,27,0.412,29,0.475,30,0.001,31,0.342,32,0.158,33,0.293,34,2.328,47,0.93,55,1.863,83,1.874,95,0.11,101,0.017,103,0,104,0,112,0.688,138,1.575,150,1.391,153,3.106,154,1.851,172,1.949,245,3.583,247,2.672,253,5.662,319,4.543,379,1.37,404,4.107,517,2.34,556,2.181,773,3.089,818,3.068,820,2.801,828,3.251,848,4.765,974,4.187,1080,3.889,1207,4.157,1400,4.267,1883,5.446,2723,6.329,2725,4.444,2745,4.577,2859,6.159,2860,6.159,3738,7.461,6537,5.757,6538,6.797,6623,4.54,6664,8.249,6894,6.997,6895,6.784,6896,8.942,6897,6.784,6900,4.782,6901,3.791,6902,4.44,6903,4.932,6928,6.17,7434,6.887,7443,4.349,7451,8.815,7535,7.485,7643,8.411,7651,9.344,7652,5.34,7653,8.804,7654,8.43,7655,8.43,7659,8.85,7660,5.34,7669,5.34,7670,5.34,7671,5.34,7672,5.34,7673,5.34,7826,6.104,7827,6.104,7828,6.104]],["title/injectables/DashboardUc.html",[539,0.901,7449,5.705]],["body/injectables/DashboardUc.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.096,8,1.066,26,2.946,27,0.48,29,0.913,30,0.001,31,0.681,32,0.16,33,0.563,35,1.337,36,2.587,39,3.654,47,0.725,95,0.149,99,1.057,101,0.01,103,0.001,104,0.001,143,1.41,177,1.627,226,0.906,227,2.608,236,1.03,262,2.838,271,4.017,292,3.206,349,1.061,379,1.112,437,1.517,511,2.83,519,1.962,529,1.792,539,1.176,541,1.516,603,2.355,608,2.878,639,2.973,721,3.984,742,4.279,1744,7.574,2034,3.579,2622,4.734,2666,5.307,2745,5.427,4779,3.516,6994,5.542,7434,8.013,7449,7.446,7457,9.74,7466,8.098,7497,9.326,7505,10.458,7536,4.962,7576,5.307,7796,6.963,7799,7.776,7804,7.776,7815,9.326,7829,6.334,7830,10.269,7831,10.269,7832,8.889,7833,6.334,7834,6.334,7835,6.334,7836,6.334,7837,6.334,7838,6.334,7839,6.334,7840,8.889,7841,6.334,7842,6.334,7843,5.857,7844,4.829,7845,6.334,7846,6.334,7847,6.334,7848,6.334,7849,10.269,7850,8.889,7851,8.889,7852,6.334,7853,6.334,7854,6.334,7855,6.334]],["title/classes/DashboardUrlParams.html",[0,0.231,7438,5.958]],["body/classes/DashboardUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,3817,5.762,7434,7.439,7438,10.348,7457,11.11,7856,9.809,7857,9.809]],["title/classes/DatabaseManagementConsole.html",[0,0.231,7858,5.705]],["body/classes/DatabaseManagementConsole.html",[0,0.197,2,0.65,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,27,0.438,29,0.762,30,0.001,31,0.548,32,0.134,33,0.514,35,1.176,36,2.513,47,0.41,95,0.124,101,0.019,103,0,104,0,105,0.626,119,1.7,138,1.78,142,4.187,143,1.292,145,2.972,153,2.964,219,3.254,262,2.78,284,2.58,345,1.848,349,1.011,379,0.726,437,1.611,490,4.782,510,4.521,556,2.975,603,1.166,608,2.467,1657,4.647,1762,7.087,2029,6.32,2771,3.445,3232,3.522,3250,5.254,3443,5.078,3445,4.863,3446,7.117,3449,6.75,3451,7.908,3455,8.555,3456,6.732,3457,3.445,3459,4.547,3460,5.472,4324,6.494,5601,4.69,5603,5.078,6259,3.022,7858,6.998,7859,10.486,7860,7.723,7861,8.353,7862,8.649,7863,9.535,7864,5.804,7865,7.723,7866,9.939,7867,8.967,7868,5.804,7869,7.723,7870,7.929,7871,5.804,7872,8.885,7873,8.436,7874,5.395,7875,6.368,7876,5.804,7877,5.078,7878,4.863,7879,7.723,7880,8.159,7881,7.723,7882,5.078,7883,7.723,7884,7.723,7885,5.367,7886,5.367,7887,5.367,7888,8.967,7889,7.723,7890,9.048,7891,3.987,7892,7.308,7893,5.367,7894,5.367,7895,5.078]],["title/controllers/DatabaseManagementController.html",[259,2.591,7896,5.958]],["body/controllers/DatabaseManagementController.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.113,8,1.189,27,0.508,29,0.869,30,0.001,31,0.625,32,0.153,33,0.536,35,1.49,36,2.816,47,0.901,95,0.126,101,0.012,103,0.001,104,0.001,119,2.272,138,2.256,223,3.061,226,1.063,259,2.828,261,3.53,262,3.012,310,3.222,333,3.146,345,2.366,349,1.281,437,0.962,608,2.286,2903,4.201,3459,5.824,6682,6.699,7860,11.009,7862,9.622,7863,8.744,7873,8.302,7878,6.228,7895,8.677,7896,8.677,7897,12.76,7898,7.435,7899,7.435,7900,9.918,7901,9.17,7902,9.918,7903,7.435,7904,9.918,7905,7.435,7906,10.417,7907,9.918,7908,7.435,7909,6.874,7910,9.918,7911,7.435,7912,7.435,7913,9.918,7914,7.435,7915,11.161,7916,9.918,7917,7.435,7918,7.435,7919,7.435,7920,7.435,7921,7.435,7922,7.435,7923,7.435,7924,7.435,7925,7.435]],["title/modules/DatabaseManagementModule.html",[201,1.804,7926,5.705]],["body/modules/DatabaseManagementModule.html",[0,0.327,3,0.023,4,0.023,5,0.011,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.339,203,3.469,204,3.727,205,3.836,206,3.82,207,3.804,208,4.617,209,4.74,218,4.656,219,3.757,220,3.669,226,1.379,1762,5.787,7926,11.577,7927,9.644,7928,9.644,7929,9.644,7930,11.513,7931,8.917,7932,8.917,7933,8.079]],["title/injectables/DatabaseManagementService.html",[539,0.901,7930,5.503]],["body/injectables/DatabaseManagementService.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.945,27,0.525,29,0.949,30,0.001,31,0.697,32,0.167,33,0.585,35,1.494,36,2.852,47,0.973,95,0.139,96,2.167,97,2.325,99,0.895,101,0.009,103,0,104,0,143,2.083,173,1.586,177,0.982,226,0.767,262,3.039,345,1.707,349,1.285,379,0.671,437,1.658,539,1.044,541,1.284,574,8.173,603,1.584,608,2.738,686,3.723,696,3.689,739,3.452,756,4.088,1154,3.72,1657,5.787,2252,5.938,2292,5.327,3282,3.75,3287,4.785,3833,6.373,3844,8.183,5131,4.959,6953,6.127,7862,8.334,7866,6.179,7875,7.861,7901,7.292,7906,10.392,7909,7.292,7930,6.373,7931,11.994,7934,4.692,7935,7.887,7936,7.292,7937,7.887,7938,7.887,7939,7.887,7940,10.313,7941,7.887,7942,5.363,7943,7.887,7944,5.363,7945,7.887,7946,5.363,7947,7.887,7948,5.363,7949,7.887,7950,5.363,7951,7.887,7952,5.363,7953,5.363,7954,7.887,7955,5.363,7956,5.363,7957,5.363,7958,5.363,7959,5.363,7960,5.363,7961,5.363,7962,5.363,7963,9.354,7964,7.887,7965,5.363,7966,5.363,7967,5.363,7968,5.363,7969,7.887,7970,5.363,7971,5.363,7972,5.363,7973,7.887,7974,5.363,7975,5.363,7976,5.363,7977,5.363,7978,5.363,7979,5.363,7980,5.363]],["title/classes/DeleteFilesConsole.html",[0,0.231,7981,5.958]],["body/classes/DeleteFilesConsole.html",[0,0.265,2,0.873,3,0.018,4,0.018,5,0.012,7,0.118,8,1.227,27,0.419,29,0.797,30,0.001,31,0.573,32,0.14,33,0.491,35,0.936,36,2.178,55,2.711,83,2.393,95,0.145,101,0.013,103,0.001,104,0.001,138,1.418,153,2.597,236,1.268,262,2.504,345,2.481,379,0.975,437,1.008,480,2.164,486,2.345,603,1.566,608,1.797,822,4.365,828,4.152,1278,2.466,1575,7.444,1773,5.584,2253,4.683,2254,5.477,2705,3.68,3451,6.299,3455,8.332,3456,7.63,3457,4.627,5387,10.613,6259,6.316,6600,9.371,7981,8.953,7982,11.425,7983,7.795,7984,9.462,7985,7.795,7986,10.833,7987,7.795,7988,10.234,7989,11.313,7990,11.313,7991,9.995,7992,9.571,7993,11.425,7994,7.795,7995,11.425,7996,7.795,7997,6.106,7998,7.207,7999,7.207,8000,6.819,8001,7.795,8002,7.795,8003,7.795,8004,7.795,8005,4.966]],["title/injectables/DeleteFilesUc.html",[539,0.901,7986,5.705]],["body/injectables/DeleteFilesUc.html",[0,0.171,3,0.012,4,0.012,5,0.011,7,0.076,8,0.903,27,0.477,29,0.834,30,0.001,31,0.6,32,0.154,33,0.514,35,1.286,36,2.129,47,0.637,55,1.941,58,4.865,83,2.769,95,0.148,99,0.841,101,0.008,103,0.001,104,0,112,0.598,143,2.008,145,1.4,154,1.077,177,1.651,208,1.846,220,1.918,226,0.721,236,1.628,262,2.806,280,5.173,330,3.462,349,0.932,379,0.942,437,1.657,480,1.4,486,1.517,539,0.997,541,1.207,579,2.685,595,3.17,603,2.699,608,2.684,662,2.836,696,4.431,708,3.129,986,4.865,990,1.704,1178,2.706,1278,1.595,1925,2.728,2035,3.17,2253,3.696,2254,4.517,2298,3.667,2303,3.949,2428,2.728,2588,5.553,3542,3.68,6259,5.209,6337,3.524,6338,6.305,6339,3.524,6340,3.524,6402,6.59,7984,6.964,7986,6.31,7989,8.753,7997,5.901,7999,4.661,8000,4.41,8005,3.212,8006,11.97,8007,5.041,8008,10.005,8009,6.59,8010,7.532,8011,7.532,8012,10.005,8013,5.041,8014,9.078,8015,9.754,8016,7.532,8017,7.532,8018,7.964,8019,5.041,8020,6.31,8021,9.368,8022,7.532,8023,8.875,8024,5.041,8025,7.532,8026,5.041,8027,7.532,8028,5.041,8029,5.041,8030,7.532,8031,4.223,8032,4.41,8033,4.073,8034,4.661,8035,5.041,8036,5.041,8037,9.018,8038,10.005,8039,10.005,8040,5.041,8041,9.018,8042,5.041,8043,5.041,8044,5.041,8045,9.018,8046,5.041,8047,5.041,8048,5.041,8049,7.532,8050,5.041,8051,5.041,8052,3.749,8053,5.041,8054,5.041,8055,5.041,8056,5.041,8057,5.041,8058,5.041,8059,5.041,8060,4.223,8061,5.041,8062,4.661,8063,5.041,8064,4.661,8065,3.749,8066,4.661,8067,4.661,8068,5.041,8069,5.041,8070,5.041,8071,7.532,8072,4.661,8073,5.041,8074,6.59,8075,5.041,8076,5.041,8077,5.041,8078,5.041,8079,5.041]],["title/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.231,8080,5.335]],["body/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.377,2,1.385,3,0.017,4,0.017,5,0.009,7,0.112,27,0.507,29,0.574,30,0.001,31,0.413,32,0.174,33,0.593,47,0.784,95,0.125,99,1.229,101,0.018,102,5.963,103,0.001,104,0.001,112,0.783,119,2.261,120,3.241,180,1.991,236,1.93,238,6.397,347,4.069,358,5.219,379,0.921,382,3.352,490,3.939,643,5.656,823,4.163,986,4.757,1198,2.532,1927,4.327,1939,5.742,2336,6.969,6264,3.955,8080,9.688,8081,8.704,8082,7.396,8083,6.445,8084,8.101,8085,10.347,8086,9.294,8087,7.367,8088,5.615,8089,7.367,8090,6.811,8091,8.978,8092,6.811,8093,6.811,8094,6.171,8095,5.479,8096,6.171,8097,5.953,8098,6.445,8099,7.966,8100,8.624,8101,6.171,8102,5.249,8103,5.06,8104,5.06,8105,5.358,8106,6.171]],["title/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.231,8099,5.503]],["body/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.378,2,1.385,3,0.017,4,0.017,5,0.009,7,0.112,27,0.507,29,0.575,30,0.001,31,0.413,32,0.169,33,0.594,47,0.838,95,0.125,99,1.231,101,0.018,102,5.967,103,0.001,104,0.001,112,0.784,119,2.263,180,1.993,236,1.931,238,6.403,347,4.073,358,5.223,379,0.923,382,3.355,490,2.617,643,5.659,823,4.166,986,4.766,1198,3.823,1927,4.335,1939,5.748,2336,6.974,6264,3.962,8080,7.732,8081,8.712,8082,7.399,8083,6.457,8084,8.106,8085,10.351,8086,9.301,8088,5.626,8090,6.823,8091,8.986,8092,6.823,8093,6.823,8094,6.183,8095,5.489,8096,6.183,8097,5.964,8098,6.457,8099,9.999,8100,8.635,8101,6.183,8102,5.259,8103,5.069,8104,5.069,8105,5.368,8106,6.183,8107,9.87]],["title/classes/DoBaseFactory.html",[0,0.231,4317,4.853]],["body/classes/DoBaseFactory.html",[0,0.172,2,0.569,3,0.012,4,0.012,5,0.006,7,0.077,8,0.908,27,0.531,29,1.019,30,0.001,31,0.699,32,0.182,33,0.599,34,1.83,35,1.473,47,0.639,49,2.003,55,2.512,59,3.338,95,0.115,96,1.395,97,2.201,101,0.008,103,0,104,0,112,0.601,120,3.332,133,2.649,140,2.844,143,1.131,153,2.059,154,2.296,155,2.528,177,1.387,180,1.357,236,0.826,271,4.883,319,3.42,349,0.525,379,0.635,382,3.912,413,2.333,437,0.657,447,7.313,448,4.618,449,5.675,452,4.28,453,5.675,454,5.696,455,4.28,456,4.28,457,4.28,458,4.205,459,4.649,460,5.119,461,6.199,462,5.963,463,7.083,464,2.897,469,2.87,470,4.28,471,2.897,472,5.308,473,5.48,474,4.29,475,5.154,476,4.242,477,2.87,478,2.705,479,4.494,480,3.404,481,2.795,482,2.749,483,2.87,484,5.229,485,2.897,486,3.609,487,5.028,488,2.87,489,7.249,490,4.426,491,7.053,492,2.897,493,3.757,494,2.87,495,2.897,496,2.87,497,2.897,498,4.28,501,2.87,502,6.253,503,2.897,504,2.87,505,4.28,506,4.004,507,4.28,508,2.897,509,2.772,510,2.749,511,2.269,512,2.87,513,2.87,514,2.87,515,2.897,516,2.897,517,1.947,518,2.87,519,1.573,520,2.897,521,3.588,522,2.87,523,2.897,525,2.954,526,3.015,996,2.426,997,2.398,998,2.398,999,2.536,1000,2.772,1935,3.551,2029,3.28,2407,4.696,4129,3.327,4317,5.398,4319,3.694,8108,5.079,8109,5.079,8110,5.079,8111,5.079]],["title/classes/DomainObject.html",[0,0.231,1604,2.882]],["body/classes/DomainObject.html",[0,0.295,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.316,9,4.101,26,2.548,27,0.518,29,0.676,30,0.001,31,0.487,32,0.15,33,0.417,34,2.153,35,1.044,95,0.11,101,0.018,103,0.001,104,0.001,105,0.937,112,0.871,181,2.937,349,1.133,379,1.086,381,4.377,437,1.124,448,4.93,479,5.062,662,3.974,686,5.18,1280,3.43,1600,6.995,1601,12.048,1602,7.6,1603,3.266,1604,4.643,1605,9.193,1606,8.031,1607,8.161,1608,10.145,7474,7.277,8112,10.973,8113,8.687,8114,8.687]],["title/classes/DomainObjectFactory.html",[0,0.231,8115,6.296]],["body/classes/DomainObjectFactory.html",[0,0.167,2,0.549,3,0.011,4,0.011,5,0.006,7,0.074,8,0.885,27,0.527,29,1.012,30,0.001,31,0.693,32,0.181,33,0.594,34,1.894,35,1.459,47,0.626,55,2.483,59,3.288,95,0.125,101,0.008,103,0,104,0,112,0.586,120,3.247,133,3.103,140,2.747,153,2.017,154,1.896,155,2.463,177,1.351,180,1.769,226,0.701,236,0.798,271,4.841,319,3.332,357,3.739,358,2.158,379,0.614,382,3.885,413,2.273,447,7.271,448,4.558,449,5.577,452,4.171,453,5.577,454,5.768,455,4.171,456,4.171,457,4.171,458,4.097,459,4.553,460,5.014,461,6.119,462,5.875,463,7.037,464,2.798,469,2.772,470,4.171,471,2.798,472,5.217,473,5.386,474,4.216,475,5.065,476,4.133,477,2.772,478,2.613,479,4.447,480,3.296,481,2.7,482,2.655,483,2.772,484,5.139,485,2.798,486,3.572,487,4.925,488,2.772,489,7.195,490,4.307,491,6.993,492,2.798,493,3.661,494,2.772,495,2.798,496,2.772,497,2.798,498,4.171,501,2.772,502,6.172,503,2.798,504,2.772,505,4.171,506,3.901,507,4.171,508,2.798,509,4.841,510,3.994,511,2.192,512,2.772,513,2.772,514,2.772,515,2.798,516,2.798,517,2.83,518,2.772,519,1.52,520,2.798,521,3.909,522,2.772,523,2.798,525,2.853,526,2.912,529,1.388,996,3.526,997,3.484,998,3.484,999,3.685,1000,4.027,1080,3.126,1600,4.292,1604,3.123,1687,3.047,1718,2.066,1894,3.568,1895,3.496,1935,3.43,2029,3.168,3835,3.369,6318,3.213,8115,6.824,8116,4.906,8117,4.906,8118,4.906,8119,7.38,8120,3.568]],["title/classes/DownloadFileParams.html",[0,0.231,6305,4.6]],["body/classes/DownloadFileParams.html",[0,0.456,2,0.721,3,0.015,4,0.021,5,0.011,7,0.098,26,2.656,27,0.368,30,0.001,32,0.167,39,1.731,47,0.955,95,0.159,99,1.074,101,0.022,103,0.001,104,0.001,105,0.694,112,0.714,119,1.829,138,1.635,143,1.433,147,4.825,148,2.042,149,4.265,150,1.466,151,5.976,153,1.463,154,1.376,245,3.639,247,2.817,248,5.099,249,4.535,348,3.213,807,4.986,808,6.726,838,3.247,851,3.074,988,2.776,990,2.176,1079,3.78,1139,5.726,1140,4.216,1141,4.216,1198,2.212,1280,2.012,2680,4.676,2863,5.104,3573,3.151,4209,2.183,5890,5.201,5905,6.604,6237,4.806,6250,6.784,6256,6.117,6285,3.171,6288,4.42,6289,4.499,6290,4.499,6291,5.63,6293,7.842,6296,4.499,6297,8.124,6298,7.838,6299,7.838,6300,4.499,6301,4.42,6302,7.966,6303,4.42,6304,4.499,6305,6.071,6306,7.572,6307,4.279,6308,4.347,6309,4.42,6310,4.347,6311,4.347,6312,4.1,6313,4.499,6314,4.499,6315,4.499,6316,4.1,6317,4.1,6318,4.216,6319,4.279,6320,4.499,8121,6.436,8122,6.436]],["title/classes/DtoCreator.html",[0,0.231,8123,5.958]],["body/classes/DtoCreator.html",[0,0.205,2,0.424,3,0.009,4,0.009,5,0.005,7,0.057,8,0.724,27,0.516,29,0.849,30,0.001,31,0.629,32,0.178,33,0.523,34,1.029,35,1.384,95,0.127,99,0.632,100,2.887,101,0.006,103,0,104,0,112,0.48,119,1.749,120,2.657,143,1.345,145,1.677,177,1.106,226,0.542,236,0.983,239,2.826,347,3.664,349,1.255,376,2.631,377,2.741,379,0.942,437,1.7,539,0.799,603,2.717,604,1.539,643,1.684,739,4.595,773,1.917,848,5.167,1042,2.602,1207,1.928,1612,3.324,1613,2.325,1628,2.481,1698,4.962,1867,3.477,1883,3.554,1885,5.678,1889,2.602,2020,1.658,2021,1.855,2022,1.788,2196,4.047,2472,1.719,2625,3.981,2627,4.869,2629,8.969,2632,4.604,2634,5.367,2637,1.778,2645,7.865,2713,2.888,2714,2.481,2975,2.888,3011,8.214,3012,5.06,3016,5.06,3019,3.173,3038,3.314,3407,3.173,3417,2.382,3420,3.173,3738,2.353,3756,5.714,3881,2.121,4487,4.425,5098,3.173,6433,5.008,6984,7.2,7491,8.356,7645,2.648,7785,3.314,8123,6.59,8124,11.745,8125,3.502,8126,9.535,8127,9.521,8128,6.04,8129,6.04,8130,6.04,8131,7.946,8132,7.946,8133,6.04,8134,6.04,8135,6.04,8136,6.04,8137,6.04,8138,3.788,8139,3.788,8140,3.788,8141,3.788,8142,5.584,8143,10.872,8144,3.788,8145,8.382,8146,5.584,8147,3.788,8148,5.584,8149,3.788,8150,3.788,8151,3.788,8152,3.788,8153,5.584,8154,3.788,8155,5.584,8156,3.788,8157,5.584,8158,3.788,8159,5.584,8160,3.788,8161,2.755,8162,5.284,8163,5.284,8164,3.502,8165,3.502,8166,3.314,8167,5.584,8168,3.502,8169,5.584,8170,5.584,8171,3.502,8172,3.502,8173,3.502,8174,3.502,8175,3.502,8176,3.502,8177,3.502,8178,3.502,8179,3.502,8180,3.502,8181,5.584,8182,3.314,8183,3.502,8184,3.502,8185,3.502,8186,3.502,8187,6.964,8188,3.502,8189,3.502,8190,3.502,8191,3.314,8192,3.314,8193,5.584,8194,3.502,8195,3.502,8196,3.314,8197,3.314,8198,3.173,8199,3.314,8200,3.314,8201,3.502,8202,3.502,8203,3.502,8204,3.502,8205,3.502,8206,3.502,8207,3.314,8208,3.502,8209,3.502,8210,3.502,8211,3.502,8212,3.502,8213,3.502,8214,3.502,8215,3.502,8216,3.173,8217,3.502,8218,3.061,8219,3.502,8220,3.502,8221,3.502]],["title/injectables/DurationLoggingInterceptor.html",[539,0.901,8222,6.296]],["body/injectables/DurationLoggingInterceptor.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.13,8,1.303,27,0.445,29,0.846,30,0.001,31,0.609,32,0.149,33,0.522,35,1.028,95,0.159,101,0.014,103,0.001,104,0.001,131,3.205,153,1.945,226,1.223,345,2.724,349,0.884,379,1.07,437,1.107,478,5.79,521,4.731,539,1.439,541,2.048,965,5.605,967,6.523,1278,2.707,1280,2.675,1758,5.877,2049,9.509,2185,9.106,2253,4.455,2254,5.674,2943,5.78,4540,8.286,6505,8.085,6512,8.784,8222,10.049,8223,11.946,8224,7.912,8225,10.049,8226,9.509,8227,8.557,8228,9.509,8229,10.995,8230,10.995,8231,8.557,8232,9.509,8233,7.912,8234,8.557,8235,8.557,8236,8.557,8237,8.557,8238,8.557]],["title/classes/ElementContentBody.html",[0,0.231,8239,4.6]],["body/classes/ElementContentBody.html",[0,0.454,2,0.64,3,0.013,4,0.013,5,0.007,7,0.087,9,2.697,27,0.234,30,0.001,31,0.631,32,0.188,47,0.875,83,1.754,95,0.143,99,0.953,101,0.022,103,0,104,0,112,0.656,138,1.039,143,1.272,148,1.813,149,3.69,150,1.302,153,2.415,172,1.824,180,2.02,245,3.628,248,5.055,249,4.753,284,1.765,305,4.756,480,3.13,806,5.262,807,3.37,838,1.791,851,2.729,1198,1.964,1207,1.824,1582,3.323,1883,4.394,2196,4.56,2442,2.798,2823,2.763,2824,2.514,2863,4.07,3219,3.392,3221,3.392,3224,3.356,3227,5.013,3230,2.932,3235,3.2,3708,3.549,3729,3.549,3730,6.839,4104,6.402,5622,6.18,5624,6.264,5626,6.18,5628,6.264,5630,6.264,5675,3.743,5712,6.449,5713,6.449,5714,6.449,5715,6.449,5716,6.449,5904,3.593,5905,6.783,7047,3.799,7107,3.64,8239,8.378,8240,5.673,8241,3.924,8242,5.714,8243,5.714,8244,5.41,8245,6.449,8246,6.449,8247,3.924,8248,6.449,8249,3.507,8250,3.859,8251,6.449,8252,6.449,8253,3.799,8254,3.799,8255,3.799,8256,3.799,8257,3.924,8258,3.924,8259,3.924,8260,3.924,8261,3.924]],["title/controllers/ElementController.html",[259,2.591,2702,5.958]],["body/controllers/ElementController.html",[0,0.15,3,0.01,4,0.01,5,0.005,7,0.067,8,0.815,10,3.374,27,0.382,29,0.727,30,0.001,31,0.523,32,0.189,33,0.448,35,1.122,36,2.442,95,0.146,100,1.48,101,0.007,103,0,104,0,138,1.698,142,1.724,143,1.514,150,1.004,177,1.245,223,1.814,226,0.63,236,1.106,259,1.676,261,2.092,262,2.723,270,6.164,282,7.13,287,7.519,290,8.349,294,6.567,324,4.725,333,4.27,334,2.845,335,6.054,336,8.115,337,2.277,338,2.329,340,2.117,343,2.347,345,1.402,346,5.542,347,4.749,349,0.702,437,1.305,603,0.885,608,2.152,631,3.49,685,2.878,823,3.276,848,2.425,1202,6.816,1883,4.41,2196,4.314,2452,3.56,2466,2.588,2471,5.989,2622,5.374,2694,6.506,2696,6.711,2702,5.949,2705,2.08,2706,3.855,2824,4.108,2825,4.08,2874,6.792,2876,7.118,2878,7.118,2879,7.118,2882,7.519,2884,5.495,2897,9.228,2899,4.08,2902,3.14,2903,2.49,2904,2.365,2911,3.56,2921,5.495,2922,5.495,3163,4.333,3250,6.706,3307,3.395,3371,4.671,3565,5.328,3692,4.846,3693,3.855,3707,5.184,3708,2.737,3712,3.14,3713,3.14,3714,3.359,3715,3.691,3720,4.878,3722,4.074,3727,4.074,3729,2.737,3730,6.122,3731,3.56,3732,3.56,3996,3.359,4022,2.771,4024,3.359,4025,3.359,4040,3.855,4049,3.855,4050,3.855,4051,3.855,4055,3.855,4157,6.957,4955,4.074,4968,6.287,5759,11.013,7122,8.828,8245,4.522,8246,4.522,8248,5.522,8251,5.522,8252,5.522,8253,6.208,8262,4.406,8263,7.678,8264,7.678,8265,8.305,8266,4.406,8267,4.406,8268,4.406,8269,4.406,8270,4.406,8271,4.406,8272,6.8,8273,4.406,8274,4.406,8275,4.406,8276,8.169,8277,4.406,8278,4.406,8279,4.406,8280,4.406,8281,4.406,8282,4.406,8283,4.406,8284,5.495,8285,4.406,8286,4.406,8287,4.406,8288,9.337,8289,4.406,8290,4.406,8291,4.406,8292,4.406,8293,4.406,8294,4.406,8295,4.406,8296,4.406,8297,4.406,8298,4.406,8299,4.406]],["title/injectables/ElementUc.html",[539,0.901,2696,5.503]],["body/injectables/ElementUc.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.875,26,2.957,27,0.484,29,0.92,30,0.001,31,0.662,32,0.165,33,0.567,35,1.379,36,2.623,39,3.317,59,1.502,95,0.15,99,0.807,101,0.008,103,0,104,0,119,1.79,177,1.925,180,1.308,226,0.691,236,1.431,239,1.109,262,2.925,349,0.908,379,0.913,382,2.654,437,1.485,448,4.845,529,2.488,539,0.966,541,1.157,560,1.991,603,2.221,608,2.887,639,2.269,685,2.046,789,2.414,826,2.784,1278,1.53,1612,5.788,1627,3.321,1628,3.167,1698,6.068,1767,3.215,1802,5.202,1853,7.127,1858,9.812,1864,3.907,1883,5.003,2036,3.266,2196,3.964,2253,4.706,2453,5.613,2454,8.43,2456,5.719,2457,5.719,2458,3.517,2459,8.118,2461,3.596,2462,5.31,2463,6.267,2465,3.788,2466,6.744,2468,3.788,2469,5.202,2471,4.333,2472,2.195,2483,4.05,2485,5.43,2696,5.899,2735,3.321,2814,5.531,2824,4.865,2825,5.277,3098,3.596,3163,4.651,3232,5.944,3307,3.645,3537,9.278,3798,3.907,3799,3.907,3800,3.907,3803,3.907,3804,3.907,3983,2.933,4158,7.694,4186,4.47,5644,4.534,5675,6.418,5762,8.131,8263,8.131,8264,6.749,8300,4.835,8301,7.3,8302,8.795,8303,4.835,8304,4.835,8305,4.835,8306,7.3,8307,4.835,8308,7.3,8309,4.835,8310,4.835,8311,4.835,8312,4.23,8313,4.47,8314,4.835,8315,4.835,8316,4.835,8317,7.3,8318,4.835,8319,4.835,8320,4.835,8321,4.835,8322,4.47,8323,4.835,8324,4.47,8325,4.47,8326,3.907,8327,4.835,8328,4.835,8329,7.3,8330,4.835,8331,4.835,8332,4.835,8333,4.47,8334,3.686,8335,4.835]],["title/modules/EncryptionModule.html",[201,1.804,8336,4.953]],["body/modules/EncryptionModule.html",[0,0.287,3,0.02,4,0.02,5,0.01,30,0.001,47,0.596,95,0.164,101,0.014,103,0.001,104,0.001,201,3.146,203,3.039,204,3.265,205,3.36,206,3.346,207,3.333,208,3.949,209,4.054,214,6.131,218,4.288,219,3.292,220,3.214,225,4.253,226,1.208,236,1.375,349,0.873,437,1.093,474,3.609,584,8.907,598,4.865,636,6.27,637,7.683,639,5.06,1278,2.673,1925,5.835,2253,5.297,2254,5.966,8336,9.611,8337,8.45,8338,8.45,8339,8.45,8340,8.832,8341,10.389,8342,7.812,8343,7.392,8344,8.45,8345,11.875,8346,8.45,8347,8.45,8348,8.45,8349,7.812,8350,8.45]],["title/classes/EntityNotFoundError.html",[0,0.231,291,4.953]],["body/classes/EntityNotFoundError.html",[0,0.262,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,8,1.219,27,0.539,29,0.601,30,0.001,31,0.432,32,0.186,33,0.546,35,0.927,47,0.91,55,1.661,59,2.399,95,0.129,101,0.013,103,0.001,104,0.001,112,0.807,138,2.284,154,2.174,177,2.495,180,1.822,182,2.511,226,1.104,291,7.397,292,5.146,347,2.828,379,0.965,382,3.891,687,5.755,820,5.546,823,2.709,950,5.276,988,5.213,990,4.086,1025,4.448,1205,8.286,1206,7.499,1207,3.859,1208,7.245,1212,4.986,1213,4.285,1214,4.986,1215,4.986,1216,4.986,1217,4.986,1218,4.986,1219,4.632,1220,4.403,1221,6.048,1222,6.467,1226,4.855,3823,7.138,8351,10.169,8352,7.72,8353,7.72,8354,7.72,8355,7.72]],["title/classes/ErrorLoggable.html",[0,0.231,8356,5.503]],["body/classes/ErrorLoggable.html",[0,0.334,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,8,1.009,27,0.485,29,0.837,30,0.001,31,0.602,32,0.167,33,0.516,35,1.182,47,0.759,95,0.15,101,0.01,103,0,104,0,112,0.668,119,1.713,143,1.873,148,2.67,172,3.636,177,1.969,226,0.838,246,4.738,283,6.6,316,3.148,340,2.818,345,1.866,349,1.224,379,0.733,437,1.473,448,2.403,480,3.162,486,1.764,493,2.908,511,2.62,521,3.333,603,2.651,604,2.382,761,3.841,988,4.245,990,4.463,996,4.019,997,3.972,998,3.972,999,4.201,1000,3.2,1001,4.027,1002,3.961,1025,3.292,1076,3.899,1077,3.599,1154,3.347,1163,4.178,1202,7.691,1211,7.361,1224,3.284,1225,3.599,1275,4.516,1276,5.051,1280,2.63,1281,5.299,1719,3.558,2112,4.027,2259,3.376,2680,3.799,3853,4.738,4693,4.912,7844,4.47,8356,6.8,8357,5.864,8358,9.842,8359,8.415,8360,8.415,8361,8.415,8362,5.864,8363,5.864,8364,9.842,8365,5.864,8366,8.415,8367,5.864,8368,5.864,8369,5.558,8370,5.773,8371,8.415,8372,5.864,8373,8.415,8374,5.864,8375,5.864,8376,5.864,8377,5.864,8378,8.415,8379,5.864,8380,5.864,8381,10.754,8382,5.864,8383,5.864,8384,4.47,8385,5.864,8386,8.415,8387,5.864,8388,5.864,8389,8.415,8390,5.864,8391,4.099,8392,5.421,8393,4.361,8394,4.912,8395,5.864,8396,5.864,8397,5.864,8398,5.864,8399,5.864,8400,5.864,8401,8.415,8402,5.864,8403,5.864,8404,5.864,8405,5.864]],["title/injectables/ErrorLogger.html",[539,0.901,8406,5.705]],["body/injectables/ErrorLogger.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,27,0.51,29,0.97,30,0.001,31,0.698,32,0.17,33,0.598,35,1.438,72,3.419,95,0.158,101,0.012,103,0.001,104,0.001,107,1.807,177,1.379,203,2.709,226,1.077,358,3.314,379,0.942,437,1.548,519,4.112,539,1.324,541,1.803,603,1.513,639,3.535,990,3.383,1025,4.682,1275,6.463,2253,4.605,2943,5.088,6494,6.087,7874,4.864,8406,9.411,8407,12.808,8408,7.532,8409,10.005,8410,10.005,8411,10.005,8412,10.471,8413,7.532,8414,10.005,8415,7.532,8416,10.005,8417,7.532,8418,10.005,8419,7.532,8420,10.005,8421,7.532,8422,6.589,8423,7.838,8424,6.087,8425,6.964,8426,6.589,8427,11.066,8428,7.532,8429,7.532,8430,7.532,8431,7.532]],["title/classes/ErrorMapper.html",[0,0.231,8432,5.958]],["body/classes/ErrorMapper.html",[0,0.294,2,0.97,3,0.02,4,0.02,5,0.01,7,0.131,8,1.314,27,0.355,29,0.675,30,0.001,31,0.486,32,0.118,33,0.416,35,1.041,95,0.152,101,0.014,103,0.001,104,0.001,226,1.239,236,2.054,282,5.384,287,5.678,349,0.895,413,3.701,990,4.497,1162,6.032,1163,6.177,1164,6.791,1193,7.583,2471,7.495,2621,7.271,8432,9.587,8433,8.668,8434,11.11,8435,8.668,8436,10.203,8437,8.668,8438,10.958,8439,5.763,8440,12.017,8441,8.668,8442,8.668,8443,6.607,8444,8.668,8445,8.668]],["title/modules/ErrorModule.html",[201,1.804,6494,5.503]],["body/modules/ErrorModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.163,101,0.015,103,0.001,104,0.001,153,2.059,201,3.248,203,3.258,204,3.501,205,3.603,206,3.587,207,3.573,208,4.126,209,3.406,214,6.241,218,4.48,219,3.529,220,3.446,225,4.443,226,1.295,486,3.389,636,5.267,2253,3.713,3249,7.49,3457,6.687,4324,6.835,4484,6.687,6494,10.869,6507,7.876,6511,10.746,8446,9.058,8447,9.058,8448,9.058,8449,10.415,8450,6.905,8451,9.437,8452,9.058,8453,9.058,8454,6.905]],["title/classes/ErrorResponse.html",[0,0.231,1219,4.086]],["body/classes/ErrorResponse.html",[0,0.238,2,0.786,3,0.016,4,0.016,5,0.008,7,0.106,27,0.514,29,0.547,30,0.001,31,0.393,32,0.19,33,0.52,47,0.978,55,2.618,59,2.181,95,0.089,101,0.012,103,0.001,104,0.001,112,0.758,153,2.464,168,5.442,177,2.537,226,1.004,348,5.807,361,5.392,379,1.193,823,3.348,950,6.145,988,5.247,990,4.416,1025,5.022,1206,7.553,1207,4.099,1219,5.725,1220,4.004,1231,8.461,1232,7.097,1233,6.25,1240,6.833,1241,6.634,1243,5.856,1245,8.348,1246,5.495,1248,8.822,1249,6.162,1250,8.822,1351,6.141,2507,3.136,2725,3.602,3870,6.49,3871,5.351,3872,6.49,8455,7.02,8456,7.02,8457,9.542,8458,7.02,8459,7.02,8460,7.02,8461,7.02]],["title/classes/ErrorUtils.html",[0,0.231,1163,4.853]],["body/classes/ErrorUtils.html",[0,0.254,2,0.839,3,0.017,4,0.017,5,0.009,7,0.114,8,1.195,27,0.489,29,0.93,30,0.001,31,0.669,32,0.136,33,0.573,35,1.435,47,0.791,59,2.327,95,0.142,101,0.012,103,0.001,104,0.001,105,0.808,145,2.08,153,2.715,226,1.071,236,1.218,340,3.6,349,1.234,413,4.238,556,2.511,604,4.852,990,4.773,1154,4.75,1163,7.103,1205,7.33,3671,9.356,3859,5.868,8462,7.49,8463,9.968,8464,9.968,8465,12.436,8466,9.968,8467,9.968,8468,7.49,8469,9.053,8470,9.968,8471,7.49,8472,9.968,8473,7.49,8474,10.005,8475,9.968,8476,7.49,8477,7.49,8478,11.943,8479,7.49]],["title/injectables/EtherpadService.html",[539,0.901,8480,5.958]],["body/injectables/EtherpadService.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.121,8,1.246,26,2.593,27,0.426,29,0.809,30,0.001,31,0.582,32,0.158,33,0.499,35,0.959,36,2.211,39,2.796,47,0.935,94,3.883,95,0.155,101,0.017,103,0.001,104,0.001,145,2.216,177,1.461,226,1.141,236,1.298,262,2.532,284,3.21,345,2.54,349,1.073,379,0.998,437,1.495,539,1.375,541,1.91,560,3.286,579,4.251,603,1.603,608,1.84,685,3.377,990,3.514,1178,4.284,1207,3.909,1278,2.525,1861,5.848,2253,4.737,2254,5.527,2442,3.907,8480,9.092,8481,7.98,8482,10.392,8483,6.982,8484,9.466,8485,7.98,8486,10.392,8487,7.98,8488,7.378,8489,6.982,8490,10.392,8491,7.98,8492,7.98,8493,7.98,8494,7.98,8495,7.378,8496,7.98,8497,7.378,8498,5.687]],["title/classes/ExternalGroupDto.html",[0,0.231,8499,5.191]],["body/classes/ExternalGroupDto.html",[0,0.278,2,0.917,3,0.019,4,0.019,5,0.01,7,0.124,27,0.553,29,0.638,30,0.001,31,0.693,32,0.189,33,0.561,47,0.925,83,3.796,95,0.134,101,0.013,103,0.001,104,0.001,112,0.839,181,2.829,379,1.024,381,2.751,564,2.515,655,5.882,974,3.961,1985,3.258,2507,3.659,3063,5.097,4285,3.586,4347,4.915,6939,4.862,6940,5.027,8249,7.182,8499,9.757,8500,11.437,8501,7.573,8502,10.238,8503,10.57,8504,8.192,8505,8.192,8506,8.192,8507,8.92,8508,8.192,8509,8.192,8510,9.168,8511,8.192,8512,6.862,8513,7.573,8514,6.417,8515,7.166,8516,7.166,8517,7.166,8518,7.166,8519,7.166,8520,8.192,8521,8.192]],["title/classes/ExternalGroupUserDto.html",[0,0.231,8510,5.335]],["body/classes/ExternalGroupUserDto.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.739,30,0.001,31,0.531,32,0.171,33,0.455,47,0.818,95,0.12,99,1.582,101,0.016,103,0.001,104,0.001,112,0.92,181,3.102,379,1.186,381,3.186,974,6.303,4603,7.422,8500,10.92,8510,10.474,8522,8.77,8523,8.321,8524,10.715,8525,8.77,8526,8.298,8527,9.485,8528,8.77,8529,8.77]],["title/classes/ExternalSchoolDto.html",[0,0.231,8530,5.065]],["body/classes/ExternalSchoolDto.html",[0,0.318,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.531,29,0.728,30,0.001,31,0.727,32,0.177,33,0.597,47,0.957,101,0.015,103,0.001,104,0.001,112,0.912,181,3.075,379,1.17,381,3.142,655,6.251,1985,3.72,4285,4.094,6939,5.552,6940,5.74,8500,11.155,8530,9.904,8531,9.353,8532,7.822,8533,11.49,8534,9.353,8535,9.353,8536,6.957,8537,7.558]],["title/classes/ExternalSource.html",[0,0.231,8538,4.6]],["body/classes/ExternalSource.html",[0,0.329,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,27,0.517,29,0.755,30,0.001,31,0.543,32,0.173,33,0.465,47,0.927,48,5.999,101,0.016,103,0.001,104,0.001,112,0.932,181,3.142,193,7.049,194,7.592,379,1.212,381,3.255,655,6.35,6939,5.752,6940,5.948,8538,9.085,8539,13.131,8540,9.691,8541,11.742,8542,9.691]],["title/classes/ExternalSourceEntity.html",[0,0.231,8543,5.335]],["body/classes/ExternalSourceEntity.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.5,29,0.699,30,0.001,31,0.503,32,0.167,33,0.431,47,0.862,95,0.142,96,2.466,101,0.018,103,0.001,104,0.001,105,0.969,112,0.89,138,2.038,172,3.899,173,2.655,181,2.998,379,1.123,381,3.015,655,6.427,2503,5.79,3075,5.835,5040,5.14,6819,6.064,6939,5.329,6940,5.51,8543,8.776,8544,11.822,8545,8.3,8546,11.187,8547,11.202,8548,8.977,8549,7.122,8550,6.677,8551,7.033,8552,7.521]],["title/interfaces/ExternalSourceEntityProps.html",[105,0.735,8546,5.958]],["body/interfaces/ExternalSourceEntityProps.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.158,47,0.918,95,0.146,96,2.587,101,0.019,103,0.001,104,0.001,105,1.016,107,2.26,112,0.916,172,3.684,173,2.785,181,2.521,655,6.706,2503,5.965,3075,6.089,5040,5.295,6939,5.591,6940,5.781,8543,7.379,8544,8.708,8545,8.708,8546,10.915,8549,7.349,8550,7.005,8551,7.379,8552,7.89]],["title/classes/ExternalSourceResponse.html",[0,0.231,8553,5.705]],["body/classes/ExternalSourceResponse.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.51,29,0.732,30,0.001,31,0.526,32,0.17,33,0.451,47,0.917,48,5.918,95,0.119,101,0.015,103,0.001,104,0.001,112,0.915,138,2.096,150,2.141,181,3.084,193,6.835,194,7.361,245,3.496,379,1.175,381,3.156,655,6.264,6939,5.578,6940,5.767,8553,11.17,8554,12.994,8555,9.397,8556,11.523,8557,9.397]],["title/classes/ExternalTool.html",[0,0.231,2568,3.356]],["body/classes/ExternalTool.html",[0,0.198,2,0.653,3,0.014,4,0.014,5,0.007,7,0.088,8,1.005,27,0.549,29,0.949,30,0.001,31,0.683,32,0.182,33,0.638,34,1.671,35,1.179,47,0.946,55,2.445,95,0.144,101,0.014,103,0,104,0,105,0.629,112,0.665,119,2.408,180,1.502,181,2.243,349,1.013,379,0.729,381,1.958,382,1.759,413,3.643,1198,3.687,1280,2.619,1686,6.237,1870,2.836,1912,5.86,1933,4.711,1934,4.884,1985,2.319,2486,7.801,2487,6.085,2491,9.065,2494,3.236,2557,6.926,2568,4.129,4285,2.552,5057,5.804,5400,5.762,5766,4.567,5770,8.175,5772,5.39,5778,4.24,5780,4.567,5781,3.876,5782,4.154,5783,4.444,5790,3.876,5791,4.24,5807,6.06,5823,3.819,5826,6.565,6264,3.13,6535,4.567,7202,6.366,7204,6.435,7205,3.666,7237,4.076,7238,4.336,7241,4.336,7242,4.711,7338,8.402,7339,8.604,7340,8.124,7359,3.938,7363,4.004,7387,7.025,8558,11.728,8559,8.38,8560,8.38,8561,8.38,8562,5.83,8563,5.83,8564,5.83,8565,5.83,8566,5.83,8567,5.83,8568,5.83,8569,5.83,8570,7.747,8571,5.83,8572,7.747,8573,5.83,8574,5.1,8575,5.39,8576,5.1,8577,7.747]],["title/classes/ExternalToolConfig.html",[0,0.231,2491,5.065]],["body/classes/ExternalToolConfig.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,9,4.425,27,0.51,29,0.73,30,0.001,31,0.525,32,0.185,33,0.45,47,0.812,95,0.119,101,0.015,103,0.001,104,0.001,112,0.914,181,3.08,379,1.172,381,3.149,1870,4.561,2136,7.036,2487,5.893,2489,4.305,2490,7.854,2491,9.911,2492,8.667,2494,6.911,2498,6.68,2507,4.188,2508,6.68,4347,5.625,8578,12.983,8579,11.507]],["title/classes/ExternalToolConfigCreateParams.html",[0,0.231,2512,4.953]],["body/classes/ExternalToolConfigCreateParams.html",[0,0.333,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,9,6.546,27,0.484,30,0.001,32,0.184,47,0.835,95,0.124,101,0.016,103,0.001,104,0.001,112,0.939,1870,4.773,2136,7.176,2487,5.764,2489,4.211,2494,7.049,2511,9.069,2512,8.603,8580,12.7,8581,9.809,8582,9.809]],["title/classes/ExternalToolConfigEntity.html",[0,0.231,2504,5.503]],["body/classes/ExternalToolConfigEntity.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,9,5.266,27,0.499,29,0.694,30,0.001,31,0.5,32,0.186,33,0.428,47,0.787,95,0.141,96,2.45,101,0.015,103,0.001,104,0.001,112,0.886,138,2.029,143,1.986,172,3.887,173,2.637,181,2.986,379,1.115,381,2.995,838,3.817,1870,4.339,2136,6.879,2487,5.79,2489,4.23,2494,6.758,2498,6.354,2501,7.471,2503,5.766,2504,10.613,2507,3.984,2508,6.354,3398,6.354,4347,5.351,8583,12.757,8584,11.156,8585,8.918]],["title/classes/ExternalToolConfigResponse.html",[0,0.231,2522,5.503]],["body/classes/ExternalToolConfigResponse.html",[0,0.333,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,9,6.546,27,0.484,30,0.001,32,0.184,47,0.835,95,0.124,101,0.016,103,0.001,104,0.001,112,0.939,1870,4.773,2136,7.176,2487,5.764,2489,4.211,2494,7.049,2521,7.927,2522,9.558,8586,12.7,8587,9.809,8588,9.809]],["title/injectables/ExternalToolConfigurationService.html",[539,0.901,8589,5.503]],["body/injectables/ExternalToolConfigurationService.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.979,26,2.235,27,0.459,29,0.872,30,0.001,31,0.628,32,0.153,33,0.538,35,1.267,95,0.16,99,0.938,101,0.009,103,0,104,0,119,2.147,131,2.107,143,1.253,177,1.03,226,0.804,349,1.245,363,3.15,379,0.704,437,1.597,519,1.743,539,1.081,541,1.347,556,1.417,564,2.508,593,3.025,603,1.13,639,2.64,654,1.673,662,4.118,821,5.07,1557,3.933,1718,2.369,1839,7.148,1840,5.997,1842,4.024,1870,2.737,1912,2.596,2487,5.304,2489,4.174,2557,5.274,2568,6.754,5450,7.245,5505,4.286,5781,3.741,6034,3.933,8589,6.6,8590,8.908,8591,5.201,8592,9.614,8593,9.614,8594,8.167,8595,8.167,8596,5.201,8597,8.041,8598,5.626,8599,7.329,8600,5.626,8601,10.358,8602,5.626,8603,7.769,8604,10.347,8605,5.626,8606,8.889,8607,5.626,8608,5.82,8609,8.167,8610,8.889,8611,5.626,8612,8.167,8613,5.626,8614,5.626,8615,5.626,8616,5.626,8617,5.626,8618,9.229,8619,5.626,8620,6.842,8621,5.626,8622,5.626,8623,5.626,8624,8.167,8625,5.626,8626,4.713,8627,5.626,8628,5.626,8629,5.626,8630,4.922,8631,5.626,8632,5.626,8633,11.203,8634,5.626,8635,5.626,8636,6.842,8637,5.626,8638,5.626]],["title/injectables/ExternalToolConfigurationUc.html",[539,0.901,8639,5.705]],["body/injectables/ExternalToolConfigurationUc.html",[0,0.134,3,0.009,4,0.009,5,0.005,7,0.06,8,0.75,26,2.93,27,0.437,29,0.832,30,0.001,31,0.598,32,0.151,33,0.512,34,0.674,35,1.225,36,2.576,39,3.203,95,0.158,99,0.66,100,1.33,101,0.007,103,0,104,0,131,4.871,177,1.867,226,0.566,236,1.018,262,2.829,349,0.91,379,0.782,437,1.643,529,1.77,539,0.828,541,0.948,560,1.63,564,2.705,603,2.432,608,2.868,639,1.858,643,2.78,654,1.861,662,3.807,821,3.727,932,4.268,1077,3.84,1609,6.443,1615,2.402,1718,1.668,1767,2.633,1839,6.765,1840,5.849,1842,3.083,1869,5.541,1870,1.926,2472,1.797,2487,5.025,2489,4.125,2568,5.616,2622,2.109,2985,2.217,3098,2.945,3235,4.934,4209,3.756,4692,3.281,4804,5.287,5450,2.719,5468,4.653,5470,4.769,5808,5.641,5831,5.541,5884,6.898,6034,2.768,6124,8.235,6125,7.101,6132,6.498,6140,3.102,6141,3.84,6144,2.88,6149,5.473,6153,3.102,6162,5.784,6167,6.26,6179,3.661,8589,8.631,8601,5.784,8603,6.267,8604,5.241,8606,7.17,8608,4.458,8610,5.784,8618,5.473,8630,3.464,8639,5.241,8640,10.237,8641,3.661,8642,7.17,8643,6.785,8644,7.17,8645,5.784,8646,7.755,8647,7.755,8648,3.102,8649,7.944,8650,3.96,8651,3.661,8652,3.96,8653,3.464,8654,3.96,8655,3.96,8656,3.96,8657,6.256,8658,3.661,8659,3.96,8660,3.96,8661,3.96,8662,3.96,8663,3.661,8664,3.661,8665,3.661,8666,6.256,8667,6.256,8668,4.769,8669,5.784,8670,3.661,8671,3.96,8672,3.96,8673,6.256,8674,7.755,8675,3.2,8676,5.784,8677,5.784,8678,5.784,8679,3.96,8680,3.96,8681,6.256,8682,3.96,8683,3.96,8684,6.256,8685,3.96,8686,6.256,8687,3.96,8688,3.464,8689,5.784,8690,4.55,8691,5.784,8692,5.473,8693,5.473]],["title/classes/ExternalToolContentBody.html",[0,0.231,5712,4.528]],["body/classes/ExternalToolContentBody.html",[0,0.454,2,0.644,3,0.013,4,0.013,5,0.007,7,0.087,9,2.717,27,0.236,30,0.001,31,0.633,32,0.186,33,0.398,47,0.894,83,1.767,95,0.143,99,0.96,101,0.022,103,0,104,0,112,0.659,138,1.047,143,1.281,148,1.826,149,3.705,150,1.311,153,2.214,172,1.837,180,2.026,245,3.631,248,5.066,249,4.764,284,1.777,305,3.314,480,3.138,806,5.289,807,3.388,838,1.804,851,2.749,1198,1.978,1207,1.837,1582,3.346,1883,4.027,2196,4.573,2442,2.818,2823,2.783,2824,2.532,2863,2.836,3219,3.416,3221,3.416,3224,3.38,3227,5.034,3230,2.953,3235,5.453,3708,3.574,3729,3.574,3730,6.858,4104,5.635,5622,6.205,5624,6.289,5626,6.205,5628,6.289,5630,6.289,5675,3.77,5712,7.089,5713,6.475,5714,6.475,5715,6.475,5716,6.475,5904,3.619,5905,6.798,7047,3.826,7107,3.666,8239,8.2,8240,5.702,8241,3.952,8244,5.438,8245,6.475,8246,6.475,8247,3.952,8248,6.475,8249,3.532,8250,3.887,8251,6.475,8252,6.475,8253,3.826,8254,3.826,8255,3.826,8256,3.826,8257,3.952,8258,3.952,8259,3.952,8260,3.952,8261,3.952,8694,5.755,8695,5.755]],["title/classes/ExternalToolCreateParams.html",[0,0.231,8696,5.705]],["body/classes/ExternalToolCreateParams.html",[0,0.35,2,0.713,3,0.015,4,0.015,5,0.008,7,0.096,27,0.512,29,0.802,30,0.001,31,0.682,32,0.183,33,0.584,47,0.859,95,0.154,101,0.01,103,0.001,104,0.001,112,0.708,119,2.271,138,2.274,143,2.292,147,5.527,148,2.02,149,4.244,150,1.45,172,2.032,245,3.08,248,4.656,249,4.513,480,2.858,521,3.532,556,1.603,1198,3.539,1241,3.63,1870,3.097,1912,5.148,2281,5.351,2347,3.63,2487,5.79,2489,4.23,2494,3.533,2497,4.45,2509,9.492,2512,6.487,2513,4.535,3022,6.355,3707,4.852,3708,3.953,3729,3.953,3730,6.246,5537,5.682,5807,5.817,5894,6.487,5897,5.332,5898,5.332,5899,5.332,5904,4.003,5905,5.765,7202,6.111,7204,6.177,7359,4.299,7363,4.371,7393,9.492,7401,6.798,8254,5.93,8255,4.232,8256,5.93,8696,7.471,8697,10.309,8698,5.143,8699,9.346,8700,9.84,8701,5.568,8702,5.884,8703,6.365,8704,6.365,8705,5.884,8706,5.568,8707,6.365,8708,6.365,8709,6.365,8710,5.884,8711,6.365,8712,5.884,8713,6.365,8714,6.365]],["title/classes/ExternalToolElement.html",[0,0.231,2802,4.461]],["body/classes/ExternalToolElement.html",[0,0.224,2,0.737,3,0.015,4,0.015,5,0.008,7,0.1,8,1.095,27,0.542,29,0.958,30,0.001,31,0.689,32,0.176,33,0.59,35,1.545,36,1.943,47,0.839,55,1.965,59,2.045,95,0.116,101,0.017,103,0.001,104,0.001,105,0.71,112,0.725,119,2.134,137,5.742,145,1.828,180,1.879,262,2.297,349,1.083,381,3.067,382,3.881,448,3.742,474,2.812,479,3.42,480,2.535,517,2.524,519,3.684,556,2.852,604,2.675,608,1.517,662,2.871,686,4.31,1154,2.618,1603,2.475,1604,3.864,1607,6.77,1679,4.167,1885,2.747,2453,5.843,2489,3.476,2727,7.925,2730,6.506,2731,6.506,2732,6.506,2733,7.527,2734,6.506,2736,4.377,2737,5.604,2738,6.65,2740,6.384,2741,5.604,2742,6.519,2744,4.603,2745,4.826,2747,6.593,2748,4.603,2752,4.603,2754,4.377,2781,5.54,2802,7.416,3235,6.34,3967,4.788,3968,4.788,3969,4.788,3978,4.14,8715,9.692,8716,4.691,8717,6.583,8718,6.086,8719,6.583,8720,6.583,8721,5.759,8722,6.583,8723,5.759,8724,8.442,8725,6.086,8726,6.086,8727,6.086,8728,5.759,8729,6.086]],["title/classes/ExternalToolElementContent.html",[0,0.231,8730,5.705]],["body/classes/ExternalToolElementContent.html",[0,0.363,2,0.934,3,0.019,4,0.019,5,0.01,7,0.127,27,0.438,29,0.65,30,0.001,31,0.467,32,0.17,33,0.4,34,1.421,47,0.909,95,0.15,99,1.392,101,0.018,103,0.001,104,0.001,112,0.849,138,1.518,142,4.184,143,2.772,144,3.524,150,1.901,181,3.159,245,3.453,253,4.086,379,1.044,381,2.803,404,3.405,405,4.592,593,3.961,818,4.194,838,2.616,2196,3.376,2489,3.914,2507,3.728,2859,4.445,2860,4.445,2863,4.112,3235,6.611,3402,5.834,3414,5.121,3657,4.953,3661,6.22,3665,5.548,3667,5.548,4024,8.153,4104,6.239,4347,5.007,5630,5.389,6934,6.361,8730,11.034,8731,10.915,8732,6.743,8733,8.344,8734,7.715,8735,7.715,8736,7.715]],["title/classes/ExternalToolElementContentBody.html",[0,0.231,8252,4.528]],["body/classes/ExternalToolElementContentBody.html",[0,0.453,2,0.633,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,806,5.219,807,3.343,818,2.84,838,1.771,851,2.699,1198,1.942,1207,1.804,1582,3.285,1883,3.986,2196,4.884,2442,2.766,2823,2.732,2824,2.485,2863,2.784,3219,3.353,3221,3.353,3224,3.319,3227,4.981,3230,2.899,3235,3.164,3708,3.509,3729,3.509,3730,6.808,4104,5.587,5622,6.14,5624,6.224,5626,6.14,5628,6.224,5630,6.826,5675,3.701,5712,7.028,5713,6.408,5714,6.408,5715,6.408,5716,6.408,5904,3.553,5905,6.76,7047,3.756,7107,3.599,8239,8.513,8240,5.626,8241,3.88,8244,5.366,8245,6.408,8246,6.408,8247,3.88,8248,6.408,8249,3.467,8250,3.816,8251,6.408,8252,7.028,8253,3.756,8254,3.756,8255,3.756,8256,3.756,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8261,3.88,8737,4.426,8738,5.65,8739,5.65]],["title/entities/ExternalToolElementNodeEntity.html",[154,1.456,3145,5.335]],["body/entities/ExternalToolElementNodeEntity.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.131,27,0.353,30,0.001,32,0.118,33,0.524,95,0.165,96,2.371,101,0.018,103,0.001,104,0.001,105,0.931,112,0.868,138,1.57,143,2.433,144,2.843,154,2.336,155,2.88,173,2.552,180,1.958,181,2.31,349,0.891,403,4.791,437,1.116,564,3.356,1603,3.245,1604,4.624,1840,6.47,1883,4.52,2453,5.189,2489,3.623,2506,4.877,2507,3.856,3112,5.733,3123,6.557,3145,8.562,3190,5.297,3215,9.561,3358,5.83,3543,5.574,3561,6.707,3582,5.361,4067,5.499,4069,5.499,5040,5.015,5839,9.17,5840,7.23,8740,10.104,8741,8.631,8742,7.551,8743,7.98,8744,9.561,8745,7.98,8746,7.98,8747,7.98]],["title/interfaces/ExternalToolElementNodeEntityProps.html",[105,0.735,8744,5.958]],["body/interfaces/ExternalToolElementNodeEntityProps.html",[0,0.296,3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,32,0.119,33,0.528,95,0.165,96,2.397,101,0.018,103,0.001,104,0.001,105,0.941,107,2.093,112,0.874,143,1.942,144,2.874,154,2.352,173,2.58,180,2.16,181,2.335,349,0.901,403,4.843,437,1.128,564,3.378,1603,3.28,1604,4.656,1840,6.696,1883,3.608,2453,5.225,2489,2.893,2506,4.93,2507,3.898,3112,5.772,3123,6.602,3145,6.835,3190,5.355,3215,9.626,3358,5.893,3543,5.634,3561,7.397,3582,5.419,4067,5.558,4069,5.558,5040,5.049,5839,9.491,5840,7.309,8740,8.066,8743,8.066,8744,10.544,8745,8.066,8746,8.066,8747,8.066]],["title/interfaces/ExternalToolElementProps.html",[105,0.735,8728,5.958]],["body/interfaces/ExternalToolElementProps.html",[0,0.298,3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,32,0.151,33,0.529,36,1.864,47,0.922,95,0.14,101,0.02,103,0.001,104,0.001,105,0.946,107,2.103,112,0.876,119,1.783,145,2.433,180,2.164,262,1.92,349,1.247,474,3.743,480,2.433,517,3.36,519,2.714,556,2.779,604,3.56,608,2.02,1154,3.485,1603,3.295,1679,5.035,1885,3.657,2489,2.905,2727,6.694,2733,5.826,2737,5.378,2738,6.481,2741,5.378,2742,6.353,2781,7.327,2802,7.911,3235,7.316,3978,5.511,8715,8.101,8716,6.244,8724,10.201,8725,8.101,8726,8.101,8727,8.101,8728,9.653,8729,8.101]],["title/classes/ExternalToolElementResponse.html",[0,0.231,4024,5.191]],["body/classes/ExternalToolElementResponse.html",[0,0.347,2,0.873,3,0.018,4,0.018,5,0.009,7,0.118,27,0.516,29,0.607,30,0.001,31,0.437,32,0.185,33,0.374,34,1.946,47,0.856,95,0.145,99,1.3,101,0.017,103,0.001,104,0.001,112,0.813,138,2.207,142,3.049,143,2.279,144,2.568,150,1.776,181,3.058,245,3.506,253,3.817,379,0.975,381,2.618,404,3.181,405,4.289,593,2.887,838,2.444,2196,4.622,2489,4.287,2507,3.482,2858,5.106,2859,5.451,2860,5.451,2862,4.784,2863,5.043,3235,4.365,3402,5.45,3414,4.784,3657,6.782,3661,6.644,3665,5.183,3667,5.183,4024,9.604,4104,6.659,4347,4.677,5630,6.609,6934,5.942,8730,10.163,8731,11.955,8734,7.207,8735,7.207,8736,7.207,8748,7.207,8749,7.795,8750,7.207,8751,7.795,8752,7.207]],["title/classes/ExternalToolElementResponseMapper.html",[0,0.231,5648,5.958]],["body/classes/ExternalToolElementResponseMapper.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,8,1.213,27,0.494,29,0.788,30,0.001,31,0.567,32,0.165,33,0.485,34,1.305,35,1.361,95,0.144,99,1.278,100,2.573,101,0.013,103,0.001,104,0.001,112,0.803,119,2.059,236,1.96,349,1.17,376,3.337,413,3.963,437,0.991,593,2.837,603,2.276,604,3.113,662,2.409,739,4.429,781,4.547,782,5.616,785,6.002,787,5.698,1280,3.163,1883,5.509,1941,4.37,2196,3.099,2444,8.426,2447,7.926,2448,7.926,2450,7.713,2489,4.154,2802,8.726,3235,4.29,3657,4.547,3661,5.884,3678,5.459,4024,9.185,4104,4.049,5231,7.125,5630,4.948,5647,6.002,5648,11.481,8730,8.476,8753,12.528,8754,9.185,8755,6.418,8756,6.002,8757,11.329,8758,6.191,8759,6.191,8760,6.191,8761,7.661]],["title/entities/ExternalToolEntity.html",[154,1.456,8762,4.853]],["body/entities/ExternalToolEntity.html",[0,0.219,3,0.015,4,0.015,5,0.008,7,0.098,27,0.533,29,0.808,30,0.001,31,0.581,32,0.18,33,0.614,47,0.904,55,1.938,95,0.142,96,1.774,101,0.015,103,0.001,104,0.001,112,0.715,119,2.285,138,2.366,143,2.933,144,3.89,154,1.925,155,2.155,160,5.917,168,5.138,172,4.25,173,1.909,174,3.583,177,1.182,178,2.682,180,1.157,181,1.728,182,2.1,363,3.616,1198,3.567,1241,3.682,1672,4.69,1912,5.18,1933,5.217,1934,5.409,1985,2.568,2487,5.979,2499,9.072,4269,6.419,4275,5.661,4276,3.917,4285,2.826,5057,5.615,5790,4.293,5791,4.696,5807,5.862,5823,4.229,5826,5.058,5841,5.217,6264,3.466,6535,5.058,7202,6.158,7204,6.225,7205,4.061,7237,4.514,7238,4.802,7241,4.802,7242,5.217,7300,9.072,8576,5.648,8762,6.419,8763,13.173,8764,8.691,8765,9.072,8766,9.072,8767,6.456,8768,6.456,8769,6.456,8770,6.456,8771,6.456,8772,6.456,8773,6.456,8774,6.456,8775,6.456,8776,6.456,8777,7.546,8778,6.456,8779,6.456,8780,6.456]],["title/classes/ExternalToolEntityFactory.html",[0,0.231,8781,6.296]],["body/classes/ExternalToolEntityFactory.html",[0,0.136,2,0.447,3,0.009,4,0.009,5,0.005,7,0.061,8,0.755,27,0.53,29,0.999,30,0.001,31,0.719,32,0.182,33,0.582,34,1.329,35,1.373,47,0.784,55,2.306,59,2.994,95,0.112,101,0.013,103,0,104,0,112,0.5,120,2.772,133,2.203,140,2.237,143,0.889,145,2.166,153,2.013,154,2.06,155,2.102,177,1.153,180,1.129,236,1.44,239,0.917,249,1.616,271,4.93,319,2.844,349,1.107,363,2.237,379,0.5,382,3.714,413,1.94,437,1.386,447,7.002,448,4.197,449,5.004,452,3.56,453,5.004,454,5.427,455,3.56,456,3.56,457,3.56,458,3.497,459,4.003,460,4.408,461,6.439,462,5.349,463,6.82,464,2.278,469,2.257,470,3.56,471,2.278,472,4.68,473,4.832,474,3.782,475,4.544,476,3.528,477,2.257,478,2.128,479,3.835,480,3.084,481,2.198,482,2.162,483,2.257,484,4.61,485,2.278,486,3.52,487,4.33,488,2.257,489,7.19,490,3.938,491,6.276,492,2.278,493,3.869,494,2.257,495,2.278,496,2.257,497,2.278,498,2.257,499,2.545,500,2.371,501,2.257,502,5.683,503,2.278,504,2.257,505,3.56,506,3.33,507,3.56,508,2.278,509,2.18,510,2.162,511,1.785,512,2.257,513,2.257,514,2.257,515,2.278,516,2.278,517,1.532,518,2.257,519,1.238,520,2.278,521,2.495,522,2.257,523,2.278,525,2.323,526,2.371,527,5.782,564,1.227,708,1.66,1198,1.373,1430,3.663,1868,2.847,1912,4.086,1925,3.41,1937,3.693,2136,5.004,2489,3.553,2494,2.217,2497,5.453,2499,6.303,2562,2.793,5057,2.162,5440,3.045,5450,2.744,5468,2.971,5488,4.127,5505,1.623,5590,3.145,5768,2.036,5807,2.257,5853,2.58,5870,2.698,7180,2.617,7186,2.58,7188,4.069,7189,3.347,7190,2.58,7201,2.545,7202,2.371,7204,2.397,7276,2.58,7277,2.971,7300,5.091,7336,2.906,7341,2.481,7359,2.698,7366,3.347,7368,2.847,7369,4.802,7376,3.347,7386,7.418,7388,3.347,8762,4.489,8764,3.347,8765,5.091,8766,5.091,8777,5.278,8781,7.212,8782,10.238,8783,3.995,8784,8.855,8785,8.186,8786,5.825,8787,5.825,8788,3.995,8789,3.995,8790,3.995,8791,5.825,8792,3.995,8793,6.3,8794,3.995,8795,8.855,8796,3.995,8797,3.995,8798,3.228,8799,3.347,8800,3.995,8801,3.995,8802,3.995,8803,3.995]],["title/classes/ExternalToolFactory.html",[0,0.231,7378,5.705]],["body/classes/ExternalToolFactory.html",[0,0.252,2,0.416,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,27,0.518,29,0.994,30,0.001,31,0.702,32,0.18,33,0.58,34,1.013,35,1.341,47,0.42,55,2.516,59,3.363,95,0.118,101,0.015,103,0,104,0,112,0.472,120,2.616,133,2.079,140,2.08,145,2.36,153,1.69,154,1.589,155,1.984,177,1.088,180,1.523,239,0.852,249,1.503,271,5.03,319,2.685,349,1.208,363,2.08,379,0.465,382,3.649,413,1.831,437,1.564,447,6.655,448,4.065,449,4.803,452,3.36,453,4.803,454,5.139,455,3.36,456,3.36,457,3.36,458,3.3,459,3.816,460,4.201,461,6.3,462,5.161,463,6.634,464,2.119,469,2.099,470,3.36,471,2.119,472,4.492,473,4.638,474,3.631,475,4.362,476,3.33,477,2.099,478,1.979,479,3.715,480,3.005,481,2.044,482,2.01,483,2.099,484,4.425,485,2.119,486,3.256,487,4.127,488,2.099,489,7.572,490,3.838,491,6.116,492,2.119,493,2.949,494,2.099,495,2.119,496,2.099,497,2.119,498,2.099,501,2.099,502,5.506,503,2.119,504,2.099,505,3.36,506,3.143,507,3.36,508,2.119,509,2.027,510,2.01,511,1.659,512,2.099,513,2.099,514,2.099,515,2.119,516,2.119,517,1.424,518,2.099,519,1.151,520,2.119,521,2.355,522,2.099,523,2.119,525,2.16,526,2.205,527,5.099,564,1.141,708,1.543,1198,1.277,1241,2.119,1430,3.458,1842,1.83,1868,2.647,1912,3.431,1925,3.218,2136,4.201,2486,2.702,2489,1.232,2494,2.062,2497,2.597,2557,3.84,2562,2.597,2568,1.83,4317,6.625,4319,2.702,5057,2.01,5440,2.832,5450,2.551,5468,4.423,5470,2.832,5505,3.778,5590,2.969,5768,1.893,5807,2.099,5864,3.002,5869,2.91,5870,2.509,7180,2.433,7186,2.399,7188,2.399,7190,2.399,7201,2.367,7202,2.205,7204,2.229,7276,2.399,7331,4.981,7332,8.134,7334,3.25,7336,2.702,7337,4.423,7338,2.91,7339,2.702,7340,2.551,7341,2.307,7342,3.25,7343,3.25,7344,3.25,7345,6.505,7346,4.981,7347,3.25,7348,3.608,7349,3.002,7350,2.702,7351,2.832,7352,3.25,7353,2.763,7354,3.25,7355,3.25,7356,3.112,7357,3.25,7358,3.25,7359,2.509,7360,3.25,7361,3.25,7362,3.25,7363,2.551,7364,3.25,7365,3.25,7366,3.112,7367,3.25,7368,2.647,7369,4.533,7370,5.202,7371,6.505,7372,2.91,7373,5.202,7374,5.202,7375,3.25,7376,3.112,7377,2.91,7378,6.229,7379,5.202,7380,3.25,7381,5.202,7382,3.25,7383,5.202,7384,8.677,7385,3.25,7386,7.12,7387,2.433,7388,3.112,7389,3.25,7390,3.25,7391,3.25,7392,3.25,8785,5.498,8787,5.498,8804,5.946,8805,3.715,8806,3.715,8807,3.715,8808,3.715]],["title/classes/ExternalToolIdParams.html",[0,0.231,8809,5.958]],["body/classes/ExternalToolIdParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.231,145,3.284,148,3.113,150,2.235,245,3.101,256,6.99,807,4.827,2487,5.369,2489,3.922,5806,8.879,5873,8.217,5874,8.581,8697,9.558,8809,10.348]],["title/classes/ExternalToolLogo.html",[0,0.231,8810,5.705]],["body/classes/ExternalToolLogo.html",[0,0.323,2,1.064,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.74,30,0.001,31,0.533,32,0.171,33,0.456,47,0.819,101,0.016,103,0.001,104,0.001,112,0.922,379,1.189,2487,5.922,2489,4.326,6343,8.927,7064,9.723,7387,8.207,8558,11.414,8574,8.318,8810,11.401,8811,9.508,8812,11.606,8813,11.606,8814,9.508,8815,9.508,8816,9.508,8817,8.79]],["title/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.231,8818,5.958]],["body/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.229,2,0.754,3,0.016,4,0.016,5,0.008,7,0.102,8,1.112,27,0.53,29,0.525,30,0.001,31,0.377,32,0.183,33,0.509,35,1.115,47,0.875,55,1.45,59,2.093,95,0.135,101,0.011,103,0.001,104,0.001,112,0.737,138,2.181,177,2.477,180,1.663,182,2.192,226,0.963,284,2.081,340,3.238,345,2.145,347,2.468,349,0.696,379,0.843,382,3.739,564,3.258,595,7.191,603,1.353,820,5.246,823,2.364,950,4.924,988,2.906,990,3.866,1025,4.473,1205,8.057,1206,6.052,1207,3.651,1208,6.761,1212,4.351,1213,3.74,1214,4.351,1215,4.351,1216,4.351,1217,4.351,1218,4.351,1219,4.042,1220,7.378,1226,4.237,1275,5.687,1276,5.446,1278,2.132,1280,2.9,1281,5.634,2487,4.817,2489,4.109,2659,9.239,5807,5.996,5823,4.413,7387,8.118,8369,5.485,8370,5.697,8818,8.117,8819,8.575,8820,4.237,8821,6.229,8822,4.801,8823,5.894,8824,9.278,8825,7.497,8826,5.644,8827,3.918,8828,4.088,8829,6.738]],["title/classes/ExternalToolLogoFetchedLoggable.html",[0,0.231,8830,5.958]],["body/classes/ExternalToolLogoFetchedLoggable.html",[0,0.303,2,1.001,3,0.021,4,0.021,5,0.011,7,0.136,8,1.339,27,0.458,29,0.696,30,0.001,31,0.501,32,0.153,33,0.429,35,1.074,47,0.86,95,0.113,101,0.015,103,0.001,104,0.001,177,1.636,284,2.76,345,2.845,349,0.923,379,1.118,564,2.744,1025,3.496,1271,7.819,1275,5.592,1276,6.254,1278,2.828,1280,3.492,1281,6.291,2487,5.531,2489,4.233,5807,6.886,5823,5.854,7387,8.363,8369,6.299,8370,6.543,8819,9.848,8821,8.263,8825,10.317,8830,9.773,8831,8.938,8832,8.938,8833,8.938]],["title/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.231,8834,5.958]],["body/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.293,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.31,27,0.448,29,0.672,30,0.001,31,0.483,32,0.149,33,0.414,35,1.037,47,0.846,95,0.139,101,0.014,103,0.001,104,0.001,177,1.58,180,1.958,182,2.807,226,1.234,284,2.666,292,6.38,345,2.747,349,0.891,379,1.079,564,2.65,1025,3.376,1275,6.097,1276,6.154,1278,2.73,1280,3.416,1281,6.212,2487,5.444,2489,4.18,2622,6.388,5806,8.385,5818,7.23,7387,8.258,8369,6.199,8370,6.439,8819,9.691,8820,5.428,8827,5.019,8828,5.236,8834,9.561,8835,7.98,8836,6.974,8837,6.974,8838,8.631]],["title/classes/ExternalToolLogoService.html",[0,0.231,8649,5.065]],["body/classes/ExternalToolLogoService.html",[0,0.162,2,0.533,3,0.011,4,0.011,5,0.006,7,0.072,8,0.865,26,2.059,27,0.468,29,0.889,30,0.001,31,0.64,32,0.156,33,0.548,34,1.229,35,1.321,36,2.339,47,0.913,95,0.158,99,0.794,101,0.008,103,0,104,0,177,1.779,226,0.681,236,1.914,262,2.639,349,1.215,379,0.902,437,1.672,484,5.724,519,2.235,529,3.11,556,2.449,564,1.462,579,2.536,603,2.467,604,3.54,608,2.008,639,2.234,696,1.878,823,1.67,962,7.985,963,2.741,964,5.5,965,3.118,988,2.053,990,2.946,1077,2.922,1178,2.556,1275,2.184,1278,1.506,1718,2.005,1911,5.141,1912,2.197,1923,3.328,2253,4.681,2487,5.34,2489,4.138,2568,6.149,3671,5.652,5807,2.69,6167,7.01,6173,3.847,6343,6.927,7064,9.855,7387,6.368,7524,3.541,8590,8.967,8596,4.401,8597,7.41,8599,6.641,8649,5.366,8675,3.847,8764,6.044,8810,8.751,8818,4.165,8830,4.165,8834,4.165,8839,4.761,8840,7.215,8841,7.215,8842,7.215,8843,7.215,8844,7.215,8845,7.215,8846,4.761,8847,7.215,8848,4.761,8849,7.215,8850,4.761,8851,4.761,8852,7.215,8853,4.761,8854,7.215,8855,4.761,8856,7.215,8857,4.761,8858,2.598,8859,7.215,8860,4.761,8861,4.401,8862,6.312,8863,9.992,8864,4.761,8865,4.761,8866,7.215,8867,4.761,8868,4.761,8869,4.401,8870,4.761,8871,4.761,8872,4.165,8873,4.165,8874,4.761,8875,4.761,8876,4.761,8877,4.761,8878,4.401,8879,4.761,8880,6.671,8881,4.761,8882,7.215,8883,3.392,8884,8.712,8885,4.761,8886,4.761,8887,3.216,8888,4.761,8889,3.729,8890,4.761,8891,4.761,8892,4.761,8893,4.761,8894,7.215,8895,4.761,8896,4.165,8897,4.761,8898,4.761,8899,7.215,8900,4.761,8901,4.761,8902,4.761,8903,4.761,8904,4.761]],["title/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.231,8862,5.958]],["body/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.225,2,0.743,3,0.015,4,0.015,5,0.008,7,0.101,8,1.101,27,0.528,29,0.517,30,0.001,31,0.372,32,0.183,33,0.505,35,1.103,47,0.871,55,2.445,95,0.133,101,0.011,103,0.001,104,0.001,112,0.729,138,2.169,177,2.47,180,1.646,182,2.159,226,0.949,284,2.05,340,3.19,347,2.431,349,0.686,379,1.148,382,3.722,556,2.652,564,3.233,603,1.845,820,5.213,822,6.908,823,2.329,950,4.885,988,2.863,990,3.841,1025,4.444,1205,8.031,1206,6.005,1207,3.627,1208,6.708,1212,4.287,1213,3.684,1214,4.287,1215,4.287,1216,4.287,1217,4.287,1218,4.287,1219,3.982,1220,3.786,1226,4.174,1227,5.2,1275,5.661,1276,5.403,1278,2.1,1280,2.87,1281,5.598,2487,4.779,2489,4.09,5806,7.361,5818,5.56,7387,8.081,8369,5.442,8370,5.652,8819,8.508,8820,4.174,8822,4.73,8827,3.86,8828,4.027,8835,6.137,8862,8.033,8905,11.406,8906,9.939,8907,6.638,8908,9.183,8909,6.638]],["title/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.231,8863,5.958]],["body/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.233,2,0.768,3,0.016,4,0.016,5,0.015,7,0.104,8,1.127,27,0.532,30,0.001,32,0.19,33,0.451,35,1.129,47,0.756,55,1.477,95,0.136,101,0.011,103,0.001,104,0.001,112,0.746,138,2.195,177,2.441,180,1.684,182,2.233,226,0.981,340,3.299,347,2.514,349,0.709,379,1.34,382,3.761,564,3.29,820,5.288,823,2.409,950,4.972,988,2.96,990,3.896,1025,4.508,1205,8.09,1206,6.112,1207,3.679,1208,6.827,1212,4.433,1213,3.81,1214,4.433,1215,4.433,1216,4.433,1217,4.433,1218,4.433,1219,4.118,1220,3.915,1226,4.317,1227,5.377,1275,5.719,1276,5.499,1278,2.172,1280,2.937,1281,5.678,1454,6.696,2487,4.864,2489,4.132,6259,4.893,7387,8.164,7844,9.501,8369,5.538,8370,5.753,8819,8.659,8820,4.317,8822,4.891,8823,6.005,8827,3.991,8828,4.164,8863,8.221,8910,9.397,8911,9.397,8912,8.688]],["title/modules/ExternalToolModule.html",[201,1.804,5882,5.191]],["body/modules/ExternalToolModule.html",[0,0.232,3,0.016,4,0.016,5,0.008,30,0.001,95,0.167,101,0.011,103,0.001,104,0.001,201,2.831,203,2.456,204,2.639,205,2.716,206,2.705,207,2.693,208,3.914,209,4.018,214,5.774,218,3.724,219,2.661,220,2.598,225,3.693,226,0.976,227,2.812,560,2.812,963,3.932,1278,2.16,2487,3.1,2489,2.264,3939,6.226,4620,3.53,5080,3.932,5376,9.052,5386,5.518,5882,10.961,6167,8.322,8336,9.052,8589,10.957,8649,9.653,8913,6.829,8914,6.829,8915,6.829,8916,6.829,8917,9.749,8918,9.486,8919,11.359,8920,11.359,8921,10.425,8922,10.425,8923,10.425,8924,6.829,8925,4.541,8926,4.774,8927,5.721]],["title/injectables/ExternalToolParameterValidationService.html",[539,0.901,8921,5.705]],["body/injectables/ExternalToolParameterValidationService.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.754,27,0.489,29,0.944,30,0.001,31,0.689,32,0.168,33,0.572,35,1.405,36,1.882,72,1.81,95,0.136,101,0.007,103,0,104,0,119,2.65,143,2.471,145,2.163,177,1.151,226,0.57,236,1.973,262,2.242,283,6.812,285,2.612,333,3.743,340,1.916,349,1.325,361,2.253,363,7.379,379,0.787,437,1.144,480,2.163,484,5.326,486,2.344,521,1.579,529,3.232,539,0.833,541,0.954,564,1.224,579,2.124,590,2.447,593,2.33,603,2.734,608,1.45,935,4.008,996,1.904,997,1.882,998,1.882,1178,2.14,1241,6.33,1718,1.679,1870,1.94,2036,2.693,2148,2.419,2259,2.296,2487,5.505,2489,4.131,2557,8.815,2568,5.763,3252,7.41,5383,8.389,5410,3.123,5450,2.738,5460,3.686,5462,2.476,5477,8.654,5480,3.686,5482,5.269,5483,5.269,5488,5.103,5505,1.62,5781,2.651,6167,6.278,6172,3.123,6173,3.222,6178,5.269,6507,4.398,7372,4.928,8590,9.246,8636,3.34,8648,3.123,8883,2.841,8921,5.269,8928,6.29,8929,6.29,8930,6.29,8931,6.29,8932,6.29,8933,6.29,8934,6.29,8935,6.29,8936,6.29,8937,6.29,8938,3.488,8939,6.29,8940,3.686,8941,6.29,8942,3.987,8943,6.29,8944,3.987,8945,6.29,8946,3.987,8947,6.29,8948,3.987,8949,6.29,8950,3.987,8951,6.29,8952,3.686,8953,6.29,8954,3.987,8955,6.29,8956,3.987,8957,6.29,8958,3.686,8959,3.987,8960,3.987,8961,3.987,8962,5.938,8963,3.987,8964,3.987,8965,3.987,8966,3.987,8967,3.987,8968,3.987,8969,2.9,8970,3.987,8971,3.987,8972,3.039,8973,3.987,8974,3.987,8975,3.987,8976,3.039,8977,3.987,8978,3.987,8979,3.987,8980,3.987,8981,3.987,8982,3.488,8983,3.987,8984,3.686,8985,3.987,8986,6.29,8987,3.987,8988,6.29,8989,3.987,8990,3.987,8991,3.987,8992,7.202,8993,3.987,8994,3.987,8995,3.987,8996,3.987,8997,6.29,8998,6.29,8999,3.987,9000,6.29]],["title/interfaces/ExternalToolProps.html",[105,0.735,7338,5.335]],["body/interfaces/ExternalToolProps.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,29,0.93,30,0.001,31,0.669,32,0.181,33,0.636,34,1.938,47,0.987,55,2.57,95,0.151,101,0.015,103,0.001,104,0.001,105,0.719,107,1.598,112,0.731,119,2.626,180,1.193,181,1.782,349,1.089,413,2.834,1198,4.105,1280,2.082,1686,5.352,1870,3.24,1912,5.952,1933,5.381,1934,5.579,1985,2.649,2486,8.685,2487,3.023,2491,7.845,2494,3.696,2557,7.712,2568,3.282,4285,2.915,5057,6.462,5400,5.406,5766,5.217,5770,5.076,5780,5.217,5781,4.428,5782,4.745,5783,5.076,5790,4.428,5791,4.844,5807,6.748,5823,4.362,5826,7.21,6264,3.575,6535,5.217,7202,7.088,7204,7.165,7205,4.188,7237,4.656,7238,4.953,7241,4.953,7242,5.381,7338,8.263,7339,8.982,7340,8.482,7359,4.498,7363,4.574,7387,7.822,8558,5.826,8570,6.157,8572,6.157,8574,5.826,8575,6.157,8576,5.826,8577,8.509]],["title/entities/ExternalToolPseudonymEntity.html",[154,1.456,9001,4.853]],["body/entities/ExternalToolPseudonymEntity.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,26,2.239,27,0.479,30,0.001,32,0.16,34,1.395,39,3.443,47,0.826,49,5.26,95,0.157,96,2.904,97,3.55,99,1.366,101,0.017,103,0.001,104,0.001,105,0.884,112,0.929,138,2.128,154,2.259,155,2.734,168,6.674,172,4.185,173,2.423,174,4.204,178,3.403,180,1.468,181,2.192,182,2.665,191,4.433,192,5.219,404,3.343,405,5.816,564,2.515,593,3.034,2489,4.244,4276,4.97,8858,6.984,9001,7.532,9002,11.432,9003,7.573,9004,7.12,9005,7.166,9006,8.192,9007,8.192,9008,8.192,9009,8.855,9010,5.446,9011,6.619,9012,6.862,9013,5.958,9014,6.417]],["title/injectables/ExternalToolPseudonymRepo.html",[539,0.901,9015,5.705]],["body/injectables/ExternalToolPseudonymRepo.html",[0,0.15,3,0.01,4,0.01,5,0.005,7,0.067,8,0.819,13,4.967,26,2.806,27,0.493,29,0.938,30,0.001,31,0.675,32,0.165,33,0.578,34,0.755,35,1.417,36,2.783,39,3.241,42,4.967,47,0.588,49,1.747,56,2.142,58,2.861,59,1.377,95,0.141,96,1.217,97,1.92,99,0.739,101,0.007,103,0,104,0,154,2.458,155,3.125,177,0.811,226,0.633,227,1.824,236,2.024,262,2.934,310,1.92,345,1.41,349,1.267,376,1.93,377,2.011,379,0.554,437,1.703,448,4.38,490,2.955,539,0.904,541,1.061,556,1.116,593,3.468,608,2.463,725,6.965,815,3.696,821,4.5,1604,4.712,1718,1.866,2252,5.392,2276,2.992,2287,3.097,2300,3.377,2305,4.775,2319,3.711,2489,4.065,2771,4.054,3282,3.097,3287,4.143,3348,3.58,4389,2.823,4403,3.711,4404,3.711,5505,3.386,5951,3.097,6680,2.658,6970,5.682,6999,3.222,7000,3.222,8858,6.575,9001,8.585,9004,7.745,9009,7.845,9010,4.541,9015,5.721,9016,12.261,9017,4.43,9018,6.314,9019,5.975,9020,6.314,9021,6.314,9022,6.314,9023,5.721,9024,5.975,9025,6.314,9026,4.43,9027,6.314,9028,4.43,9029,5.975,9030,4.43,9031,4.43,9032,6.314,9033,4.43,9034,6.314,9035,4.43,9036,6.314,9037,7.845,9038,4.43,9039,5.206,9040,4.43,9041,6.314,9042,4.43,9043,6.314,9044,4.43,9045,5.206,9046,5.975,9047,4.43,9048,4.43,9049,5.975,9050,9.352,9051,6.829,9052,4.43,9053,3.876,9054,4.096,9055,4.43,9056,4.096,9057,4.43,9058,3.876,9059,4.096,9060,5.975,9061,4.43,9062,4.43,9063,4.096,9064,4.096,9065,4.096,9066,4.096,9067,4.096,9068,4.096,9069,3.711,9070,4.43,9071,4.43,9072,4.43,9073,3.876,9074,4.43,9075,3.876]],["title/injectables/ExternalToolRepo.html",[539,0.901,8922,5.705]],["body/injectables/ExternalToolRepo.html",[0,0.132,3,0.009,4,0.009,5,0.005,7,0.059,8,0.737,10,2.499,12,2.822,18,3.113,26,2.328,27,0.531,29,1.002,30,0.001,31,0.73,32,0.178,33,0.617,34,1.303,35,1.533,36,2.664,40,1.874,47,0.713,55,0.834,56,1.874,58,2.503,59,1.204,95,0.15,96,1.69,97,1.68,99,0.646,101,0.006,103,0,104,0,112,0.308,133,2.151,154,2.479,155,2.053,173,1.146,177,1.126,180,1.102,227,1.596,236,1.244,262,2.918,310,1.68,349,1.222,379,0.485,381,1.302,382,3.687,437,1.619,448,3.134,490,2.712,519,1.201,539,0.814,541,0.928,564,1.19,593,3.923,603,2.207,608,2.007,680,4.3,686,2.903,687,4.805,718,2.151,721,2.437,740,3.247,741,2.662,742,2.618,752,3.583,815,3.329,821,4.184,1278,1.226,1604,5.008,1842,1.91,1912,2.838,1941,2.21,2034,3.476,2240,8.686,2242,4.383,2243,4.383,2244,4.383,2245,4.383,2246,4.3,2247,4.3,2248,4.383,2249,4.3,2250,4.383,2251,2.819,2252,5.013,2253,3.568,2254,3.931,2256,4.474,2257,2.762,2259,5.013,2260,2.762,2262,2.762,2264,5.009,2265,4.3,2266,2.762,2268,2.762,2270,4.383,2274,4.383,2276,4.154,2277,4.3,2279,2.762,2281,2.325,2282,2.379,2283,2.762,2285,2.762,2287,4.3,2288,2.762,2294,2.618,2305,4.3,2306,6.475,2494,4.832,2568,5.934,4524,2.883,4692,3.226,5505,3.107,5590,3.071,5853,2.503,5870,2.618,5908,3.391,5922,5.153,5923,3.583,5931,2.819,5932,2.819,5933,2.819,5934,2.819,5935,2.819,5936,2.819,5937,2.819,5938,2.819,5939,2.819,5945,3.132,5946,3.391,5947,2.954,5951,2.71,6680,2.325,6970,5.282,6980,4.575,6999,2.819,7000,2.819,7341,3.82,8762,8.709,8777,8.466,8922,5.153,9045,4.689,9069,3.247,9073,3.391,9075,3.391,9076,8.873,9077,6.151,9078,5.153,9079,6.151,9080,3.876,9081,3.583,9082,6.636,9083,3.876,9084,6.151,9085,3.876,9086,5.153,9087,3.876,9088,6.151,9089,3.583,9090,3.583,9091,2.954,9092,3.583,9093,3.391,9094,3.876,9095,5.381,9096,3.876,9097,6.151,9098,3.876,9099,3.583,9100,3.876,9101,3.876,9102,3.876,9103,5.381,9104,3.876,9105,3.876]],["title/classes/ExternalToolRepoMapper.html",[0,0.231,5945,5.503]],["body/classes/ExternalToolRepoMapper.html",[0,0.134,2,0.441,3,0.009,4,0.009,5,0.005,7,0.06,8,0.746,27,0.495,29,0.967,30,0.001,31,0.723,32,0.181,33,0.58,34,0.671,35,1.452,95,0.129,101,0.006,103,0,104,0,153,1.415,154,0.841,226,0.563,236,1.996,249,2.519,333,2.635,349,1.249,413,4.257,480,1.729,486,2.642,521,2.466,529,1.762,564,1.912,654,1.171,1198,2.141,1246,5.858,1430,3.621,1666,1.666,1842,1.94,1872,3.916,1912,5.578,1925,3.37,2136,5.749,2246,4.353,2247,4.353,2274,4.437,2276,2.659,2277,4.353,2281,3.736,2428,3.37,2486,8.474,2489,2.065,2494,2.185,2497,4.353,2499,8.929,2557,7.136,2568,5.251,2583,7.451,3022,4.437,4389,2.508,4390,3.084,4444,3.298,5057,3.37,5257,6.764,5467,5.448,5475,5.448,5477,5.032,5482,5.216,5483,5.216,5486,5.032,5488,4.079,5505,2.53,5590,3.109,5644,2.445,5768,3.173,5807,3.519,5847,8.671,5853,2.542,5869,3.084,5870,2.659,5945,5.032,7186,4.021,7188,4.021,7190,4.021,7201,3.967,7202,3.696,7204,3.736,7276,4.021,7277,4.631,7300,8.929,7339,8.474,7340,8.002,7341,3.868,7359,4.206,7363,4.277,7368,4.437,7387,2.578,8762,6.258,8764,3.298,8765,8.929,8766,8.929,8777,6.472,8982,5.448,8992,5.757,9076,10.277,9106,3.936,9107,6.227,9108,6.227,9109,6.227,9110,6.227,9111,6.227,9112,6.227,9113,6.227,9114,6.227,9115,6.227,9116,6.227,9117,6.227,9118,3.936,9119,8.782,9120,6.227,9121,3.936,9122,6.227,9123,3.936,9124,5.757,9125,6.227,9126,3.936,9127,5.757,9128,6.227,9129,3.936,9130,6.227,9131,3.936,9132,3.936,9133,3.936,9134,6.227,9135,3.936,9136,6.227,9137,3.936,9138,6.227,9139,3.936,9140,5.448,9141,6.227,9142,3.936,9143,3.936,9144,3.936,9145,3.936,9146,3.936,9147,3.936,9148,3.936,9149,3.936,9150,6.227,9151,3.444,9152,3.936,9153,3.936,9154,3.936,9155,3.639,9156,3.639,9157,3.936,9158,8.782,9159,8.782,9160,6.227,9161,6.227,9162,5.757,9163,6.227,9164,6.227,9165,6.227,9166,6.227,9167,6.227,9168,6.227,9169,6.227,9170,3.936,9171,3.936,9172,3.936,9173,3.936,9174,3.444,9175,3.639,9176,3.936,9177,3.936,9178,3.936,9179,3.639,9180,3.639,9181,3.936,9182,6.227,9183,6.227,9184,6.227,9185,6.227,9186,5.757,9187,5.757,9188,5.757]],["title/injectables/ExternalToolRequestMapper.html",[539,0.901,9189,5.705]],["body/injectables/ExternalToolRequestMapper.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.063,8,0.781,27,0.485,29,0.955,30,0.001,31,0.705,32,0.165,33,0.568,34,0.71,35,1.423,55,1.95,95,0.138,99,0.695,101,0.007,103,0,104,0,153,0.948,226,0.596,249,1.686,271,1.631,349,1.267,437,1.458,480,1.809,486,2.412,539,0.862,541,0.998,556,2.02,593,1.544,603,2.618,604,3.683,662,3.278,708,3.765,739,2.851,789,2.081,988,3.458,1198,2.239,1718,1.756,1868,2.971,1870,2.028,1912,3.006,2487,5.479,2489,4.002,2509,8.424,2562,2.914,2568,2.054,2705,1.968,2990,6.112,5057,6.099,5440,3.178,5441,3.647,5443,3.647,5444,3.647,5445,3.647,5446,3.647,5447,3.647,5450,2.863,5468,3.101,5470,3.178,5488,2.731,5505,1.694,5590,2.081,5768,2.124,5782,2.971,5807,3.681,5978,3.369,5986,3.492,5994,3.647,5995,3.492,7202,3.867,7204,3.908,7276,2.692,7277,3.101,7372,3.266,7377,3.266,7393,7.947,7403,3.492,7409,3.492,7412,3.492,8696,8.238,8699,8.238,8700,7.593,8799,3.492,9082,6.909,9189,5.457,9190,11.16,9191,6.514,9192,6.514,9193,6.514,9194,6.514,9195,8.018,9196,8.018,9197,8.018,9198,8.018,9199,6.023,9200,6.514,9201,6.514,9202,4.169,9203,7.014,9204,6.514,9205,7.593,9206,4.169,9207,6.514,9208,4.169,9209,12.582,9210,9.834,9211,6.514,9212,4.169,9213,9.834,9214,4.169,9215,4.169,9216,9.064,9217,4.169,9218,8.238,9219,4.169,9220,9.064,9221,4.169,9222,4.169,9223,9.064,9224,4.169,9225,7.593,9226,4.169,9227,9.064,9228,6.023,9229,7.593,9230,4.169,9231,5.264,9232,7.101,9233,6.514,9234,8.238,9235,4.169,9236,7.014,9237,3.854,9238,3.854,9239,3.854,9240,3.854,9241,3.854,9242,3.854,9243,3.854,9244,3.647,9245,3.854,9246,3.647,9247,3.854,9248,3.854,9249,3.854,9250,3.854,9251,3.854,9252,3.854,9253,3.854,9254,10.952,9255,6.514,9256,4.169,9257,4.169,9258,4.169,9259,8.38,9260,6.514,9261,4.169,9262,4.169,9263,4.169,9264,4.169,9265,4.169,9266,4.169,9267,4.169,9268,6.514,9269,4.169,9270,4.169,9271,4.169,9272,4.169,9273,4.169,9274,4.169,9275,4.169,9276,4.169,9277,4.169,9278,4.169,9279,4.169,9280,4.169,9281,4.169,9282,4.169,9283,4.169,9284,4.169,9285,4.169,9286,4.169,9287,3.647,9288,6.514,9289,3.647,9290,4.169]],["title/classes/ExternalToolResponse.html",[0,0.231,9291,5.503]],["body/classes/ExternalToolResponse.html",[0,0.234,2,0.771,3,0.016,4,0.016,5,0.008,7,0.104,27,0.546,29,0.899,30,0.001,31,0.646,32,0.182,33,0.58,34,1.829,47,0.918,55,2.027,95,0.136,101,0.011,103,0.001,104,0.001,112,0.748,119,2.349,138,2.399,149,4.597,150,1.569,245,3.624,379,0.861,404,2.811,823,2.417,1198,3.69,1241,3.928,1912,5.325,1933,5.566,1985,2.739,2487,6.114,2519,8.993,5057,5.81,5790,4.579,5807,6.066,5814,8.409,5817,6.025,5823,4.512,5826,5.396,5998,6.025,5999,7.612,6000,6.025,6001,6.025,6002,6.025,6003,6.025,6004,6.025,6006,6.025,6007,6.025,6008,6.025,6009,5.25,6015,6.025,6017,6.025,6264,3.698,7202,6.372,7204,6.441,7237,4.815,7241,5.123,9291,9.765,9292,12.454,9293,9.419,9294,8.993,9295,8.993,9296,6.025,9297,6.887,9298,6.887,9299,6.887,9300,6.887,9301,6.887]],["title/injectables/ExternalToolResponseMapper.html",[539,0.901,9302,5.503]],["body/injectables/ExternalToolResponseMapper.html",[0,0.194,3,0.013,4,0.013,5,0.007,7,0.087,8,0.99,27,0.462,29,0.915,30,0.001,31,0.679,32,0.161,33,0.541,34,0.973,35,1.354,95,0.143,101,0.009,103,0,104,0,153,1.299,226,0.817,236,1.729,249,2.311,349,1.213,413,4.143,437,1.374,539,1.093,541,1.368,603,2.539,604,3.356,781,3.392,789,2.853,988,4.183,1198,1.964,1718,2.407,1868,4.071,1870,2.78,1912,2.636,2486,8.199,2487,5.332,2489,3.895,2519,9.443,2557,7.28,2562,3.995,2568,5.554,5057,3.092,5440,4.355,5441,4.999,5443,4.999,5444,4.999,5445,4.999,5446,4.999,5447,4.999,5450,3.924,5468,4.25,5470,4.355,5488,3.743,5505,2.322,5768,2.912,5781,3.799,5807,3.229,5814,8.324,7202,3.392,7204,3.428,7276,3.69,7277,4.25,7339,8.199,7340,7.298,7372,4.476,7377,4.476,7396,4.355,7403,4.787,7409,4.787,7412,4.787,8636,4.787,8675,4.617,8691,5.283,8799,4.787,8883,4.071,8962,4.355,9124,5.283,9190,10.862,9237,5.283,9238,5.283,9239,5.283,9240,5.283,9241,5.283,9242,5.283,9243,5.283,9244,4.999,9245,5.283,9246,4.999,9247,5.283,9248,5.283,9249,5.283,9250,5.283,9251,5.283,9252,5.283,9253,5.283,9254,10.421,9259,7.636,9291,8.587,9294,9.443,9295,9.443,9302,6.674,9303,8.259,9304,8.259,9305,8.259,9306,8.259,9307,8.259,9308,8.259,9309,5.714,9310,11.748,9311,8.259,9312,5.714,9313,8.259,9314,5.714,9315,8.259,9316,5.714,9317,8.259,9318,5.714,9319,6.919,9320,5.714,9321,5.714,9322,5.714,9323,5.714,9324,5.714,9325,5.283,9326,4.999,9327,5.714,9328,5.714,9329,5.714,9330,5.714,9331,5.714,9332,5.714,9333,5.714,9334,5.714,9335,5.714,9336,5.714,9337,5.714]],["title/classes/ExternalToolScope.html",[0,0.231,9095,5.958]],["body/classes/ExternalToolScope.html",[0,0.24,2,0.793,3,0.017,4,0.017,5,0.008,7,0.107,8,1.151,27,0.536,29,0.95,30,0.001,31,0.743,32,0.179,33,0.585,35,1.153,47,0.888,95,0.122,101,0.012,103,0.001,104,0.001,112,0.762,119,2.561,180,1.72,310,3.069,349,1.125,382,3.681,480,1.966,486,2.13,519,2.194,556,3.379,603,2.527,766,5.932,1912,3.267,2291,6.464,5505,5.391,5590,5.437,5853,4.573,6058,6.195,6059,6.484,6060,6.484,6061,6.484,6066,6.484,6067,6.484,6068,4.864,6069,4.783,6070,4.864,6071,4.864,6080,4.783,6081,6.484,6082,4.864,6083,4.783,6084,4.864,6085,4.783,6086,7.355,7204,6.534,7341,4.398,8762,5.046,9076,9.78,9095,8.398,9338,9.599,9339,8.875,9340,9.599,9341,9.599,9342,7.081,9343,8.875,9344,7.081,9345,9.599,9346,7.081,9347,6.547]],["title/classes/ExternalToolSearchListResponse.html",[0,0.231,9348,5.705]],["body/classes/ExternalToolSearchListResponse.html",[0,0.265,2,0.873,3,0.018,4,0.018,5,0.009,7,0.118,27,0.516,29,0.607,30,0.001,31,0.437,32,0.185,33,0.605,55,3.022,56,6.253,59,3.18,70,6.456,95,0.145,101,0.013,103,0.001,104,0.001,112,0.813,138,2.207,150,1.776,180,1.834,245,2.683,247,3.412,284,3.891,379,0.975,382,3.66,556,1.963,564,2.393,812,7.292,813,5.45,814,8.089,815,6.998,816,5.837,818,3.918,820,5.243,821,3.746,822,4.365,823,2.735,824,5.45,825,6.609,826,5.893,827,5.106,828,4.152,829,5.45,830,5.45,832,4.902,833,4.327,2487,4.645,2489,3.393,6088,6.819,9291,10.65,9292,9.462,9348,8.573,9349,7.207,9350,7.207]],["title/classes/ExternalToolSearchParams.html",[0,0.231,9205,5.705]],["body/classes/ExternalToolSearchParams.html",[0,0.381,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.46,30,0.001,31,0.738,32,0.154,33,0.615,34,1.914,47,0.904,95,0.142,101,0.015,103,0.001,104,0.001,112,0.892,138,2.043,148,2.862,149,4.655,150,2.055,153,2.554,248,5.106,249,4.95,564,3.932,1213,6.235,2487,5.554,2489,4.369,3542,4.584,5497,7.359,5590,6.109,8697,9.888,9205,9.411,9351,7.889,9352,11.234,9353,9.018,9354,7.889]],["title/interfaces/ExternalToolSearchQuery.html",[105,0.735,9082,5.191]],["body/interfaces/ExternalToolSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,31,0.74,32,0.174,33,0.659,47,0.969,101,0.016,103,0.001,104,0.001,105,1.066,107,2.371,112,0.943,119,2.593,812,7.041,2489,3.276,5590,6.599,7204,7.931,9082,9.056,9355,9.881,9356,8.645]],["title/injectables/ExternalToolService.html",[539,0.901,6167,4.18]],["body/injectables/ExternalToolService.html",[0,0.129,3,0.009,4,0.009,5,0.005,7,0.058,8,0.727,12,2.782,26,2.228,27,0.482,29,0.917,30,0.001,31,0.671,32,0.161,33,0.565,34,1.033,35,1.415,36,2.706,40,2.931,47,0.794,59,1.183,95,0.154,99,0.635,101,0.006,103,0,104,0,177,1.999,220,2.306,226,0.544,227,1.567,236,0.986,262,2.91,310,2.628,349,1.128,379,0.758,437,1.574,490,3.056,529,1.715,539,0.802,541,0.911,556,1.903,564,2.32,579,3.229,603,2.554,608,2.875,631,3.878,639,1.786,654,1.132,821,2.914,932,3.336,1178,3.255,1278,1.204,1395,2.493,1718,1.603,1747,7.822,1839,4.59,1842,1.875,1870,1.852,1912,1.756,2254,4.748,2259,3.491,2309,3.863,2428,2.06,2487,5.44,2489,3.904,2568,6.669,4620,1.967,5384,8.239,5393,3.076,5522,5.283,5590,4.302,5644,2.364,5782,2.712,5920,3.519,6132,3.863,6167,3.721,6433,4.031,6970,5.228,7337,4.509,7340,5.919,8340,2.831,8590,9.135,8608,2.712,8626,3.188,8858,2.077,8920,8.81,8922,8.399,8923,7.219,8925,4.031,8926,2.661,8962,2.901,9082,6.569,9140,6.61,9319,3.188,9357,6.063,9358,5.304,9359,5.304,9360,6.063,9361,6.063,9362,7.556,9363,5.304,9364,6.063,9365,7.556,9366,3.806,9367,7.65,9368,7.556,9369,6.268,9370,3.806,9371,6.063,9372,3.806,9373,6.063,9374,3.806,9375,6.063,9376,3.806,9377,3.806,9378,6.063,9379,3.806,9380,6.063,9381,3.806,9382,3.806,9383,3.806,9384,6.063,9385,6.986,9386,3.806,9387,9.723,9388,6.063,9389,3.806,9390,3.806,9391,8.758,9392,10.026,9393,3.806,9394,8.618,9395,2.712,9396,3.806,9397,3.806,9398,3.076,9399,3.519,9400,5.605,9401,3.806,9402,3.519,9403,5.605,9404,6.063,9405,3.806,9406,3.806,9407,3.806,9408,3.806,9409,3.806,9410,3.806,9411,3.806,9412,3.806,9413,6.063,9414,6.063,9415,6.063,9416,6.063,9417,3.806,9418,3.806,9419,3.806,9420,3.806,9421,3.33,9422,3.806,9423,3.806,9424,3.806,9425,3.806,9426,2.982,9427,3.806,9428,3.806,9429,3.806,9430,3.806,9431,6.063,9432,3.806,9433,3.806,9434,3.806,9435,3.806,9436,3.806,9437,3.806,9438,3.806,9439,3.806,9440,3.806,9441,3.806,9442,3.806,9443,3.806,9444,3.806,9445,3.806,9446,3.806,9447,3.806,9448,3.806]],["title/injectables/ExternalToolServiceMapper.html",[539,0.901,8923,5.705]],["body/injectables/ExternalToolServiceMapper.html",[0,0.31,3,0.021,4,0.021,5,0.011,7,0.139,8,1.358,27,0.374,29,0.712,30,0.001,31,0.69,32,0.125,33,0.439,35,1.098,47,0.869,95,0.156,101,0.015,103,0.001,104,0.001,226,1.307,349,0.944,539,1.499,541,2.188,1330,6.513,1331,7.386,1718,3.85,2487,5.142,2489,3.756,5505,3.714,5586,7.161,7203,6.799,7340,8.839,8590,8.636,8923,9.49,8925,6.077,9140,10.77,9162,8.451,9391,9.157,9395,6.513,9449,9.141,9450,11.329,9451,11.329,9452,9.141,9453,9.141,9454,9.141,9455,8.451,9456,9.141,9457,7.997,9458,9.141,9459,9.141,9460,8.451,9461,8.451]],["title/classes/ExternalToolSortingMapper.html",[0,0.231,9093,5.958]],["body/classes/ExternalToolSortingMapper.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.35,10,3.68,27,0.371,29,0.705,30,0.001,31,0.631,32,0.124,33,0.435,35,1.088,95,0.163,96,2.488,99,1.511,101,0.015,103,0.001,104,0.001,173,2.679,349,0.936,413,3.776,437,1.172,556,2.282,975,4.985,1842,4.464,2489,3.735,2568,4.464,4452,7.32,5853,5.85,6980,10.004,7341,6.997,8762,6.455,9076,9.437,9093,9.855,9232,10.05,9462,9.058,9463,11.265,9464,11.265,9465,9.058,9466,8.375,9467,9.058,9468,8.375,9469,8.375,9470,10.415,9471,8.375]],["title/injectables/ExternalToolUc.html",[539,0.901,9472,5.705]],["body/injectables/ExternalToolUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,26,2.933,27,0.48,29,0.913,30,0.001,31,0.657,32,0.16,33,0.563,35,1.361,36,2.767,39,3.156,47,0.645,95,0.149,99,0.86,100,1.732,101,0.008,103,0,104,0,177,1.852,226,0.737,236,1.246,239,2.097,262,2.954,310,3.962,349,1.117,379,0.958,437,1.62,490,3.588,539,1.014,541,1.235,560,2.123,603,2.356,608,3.049,643,5.356,821,3.682,1698,6.2,1718,2.172,1796,3.129,1912,2.38,2472,2.341,2487,5.469,2489,3.355,2491,5.699,2568,6.467,4060,5.37,5057,2.791,5782,3.675,6117,4.512,6132,4.881,6167,6.953,6970,6.139,8640,11.141,8648,4.04,8649,8.725,8858,6.718,8878,7.083,8896,6.703,8919,8.476,9082,7.713,9203,10.542,9236,8.852,9319,4.32,9358,6.703,9359,6.703,9363,6.703,9387,4.768,9472,6.418,9473,7.662,9474,8.451,9475,7.083,9476,9.141,9477,5.157,9478,7.662,9479,5.157,9480,7.662,9481,5.157,9482,7.662,9483,5.157,9484,5.157,9485,5.157,9486,7.662,9487,5.157,9488,7.662,9489,5.157,9490,10.812,9491,10.812,9492,7.662,9493,5.157,9494,5.157,9495,5.157,9496,7.662,9497,5.157,9498,5.157,9499,7.083,9500,5.157,9501,5.157,9502,5.157,9503,4.32]],["title/classes/ExternalToolUpdateParams.html",[0,0.231,9234,5.705]],["body/classes/ExternalToolUpdateParams.html",[0,0.345,2,0.694,3,0.014,4,0.014,5,0.007,7,0.094,27,0.519,29,0.79,30,0.001,31,0.676,32,0.184,33,0.579,34,1.729,47,0.894,95,0.153,101,0.01,103,0,104,0,112,0.695,119,2.244,138,2.305,143,2.259,147,5.448,148,1.967,149,4.194,150,1.412,172,1.979,245,3.165,248,4.853,249,4.461,480,2.818,521,3.467,556,1.561,1198,3.489,1241,3.535,1870,3.016,1912,5.088,2281,5.252,2347,3.535,2487,5.848,2489,4.272,2494,3.44,2497,4.333,2509,9.398,2512,6.367,2513,6.237,3022,6.237,3707,4.724,3708,3.85,3729,3.85,3730,6.157,5537,5.577,5807,5.734,5894,6.367,5897,5.192,5898,5.192,5899,5.192,5904,3.898,5905,5.683,7202,6.024,7204,6.089,7359,4.186,7363,4.257,7393,9.398,7401,6.672,8254,5.82,8255,4.121,8256,5.82,8697,10.412,8701,5.422,8702,5.73,8710,5.73,8712,5.73,9218,9.237,9225,9.743,9234,7.333,9504,5.192,9505,6.198,9506,5.422,9507,6.198,9508,5.422,9509,6.198,9510,6.198,9511,6.198,9512,5.73,9513,6.198,9514,6.198,9515,6.198]],["title/injectables/ExternalToolValidationService.html",[539,0.901,8919,5.705]],["body/injectables/ExternalToolValidationService.html",[0,0.179,3,0.012,4,0.012,5,0.006,7,0.08,8,0.934,27,0.468,29,0.889,30,0.001,31,0.64,32,0.161,33,0.548,34,1.577,35,1.311,36,2.58,47,0.654,72,2.393,95,0.15,101,0.009,103,0,104,0,177,1.872,226,0.754,236,1.858,262,2.833,283,7.009,340,2.534,349,0.545,360,2.952,361,2.979,363,4.361,379,0.974,437,0.682,484,4.821,519,2.412,529,3.231,539,1.031,541,1.262,564,2.843,590,3.236,593,3.43,603,2.623,608,2.632,639,2.474,935,4.962,1430,4.529,1718,2.22,1912,3.593,2487,5.362,2489,4.433,2568,6.777,3542,3.779,5212,4.417,5410,4.13,6167,7.009,6173,4.26,6178,7.758,8590,9.005,8597,7.796,8599,7.796,8648,4.13,8649,8.787,8858,4.25,8872,4.612,8883,5.549,8896,4.612,8919,6.524,8921,9.897,8938,4.612,8940,4.874,8952,4.874,8962,8.317,8984,4.874,9319,6.524,9385,4.874,9399,4.874,9400,4.874,9402,8.562,9516,7.788,9517,7.788,9518,7.788,9519,7.788,9520,7.788,9521,7.788,9522,7.788,9523,5.272,9524,7.788,9525,7.788,9526,5.272,9527,7.788,9528,5.272,9529,5.272,9530,5.272,9531,7.788,9532,5.272,9533,5.272,9534,7.788,9535,5.272,9536,7.788,9537,5.272,9538,5.272,9539,5.272,9540,7.788,9541,5.272,9542,5.272,9543,5.272,9544,5.272,9545,5.272,9546,5.272,9547,5.272,9548,5.272,9549,5.272]],["title/injectables/ExternalToolVersionService.html",[539,0.901,8920,5.705]],["body/injectables/ExternalToolVersionService.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,8,0.867,27,0.482,29,0.917,30,0.001,31,0.66,32,0.161,33,0.565,35,1.415,95,0.111,101,0.008,103,0,104,0,119,2.633,226,0.683,349,1.308,437,1.701,519,2.241,539,0.958,541,1.144,603,2.718,708,1.985,1718,2.012,2487,5.473,2489,3.998,2557,9.177,2568,5.635,5467,4.18,5475,4.18,5477,7.87,5482,4.002,5483,4.002,5781,3.177,8590,9.191,8920,6.061,9550,4.778,9551,7.235,9552,7.235,9553,7.235,9554,7.235,9555,7.235,9556,7.235,9557,7.235,9558,7.235,9559,7.235,9560,13.153,9561,4.778,9562,8.731,9563,7.235,9564,4.778,9565,7.235,9566,13.153,9567,4.778,9568,7.235,9569,4.778,9570,7.235,9571,4.778,9572,7.235,9573,4.778,9574,7.235,9575,4.778,9576,7.235,9577,8.731,9578,4.778,9579,4.778,9580,4.778,9581,7.235,9582,4.778,9583,4.778,9584,4.778,9585,4.778,9586,7.235,9587,7.235,9588,7.235,9589,4.778,9590,4.778,9591,4.778,9592,4.778,9593,4.778,9594,4.778,9595,11.076,9596,4.778,9597,12.057,9598,7.235,9599,4.778,9600,4.778,9601,4.778,9602,7.235,9603,4.778,9604,4.778,9605,7.235,9606,4.778,9607,4.778,9608,4.778,9609,4.778,9610,4.778,9611,4.778,9612,4.778,9613,4.778,9614,9.739,9615,9.739,9616,9.739,9617,4.778,9618,4.778,9619,4.778]],["title/classes/ExternalUserDto.html",[0,0.231,9620,4.953]],["body/classes/ExternalUserDto.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.544,29,0.671,30,0.001,31,0.482,32,0.181,33,0.661,47,0.963,95,0.109,99,1.437,101,0.014,103,0.001,104,0.001,112,0.867,181,2.921,379,1.077,381,2.893,651,5.723,652,5.723,653,6.193,655,6.022,3081,5.982,4603,6.538,6939,5.112,6940,5.286,7218,6.747,7219,6.959,8500,11.3,8522,7.962,8524,7.962,8525,7.962,9620,9.454,9621,10.914,9622,8.612,9623,8.612,9624,5.726,9625,6.264,9626,5.726,9627,6.264,9628,6.565,9629,6.959]],["title/injectables/FeathersAuthProvider.html",[539,0.901,1704,5.503]],["body/injectables/FeathersAuthProvider.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.005,26,2.955,27,0.484,29,0.921,30,0.001,31,0.663,32,0.162,33,0.568,35,1.365,36,2.743,39,3.279,47,0.802,49,3.869,95,0.136,96,1.602,97,2.527,99,0.972,101,0.01,103,0,104,0,105,0.629,145,1.619,226,0.833,236,0.948,239,2.861,262,2.957,310,2.527,345,1.856,349,1.222,379,0.729,437,1.667,529,1.649,539,1.109,541,1.396,560,4.039,593,2.159,603,1.97,608,2.619,654,1.734,933,3.46,975,3.208,1002,3.938,1663,5.71,1704,6.771,1716,5.1,2292,5.66,2622,4.463,4209,3.854,6918,7.87,6925,7.021,7103,7.498,8120,6.095,8483,5.1,8484,8.604,9630,11.267,9631,5.39,9632,8.38,9633,9.07,9634,7.331,9635,8.38,9636,9.07,9637,5.83,9638,8.38,9639,5.83,9640,5.39,9641,5.83,9642,8.38,9643,5.83,9644,8.38,9645,5.83,9646,5.83,9647,5.83,9648,8.38,9649,8.38,9650,8.38,9651,5.83,9652,5.83,9653,5.83,9654,8.38,9655,8.38,9656,6.565,9657,6.771,9658,5.83,9659,4.884,9660,5.83,9661,5.83,9662,5.83,9663,7.331,9664,5.39,9665,5.83,9666,5.83]],["title/injectables/FeathersAuthorizationService.html",[539,0.901,1699,5.705]],["body/injectables/FeathersAuthorizationService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.004,26,2.875,27,0.439,29,0.835,30,0.001,31,0.6,32,0.146,33,0.514,35,1.364,36,2.516,39,3.353,47,0.834,95,0.124,99,0.971,101,0.01,103,0,104,0,154,2.527,155,3.577,226,0.832,236,1.362,239,2.956,262,2.782,319,4.839,333,5.453,345,1.853,349,0.865,379,0.728,437,1.386,529,2.368,539,1.108,541,1.393,565,4.969,608,2.617,643,2.587,696,2.296,993,6.562,1398,5.093,1663,7.011,1699,7.012,1704,9.554,1719,3.532,1818,5.566,2192,4.704,3249,5.566,6918,8.322,6925,8.098,6949,6.381,7103,9.121,9630,10.498,9667,5.821,9668,9.802,9669,8.371,9670,9.802,9671,5.821,9672,5.821,9673,5.821,9674,5.821,9675,6.381,9676,7.739,9677,8.371,9678,5.821,9679,5.821,9680,5.821,9681,7.739,9682,5.821,9683,5.821,9684,5.821,9685,5.821,9686,5.821,9687,5.821,9688,5.821,9689,3.709,9690,5.821,9691,5.821,9692,7.739,9693,5.821,9694,5.821,9695,5.821,9696,8.371,9697,5.821,9698,5.821]],["title/interfaces/FeathersError.html",[105,0.735,8474,5.705]],["body/interfaces/FeathersError.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.19,47,0.972,55,2.753,101,0.016,103,0.001,104,0.001,105,1.077,107,2.395,112,0.949,180,2.142,950,6.153,990,4.041,8474,10.012,9699,9.979,9700,9.979,9701,12.261]],["title/modules/FeathersModule.html",[201,1.804,1697,5.503]],["body/modules/FeathersModule.html",[0,0.301,3,0.021,4,0.021,5,0.011,30,0.001,95,0.141,101,0.015,103,0.001,104,0.001,141,5.314,153,2.018,201,3.474,203,4.37,204,3.431,205,3.531,206,3.516,207,3.502,208,4.45,209,4.569,218,4.425,219,3.459,220,3.377,226,1.269,316,5.973,493,5.518,560,4.58,949,6.828,1697,10.973,1719,7.371,2384,7.088,8484,10.254,8489,7.767,9702,8.878,9703,8.878,9704,8.878,9705,8.878,9706,8.715,9707,7.514,9708,8.99,9709,8.99,9710,9.32,9711,9.32,9712,9.733]],["title/injectables/FeathersRosterService.html",[539,0.901,9713,5.191]],["body/injectables/FeathersRosterService.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.606,26,2.271,27,0.469,29,0.892,30,0.001,31,0.662,32,0.166,33,0.55,34,0.861,35,1.351,36,2.653,47,0.949,51,3.672,55,0.655,72,2.294,95,0.145,99,0.508,101,0.005,103,0,104,0,105,0.904,119,0.619,153,0.692,177,1.653,203,1.818,226,0.435,236,1.469,239,1.159,262,2.889,284,3.311,349,1.136,358,2.223,379,0.632,437,1.684,475,2.593,528,1.584,529,2.135,539,0.669,541,0.728,560,3.107,564,2.317,593,1.872,603,2.676,608,2.954,696,1.993,932,4.608,974,3.649,1719,3.066,1839,4.02,1840,3.873,1842,3.194,1852,6.464,1861,3.605,1867,4.074,1869,1.914,1874,3.601,1881,2.263,1882,2.263,2100,5.912,2173,1.704,2336,2.969,2365,3.032,2568,6.191,3063,1.325,3543,3.264,3544,1.54,4209,1.714,4360,4.129,4482,2.055,4483,2.128,4484,1.806,4603,3.537,4604,2.168,4768,5.305,4779,4.647,5257,2.023,5522,3.533,5767,4.245,5806,5.276,5870,2.055,5884,6.18,5944,3.601,6034,2.128,6107,4.82,6125,6.363,6141,3.978,6144,2.213,6158,3.852,6167,5.874,6541,2.969,6544,4.076,6545,2.128,6648,2.213,6697,2.384,7142,5.495,7148,3.414,7341,3.139,7874,3.264,8608,2.168,8668,2.32,8690,2.213,8858,4.929,8883,5.378,9001,3.601,9004,7.235,9010,5.018,9023,4.234,9039,3.852,9713,3.852,9714,9.416,9715,2.459,9716,4.084,9717,4.084,9718,4.084,9719,3.601,9720,4.084,9721,5.054,9722,5.054,9723,5.054,9724,4.672,9725,5.054,9726,5.054,9727,5.054,9728,5.054,9729,5.054,9730,5.054,9731,5.054,9732,2.459,9733,6.573,9734,3.043,9735,4.084,9736,3.043,9737,3.043,9738,4.084,9739,3.043,9740,4.084,9741,3.043,9742,4.084,9743,8.401,9744,3.043,9745,4.084,9746,3.043,9747,4.084,9748,3.043,9749,4.084,9750,3.043,9751,4.084,9752,3.043,9753,7.848,9754,4.084,9755,3.043,9756,4.084,9757,3.043,9758,4.084,9759,3.043,9760,2.32,9761,2.459,9762,3.959,9763,5.912,9764,3.959,9765,4.084,9766,4.084,9767,6.766,9768,4.084,9769,2.459,9770,4.084,9771,2.459,9772,2.459,9773,4.084,9774,2.459,9775,2.459,9776,4.084,9777,2.459,9778,2.459,9779,2.459,9780,2.459,9781,2.459,9782,2.459,9783,2.459,9784,2.459,9785,2.459,9786,2.459,9787,5.237,9788,2.459,9789,2.459,9790,2.459,9791,2.459,9792,2.459,9793,2.459,9794,2.459,9795,2.459,9796,2.459,9797,2.459,9798,2.459,9799,4.084,9800,2.459,9801,2.384,9802,2.459,9803,3.36,9804,2.023,9805,2.384,9806,2.384,9807,2.459,9808,4.084,9809,2.459,9810,4.084,9811,2.459,9812,2.384,9813,2.459,9814,2.459,9815,2.459,9816,2.459,9817,2.459,9818,2.459,9819,2.459,9820,2.384,9821,2.384]],["title/interfaces/FeathersService.html",[105,0.735,9822,5.958]],["body/interfaces/FeathersService.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.081,27,0.46,29,0.809,30,0.001,31,0.582,32,0.161,33,0.498,34,1.536,35,1.247,36,2.604,47,0.793,59,3.49,95,0.142,101,0.019,102,5.219,103,0.001,104,0.001,105,0.698,107,1.552,141,5.644,201,1.713,203,2.326,226,0.925,236,1.052,271,5.089,284,1.997,316,6.343,333,4.394,349,0.668,353,4.442,437,1.166,493,3.207,511,2.889,521,3.572,529,1.83,539,1.194,560,5.273,591,6.348,593,2.395,603,1.299,639,3.035,685,3.816,768,4.442,935,4.12,949,7.251,988,3.889,996,4.308,997,4.257,998,4.257,999,4.502,1000,4.921,1232,4.81,1612,3.559,1719,6.3,1935,6.305,2358,3.969,2384,4.12,3857,5.746,4692,5.893,5231,5.672,5505,3.664,6684,3.88,8450,4.929,8484,4.704,8969,4.704,9706,5.066,9707,4.368,9708,5.226,9709,5.226,9710,5.417,9711,5.417,9712,5.657,9822,9.828,9823,10.386,9824,5.657,9825,8.338,9826,12.516,9827,6.467,9828,10.386,9829,8.338,9830,6.467,9831,8.338,9832,6.467,9833,5.657,9834,5.979,9835,5.979,9836,5.979,9837,5.979,9838,5.979,9839,8.338,9840,5.979,9841,5.417,9842,5.066,9843,5.979,9844,5.979,9845,5.979,9846,5.979]],["title/injectables/FeathersServiceProvider.html",[539,0.901,8484,4.953]],["body/injectables/FeathersServiceProvider.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.102,8,1.111,27,0.434,29,0.722,30,0.001,31,0.519,32,0.156,33,0.445,34,1.146,35,0.808,36,2.256,47,0.806,95,0.145,101,0.019,102,5.329,103,0.001,104,0.001,105,0.726,141,6.269,153,1.529,201,1.782,203,3.333,226,0.962,236,1.094,271,4.469,316,6.134,333,4.486,349,0.695,353,6.365,360,3.767,379,0.841,437,1.199,493,4.596,511,3.005,521,3.67,529,1.903,539,1.227,541,1.61,560,5.324,591,5.237,593,2.491,603,1.351,639,3.157,768,4.62,935,4.285,949,7.012,988,3.997,996,4.427,997,4.375,998,4.375,999,4.627,1000,5.057,1232,5.003,1612,3.701,1719,6.932,1935,6.479,2358,4.128,2384,5.904,3857,5.904,4692,3.528,5231,5.828,5505,3.765,6684,4.036,8450,5.127,8484,6.741,8969,4.892,9706,7.26,9707,6.26,9708,7.489,9709,7.489,9710,7.763,9711,7.763,9712,8.108,9822,9.996,9823,9.802,9824,5.884,9825,6.219,9826,11.079,9828,8.568,9829,6.219,9831,6.219,9833,5.884,9834,6.219,9835,6.219,9836,6.219,9837,6.219,9838,8.568,9839,8.568,9840,6.219,9841,5.635,9842,5.269,9843,6.219,9844,6.219,9845,6.219,9846,6.219,9847,9.267,9848,6.726,9849,6.726,9850,6.726]],["title/entities/FederalStateEntity.html",[154,1.456,6532,4.677]],["body/entities/FederalStateEntity.html",[0,0.341,3,0.018,4,0.018,5,0.009,7,0.115,27,0.491,30,0.001,31,0.699,32,0.164,33,0.481,47,0.966,55,1.627,83,3.08,95,0.127,96,2.077,101,0.019,103,0.001,104,0.001,105,0.816,112,0.796,138,2.18,143,2.669,144,3.949,145,3.328,154,2.144,155,2.523,160,5.72,172,3.983,173,2.236,174,3.989,175,3.343,178,3.141,180,1.355,181,2.023,182,2.459,376,3.293,377,3.432,406,4.883,407,5.763,408,4.883,409,5.763,1672,5.222,1985,3.989,2503,5.184,4269,5.387,4275,5.473,4285,3.309,5807,6.774,5823,4.952,6513,10.741,6514,10.913,6515,6.614,6516,6.614,6517,6.614,6518,6.614,6523,8.402,6524,10.487,6525,10.487,6526,6.614,6527,6.614,6528,6.614,6529,6.614,6530,6.614,6531,6.614,6532,6.889,6533,6.614,6534,6.614,6535,5.923,9851,7.56,9852,7.56,9853,7.56,9854,7.56]],["title/injectables/FederalStateRepo.html",[539,0.901,9855,5.705]],["body/injectables/FederalStateRepo.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.207,10,4.09,12,4.619,18,5.095,26,2.133,27,0.526,29,0.973,30,0.001,31,0.734,32,0.171,33,0.6,34,1.295,35,1.501,36,2.659,40,3.676,47,0.797,49,3.971,95,0.152,96,2.089,99,1.268,101,0.013,103,0.001,104,0.001,154,1.625,155,3.359,173,2.249,180,1.804,226,1.087,262,2.814,349,1.04,382,3.625,479,5.132,539,1.332,541,1.82,679,7.695,685,4.26,686,4.752,687,6.324,711,4.666,712,4.723,713,4.666,714,4.723,715,5.418,716,4.666,717,4.723,718,4.22,3638,5.222,6532,6.914,9078,8.434,9086,8.434,9855,8.434,9856,11.287,9857,7.603,9858,7.603,9859,7.603,9860,7.603]],["title/injectables/FederalStateService.html",[539,0.901,9861,5.705]],["body/injectables/FederalStateService.html",[0,0.302,3,0.021,4,0.021,5,0.011,7,0.135,8,1.336,27,0.456,29,0.867,30,0.001,31,0.681,32,0.152,33,0.535,35,1.069,36,2.37,47,0.858,95,0.154,99,1.484,101,0.015,103,0.001,104,0.001,177,1.629,226,1.272,227,3.663,262,2.665,345,2.832,349,0.919,379,1.113,437,1.151,539,1.474,541,2.13,608,2.051,685,3.765,1666,3.765,1718,3.748,1775,6.34,3835,6.111,4335,5.916,6532,7.651,9855,11.217,9861,9.333,9862,7.967,9863,12.162,9864,8.898,9865,11.14,9866,8.898,9867,8.898,9868,11.14,9869,8.898,9870,7.454,9871,6.783,9872,7.967,9873,8.898]],["title/interfaces/File.html",[5,0.008,105,0.735]],["body/interfaces/File.html",[3,0.022,4,0.022,5,0.015,7,0.14,30,0.001,32,0.156,47,1.007,55,1.985,95,0.117,101,0.021,103,0.001,104,0.001,105,1.393,107,2.213,112,0.905,284,4.097,1151,8.342,1153,6.042,1299,7.23,2035,5.801,6330,7.226,6331,7.226,6332,7.727,6333,7.454,6334,7.454,6335,5.877,6336,7.226,6337,6.449,6338,6.449,6339,6.449,6340,6.449,6341,6.709,6342,6.861,6343,6.573,6344,6.861,6345,6.861]],["title/classes/FileContentBody.html",[0,0.231,5713,4.528]],["body/classes/FileContentBody.html",[0,0.453,2,0.635,3,0.013,4,0.013,5,0.007,7,0.086,9,2.678,27,0.337,30,0.001,31,0.63,32,0.187,47,0.904,83,1.742,95,0.143,99,0.946,101,0.022,103,0,104,0,112,0.652,138,1.495,143,1.263,148,1.8,149,3.675,150,1.293,153,2.196,172,1.811,180,2.014,245,3.625,248,5.044,249,4.741,284,1.752,305,3.267,480,3.121,806,5.235,807,3.353,838,1.779,851,2.71,1198,1.95,1207,1.811,1582,3.299,1883,4.38,2196,4.547,2442,2.778,2513,5.855,2823,2.743,2824,2.496,2863,2.796,3219,5.734,3221,5.734,3224,3.333,3227,4.993,3230,2.911,3235,3.177,3708,3.524,3729,3.524,3730,6.82,4104,5.598,5622,6.155,5624,6.239,5626,6.155,5628,6.239,5630,6.239,5675,3.716,5712,6.423,5713,7.042,5714,6.423,5715,6.423,5716,6.423,5904,3.568,5905,6.769,7047,3.772,7107,3.615,8239,8.165,8240,6.635,8241,3.897,8244,5.382,8245,6.423,8246,6.423,8247,3.897,8248,6.423,8249,3.482,8250,3.832,8251,6.423,8252,6.423,8253,3.772,8254,3.772,8255,3.772,8256,3.772,8257,3.897,8258,3.897,8259,3.897,8260,3.897,8261,3.897,9874,5.674,9875,5.674]],["title/classes/FileDto.html",[0,0.231,6392,5.065]],["body/classes/FileDto.html",[0,0.308,2,1.016,3,0.021,4,0.021,5,0.016,7,0.138,27,0.526,29,0.707,30,0.001,31,0.719,32,0.175,33,0.436,47,0.906,95,0.143,101,0.015,103,0.001,104,0.001,112,0.896,284,3.791,379,1.135,833,5.039,1151,7.719,1153,5.947,1280,3.526,1299,6.873,1985,3.611,3542,3.705,6237,6.126,6274,6.469,6392,9.82,9876,9.079,9877,11.281,9878,9.079,9879,9.079,9880,9.079,9881,9.079,9882,6.036,9883,9.079,9884,7.942,9885,8.394]],["title/classes/FileDto-1.html",[0,0.192,708,2.352,6392,4.211]],["body/classes/FileDto-1.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,26,2.762,27,0.534,29,0.678,30,0.001,31,0.708,32,0.178,33,0.418,34,2.051,47,0.776,95,0.153,99,1.452,101,0.014,103,0.001,104,0.001,107,2.089,112,0.873,181,2.941,379,1.089,381,2.924,404,3.553,405,4.791,1985,3.462,3541,6.562,3573,5.895,4285,3.811,6237,6.179,6256,6.57,6270,6.82,6276,5.788,6285,5.933,6392,8.173,8439,5.788,9886,8.705,9887,10.594,9888,10.988,9889,8.705,9890,8.705,9891,8.705,9892,6.475,9893,7.616]],["title/classes/FileDtoBuilder.html",[0,0.231,9894,6.296]],["body/classes/FileDtoBuilder.html",[0,0.256,2,0.845,3,0.018,4,0.018,5,0.016,7,0.114,8,1.201,27,0.461,29,0.876,30,0.001,31,0.718,32,0.154,33,0.54,35,1.351,47,0.949,95,0.152,101,0.012,103,0.001,104,0.001,236,1.228,284,4.101,349,1.161,413,4.139,437,1.549,454,4.757,662,3.536,823,3.946,1151,8.223,1153,6.562,1299,7.176,1911,8.535,1923,5.276,6237,5.558,6392,9.876,9894,9.261,9895,10.479,9896,7.546,9897,10.017,9898,10.017,9899,10.017,9900,7.546,9901,10.017,9902,7.546,9903,10.017,9904,12.466,9905,7.546,9906,6.977,9907,7.546,9908,7.546,9909,7.546,9910,7.546,9911,7.546,9912,6.977,9913,7.546,9914,6.602]],["title/classes/FileElement.html",[0,0.231,2805,4.18]],["body/classes/FileElement.html",[0,0.213,2,0.703,3,0.015,4,0.015,5,0.007,7,0.095,8,1.059,27,0.547,29,0.97,30,0.001,31,0.697,32,0.177,33,0.597,35,1.552,36,1.879,47,0.924,55,1.9,59,1.95,95,0.112,101,0.017,103,0,104,0,105,0.677,112,0.701,119,2.079,137,5.553,145,1.742,180,1.831,262,2.239,349,1.145,381,2.966,382,3.835,448,3.619,474,2.681,479,3.308,480,3.078,517,3.385,519,3.754,604,2.55,608,1.446,662,2.777,686,4.168,1154,2.496,1603,2.36,1604,3.736,1607,6.598,1679,4.03,1885,2.619,2453,5.755,2727,7.84,2730,6.292,2731,6.292,2732,6.292,2733,7.372,2734,6.292,2736,4.172,2737,5.419,2738,6.513,2740,6.173,2741,5.419,2742,6.384,2744,4.387,2745,4.667,2747,6.425,2748,4.387,2752,4.387,2754,4.172,2781,5.357,2805,6.805,3219,6.581,3221,6.581,3967,4.564,3968,4.564,3969,4.564,3978,3.947,8716,4.472,8718,5.802,8721,5.49,8723,5.49,9915,10.803,9916,6.275,9917,6.275,9918,6.275,9919,6.275,9920,6.275,9921,5.802,9922,6.275,9923,5.802,9924,8.164,9925,5.802,9926,8.164,9927,5.802,9928,5.802,9929,5.802,9930,5.49,9931,5.802]],["title/classes/FileElementContent.html",[0,0.231,9932,5.705]],["body/classes/FileElementContent.html",[0,0.361,2,0.925,3,0.019,4,0.019,5,0.01,7,0.125,27,0.481,29,0.643,30,0.001,31,0.463,32,0.18,33,0.396,34,2.001,47,0.906,95,0.149,99,1.378,101,0.018,103,0.001,104,0.001,112,0.844,138,1.933,150,1.882,245,3.585,253,4.044,379,1.469,404,3.37,773,4.179,838,2.589,2196,4.752,2507,3.69,2859,4.399,2860,4.399,2863,4.07,3219,7.617,3221,7.617,3402,5.774,3414,5.069,3657,6.973,3661,6.179,3665,5.491,3667,5.491,3712,7.571,4104,6.209,5622,5.262,8732,6.674,9932,11.004,9933,11.467,9934,7.225,9935,7.636,9936,6.919,9937,6.919]],["title/classes/FileElementContentBody.html",[0,0.231,8245,4.528]],["body/classes/FileElementContentBody.html",[0,0.453,2,0.633,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,806,5.219,807,3.343,818,2.84,838,1.771,851,2.699,1198,1.942,1207,1.804,1582,3.285,1883,3.986,2196,4.884,2442,2.766,2823,2.732,2824,2.485,2863,2.784,3219,3.353,3221,3.353,3224,3.319,3227,4.981,3230,2.899,3235,3.164,3708,3.509,3729,3.509,3730,6.808,4104,5.587,5622,6.734,5624,6.224,5626,6.14,5628,6.224,5630,6.224,5675,3.701,5712,6.408,5713,7.028,5714,6.408,5715,6.408,5716,6.408,5904,3.553,5905,6.76,7047,3.756,7107,3.599,8239,8.513,8240,5.626,8241,3.88,8244,5.366,8245,7.028,8246,6.408,8247,3.88,8248,6.408,8249,3.467,8250,3.816,8251,6.408,8252,6.408,8253,3.756,8254,3.756,8255,3.756,8256,3.756,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8261,3.88,8737,4.426,9938,5.65,9939,5.65]],["title/entities/FileElementNode.html",[154,1.456,3148,5.335]],["body/entities/FileElementNode.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.13,27,0.446,30,0.001,32,0.149,47,0.936,95,0.159,96,2.356,101,0.018,103,0.001,104,0.001,105,0.925,112,0.864,138,1.98,154,2.326,155,2.862,172,4.145,173,2.536,180,1.95,181,2.295,349,0.886,403,4.76,437,1.109,1603,3.225,1604,5.06,1883,4.945,2453,5.168,2506,4.846,2507,3.831,3112,5.709,3123,6.531,3148,8.527,3190,5.263,3211,9.522,3219,7.466,3221,7.466,3561,6.68,3582,5.327,4067,5.464,4069,5.464,9936,7.184,9937,7.184,9940,11.055,9941,7.929,9942,7.502,9943,9.522,9944,7.929,9945,7.929,9946,7.929]],["title/interfaces/FileElementNodeProps.html",[105,0.735,9943,5.958]],["body/interfaces/FileElementNodeProps.html",[0,0.296,3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,32,0.15,47,0.966,95,0.16,96,2.397,101,0.018,103,0.001,104,0.001,105,0.941,107,2.093,112,0.874,154,2.352,172,3.848,173,2.58,180,2.16,181,2.335,349,0.901,403,4.843,437,1.128,1603,3.28,1604,5.1,1883,3.608,2453,5.225,2506,4.93,2507,3.898,3112,5.772,3123,6.602,3148,6.835,3190,5.355,3211,9.626,3219,7.745,3221,7.745,3561,7.397,3582,5.419,4067,5.558,4069,5.558,9936,7.309,9937,7.309,9940,8.066,9943,10.544,9944,8.066,9945,8.066,9946,8.066]],["title/interfaces/FileElementProps.html",[105,0.735,9930,5.958]],["body/interfaces/FileElementProps.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.162,36,1.787,47,0.976,95,0.136,101,0.02,103,0.001,104,0.001,105,0.906,107,2.015,112,0.853,119,1.709,145,2.331,180,2.122,262,1.84,349,1.289,474,3.587,480,2.982,517,4.117,519,2.601,604,3.412,608,1.935,1154,3.339,1603,3.157,1679,4.901,1885,3.504,2727,6.515,2733,5.583,2737,5.153,2738,6.308,2741,5.153,2742,6.184,2781,7.183,2805,7.267,3219,7.656,3221,7.656,3978,5.281,8716,5.983,9915,7.763,9924,9.929,9925,7.763,9926,9.929,9927,7.763,9928,7.763,9929,7.763,9930,9.395,9931,7.763]],["title/classes/FileElementResponse.html",[0,0.231,3712,4.853]],["body/classes/FileElementResponse.html",[0,0.348,2,0.876,3,0.018,4,0.018,5,0.009,7,0.119,27,0.517,29,0.609,30,0.001,31,0.438,32,0.187,33,0.375,34,2.149,47,0.858,95,0.145,99,1.305,101,0.017,103,0.001,104,0.001,112,0.815,138,2.21,150,1.783,245,3.549,253,3.831,379,1.432,404,3.193,773,3.96,838,2.453,2196,5.103,2507,3.496,2858,5.126,2859,5.465,2860,5.465,2862,4.803,2863,5.056,3219,6.795,3221,6.795,3402,5.471,3414,4.803,3657,7.488,3661,6.657,3665,5.203,3667,5.203,3712,8.989,4104,6.667,5622,6.537,9932,10.178,9933,11.968,9936,6.555,9937,6.555,9947,6.846,9948,6.846,9949,6.846,9950,6.846,9951,6.846]],["title/classes/FileElementResponseMapper.html",[0,0.231,5649,5.958]],["body/classes/FileElementResponseMapper.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.495,29,0.793,30,0.001,31,0.57,32,0.165,33,0.489,34,1.318,35,1.367,95,0.144,99,1.29,100,2.598,101,0.013,103,0.001,104,0.001,112,0.809,119,2.072,236,1.968,349,1.176,376,3.369,413,3.974,437,1,603,2.286,604,3.143,662,2.432,739,4.457,781,4.591,782,5.652,785,6.06,787,5.753,1280,3.183,1883,5.521,1941,4.412,2196,3.129,2444,8.466,2447,7.977,2448,7.977,2450,7.761,2805,8.193,3219,4.591,3221,4.591,3657,4.591,3661,5.921,3678,5.512,3712,8.619,4104,4.088,5231,7.158,5622,4.928,5647,6.06,5649,11.508,8754,9.22,8755,6.48,8756,6.06,8758,6.25,8759,6.25,8760,6.25,9932,8.53,9952,12.568,9953,11.382,9954,7.735,9955,7.735]],["title/entities/FileEntity.html",[154,1.456,8023,5.191]],["body/entities/FileEntity.html",[0,0.12,3,0.008,4,0.008,5,0.01,7,0.155,26,2.385,27,0.525,30,0.001,31,0.507,32,0.178,33,0.623,47,0.911,49,4.324,55,2.084,83,2.973,95,0.135,96,1.565,97,1.527,99,0.588,101,0.009,103,0,104,0,105,0.38,112,0.452,119,1.46,133,1.992,138,2.333,143,2.962,144,4.303,145,3.197,154,1.218,155,1.176,160,6.053,172,4.095,173,1.042,174,2.266,180,0.631,181,0.943,182,1.146,236,1.783,280,5.661,349,1,357,2.685,376,1.534,377,1.599,406,2.275,407,4.343,408,2.275,409,4.343,437,0.456,480,2.513,486,2.723,490,1.249,519,1.765,529,0.997,556,3.005,570,5.059,603,0.708,662,2.256,708,1.463,765,1.955,822,5.068,838,1.786,990,1.191,1657,1.673,1663,4.143,1672,2.967,1718,1.484,1925,1.907,1985,1.401,2507,1.574,2611,4.703,3307,2.845,3541,2.808,3573,2.79,4266,4.773,4269,4.06,4275,3.915,4276,2.137,4279,2.951,4284,2.951,4285,1.542,4347,2.114,4620,1.821,4802,6.899,5040,2.614,5057,1.907,6259,2.967,6266,2.463,6284,3.163,6338,6.328,6559,2.951,6819,2.379,6922,1.907,7115,2.562,8018,6.732,8020,6.905,8023,4.343,8074,7.211,9893,3.082,9956,3.257,9957,5.469,9958,6.633,9959,6.633,9960,5.112,9961,6.283,9962,7.621,9963,7.211,9964,5.995,9965,6.905,9966,7.621,9967,7.621,9968,7.621,9969,3.523,9970,3.523,9971,7.621,9972,3.523,9973,4.238,9974,3.523,9975,3.523,9976,3.523,9977,3.523,9978,3.523,9979,3.523,9980,3.523,9981,3.523,9982,7.314,9983,3.523,9984,7.211,9985,3.523,9986,8.237,9987,3.523,9988,3.523,9989,3.523,9990,3.523,9991,5.268,9992,3.523,9993,3.523,9994,3.523,9995,3.523,9996,5.268,9997,3.523,9998,2.463,9999,2.62,10000,3.257,10001,3.257,10002,6.276,10003,5.268,10004,3.257,10005,8.368,10006,3.257,10007,3.257,10008,2.685,10009,3.257,10010,2.51,10011,6.633,10012,4.343,10013,5.268,10014,5.268,10015,5.268,10016,3.257,10017,3.257,10018,3.257,10019,4.238,10020,3.257,10021,3.257,10022,3.257,10023,5.798,10024,6.633,10025,3.257,10026,3.257,10027,2.951,10028,5.268,10029,3.257,10030,3.257,10031,3.257,10032,3.257,10033,3.257,10034,3.257,10035,5.268,10036,3.257,10037,5.268,10038,2.685,10039,5.268,10040,3.257,10041,2.562,10042,2.562,10043,3.257,10044,3.257,10045,3.257,10046,3.257,10047,2.685,10048,2.685,10049,2.76,10050,3.257,10051,3.257,10052,3.257,10053,5.268,10054,3.257]],["title/interfaces/FileEntityProps.html",[105,0.735,10002,5.958]],["body/interfaces/FileEntityProps.html",[0,0.129,3,0.009,4,0.009,5,0.01,7,0.159,26,2.715,30,0.001,31,0.561,32,0.184,33,0.658,47,0.952,49,3.708,55,2.348,83,3.614,95,0.138,96,1.663,97,1.646,99,0.634,101,0.01,103,0,104,0,105,0.41,107,0.912,112,0.481,119,2.139,133,1.328,143,2.776,144,4.149,145,2.781,154,1.294,172,4.058,173,1.123,174,2.408,180,0.681,181,1.017,182,1.236,236,1.775,280,6.457,349,1.035,357,2.896,376,3.749,377,3.907,406,2.453,407,4.614,408,2.453,409,4.614,437,0.491,490,1.347,519,1.875,529,1.075,556,3.063,570,4.632,603,0.763,662,2.373,708,1.578,765,2.109,822,5.61,838,1.898,990,1.284,1657,1.804,1663,4.726,1672,1.978,1718,1.6,1925,2.056,1985,1.511,2507,1.697,2611,4.622,3307,1.897,3541,2.983,3573,4.603,4275,4.118,4276,2.305,4279,3.182,4284,3.182,4285,1.663,4347,2.279,4620,1.963,5040,2.778,5057,2.056,6259,3.152,6266,2.656,6284,5.219,6338,7.004,6922,2.056,7115,2.763,8018,7.451,8020,7.876,8023,2.896,8074,8.225,9893,3.323,9956,3.512,9957,2.896,9958,3.512,9959,3.512,9960,2.707,9961,7.167,9962,8.692,9963,8.225,9964,6.839,9965,7.876,9966,8.692,9967,8.692,9968,8.692,9971,9.262,9973,2.825,9982,8.095,9984,8.225,9986,8.492,9991,3.512,9996,3.512,9998,2.656,9999,2.825,10000,3.512,10001,3.512,10002,7.531,10003,8.692,10004,3.512,10005,8.692,10006,3.512,10007,3.512,10008,2.896,10009,3.512,10010,2.707,10011,6.977,10012,4.614,10013,5.597,10014,5.597,10015,5.597,10016,3.512,10017,3.512,10018,3.512,10019,4.503,10020,3.512,10021,3.512,10022,3.512,10023,6.098,10024,6.977,10025,3.512,10026,3.512,10027,3.182,10028,5.597,10029,3.512,10030,3.512,10031,3.512,10032,3.512,10033,3.512,10034,3.512,10035,5.597,10036,3.512,10037,5.597,10038,2.896,10039,5.597,10040,3.512,10041,2.763,10042,2.763,10043,3.512,10044,3.512,10045,3.512,10046,3.512,10047,2.896,10048,2.896,10049,2.976,10050,3.512,10051,3.512,10052,3.512,10053,5.597,10054,3.512]],["title/classes/FileParamBuilder.html",[0,0.231,6377,5.958]],["body/classes/FileParamBuilder.html",[0,0.309,2,1.019,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,26,2.722,27,0.373,29,0.709,30,0.001,31,0.51,32,0.124,33,0.437,35,1.093,95,0.156,99,1.518,101,0.015,103,0.001,104,0.001,107,2.183,349,0.94,413,3.783,437,1.461,454,5.364,3307,6.134,3541,6.51,3573,4.455,4209,3.832,6237,5.242,6259,4.738,6285,5.567,6348,8.413,6350,9.625,6351,8.413,6354,10.444,6377,9.883,10055,10.444,10056,11.297,10057,11.879,10058,7.623,10059,9.099,10060,9.099,10061,9.099]],["title/classes/FileParams.html",[0,0.231,6303,4.677]],["body/classes/FileParams.html",[0,0.457,2,0.731,3,0.015,4,0.021,5,0.013,7,0.099,26,2.6,27,0.267,30,0.001,32,0.162,39,1.757,47,0.963,95,0.16,99,1.089,101,0.022,103,0.001,104,0.001,105,0.705,112,0.721,119,1.848,138,1.188,143,1.454,147,4.874,148,2.072,149,4.291,150,1.488,151,6.037,153,1.484,154,1.396,245,3.646,247,2.858,248,5.122,249,4.564,348,4.533,807,5.009,808,6.769,818,3.282,838,3.272,851,3.119,988,2.816,990,2.208,1079,3.836,1139,5.784,1140,4.277,1141,4.277,1198,2.245,1280,2.041,2680,4.712,2863,5.143,3573,3.197,4209,2.215,5905,6.639,6237,4.213,6250,5.947,6256,6.156,6285,3.218,6288,4.485,6289,4.565,6290,4.565,6293,7.883,6296,4.565,6297,8.161,6298,7.887,6299,7.887,6300,4.565,6301,4.485,6302,7.05,6303,6.236,6304,4.565,6305,4.411,6306,6.132,6307,4.342,6308,4.411,6309,4.485,6310,4.411,6311,4.411,6312,4.16,6313,4.565,6314,4.565,6315,4.565,6316,4.16,6317,4.16,6318,4.277,6319,4.342,6320,4.565,10062,6.53,10063,6.53]],["title/classes/FilePermissionEntity.html",[0,0.231,9982,5.503]],["body/classes/FilePermissionEntity.html",[0,0.24,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,10,4.736,26,2.029,27,0.526,29,0.549,30,0.001,31,0.395,32,0.149,33,0.339,49,4.287,95,0.148,96,2.631,97,3.058,99,1.177,101,0.016,103,0.001,104,0.001,105,0.761,112,0.76,119,2.373,138,2.286,143,2.912,144,3.155,145,3.237,160,4.025,172,4.28,173,2.087,181,2.563,236,1.148,379,0.882,381,2.37,480,3.237,486,3.507,556,2.936,685,4.933,838,3.002,1618,7.073,1619,7.751,1718,2.972,2503,4.95,6559,5.911,9982,7.738,10064,10.956,10065,6.524,10066,10.198,10067,10.778,10068,10.198,10069,9.576,10070,7.057,10071,7.057,10072,7.057,10073,10.778,10074,7.057,10075,7.057,10076,6.524,10077,6.524,10078,6.524,10079,6.524,10080,8.378,10081,6.173,10082,8.378,10083,6.173,10084,8.378,10085,6.173,10086,8.378,10087,6.173]],["title/interfaces/FilePermissionEntityProps.html",[105,0.735,10068,5.958]],["body/interfaces/FilePermissionEntityProps.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,10,5.059,26,2.534,30,0.001,32,0.175,33,0.637,49,3.941,95,0.152,96,2.745,97,3.258,99,1.254,101,0.016,103,0.001,104,0.001,105,0.811,107,1.804,112,0.793,119,2.802,143,2.663,144,3.292,145,2.774,172,4.087,173,2.223,181,2.012,236,1.223,556,3.013,685,5.269,838,3.133,1618,7.554,1619,8.279,1718,3.166,2503,5.165,9982,6.075,10064,6.298,10065,6.951,10066,10.893,10067,11.511,10068,9.819,10073,11.511,10076,6.951,10077,6.951,10078,6.951,10079,6.951,10080,8.742,10081,6.577,10082,8.742,10083,6.577,10084,8.742,10085,6.577,10086,8.742,10087,6.577]],["title/entities/FileRecord.html",[154,1.456,6255,4.086]],["body/entities/FileRecord.html",[0,0.27,3,0.008,4,0.008,5,0.008,7,0.151,26,2.485,27,0.452,30,0.001,31,0.58,32,0.154,33,0.381,34,0.922,39,0.89,47,0.852,49,4.229,55,1.479,83,3.048,95,0.131,96,1.487,97,1.434,99,0.552,101,0.016,103,0,104,0,105,0.742,112,0.546,119,2.021,133,2.777,138,2.006,143,2.21,144,2.886,145,1.503,153,0.752,154,2.214,155,1.104,172,3.901,173,0.978,174,2.153,178,1.374,180,0.593,181,1.449,182,1.076,226,0.473,236,1.838,239,0.759,347,2.517,349,1.335,358,2.382,360,3.032,376,1.441,377,1.502,437,1.518,490,2.437,519,2.46,529,0.936,556,2.501,565,3.214,570,4.218,654,2.044,662,3.921,696,1.305,708,1.374,739,2.37,746,3.938,754,3.546,822,5.267,838,3.112,988,2.335,990,2.323,994,2.357,1064,3.657,1159,3.858,1299,5.267,1666,2.291,1759,3.719,1867,1.225,1927,1.943,1928,3.785,1985,3.158,2161,1.887,2337,3.088,2503,2.798,2588,3.005,2611,3.664,2621,1.905,2627,1.478,2637,1.553,2824,1.455,3063,1.441,3112,1.735,3307,2.703,3321,2.272,3573,4.861,3683,1.869,3836,4.027,4209,3.368,4219,2.522,4221,2.081,4269,2.357,4275,2.954,4285,1.448,4286,1.964,4779,1.836,4802,5.238,5092,1.869,5104,1.905,6237,5.242,6255,4.765,6256,4.78,6257,3.858,6258,5.202,6266,2.313,6274,2.357,6276,2.2,6278,4.998,6284,3.814,6285,5.283,6286,5.202,6579,2.007,6807,2.592,6808,4.027,6922,2.93,9892,2.461,9957,5.238,9960,5.659,9964,4.998,9998,2.313,10008,2.522,10012,2.522,10038,4.127,10041,2.406,10042,2.406,10047,2.522,10048,2.522,10088,2.673,10089,4.241,10090,6.221,10091,5.553,10092,6.221,10093,3.308,10094,7.078,10095,3.308,10096,3.308,10097,3.308,10098,3.308,10099,3.059,10100,3.059,10101,3.308,10102,3.308,10103,3.308,10104,3.308,10105,3.308,10106,6.515,10107,3.308,10108,3.308,10109,2.673,10110,2.522,10111,4.241,10112,2.461,10113,3.938,10114,3.938,10115,3.938,10116,2.081,10117,4.375,10118,4.375,10119,4.375,10120,4.375,10121,4.375,10122,4.375,10123,4.241,10124,5.364,10125,4.375,10126,2.522,10127,4.027,10128,2.461,10129,4.127,10130,2.522,10131,4.127,10132,5.384,10133,2.357,10134,2.592,10135,2.406,10136,2.406,10137,2.673,10138,2.673,10139,2.522,10140,2.461,10141,2.522,10142,2.673,10143,2.673,10144,2.673,10145,2.673,10146,2.673,10147,2.673,10148,2.673,10149,2.673,10150,2.673,10151,2.673,10152,7.6,10153,2.673,10154,2.673,10155,4.375,10156,2.673,10157,2.673,10158,4.375,10159,4.375,10160,4.375,10161,2.673,10162,2.673,10163,2.673,10164,2.673,10165,2.673,10166,2.673,10167,2.673,10168,4.375,10169,5.553,10170,2.592,10171,2.673,10172,4.375,10173,2.592,10174,2.673,10175,4.375,10176,2.673,10177,5.553,10178,5.553,10179,2.592,10180,5.553,10181,2.673,10182,2.673,10183,2.673,10184,2.673,10185,2.673,10186,2.673,10187,2.673,10188,2.592,10189,2.673,10190,2.673,10191,2.673,10192,2.673,10193,2.673,10194,2.673,10195,2.673,10196,2.673,10197,2.673]],["title/classes/FileRecordFactory.html",[0,0.231,10198,6.296]],["body/classes/FileRecordFactory.html",[0,0.164,2,0.541,3,0.011,4,0.011,5,0.009,7,0.073,8,0.875,27,0.531,29,1.01,30,0.001,31,0.702,32,0.18,33,0.592,34,1.498,35,1.453,47,0.515,49,1.907,55,2.471,59,3.268,95,0.133,101,0.008,103,0,104,0,112,0.58,120,3.211,133,2.553,140,2.707,153,1.999,154,2.248,155,2.436,177,1.336,180,1.308,236,1.711,271,4.9,319,3.296,349,0.754,379,0.605,382,3.874,413,2.248,437,1.138,447,7.253,448,4.533,449,5.537,452,4.125,453,5.537,454,5.744,455,4.125,456,4.125,457,4.125,458,4.052,459,4.513,460,4.97,461,6.505,462,5.838,463,7.079,464,2.758,469,2.732,470,4.125,471,2.758,472,5.179,473,5.347,474,4.185,475,5.028,476,4.088,477,2.732,478,2.575,479,4.143,480,3.282,481,2.661,482,2.617,483,2.732,484,5.101,485,2.758,486,3.556,487,4.882,488,2.732,489,7.173,490,4.191,491,6.679,492,2.758,493,4.362,494,2.732,495,2.758,496,2.732,497,2.758,498,2.732,499,3.08,500,2.87,501,2.732,502,6.139,503,2.758,504,2.732,505,4.125,506,3.858,507,4.125,508,2.758,509,2.638,510,2.617,511,2.16,512,2.732,513,2.732,514,2.732,515,2.758,516,2.758,517,1.854,518,2.732,519,1.498,520,2.758,521,2.891,522,2.732,523,2.758,524,2.758,525,2.812,526,2.87,527,2.901,822,2.707,988,2.085,1153,3.167,1167,3.041,1299,2.707,3573,2.367,4129,5.761,4209,1.64,6255,2.901,6256,2.638,6284,2.684,6285,2.383,6286,3.167,6809,3.788,7086,4.23,8439,3.215,9912,4.47,9964,3.517,10106,5.43,10131,3.686,10198,8.131,10199,4.835,10200,9.798,10201,4.835,10202,4.23,10203,6.749,10204,4.47,10205,4.835,10206,4.835,10207,4.835]],["title/classes/FileRecordListResponse.html",[0,0.231,6287,5.065]],["body/classes/FileRecordListResponse.html",[0,0.369,2,0.672,3,0.014,4,0.014,5,0.007,7,0.091,27,0.471,29,0.467,30,0.001,31,0.559,32,0.177,33,0.551,34,1.458,47,0.903,55,2.973,56,6.077,59,2.659,70,6.275,83,1.843,95,0.138,101,0.018,103,0,104,0,112,0.68,138,1.977,149,3.793,150,1.368,154,1.283,180,1.787,245,3.554,247,2.628,284,3.797,379,0.751,382,3.28,404,3.492,556,1.512,814,7.713,815,6.653,816,6.2,818,3.018,820,4.576,821,2.885,822,4.792,823,2.107,824,4.197,825,5.527,826,4.928,827,3.933,828,3.198,829,4.197,830,4.197,832,5.382,833,4.75,838,3.126,1165,4.851,1169,4.703,1198,2.064,1299,3.362,1985,3.403,2723,6.271,2863,4.914,3573,2.94,6237,3.971,6240,3.992,6245,4.851,6246,4.851,6247,4.851,6248,4.851,6249,4.703,6250,5.606,6251,5.029,6252,9.002,6255,5.135,6256,5.931,6257,8.188,6258,6.532,6259,3.126,6260,9.144,6261,5.029,6262,4.851,6263,5.029,6264,3.223,6265,5.029,6266,4.197,6267,5.029,6268,5.029,6269,5.029,6270,4.703,6271,4.851,6272,5.029,6273,5.029,6274,4.278,6275,4.851,6276,3.992,6277,4.851,6278,4.367,6279,5.029,6280,5.029,6281,4.851,6282,5.029,6283,4.465,6284,3.332,6285,2.958,6286,3.933,6287,6.365,10208,6.004,10209,6.004]],["title/classes/FileRecordMapper.html",[0,0.231,10210,6.296]],["body/classes/FileRecordMapper.html",[0,0.244,2,0.806,3,0.017,4,0.017,5,0.009,7,0.109,8,1.163,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,35,1.319,55,2.864,56,5.682,59,3.015,70,5.867,95,0.123,101,0.012,103,0.001,104,0.001,154,1.538,236,1.786,347,2.635,349,1.134,413,4.099,437,1.52,556,1.812,739,3.15,789,3.592,815,6.36,823,3.405,1139,6.182,6237,5.452,6255,7.882,6258,4.713,6260,9.125,6287,8.166,6307,8.157,9895,10.28,10124,4.86,10133,6.914,10170,5.637,10173,7.602,10179,5.637,10210,8.971,10211,7.195,10212,9.703,10213,10.15,10214,8.971,10215,9.703,10216,7.195,10217,9.844,10218,6.652,10219,7.195,10220,8.971,10221,7.195,10222,6.652,10223,6.652,10224,6.295,10225,7.195,10226,6.652,10227,5.031,10228,9.703,10229,10.979,10230,10.979,10231,7.195,10232,7.195,10233,7.195,10234,10.979,10235,7.195]],["title/classes/FileRecordParams.html",[0,0.231,6293,4.528]],["body/classes/FileRecordParams.html",[0,0.454,2,0.704,3,0.015,4,0.021,5,0.011,7,0.095,26,2.694,27,0.419,30,0.001,32,0.17,39,1.691,47,0.944,95,0.158,99,1.048,101,0.022,103,0,104,0,105,0.678,112,0.702,119,1.799,138,1.86,143,1.399,147,4.746,148,1.994,149,4.22,150,1.432,151,5.878,153,1.429,154,1.343,245,3.629,247,2.751,248,5.06,249,4.488,348,3.138,807,4.948,808,6.657,838,3.206,851,3.002,988,2.711,990,2.125,1079,3.692,1139,5.632,1140,4.117,1141,4.117,1198,2.161,1280,1.964,2680,4.616,2862,3.857,2863,5.467,3573,5.007,4209,3.469,5890,7.143,5905,6.547,6237,5.148,6250,7.268,6256,6.617,6285,5.039,6288,4.317,6289,4.394,6290,4.394,6293,8.062,6296,4.394,6297,8.062,6298,7.757,6299,7.757,6300,4.394,6301,4.317,6302,6.907,6303,4.317,6304,4.394,6305,4.245,6306,5.971,6307,4.179,6308,4.245,6309,4.317,6310,4.245,6311,4.245,6312,4.004,6313,4.394,6314,4.394,6315,4.394,6316,4.004,6317,4.004,6318,4.117,6319,4.179,6320,4.394,10236,6.285,10237,6.285,10238,6.285,10239,6.285]],["title/injectables/FileRecordRepo.html",[539,0.901,10240,5.958]],["body/injectables/FileRecordRepo.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.069,8,0.834,10,2.828,12,3.193,18,3.522,26,2.881,27,0.519,29,0.975,30,0.001,31,0.701,32,0.171,33,0.601,34,1.616,35,1.504,36,2.83,40,2.195,47,0.597,49,2.745,56,2.195,58,2.932,59,2.947,95,0.13,98,2.695,99,0.757,101,0.007,103,0,104,0,124,2.282,154,1.487,155,2.322,180,1.247,226,0.649,227,1.869,236,1.756,262,3.033,349,1.227,376,1.978,382,2.862,437,1.686,479,4.621,490,4.622,539,0.921,541,1.087,603,2.168,608,2.672,679,6.599,685,2.945,686,3.285,687,4.282,711,2.787,712,2.82,713,2.787,714,2.82,715,3.235,716,2.787,717,2.82,718,2.52,721,2.855,739,4.724,741,3.118,742,3.067,1458,2.566,1755,2.974,2034,3.932,2336,2.667,3573,5.501,4209,3.218,4692,2.382,5505,4.928,5949,4.047,5951,4.865,6237,5.627,6255,7.402,6680,2.724,6970,7.688,6999,3.302,7000,3.302,7042,3.557,10133,4.959,10240,6.088,10241,4.54,10242,8.462,10243,6.959,10244,8.462,10245,8.462,10246,6.959,10247,6.434,10248,6.959,10249,6.959,10250,4.54,10251,9.828,10252,4.54,10253,6.959,10254,4.54,10255,4.54,10256,4.54,10257,4.54,10258,4.54,10259,6.959,10260,4.54,10261,6.434,10262,4.54,10263,6.959,10264,4.54,10265,6.959,10266,4.54,10267,4.54,10268,4.54,10269,8.462,10270,4.54,10271,4.54,10272,8.462,10273,4.54,10274,4.54,10275,4.198,10276,4.54,10277,4.54,10278,4.54,10279,4.54]],["title/classes/FileRecordResponse.html",[0,0.231,6260,5.065]],["body/classes/FileRecordResponse.html",[0,0.355,2,0.619,3,0.013,4,0.013,5,0.007,7,0.084,27,0.534,29,0.43,30,0.001,31,0.623,32,0.182,33,0.457,34,1.782,47,0.944,55,2.645,56,5.058,70,5.222,83,2.475,95,0.133,101,0.017,103,0,104,0,112,0.64,138,2.347,149,3.979,150,1.259,154,1.181,180,1.444,245,3.613,247,2.419,284,3.231,379,0.691,404,3.289,814,5.84,815,4.362,816,5.427,822,5.329,832,5.069,833,4.474,838,2.983,1165,4.465,1169,4.329,1198,3.271,1299,5.329,1985,3.206,2720,3.937,2723,5.985,2862,5.84,2863,5.722,3573,4.659,6237,6.113,6240,3.674,6245,4.465,6246,4.465,6247,4.465,6248,4.465,6249,4.329,6250,8.631,6251,4.629,6252,8.713,6255,6.673,6256,6.543,6257,9.074,6258,7.286,6259,2.877,6260,8.273,6261,6.753,6262,4.465,6263,4.629,6264,2.966,6265,4.629,6266,3.863,6267,4.629,6268,4.629,6269,4.629,6270,4.329,6271,4.465,6272,4.629,6273,4.629,6274,3.937,6275,4.465,6276,3.674,6277,4.465,6278,4.019,6279,4.629,6280,4.629,6281,4.465,6282,6.753,6283,7.078,6284,5.282,6285,4.689,6286,6.233,6287,4.11,10280,5.525,10281,5.525,10282,5.525,10283,5.525,10284,5.525,10285,5.525,10286,5.525,10287,5.525,10288,5.525,10289,5.525,10290,5.525,10291,5.525]],["title/classes/FileRecordScope.html",[0,0.231,10251,5.958]],["body/classes/FileRecordScope.html",[0,0.214,2,0.707,3,0.015,4,0.015,5,0.008,7,0.096,8,1.063,26,2.778,27,0.537,29,0.971,30,0.001,31,0.699,32,0.177,33,0.598,34,1.076,35,1.498,47,0.724,49,2.491,95,0.141,96,1.735,97,2.737,99,1.053,101,0.01,103,0.001,104,0.001,112,0.704,119,2.086,124,4.458,143,1.975,154,1.35,180,1.589,227,2.6,236,1.443,310,3.844,349,1.21,382,3.534,437,0.817,480,2.462,486,2.668,519,1.956,593,3.285,603,2.439,1159,4.5,2291,6.085,3573,3.092,4209,2.142,4486,5.838,5505,5.258,6059,5.991,6060,5.991,6061,5.991,6066,5.991,6067,5.991,6068,4.337,6069,4.265,6070,4.337,6071,4.337,6080,4.265,6081,5.991,6082,4.337,6083,4.265,6084,4.337,6085,4.265,6086,7.509,6237,5.635,6255,3.789,6286,5.81,6306,5.991,9960,4.5,9964,4.593,10092,4.947,10251,11.705,10292,12.144,10293,5.103,10294,8.869,10295,8.869,10296,8.869,10297,7.759,10298,8.869,10299,8.869,10300,6.315,10301,8.869,10302,5.524,10303,8.869,10304,8.869,10305,5.838,10306,7.759,10307,6.315,10308,8.869,10309,5.524,10310,6.315,10311,5.524,10312,5.838]],["title/classes/FileRecordSecurityCheck.html",[0,0.231,10106,5.065]],["body/classes/FileRecordSecurityCheck.html",[0,0.241,2,0.389,3,0.008,4,0.008,5,0.007,7,0.154,26,2.519,27,0.394,29,0.271,30,0.001,31,0.568,32,0.123,33,0.341,34,0.96,39,0.935,47,0.862,49,3.546,55,1.213,83,3.242,95,0.134,96,1.549,97,1.507,99,0.58,101,0.017,103,0,104,0,105,0.767,112,0.565,119,2.063,133,1.972,138,1.635,143,1.821,144,2.343,145,0.965,154,1.922,172,3.986,173,1.028,174,2.242,178,1.444,180,0.623,181,1.903,182,1.131,226,0.497,236,1.934,239,0.798,347,3.293,349,1.346,358,1.53,360,3.157,376,3.097,377,3.228,379,0.435,381,1.168,437,1.538,480,2.496,486,2.705,490,2.521,519,2.534,529,0.984,556,2.554,565,2.064,570,5.02,654,1.677,662,3.961,696,1.371,708,1.444,739,2.468,746,2.529,754,2.278,822,4.58,838,3.311,988,1.5,990,2.404,994,2.478,1064,3.808,1159,5.829,1299,4.58,1666,2.386,1759,2.388,1867,1.288,1927,2.042,1928,3.942,1985,3.253,2161,1.983,2337,1.983,2503,2.914,2588,1.93,2611,3.774,2621,2.002,2627,1.553,2637,1.632,2824,1.53,3063,1.514,3112,1.824,3307,1.736,3321,2.388,3573,4.964,3683,1.965,3836,2.586,4209,3.439,4219,2.65,4221,2.187,4275,3.076,4285,1.522,4286,2.064,4779,1.93,5092,1.965,5104,2.002,6237,4.704,6255,4.267,6256,4.463,6257,4.017,6258,5.889,6266,2.431,6274,2.478,6276,2.312,6278,5.172,6284,3.947,6285,4.996,6286,3.693,6579,2.11,6807,2.724,6808,4.193,6922,1.882,9892,2.586,9957,2.65,9960,4.017,9964,2.529,9998,2.431,10008,2.65,10012,2.65,10038,4.298,10041,2.529,10042,2.529,10047,2.65,10048,2.65,10088,2.81,10089,2.724,10090,4.417,10091,2.81,10092,4.417,10094,6.61,10106,6.687,10109,2.81,10110,2.65,10111,4.417,10112,2.586,10113,4.101,10114,4.101,10115,4.101,10116,2.187,10117,4.556,10118,4.556,10119,4.556,10120,4.556,10121,4.556,10122,4.556,10123,6.408,10124,6.502,10125,5.746,10126,4.298,10127,4.193,10128,2.586,10129,4.298,10130,2.65,10131,4.298,10132,5.571,10133,2.478,10134,2.724,10135,2.529,10136,2.529,10137,2.81,10138,2.81,10139,2.65,10140,2.586,10141,2.65,10142,2.81,10143,2.81,10144,2.81,10145,2.81,10146,2.81,10147,2.81,10148,2.81,10149,2.81,10150,2.81,10151,2.81,10152,7.779,10153,2.81,10154,2.81,10155,4.556,10156,2.81,10157,2.81,10158,4.556,10159,4.556,10160,4.556,10161,2.81,10162,2.81,10163,2.81,10164,2.81,10165,2.81,10166,2.81,10167,2.81,10168,4.556,10169,5.746,10170,2.724,10171,2.81,10172,4.556,10173,2.724,10174,2.81,10175,4.556,10176,2.81,10177,5.746,10178,5.746,10179,2.724,10180,5.746,10181,2.81,10182,2.81,10183,2.81,10184,2.81,10185,2.81,10186,2.81,10187,2.81,10188,2.724,10189,2.81,10190,2.81,10191,2.81,10192,2.81,10193,2.81,10194,2.81,10195,2.81,10196,2.81,10197,2.81,10313,5.638,10314,3.477,10315,3.477,10316,3.477,10317,3.477]],["title/classes/FileResponseBuilder.html",[0,0.231,10318,5.958]],["body/classes/FileResponseBuilder.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.015,7,0.142,8,1.381,27,0.385,29,0.732,30,0.001,31,0.747,32,0.128,33,0.451,35,1.129,47,0.88,95,0.146,101,0.015,103,0.001,104,0.001,105,1.014,284,2.902,349,0.971,413,3.838,437,1.215,454,5.472,662,2.955,3542,3.835,6237,5.347,6327,8.688,6341,9.451,9882,6.248,9884,8.221,9895,10.081,10318,10.081,10319,11.523,10320,9.397,10321,9.501,10322,10.081]],["title/classes/FileSecurityCheckEntity.html",[0,0.231,9986,5.503]],["body/classes/FileSecurityCheckEntity.html",[0,0.249,2,0.822,3,0.017,4,0.017,5,0.009,7,0.111,27,0.521,29,0.572,30,0.001,31,0.411,32,0.162,33,0.532,47,0.872,83,3.637,95,0.141,96,2.016,101,0.016,103,0.001,104,0.001,105,0.792,112,0.781,138,2.247,172,4.267,173,2.171,181,2.632,236,1.927,347,4.339,376,4.83,377,5.033,379,0.918,381,2.465,480,3.429,486,3.716,556,2.793,570,7.27,838,3.477,1159,8.441,1718,3.091,1927,4.312,1928,6.875,2503,5.083,9986,7.946,9998,5.131,9999,9.658,10064,10.878,10124,8.001,10126,7.496,10127,7.314,10128,5.459,10129,7.496,10130,5.595,10323,6.786,10324,10.363,10325,9.834,10326,7.34,10327,7.34,10328,7.34,10329,10.952,10330,9.092,10331,7.34]],["title/interfaces/FileSecurityCheckEntityProps.html",[105,0.735,10324,5.958]],["body/interfaces/FileSecurityCheckEntityProps.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.126,30,0.001,32,0.161,33,0.632,47,0.945,83,3.28,95,0.15,96,2.288,101,0.018,103,0.001,104,0.001,105,0.899,107,1.998,112,0.848,172,4.108,173,2.463,181,2.229,236,1.738,347,4.712,376,3.627,377,3.78,556,2.971,570,7.238,838,3.349,1159,9.167,1718,3.507,1927,4.891,1928,7.468,2503,5.521,9986,6.729,9998,5.822,9999,6.194,10064,6.976,10124,8.69,10126,6.348,10127,7.945,10128,6.194,10129,8.143,10130,6.348,10323,7.699,10324,10.318,10329,11.894,10330,7.699]],["title/controllers/FileSecurityController.html",[259,2.591,10332,5.958]],["body/controllers/FileSecurityController.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.227,27,0.419,29,0.797,30,0.001,31,0.573,32,0.156,33,0.491,35,1.229,47,0.913,95,0.164,100,2.618,101,0.013,103,0.001,104,0.001,124,6.333,138,1.861,141,5.795,150,1.776,177,1.427,223,3.209,226,1.114,236,1.268,259,3.893,262,2.833,324,3.945,333,3.298,337,4.029,345,2.481,349,0.805,437,1.008,608,2.359,1154,3.1,1166,7.207,1169,6.106,1303,5.67,2705,3.68,4022,4.902,6237,5.301,6259,4.058,6307,8.066,6682,5.265,6683,6.53,6684,4.677,6706,6.53,9999,5.798,10217,9.571,10332,8.953,10333,11.425,10334,7.795,10335,10.234,10336,10.234,10337,7.795,10338,9.371,10339,7.795,10340,7.795,10341,7.795,10342,7.795,10343,7.795,10344,11.425,10345,10.563,10346,7.795,10347,7.795,10348,7.795,10349,7.795,10350,7.207,10351,7.795,10352,7.795,10353,7.795,10354,7.795,10355,7.795,10356,7.795,10357,7.795]],["title/injectables/FileSystemAdapter.html",[539,0.901,10358,5.705]],["body/injectables/FileSystemAdapter.html",[0,0.152,3,0.01,4,0.01,5,0.015,7,0.068,8,0.825,27,0.495,29,0.87,30,0.001,31,0.626,32,0.158,33,0.536,35,1.451,36,2.654,47,0.978,95,0.129,101,0.007,103,0,104,0,112,0.546,153,2.14,226,0.64,262,2.89,274,6.922,333,4.729,348,5.76,349,1.108,358,1.969,360,7.281,379,1.049,437,1.388,539,0.911,541,1.071,590,4.224,603,1.684,608,2.342,686,3.249,842,4.811,1395,4.508,1618,4.175,1619,4.576,1671,5.246,1672,3.583,2029,4.444,2146,6.708,2159,6.363,2196,3.808,2298,3.255,2309,4.385,2337,2.552,2594,3.506,2771,6.848,2778,6.708,2823,5.944,3248,3.022,3475,6.363,3834,5.391,6259,3.583,7867,5.765,7891,8.567,10358,5.765,10359,11.365,10360,11.365,10361,4.475,10362,9.387,10363,6.882,10364,6.882,10365,6.882,10366,8.386,10367,8.386,10368,6.882,10369,8.386,10370,8.386,10371,6.882,10372,6.882,10373,4.475,10374,5.765,10375,10.666,10376,6.882,10377,4.475,10378,3.889,10379,9.414,10380,10.162,10381,6.882,10382,6.363,10383,5.246,10384,8.704,10385,11.536,10386,6.882,10387,4.475,10388,3.411,10389,8.386,10390,4.475,10391,6.363,10392,9.92,10393,8.386,10394,4.475,10395,7.753,10396,7.753,10397,8.704,10398,9.414,10399,6.882,10400,4.475,10401,6.363,10402,6.363,10403,5.561,10404,8.386,10405,4.475,10406,6.882,10407,4.475,10408,4.475,10409,6.882,10410,4.475,10411,4.137,10412,6.363,10413,4.475,10414,4.475,10415,4.475,10416,8.386,10417,4.475,10418,4.475,10419,4.475,10420,4.475,10421,4.475,10422,6.882,10423,4.475,10424,4.475,10425,3.506,10426,4.475,10427,4.475,10428,4.475]],["title/modules/FileSystemModule.html",[201,1.804,10429,5.705]],["body/modules/FileSystemModule.html",[0,0.327,3,0.022,4,0.022,5,0.014,30,0.001,95,0.148,101,0.016,103,0.001,104,0.001,201,3.336,203,3.46,204,3.718,205,3.827,206,3.811,207,3.795,208,4.612,209,4.735,218,4.649,219,3.748,220,3.66,226,1.376,10358,11.932,10359,8.895,10360,8.895,10429,11.571,10430,9.621,10431,9.621,10432,9.621,10433,9.621,10434,9.621]],["title/classes/FileUrlParams.html",[0,0.231,6301,4.677]],["body/classes/FileUrlParams.html",[0,0.454,2,0.701,3,0.015,4,0.021,5,0.011,7,0.095,26,2.566,27,0.418,30,0.001,32,0.17,33,0.423,39,1.686,47,0.957,95,0.158,99,1.045,101,0.022,103,0,104,0,105,0.676,112,0.7,119,1.795,138,1.857,143,1.395,147,4.735,148,1.988,149,4.215,150,1.428,151,5.865,153,1.424,154,1.339,245,3.628,247,2.742,248,5.055,249,4.482,348,3.128,807,4.943,808,6.648,818,5.131,838,3.2,851,2.993,988,3.804,990,2.118,1079,5.996,1139,5.62,1140,4.104,1141,4.104,1198,3.509,1280,1.958,2680,4.609,2863,5.03,3573,3.068,4209,2.125,5905,6.539,6237,5.141,6250,7.258,6256,6.046,6285,3.087,6288,4.303,6289,4.38,6290,4.38,6293,7.764,6296,4.38,6297,8.054,6298,7.746,6299,7.746,6300,4.38,6301,6.058,6302,7.888,6303,4.303,6304,4.38,6305,4.232,6306,5.958,6307,4.166,6308,4.232,6309,4.303,6310,4.232,6311,4.232,6312,3.992,6313,4.38,6314,4.38,6315,4.38,6316,3.992,6317,3.992,6318,4.104,6319,4.166,6320,4.38,10435,8.82,10436,6.265,10437,6.265,10438,6.265,10439,6.265]],["title/modules/FilesModule.html",[201,1.804,10440,5.705]],["body/modules/FilesModule.html",[0,0.302,3,0.021,4,0.021,5,0.011,30,0.001,95,0.17,101,0.015,103,0.001,104,0.001,201,3.222,203,3.2,204,3.439,205,3.539,206,3.524,207,3.509,208,4.454,209,3.346,214,6.213,218,4.431,219,3.467,220,3.385,225,4.394,226,1.272,1278,2.815,2428,4.816,2705,4.2,7981,9.746,7986,11.217,7990,7.784,8014,10.82,8015,11.217,8034,8.227,10440,11.814,10441,8.898,10442,8.898,10443,8.898,10444,8.898]],["title/injectables/FilesRepo.html",[539,0.901,8014,5.503]],["body/injectables/FilesRepo.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.085,8,0.975,10,3.305,12,3.732,18,4.116,26,2.663,27,0.515,29,0.96,30,0.001,31,0.691,32,0.169,33,0.592,34,1.386,35,1.446,36,2.675,40,2.705,49,3.78,55,2.51,56,2.705,58,6.795,83,2.943,95,0.153,96,2.235,97,2.425,99,0.933,101,0.009,103,0,104,0,154,1.739,155,2.714,173,1.655,177,1.024,180,1.458,226,0.8,236,1.323,262,2.938,349,1.087,361,3.161,379,0.7,382,3.175,437,1.595,479,4.847,490,2.884,539,1.077,541,1.339,608,2.209,662,3.953,679,7.07,685,3.442,686,3.84,687,4.85,711,3.434,712,3.475,713,3.434,714,3.475,715,3.987,716,3.434,717,3.475,718,3.105,723,4.265,741,3.842,1663,2.812,1718,2.356,2251,4.069,2252,6.059,2256,5.916,2294,3.779,3600,4.521,4324,6.384,4690,3.72,5947,4.265,6259,6.072,7989,9.205,8000,7.116,8014,6.573,8020,4.687,8023,8.02,8120,4.069,9961,4.265,9963,4.894,9973,4.161,9984,4.894,10066,4.894,10445,5.595,10446,8.134,10447,8.134,10448,8.134,10449,5.595,10450,8.134,10451,5.595,10452,5.595,10453,8.134,10454,5.595,10455,5.595,10456,8.134,10457,5.595,10458,5.595,10459,7.52,10460,4.521,10461,8.134,10462,5.595,10463,5.595,10464,7.116,10465,5.172,10466,5.595,10467,5.595,10468,5.595,10469,5.595,10470,5.595,10471,5.595]],["title/injectables/FilesService.html",[539,0.901,10472,6.296]],["body/injectables/FilesService.html",[0,0.25,3,0.017,4,0.017,5,0.009,7,0.111,8,1.18,26,2.924,27,0.506,29,0.962,30,0.001,31,0.692,32,0.169,33,0.593,35,1.424,36,2.809,39,3.189,95,0.15,99,1.227,101,0.012,103,0.001,104,0.001,154,1.572,155,3.285,177,1.346,226,1.051,262,3.007,345,2.341,349,1.314,379,0.92,437,1.273,539,1.303,541,1.76,608,2.733,696,4.676,2428,6.007,6866,6.433,8014,9.58,8023,5.605,10472,9.103,10473,7.353,10474,9.846,10475,9.846,10476,9.846,10477,9.846,10478,7.353,10479,9.846,10480,7.353,10481,9.846,10482,7.353,10483,9.846,10484,7.353,10485,9.846,10486,7.353,10487,9.846,10488,10.96,10489,9.846,10490,7.353,10491,9.846,10492,9.846,10493,7.353]],["title/modules/FilesStorageAMQPModule.html",[201,1.804,10494,5.958]],["body/modules/FilesStorageAMQPModule.html",[0,0.303,3,0.021,4,0.021,5,0.011,30,0.001,95,0.167,101,0.015,103,0.001,104,0.001,201,3.228,203,3.214,204,3.454,205,3.555,206,3.54,207,3.525,208,4.463,209,3.361,214,6.22,218,4.443,219,3.482,220,3.4,225,4.406,226,1.278,259,3.4,1168,6.813,1278,2.828,3541,4.404,6237,4.147,6259,4.653,6490,8.913,10494,12.344,10495,8.938,10496,8.938,10497,8.938,10498,10.832,10499,11.727,10500,8.263,10501,6.249,10502,8.263]],["title/modules/FilesStorageApiModule.html",[201,1.804,10503,5.335]],["body/modules/FilesStorageApiModule.html",[0,0.283,3,0.019,4,0.019,5,0.01,30,0.001,95,0.172,101,0.014,103,0.001,104,0.001,201,3.127,203,3.001,204,3.225,205,3.319,206,3.305,207,3.291,208,4.324,209,3.138,218,4.254,219,3.251,220,3.174,222,5.183,223,4.404,225,4.219,226,1.193,259,3.174,963,4.805,1168,6.361,1319,8.628,1737,9.796,2705,3.939,3541,4.112,3939,7.112,6237,3.872,6259,4.345,6490,8.757,10332,10.328,10345,12.177,10498,10.643,10501,5.834,10502,7.715,10503,11.049,10504,8.344,10505,8.344,10506,8.344,10507,11.805,10508,6.537,10509,6.743,10510,6.743]],["title/injectables/FilesStorageClientAdapterService.html",[539,0.901,6366,4.853]],["body/injectables/FilesStorageClientAdapterService.html",[0,0.24,3,0.022,4,0.017,5,0.011,7,0.107,8,1.151,26,2.473,27,0.478,29,0.909,30,0.001,31,0.654,32,0.16,33,0.56,35,1.308,36,2.677,95,0.166,99,1.181,100,2.379,101,0.012,103,0.001,104,0.001,107,1.699,141,3.383,177,1.296,226,1.012,262,2.907,333,4.062,345,2.254,349,1.125,379,0.886,437,1.627,539,1.27,541,1.695,603,1.422,608,2.51,631,3.634,823,3.821,1278,2.24,2253,3.934,2254,5.271,2943,4.783,3541,6.61,3573,3.467,6236,5.398,6237,5.662,6259,3.687,6350,9.146,6352,9.78,6353,6.547,6366,6.84,6392,5.267,10058,5.932,10511,11.281,10512,7.081,10513,7.757,10514,8.398,10515,8.875,10516,10.889,10517,9.78,10518,7.081,10519,9.599,10520,7.081,10521,9.599,10522,7.081,10523,9.599,10524,7.081,10525,6.547,10526,7.081,10527,7.081,10528,12.581,10529,7.081,10530,7.081,10531,9.599,10532,7.081]],["title/classes/FilesStorageClientMapper.html",[0,0.231,10058,5.705]],["body/classes/FilesStorageClientMapper.html",[0,0.203,2,0.67,3,0.014,4,0.014,5,0.007,7,0.091,8,1.024,27,0.489,29,0.929,30,0.001,31,0.703,32,0.172,33,0.573,34,1.455,35,1.434,47,0.703,95,0.138,99,0.998,100,3.344,101,0.01,103,0,104,0,107,1.436,154,2.32,236,1.766,349,1.339,413,4.236,437,1.624,529,2.416,604,4.045,823,3.809,1454,6.085,2161,5.678,2625,4.513,2627,3.815,2824,3.757,3541,6.634,3573,2.931,6009,4.563,6236,8.275,6237,5.699,6240,3.98,6241,10.29,6249,4.689,6256,6.853,6260,4.452,6285,4.208,6287,4.452,6392,9.643,8439,3.98,9296,5.237,9887,10.52,10055,11.356,10057,10.036,10058,7.154,10533,5.986,10534,8.54,10535,8.54,10536,8.54,10537,8.54,10538,8.54,10539,8.54,10540,8.54,10541,5.986,10542,8.54,10543,5.986,10544,8.54,10545,5.986,10546,8.54,10547,5.986,10548,8.54,10549,5.986,10550,8.54,10551,5.986,10552,10.855,10553,5.986,10554,5.986,10555,5.986,10556,5.986,10557,5.986,10558,5.986,10559,5.986,10560,5.986,10561,5.986,10562,5.986,10563,5.986,10564,5.986,10565,8.54,10566,5.986,10567,5.986,10568,5.986]],["title/modules/FilesStorageClientModule.html",[201,1.804,3533,5.065]],["body/modules/FilesStorageClientModule.html",[0,0.28,3,0.019,4,0.019,5,0.01,30,0.001,95,0.167,101,0.014,103,0.001,104,0.001,201,3.112,203,2.97,204,3.192,205,3.285,206,3.271,207,3.257,208,4.303,209,4.417,214,6.095,218,4.226,219,3.218,220,3.142,225,4.191,226,1.181,1278,2.613,2984,5.011,2985,4.625,3533,10.548,3541,5.789,6237,3.832,6359,11.694,6366,9.947,6378,7.636,6406,9.554,6412,7.636,10517,11.004,10525,7.636,10569,8.259,10570,8.259,10571,8.259,10572,8.259,10573,8.259,10574,7.636,10575,7.636,10576,9.296]],["title/injectables/FilesStorageConsumer.html",[539,0.901,10499,5.958]],["body/injectables/FilesStorageConsumer.html",[0,0.191,3,0.013,4,0.022,5,0.007,7,0.085,8,0.979,26,2.235,27,0.432,29,0.821,30,0.001,31,0.591,32,0.144,33,0.506,35,1.155,36,2.486,39,1.513,95,0.164,96,1.546,99,0.938,100,1.89,101,0.009,103,0,104,0,138,1.749,173,1.664,177,1.76,226,0.804,262,2.759,349,0.993,379,1.021,437,1.511,521,2.228,539,1.081,541,1.347,556,2.422,603,2.119,608,2.582,631,2.887,662,3.959,765,3.123,815,5.709,823,3.702,996,2.687,997,2.656,998,2.656,999,2.809,1000,3.07,1025,4.127,1121,5.972,1123,7.547,1160,3.933,1161,3.633,1278,1.78,1555,7.161,1612,5.291,1773,3.07,1894,4.092,1895,4.009,2253,3.941,2254,4.763,2372,3.864,2680,3.687,3806,6.993,4676,4.713,6237,5.198,6293,7.014,6311,7.126,6953,6.298,7875,8.041,9914,7.145,10133,5.82,10499,7.145,10513,8.525,10514,8.411,10576,4.922,10577,11.203,10578,5.626,10579,9.614,10580,5.626,10581,9.789,10582,10.1,10583,5.626,10584,5.201,10585,8.889,10586,8.967,10587,10.223,10588,9.614,10589,5.626,10590,5.201,10591,5.626,10592,5.626,10593,5.626,10594,7.551,10595,9.753,10596,11.203,10597,4.184,10598,5.201,10599,4.407,10600,4.288,10601,4.288,10602,4.922,10603,4.922,10604,5.201,10605,5.626,10606,8.167,10607,5.626,10608,8.167,10609,5.626,10610,5.626,10611,8.167,10612,8.167,10613,5.626,10614,5.626,10615,5.626,10616,5.626]],["title/classes/FilesStorageMapper.html",[0,0.231,10603,5.958]],["body/classes/FilesStorageMapper.html",[0,0.288,2,0.664,3,0.014,4,0.014,5,0.007,7,0.09,8,1.017,27,0.487,29,0.927,30,0.001,31,0.667,32,0.171,33,0.571,35,1.429,55,2.744,56,5.228,59,2.636,70,5.398,95,0.151,101,0.01,103,0,104,0,105,0.64,154,1.268,226,0.848,236,1.861,271,2.321,349,1.229,413,4.232,437,1.584,529,1.679,789,2.962,815,5.851,823,2.978,1301,4.315,1603,2.231,1787,7.059,2588,4.71,3196,5.406,3489,4.97,3573,2.905,3801,4.315,4209,2.013,5904,3.731,6237,5.684,6255,7.937,6256,5.9,6260,7.368,6271,4.794,6277,4.794,6285,2.924,6287,7.368,6293,7.605,6305,7.303,6306,4.007,6308,7.726,6682,6.691,6683,9.582,6706,4.97,6775,4.97,10133,6.047,10213,9.159,10214,7.845,10218,5.485,10220,7.845,10222,5.485,10223,5.485,10224,5.19,10226,5.485,10321,8.241,10322,5.19,10603,7.424,10617,12.251,10618,5.933,10619,8.486,10620,7.424,10621,8.486,10622,8.486,10623,8.486,10624,5.933,10625,7.424,10626,5.933,10627,5.933,10628,5.933,10629,8.486,10630,5.933,10631,8.486,10632,5.933,10633,5.933,10634,5.933,10635,5.485,10636,5.933,10637,5.933,10638,5.933,10639,5.933,10640,5.485,10641,5.933,10642,5.485,10643,5.933,10644,5.933,10645,5.933,10646,5.933,10647,4.97,10648,5.933,10649,5.933,10650,5.933,10651,5.933,10652,5.933,10653,5.933,10654,5.933,10655,5.933]],["title/modules/FilesStorageModule.html",[201,1.804,10498,5.503]],["body/modules/FilesStorageModule.html",[0,0.201,3,0.014,4,0.014,5,0.007,30,0.001,32,0.081,47,0.807,55,1.275,87,2.978,95,0.173,96,2.329,99,0.988,101,0.01,103,0,104,0,119,1.206,143,1.319,154,1.266,155,1.977,173,1.752,201,2.622,203,2.131,204,2.289,205,2.356,206,2.346,207,2.337,208,3.957,209,3.722,214,5.518,218,3.371,219,2.308,220,2.254,225,4.261,226,0.847,236,0.964,239,1.359,292,2.998,358,2.606,437,1.28,490,3.006,506,3.131,511,2.647,521,2.346,573,5.726,598,3.411,687,4.29,761,3.881,996,2.83,997,2.796,998,2.796,999,2.958,1076,3.939,1077,3.636,1104,4.963,1117,3.594,1119,4.787,1121,3.68,1123,3.826,1132,4.142,1137,4.963,1168,4.516,1278,1.874,1319,7.077,1458,3.348,1666,2.507,1692,5.896,1912,2.733,2020,2.593,2021,2.901,2022,2.796,2023,3.774,2428,3.206,2622,3.155,3542,2.417,4670,5.477,4676,4.963,4902,4.069,5520,3.939,5571,4.001,6237,2.749,6255,5.086,6259,3.084,6335,3.774,6490,7.184,9882,3.939,10010,4.221,10106,6.305,10240,10.404,10498,11.373,10503,8.464,10576,5.183,10581,11.079,10582,11.079,10604,5.477,10656,5.924,10657,5.924,10658,5.924,10659,5.924,10660,8.474,10661,7.554,10662,6.305,10663,6.305,10664,4.309,10665,6.461,10666,4.221,10667,4.221,10668,6.305,10669,5.924,10670,7.101,10671,4.963,10672,5.477,10673,4.406,10674,6.166,10675,6.166,10676,6.166,10677,4.221,10678,4.069,10679,5.183,10680,4.963,10681,5.924,10682,5.924,10683,5.924,10684,5.183,10685,5.924,10686,5.924,10687,5.924,10688,4.963,10689,6.461,10690,4.406,10691,4.406,10692,4.309,10693,4.787,10694,4.406,10695,4.516,10696,5.183]],["title/injectables/FilesStorageProducer.html",[539,0.901,10517,5.705]],["body/injectables/FilesStorageProducer.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.013,26,2.284,27,0.501,29,0.992,30,0.001,31,0.685,32,0.174,33,0.587,35,1.427,36,2.527,47,0.838,55,1.269,95,0.155,99,0.984,101,0.01,103,0,104,0,107,1.415,141,4.036,177,1.807,180,1.514,226,0.843,262,2.866,349,1.02,379,1.057,382,2.979,437,1.277,448,5.127,479,3.165,519,1.827,539,1.118,541,1.412,584,8.011,598,3.396,603,1.185,608,2.276,823,4.291,1121,3.663,1123,3.809,1146,4.766,1147,8.833,1154,3.361,1160,4.124,1161,3.809,1278,1.866,1555,7.654,1612,6.535,2253,4.047,2254,4.868,3541,5.624,3806,8.638,3923,6.828,3959,4.387,6237,5.295,10511,10.552,10513,6.828,10514,7.392,10515,7.812,10517,7.079,10584,7.812,10586,6.285,10590,7.812,10597,6.285,10599,4.621,10600,4.496,10601,4.496,10602,5.16,10697,5.898,10698,9.948,10699,7.392,10700,7.392,10701,5.898,10702,8.447,10703,5.898,10704,5.898,10705,8.45,10706,8.447,10707,5.898,10708,5.16,10709,5.453,10710,5.16,10711,5.453,10712,5.16,10713,5.453,10714,4.941,10715,5.453,10716,5.898,10717,5.898,10718,5.898,10719,5.898,10720,5.898,10721,5.898,10722,5.898,10723,5.898,10724,5.898,10725,5.898,10726,5.898]],["title/modules/FilesStorageTestModule.html",[201,1.804,10727,5.958]],["body/modules/FilesStorageTestModule.html",[0,0.242,3,0.017,4,0.017,5,0.008,8,0.855,27,0.292,29,0.555,30,0.001,31,0.399,32,0.097,33,0.342,35,0.857,59,2.216,95,0.172,99,1.19,101,0.012,103,0.001,104,0.001,154,1.524,155,2.38,201,3.101,203,2.565,204,2.756,205,2.836,206,2.824,207,2.813,208,4.288,209,2.682,214,5.85,218,3.836,219,2.778,220,2.713,223,4.499,225,4.824,226,1.02,349,0.737,413,2.97,437,1.414,490,3.42,1106,5.187,1107,6.624,1110,7.267,1168,7.352,1278,2.256,1319,8.258,1692,6.879,2472,3.237,3541,5.385,6237,4.475,6255,5.787,6259,3.713,6490,8.382,10501,4.986,10503,9.876,10508,5.587,10661,8.814,10668,7.174,10672,6.594,10727,12.324,10728,7.132,10729,7.132,10730,8.551,10731,6.239,10732,8.708,10733,7.132,10734,5.187,10735,5.763,10736,5.187,10737,5.763,10738,5.974,10739,7.174]],["title/classes/FilterImportUserParams.html",[0,0.231,10740,5.705]],["body/classes/FilterImportUserParams.html",[0,0.313,2,1.384,3,0.016,4,0.016,5,0.008,7,0.101,27,0.519,30,0.001,32,0.176,33,0.657,47,0.936,95,0.17,101,0.017,103,0.001,104,0.001,112,0.733,119,1.878,138,2.304,143,2.054,147,4.952,148,2.12,149,4.911,150,1.522,247,2.925,248,4.989,249,5.223,276,4.492,361,5.97,651,5.047,652,5.047,808,7.173,838,3.572,851,3.192,1414,6.449,1844,6.043,2347,5.261,2358,5.662,3076,5.877,3077,5.213,4324,5.597,4508,5.768,5462,5.73,5537,7.259,10740,7.728,10741,11.936,10742,5.597,10743,7.387,10744,7.256,10745,6.682,10746,6.682,10747,9.768,10748,6.682,10749,6.682,10750,6.682,10751,6.682,10752,6.682,10753,11.053,10754,6.177,10755,6.682,10756,6.682,10757,6.682,10758,11.053,10759,6.682,10760,6.682,10761,9.225,10762,4.761,10763,6.41,10764,6.682,10765,6.682]],["title/classes/FilterNewsParams.html",[0,0.231,10766,5.503]],["body/classes/FilterNewsParams.html",[0,0.354,2,0.899,3,0.019,4,0.019,5,0.01,7,0.122,27,0.475,30,0.001,32,0.158,33,0.625,34,1.777,47,0.866,95,0.156,99,1.339,101,0.013,103,0.001,104,0.001,112,0.828,119,2.123,138,2.108,147,5.601,148,2.548,149,4.668,150,1.829,151,6.937,153,2.891,248,4.354,249,4.964,253,3.931,807,4.257,838,2.517,851,3.835,993,5.791,2680,5.54,2714,6.834,2859,5.557,2860,5.557,6918,7.485,6925,7.549,6926,7.435,6969,7.434,7101,7.023,7103,8.103,7105,7.422,7110,7.422,7112,7.818,7115,7.588,7121,7.422,10766,8.431,10767,12.27,10768,9.366,10769,7.023,10770,8.431,10771,8.74,10772,8.028,10773,8.028,10774,7.422,10775,7.76,10776,8.028]],["title/classes/FilterUserParams.html",[0,0.231,10777,5.705]],["body/classes/FilterUserParams.html",[0,0.396,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,27,0.393,30,0.001,31,0.705,32,0.131,33,0.56,47,0.824,95,0.148,101,0.016,103,0.001,104,0.001,112,0.927,138,1.746,148,3.046,149,4.441,150,2.187,248,4.872,249,4.722,274,7.004,480,3.241,651,5.576,652,5.576,808,7.004,4324,7.083,4508,5.215,10741,10.793,10742,8.041,10747,8.874,10777,9.779,10778,9.598]],["title/classes/ForbiddenLoggableException.html",[0,0.231,1792,5.335]],["body/classes/ForbiddenLoggableException.html",[0,0.285,2,0.94,3,0.02,4,0.02,5,0.01,7,0.127,8,1.287,26,2.644,27,0.44,29,0.654,30,0.001,31,0.47,32,0.162,33,0.403,35,1.009,39,3.185,47,0.836,95,0.164,99,1.401,101,0.014,103,0.001,104,0.001,131,4.435,177,2.167,180,1.924,182,2.731,191,4.544,226,1.2,284,2.593,349,0.867,379,1.343,437,1.086,603,2.378,687,6.315,753,7.346,1025,4.201,1275,5.433,1280,3.357,1281,6.15,1609,6.754,1612,4.621,1613,5.153,1792,8.413,2471,7.028,8369,6.45,8820,5.281,8827,4.883,8828,5.094,10779,11.84,10780,6.785,10781,7.763,10782,8.397,10783,7.034,10784,7.034,10785,8.397,10786,8.397,10787,8.397]],["title/classes/ForbiddenOperationError.html",[0,0.231,288,5.705]],["body/classes/ForbiddenOperationError.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,8,1.213,27,0.538,29,0.597,30,0.001,31,0.429,32,0.186,33,0.544,35,0.92,47,0.908,55,1.649,59,3.144,95,0.128,101,0.013,103,0.001,104,0.001,112,0.803,138,2.279,177,2.491,180,1.813,182,2.492,226,1.095,288,8.476,347,2.806,379,0.958,382,3.883,820,5.529,823,2.688,950,5.257,988,5.197,990,4.351,1025,4.901,1205,8.273,1206,7.485,1207,3.847,1208,7.218,1212,4.948,1213,4.252,1214,4.948,1215,4.948,1216,4.948,1217,4.948,1218,4.948,1219,4.597,1220,4.37,1221,6.002,1226,4.818,1631,7.926,4642,6.191,10788,10.118,10789,7.661,10790,7.661,10791,7.661,10792,8.476,10793,7.713,10794,7.083]],["title/controllers/FwuLearningContentsController.html",[259,2.591,10795,5.705]],["body/controllers/FwuLearningContentsController.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.196,27,0.307,29,0.584,30,0.001,31,0.42,32,0.136,33,0.36,35,0.902,36,2.124,95,0.166,101,0.012,103,0.001,104,0.001,137,4.719,138,1.365,141,5.709,143,1.671,150,1.71,177,1.374,223,3.089,226,1.073,236,1.623,259,2.855,261,3.563,262,2.457,271,4.386,333,4.223,337,3.879,338,3.966,343,3.997,345,2.389,349,0.775,360,4.202,437,1.45,529,2.123,608,1.73,823,4.366,1117,4.553,1162,3.585,1220,4.28,1301,5.458,2020,3.285,2021,3.674,2022,3.542,2196,4.037,2904,4.029,3489,6.286,3881,4.202,6682,8.405,6683,6.286,6684,4.502,6700,6.286,6706,6.286,10338,8.889,10350,6.938,10795,8.36,10796,7.818,10797,10.023,10798,9.98,10799,7.504,10800,8.36,10801,7.504,10802,10.456,10803,9.98,10804,7.504,10805,9.061,10806,6.565,10807,6.565,10808,7.504,10809,7.504,10810,7.504,10811,7.504,10812,7.504,10813,7.504,10814,8.547,10815,7.504,10816,7.504,10817,7.504,10818,7.504,10819,7.504,10820,7.504,10821,6.938,10822,7.504,10823,7.504,10824,7.504,10825,7.504,10826,7.504,10827,7.504,10828,7.504,10829,7.504]],["title/modules/FwuLearningContentsModule.html",[201,1.804,10830,5.958]],["body/modules/FwuLearningContentsModule.html",[0,0.22,3,0.015,4,0.015,5,0.008,30,0.001,32,0.089,47,0.458,87,3.261,94,4.398,95,0.175,96,2.483,99,1.082,101,0.011,103,0.001,104,0.001,143,1.444,155,2.165,173,1.919,201,2.755,203,2.333,204,2.507,205,2.58,206,2.569,207,2.559,208,3.81,209,2.439,214,5.683,218,3.595,219,2.528,220,2.468,223,3.721,225,3.565,226,0.928,236,1.055,239,2.386,276,3.843,292,3.283,358,2.854,437,0.839,490,3.205,511,2.898,521,2.569,573,6.105,598,3.736,644,4.125,687,4.574,761,4.25,963,3.736,996,3.099,997,3.063,998,3.063,999,3.239,1076,4.314,1077,3.982,1278,2.052,1319,8.023,1458,3.666,1666,2.745,1692,6.684,1912,2.993,2472,2.945,2622,3.456,3542,2.647,3939,6.01,4902,4.456,5520,4.314,5571,4.382,6335,4.133,6490,8.144,8439,4.314,8549,4.892,9882,4.314,10010,4.623,10501,4.536,10660,8.728,10662,6.723,10663,6.723,10664,4.719,10665,6.89,10666,4.623,10667,4.623,10673,8.798,10674,6.574,10675,6.574,10676,6.574,10677,4.623,10678,4.456,10680,5.435,10688,5.435,10689,6.89,10690,4.825,10691,4.825,10692,4.719,10693,5.243,10694,4.825,10695,4.945,10696,5.676,10795,8.714,10796,5.083,10797,9.267,10800,5.435,10805,9.898,10806,5.676,10807,5.676,10830,12.155,10831,6.488,10832,6.488,10833,6.488,10834,5.998,10835,6.488,10836,5.837,10837,5.676,10838,5.998,10839,5.998,10840,5.676]],["title/modules/FwuLearningContentsTestModule.html",[201,1.804,10841,5.958]],["body/modules/FwuLearningContentsTestModule.html",[0,0.22,3,0.015,4,0.015,5,0.008,8,0.777,27,0.265,29,0.504,30,0.001,31,0.363,32,0.089,33,0.311,35,0.778,59,2.012,94,4.393,95,0.175,99,1.08,101,0.011,103,0.001,104,0.001,155,2.161,201,2.978,203,2.33,204,2.503,205,2.576,206,2.565,207,2.555,208,4.33,209,2.436,214,5.681,218,3.591,219,2.523,220,2.464,223,4.628,225,4.663,226,0.926,239,2.071,276,3.838,349,0.669,413,2.78,437,1.344,490,3.201,598,3.73,644,4.12,963,3.73,1106,4.711,1107,6.201,1110,6.91,1278,2.049,1319,8.019,1692,6.681,1912,2.989,2472,2.94,3542,2.643,3939,6.003,6335,4.127,6490,8.14,8439,4.307,8549,4.886,9882,4.307,10501,4.528,10508,5.074,10661,8.559,10667,4.615,10673,8.793,10677,4.615,10678,4.449,10680,5.426,10688,5.426,10730,8.265,10731,5.667,10732,8.362,10734,4.711,10735,5.234,10736,4.711,10737,5.234,10739,6.715,10795,8.706,10796,7.073,10797,9.841,10800,5.426,10805,9.893,10806,5.667,10807,5.667,10834,8.347,10836,5.83,10838,5.989,10839,5.989,10840,5.667,10841,12.271,10842,6.477,10843,6.477,10844,6.477,10845,6.098,10846,6.477]],["title/injectables/FwuLearningContentsUc.html",[539,0.901,10805,5.503]],["body/injectables/FwuLearningContentsUc.html",[0,0.289,3,0.02,4,0.02,5,0.01,7,0.129,8,1.298,27,0.443,29,0.843,30,0.001,31,0.606,32,0.148,33,0.519,35,1.022,47,0.934,59,2.642,95,0.159,101,0.014,103,0.001,104,0.001,177,1.557,226,1.216,262,2.61,349,0.878,360,4.762,379,1.354,437,1.1,539,1.433,541,2.035,603,2.175,608,1.96,639,3.991,823,3.799,1074,8.252,1154,3.382,1278,2.69,2253,4.437,2254,5.661,2943,5.743,3542,3.47,9882,5.654,10796,9.331,10797,10.537,10800,7.123,10805,8.748,10814,9.557,10840,7.439,10847,11.91,10848,8.503,10849,9.624,10850,9.326,10851,8.503,10852,8.503,10853,8.503,10854,8.503,10855,8.503,10856,8.503]],["title/interfaces/GetFile.html",[105,0.735,6341,4.953]],["body/interfaces/GetFile.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.178,33,0.655,47,1.011,55,2.583,95,0.11,101,0.021,103,0.001,104,0.001,105,1.361,107,2.075,112,0.869,284,4.02,1151,8.185,1153,5.666,1299,4.843,2035,5.44,6330,6.776,6331,6.776,6332,7.246,6333,6.989,6334,6.989,6335,5.511,6336,6.776,6337,6.047,6338,6.047,6339,6.047,6340,6.047,6341,7.96,6342,9.384,6343,8.99,6344,9.384,6345,9.384]],["title/interfaces/GetFileResponse.html",[105,0.735,10321,5.191]],["body/interfaces/GetFileResponse.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,31,0.705,32,0.184,33,0.654,47,1.008,55,2.573,95,0.152,101,0.018,103,0.001,104,0.001,105,1.175,107,2.058,112,0.864,154,1.833,284,3.885,348,4.281,789,4.281,1151,7.91,1153,5.617,6237,3.979,6255,7.174,6312,7.618,6342,9.355,6343,8.962,6344,9.355,6345,9.355,10321,8.297,10814,6.537,10857,7.929,10858,6.93,10859,7.502,10860,6.378,10861,6.237]],["title/classes/GetFwuLearningContentParams.html",[0,0.231,10802,5.958]],["body/classes/GetFwuLearningContentParams.html",[0,0.399,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,27,0.397,30,0.001,32,0.132,47,0.829,95,0.149,101,0.016,103,0.001,104,0.001,112,0.932,138,1.763,148,3.075,150,2.208,245,3.079,248,4.9,250,7.931,808,7.045,10796,9.199,10797,10.287,10802,10.272,10862,11.742,10863,9.691,10864,12.633,10865,9.691,10866,11.742,10867,11.742,10868,9.691,10869,9.691,10870,9.691]],["title/classes/GetMetaTagDataBody.html",[0,0.231,10871,5.958]],["body/classes/GetMetaTagDataBody.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,3.818,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,245,3.092,1198,4.357,2173,6.604,8244,7.725,10871,10.318,10872,8.99,10873,8.578,10874,11.794,10875,9.761,10876,9.761,10877,9.761]],["title/interfaces/GlobalConstants.html",[105,0.735,10878,6.296]],["body/interfaces/GlobalConstants.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.171,33,0.626,47,0.989,95,0.121,101,0.016,103,0.001,104,0.001,105,1.026,107,2.281,112,0.922,437,1.501,1198,3.269,1762,5.705,10674,9.731,10675,9.731,10676,9.731,10878,11.583,10879,9.508,10880,11.606,10881,9.508,10882,11.606]],["title/classes/GlobalErrorFilter.html",[0,0.231,8451,5.705]],["body/classes/GlobalErrorFilter.html",[0,0.162,2,0.534,3,0.011,4,0.011,5,0.006,7,0.072,8,0.867,27,0.494,29,0.917,30,0.001,31,0.675,32,0.161,33,0.565,35,1.414,95,0.16,100,1.603,101,0.008,103,0,104,0,105,0.515,177,0.874,226,0.682,236,1.859,340,2.293,345,1.519,349,1.216,379,0.597,437,1.701,479,4.122,519,3.015,521,1.89,556,1.202,603,2.717,604,2.937,645,3.471,646,3.4,823,4.539,950,4.516,990,4.373,996,2.279,997,2.253,998,2.253,1025,3.807,1131,8.955,1154,2.875,1162,3.453,1163,3.4,1178,5.225,1202,4.882,1205,5.973,1207,3.107,1219,7.594,1228,4.175,1231,3.471,1275,5.638,1278,1.51,1280,2.259,2033,4.175,2253,2.963,2943,3.223,3309,3.856,3671,7.625,3906,6.323,4484,2.832,4642,3.856,4804,5.235,6684,2.863,8356,3.856,8406,8.153,8424,3.856,8436,3.856,8451,6.055,8474,8.153,9701,4.412,10597,6.489,10598,4.412,10883,12.288,10884,4.412,10885,8.725,10886,7.228,10887,7.228,10888,7.228,10889,7.228,10890,7.228,10891,9.733,10892,7.228,10893,4.772,10894,6.683,10895,11.43,10896,4.772,10897,7.228,10898,4.772,10899,7.228,10900,4.772,10901,7.228,10902,4.772,10903,7.228,10904,4.772,10905,7.228,10906,4.772,10907,4.772,10908,7.228,10909,4.772,10910,4.772,10911,6.055,10912,4.772,10913,4.772,10914,4.772,10915,4.772,10916,4.772,10917,4.772,10918,4.772,10919,4.772,10920,4.772,10921,4.772,10922,4.772,10923,4.772,10924,4.772,10925,4.772,10926,4.772,10927,4.772,10928,4.772,10929,4.772,10930,4.772,10931,4.772,10932,4.772,10933,7.228,10934,4.772,10935,4.772,10936,4.772,10937,7.228,10938,4.772,10939,4.772,10940,4.772,10941,4.772,10942,4.772,10943,4.772,10944,4.772,10945,4.772,10946,4.772]],["title/classes/GlobalValidationPipe.html",[0,0.231,10947,5.958]],["body/classes/GlobalValidationPipe.html",[0,0.388,2,0.874,3,0.018,4,0.018,5,0.009,27,0.32,30,0.001,32,0.156,95,0.13,100,4.234,101,0.013,103,0.001,104,0.001,112,0.62,138,1.864,142,3.055,143,2.881,145,2.168,148,3.252,153,1.775,180,1.836,182,2.54,226,1.117,236,1.27,245,2.048,271,3.055,283,7.019,284,2.412,310,3.385,340,3.753,358,4.508,379,1.43,472,5.416,480,2.845,486,3.083,511,3.489,517,2.994,578,4.738,759,5.953,765,4.335,827,5.116,990,2.64,1082,8.027,1117,6.217,1202,5.275,1225,7.737,1233,5.116,1240,4.588,1668,5.116,1773,4.262,1941,5.844,2036,5.275,2112,5.364,2365,4.686,2680,4.626,3250,4.912,3460,6.712,3467,5.809,4597,8.28,5207,5.044,5231,4.912,6507,7.164,8356,6.311,8969,5.681,9426,6.118,10947,8.964,10948,10.247,10949,7.81,10950,10.573,10951,11.436,10952,7.81,10953,8.027,10954,7.221,10955,7.81,10956,7.81,10957,7.81,10958,7.81,10959,6.832,10960,7.81,10961,6.832,10962,7.81,10963,7.221,10964,7.81,10965,7.81,10966,7.81,10967,7.81,10968,6.311]],["title/classes/GridElement.html",[0,0.231,7536,5.335]],["body/classes/GridElement.html",[0,0.173,2,0.344,3,0.007,4,0.007,5,0.004,7,0.128,8,0.611,26,2.573,27,0.503,29,0.813,30,0.001,31,0.585,32,0.169,33,0.551,34,1.832,35,1.381,39,1.371,47,0.882,55,2.584,83,0.944,95,0.083,101,0.017,103,0,104,0,105,0.332,112,0.405,119,1.847,120,2.242,181,1.364,191,2.758,192,1.958,226,0.439,236,1.636,349,1.347,379,0.384,381,1.711,404,3.435,405,2.804,413,3.473,437,1.686,480,1.812,486,0.925,519,3.619,529,1.847,556,2.421,603,2.381,696,2.995,708,2.711,739,3.324,848,1.691,974,4.648,1080,4.838,1207,3.601,1280,1.593,1492,4.975,1507,3.246,1679,4.387,1883,4.448,2238,2.408,2442,1.505,2588,2.828,2609,7.348,2621,1.77,2622,1.637,2664,2.286,2725,3.897,2745,4.449,3202,2.286,3399,2.149,3572,3.246,3666,7.052,3738,3.165,4915,1.886,6431,2.575,6538,2.076,6580,9.534,6584,3.706,6664,3.5,6896,5.215,7443,5.411,7466,2.235,7467,2.689,7469,2.689,7472,2.689,7473,2.575,7474,7.603,7476,2.484,7483,4.458,7489,2.689,7493,2.689,7496,2.689,7497,7.603,7499,9.011,7502,5.788,7504,2.689,7505,7.052,7508,2.689,7510,2.689,7512,2.689,7514,2.689,7516,2.689,7518,2.689,7521,2.689,7523,4.458,7524,2.286,7525,7.365,7526,6.643,7527,5.71,7528,7.365,7529,5.71,7530,4.458,7531,7.365,7532,4.458,7533,5.71,7534,2.689,7535,3.79,7536,9.515,7537,5.71,7538,4.458,7539,2.689,7540,4.458,7541,2.689,7542,4.458,7543,2.689,7544,4.458,7545,4.458,7546,4.458,7547,4.458,7548,4.458,7549,2.689,7550,4.458,7551,2.575,7552,4.458,7553,2.689,7554,2.149,7555,4.458,7556,2.689,7557,2.689,7558,2.689,7559,4.458,7560,2.484,7561,2.689,7562,4.458,7563,2.689,7564,2.343,7565,2.689,7566,2.689,7567,2.689,7568,2.689,7569,2.689,7570,2.689,7571,2.689,7572,2.689,7573,2.689,7574,4.458,7575,4.458,7576,2.575,7577,5.71,7578,2.689,7579,4.458,7580,2.689,7581,2.689,7582,2.689,7583,2.689,7584,2.689,7585,2.689,7586,2.689,7587,2.689,7588,2.689,7589,2.689,7590,2.689,7591,2.689,7592,2.689,7593,2.689,7594,2.689,7595,2.689,7596,2.689,7597,2.689,7598,2.689,7599,2.689,7600,2.689,7601,2.689,7602,2.689,7603,4.458,7604,2.689,7605,2.689,7606,2.689,7607,4.458,7608,4.458,7609,2.689,7610,2.689,7611,2.689,7612,2.689,7613,2.689,7614,2.689,7615,2.689,7616,5.71,7617,2.689,7618,2.689,10969,4.711,10970,5.095,10971,5.095,10972,5.095,10973,5.095,10974,4.711,10975,4.711,10976,4.711,10977,3.073,10978,3.073,10979,3.073,10980,3.073,10981,3.073,10982,3.073,10983,2.841,10984,3.073,10985,3.073,10986,3.073,10987,3.073,10988,3.073,10989,3.073,10990,3.073,10991,3.073,10992,3.073,10993,3.073,10994,3.073,10995,3.073]],["title/classes/Group.html",[0,0.231,974,3.293]],["body/classes/Group.html",[0,0.233,2,0.768,3,0.016,4,0.016,5,0.008,7,0.104,8,1.127,26,1.991,27,0.546,29,0.732,30,0.001,31,0.698,32,0.178,33,0.451,34,1.169,35,1.384,47,0.813,83,2.885,95,0.146,99,1.145,101,0.015,103,0.001,104,0.001,105,0.741,112,0.746,119,2.181,133,2.4,180,1.92,239,2.458,349,1.287,381,3.156,382,2.835,448,3.852,479,3.52,519,3.57,528,3.574,556,2.367,662,2.955,686,4.436,696,2.707,974,5.572,1600,5.465,1603,2.581,1604,5.107,1607,6.92,1687,4.263,2479,6.005,2736,4.564,2754,4.564,3063,5.019,3064,6.346,3083,7.594,4208,8.688,4219,5.232,4246,5.75,5268,5.547,7142,6.091,8507,8.168,8538,8.62,10996,6.346,10997,9.397,10998,10.654,10999,8.784,11000,8.688,11001,9.728,11002,6.864,11003,6.864,11004,8.688,11005,6.864,11006,6.864,11007,6.864,11008,6.864,11009,6.864,11010,6.864,11011,6.864,11012,5.377,11013,6.864,11014,5.547,11015,5.75,11016,5.75,11017,6.346,11018,6.346,11019,6.346,11020,6.005,11021,6.346,11022,6.346,11023,5.75,11024,6.346]],["title/modules/GroupApiModule.html",[201,1.804,11025,5.503]],["body/modules/GroupApiModule.html",[0,0.268,3,0.018,4,0.018,5,0.009,30,0.001,95,0.173,101,0.013,103,0.001,104,0.001,201,3.047,203,2.842,204,3.054,205,3.143,206,3.13,207,3.117,208,4.213,209,2.971,218,4.107,219,3.079,220,3.006,222,4.908,223,4.251,225,4.073,226,1.13,259,3.006,654,2.35,1359,9.654,1360,9.075,1378,6.62,1379,5.525,1692,7.083,1904,4.425,2472,3.587,2705,3.73,3534,8.062,3544,3.999,4422,10.874,5381,8.27,11025,11.526,11026,7.902,11027,7.902,11028,7.902,11029,10.489,11030,12,11031,7.902,11032,10.062,11033,7.902,11034,7.902]],["title/controllers/GroupController.html",[259,2.591,11032,5.958]],["body/controllers/GroupController.html",[0,0.343,2,0.973,3,0.014,4,0.014,5,0.007,7,0.093,8,1.041,27,0.356,29,0.676,30,0.001,31,0.487,32,0.187,33,0.417,34,1.045,35,1.044,36,2.335,95,0.165,99,1.023,100,2.06,101,0.01,103,0,104,0,138,1.58,150,1.397,177,1.122,223,2.524,226,0.877,239,1.407,247,2.684,259,2.333,261,2.912,262,2.636,270,6.056,271,3.946,294,6.351,304,5.669,310,4.756,319,3.922,333,3.676,335,6.053,336,7.683,337,3.169,338,3.241,343,3.266,345,1.952,346,5.156,347,4.406,349,0.897,437,1.419,556,2.188,608,2.002,631,3.147,662,3.783,821,4.175,823,3.851,835,7.672,974,4.878,1219,7.217,1220,3.497,1557,4.287,1885,3.625,2705,2.895,2874,4.46,2904,3.292,3720,3.602,4322,9.6,4330,4.955,4372,8.451,4451,9.6,4649,5.966,6541,5.926,6680,5.212,7156,4.674,9231,8.152,9287,5.364,9724,9.327,11030,9.327,11032,7.6,11035,6.132,11036,10.089,11037,6.132,11038,9.327,11039,6.132,11040,10.974,11041,8.687,11042,10.974,11043,6.132,11044,6.132,11045,6.132,11046,9.6,11047,6.132,11048,6.132,11049,6.132,11050,6.132,11051,6.132,11052,7.02,11053,8.451,11054,5.364,11055,6.132,11056,6.132,11057,8.032,11058,6.132,11059,6.132,11060,6.132,11061,7.6,11062,7.6,11063,6.132,11064,6.132,11065,6.132,11066,6.132,11067,6.132,11068,6.132]],["title/classes/GroupDomainMapper.html",[0,0.231,11069,5.958]],["body/classes/GroupDomainMapper.html",[0,0.185,2,0.609,3,0.013,4,0.013,5,0.006,7,0.082,8,0.955,27,0.473,29,0.899,30,0.001,31,0.685,32,0.167,33,0.554,34,1.357,35,1.387,39,1.462,48,2.581,95,0.132,96,1.493,97,2.356,99,0.907,101,0.009,103,0,104,0,154,2.218,236,1.797,239,1.827,276,3.386,349,1.193,381,1.826,405,2.991,413,4.182,437,1.614,556,2.908,644,2.481,655,4.003,974,5.343,988,3.435,1718,2.289,2252,7.305,3063,3.469,3075,2.481,3287,7.802,4285,2.379,4389,3.463,4390,4.259,4487,7.641,4697,4.043,5107,3.672,6582,7.72,8249,3.336,8507,4.144,8538,8.686,8543,9.345,8549,2.942,9024,6.968,10999,4.144,11001,9.671,11014,8.929,11015,4.554,11016,4.554,11020,4.756,11069,6.968,11070,11.929,11071,5.436,11072,7.965,11073,7.965,11074,9.427,11075,7.965,11076,7.965,11077,7.965,11078,5.436,11079,8.387,11080,7.965,11081,5.436,11082,7.965,11083,5.436,11084,5.436,11085,5.436,11086,7.965,11087,9.584,11088,5.436,11089,7.965,11090,5.436,11091,4.554,11092,7.385,11093,5.436,11094,7.364,11095,6.968,11096,5.436,11097,5.436,11098,8.247,11099,7.965,11100,7.965,11101,5.436,11102,4.756,11103,5.436,11104,5.436,11105,5.436,11106,7.965,11107,5.436,11108,5.436,11109,5.436,11110,7.965,11111,5.436,11112,5.436,11113,5.436,11114,5.436,11115,5.436,11116,5.436,11117,5.436,11118,5.436,11119,5.436,11120,4.554,11121,5.436,11122,5.436,11123,5.436,11124,5.436,11125,5.436,11126,5.436]],["title/entities/GroupEntity.html",[154,1.456,6582,5.065]],["body/entities/GroupEntity.html",[0,0.362,3,0.016,4,0.016,5,0.008,7,0.103,26,1.974,27,0.509,30,0.001,31,0.642,32,0.182,33,0.596,34,1.155,47,0.752,95,0.161,96,1.863,101,0.018,103,0.001,104,0.001,105,0.732,112,0.74,138,2.259,143,2.885,144,4.091,154,1.992,155,2.263,172,3.4,173,2.006,174,3.707,178,2.818,180,1.216,181,1.815,182,2.206,404,2.768,405,5.129,578,4.115,644,5.485,838,3.595,974,4.507,1672,4.853,1985,2.698,2442,3.321,2507,3.03,3063,4.994,4269,7.588,4275,6.257,4276,4.115,4285,2.969,4347,4.07,5040,4.277,5107,7.745,6541,3.984,6582,6.933,6591,3.798,6819,4.582,8514,5.314,8515,5.934,8538,7.745,8543,9.416,11079,7.532,11087,9.416,11091,9.606,11092,9.416,11098,10.031,11102,5.934,11127,6.271,11128,6.783,11129,6.783,11130,6.783,11131,6.783,11132,6.783,11133,6.783,11134,6.271,11135,6.271,11136,4.742,11137,6.271,11138,5.682,11139,6.271,11140,6.271,11141,6.271,11142,6.271]],["title/interfaces/GroupEntityProps.html",[105,0.735,11079,5.503]],["body/interfaces/GroupEntityProps.html",[0,0.367,3,0.016,4,0.016,5,0.008,7,0.106,26,2.459,30,0.001,31,0.68,32,0.186,33,0.626,34,1.977,47,0.819,95,0.163,96,1.918,101,0.018,103,0.001,104,0.001,105,0.754,107,1.676,112,0.755,143,2.584,144,3.562,154,2.032,172,3.036,173,2.065,174,3.782,178,2.901,180,1.251,181,1.869,182,2.272,404,2.85,405,5.232,578,4.237,644,5.717,838,3.389,974,4.598,1672,3.636,1985,2.777,2442,3.419,2507,3.12,3063,5.289,4275,6.334,4276,4.237,4285,3.057,4347,4.19,5040,4.363,5107,8.202,6541,4.102,6582,5.194,6591,3.91,8514,5.471,8515,6.109,8538,8.202,8543,9.815,11079,8.737,11087,9.815,11091,10.172,11092,9.815,11098,10.623,11102,6.109,11127,6.456,11134,6.456,11135,6.456,11136,4.882,11137,6.456,11138,5.85,11139,6.456,11140,6.456,11141,6.456,11142,6.456]],["title/classes/GroupIdParams.html",[0,0.231,11046,5.958]],["body/classes/GroupIdParams.html",[0,0.403,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.404,30,0.001,32,0.135,34,2.021,47,0.837,95,0.15,101,0.016,103,0.001,104,0.001,112,0.942,138,1.793,142,4.641,143,2.641,144,3.247,145,3.294,148,3.128,150,2.246,245,3.11,807,4.841,4325,8.258,5873,8.258,7535,9.466,11046,10.378,11143,11.863,11144,9.113]],["title/modules/GroupModule.html",[201,1.804,11029,5.503]],["body/modules/GroupModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.158,101,0.015,103,0.001,104,0.001,201,3.301,203,3.38,204,3.631,205,3.737,206,3.722,207,3.706,208,4.565,209,4.686,218,4.583,219,3.661,220,3.575,226,1.343,560,3.869,2428,5.086,11029,11.301,11145,9.397,11146,9.397,11147,9.397,11148,11.897,11149,11.369,11150,9.397]],["title/interfaces/GroupNameIdTuple.html",[105,0.735,11151,5.705]],["body/interfaces/GroupNameIdTuple.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.552,32,0.162,39,2.652,47,1.005,101,0.02,103,0.001,104,0.001,105,1.28,107,2.365,112,0.942,121,6.457,123,8.258,135,5.471,653,5.095,4209,3.344,5768,6.73,6541,5.79,11151,10.661,11152,9.113,11153,11.554,11154,8.623]],["title/interfaces/GroupProps.html",[105,0.735,11014,5.503]],["body/interfaces/GroupProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,26,2.491,30,0.001,31,0.688,32,0.189,33,0.631,34,2.003,47,0.928,83,3.883,95,0.149,99,1.202,101,0.016,103,0.001,104,0.001,105,0.778,107,1.73,112,0.771,119,1.977,133,2.521,180,1.969,239,1.654,349,1.306,519,3.009,528,3.753,556,2.447,696,2.843,974,5.313,1600,6.39,1603,2.71,1604,4.111,1687,4.477,2479,6.306,3063,5.347,3083,7.85,4246,6.039,5268,5.825,7142,5.135,8507,9.358,8538,9.091,10996,6.664,10998,6.664,10999,9.358,11000,6.664,11001,9.853,11004,6.664,11014,7.85,11015,9.851,11016,9.851,11017,6.664,11018,6.664,11019,6.664,11020,6.306,11021,6.664,11022,6.664,11023,6.039,11024,6.664]],["title/injectables/GroupRepo.html",[539,0.901,11149,5.705]],["body/injectables/GroupRepo.html",[0,0.171,3,0.012,4,0.012,5,0.006,7,0.077,8,0.904,10,3.063,12,3.46,18,3.815,26,2.64,27,0.477,29,0.907,30,0.001,31,0.652,32,0.167,33,0.559,34,1.705,35,1.35,36,2.726,40,3.646,47,0.637,48,4.754,49,1.991,95,0.148,96,1.387,97,2.187,99,0.842,101,0.008,103,0,104,0,143,1.124,145,1.401,154,2.49,155,2.516,177,0.924,226,0.722,236,1.895,239,1.73,262,2.944,345,1.607,349,1.307,379,0.631,381,3.363,437,1.738,539,0.998,541,1.208,593,4.163,608,2.76,655,3.789,662,4.225,974,6.117,1604,4.756,1718,2.126,2252,5.765,2264,6.558,2300,5.747,2305,5.271,2307,8.344,2319,4.228,2335,6.596,2442,2.471,3063,2.198,3075,2.303,3282,3.529,3287,4.574,3306,6.596,3348,4.079,4209,2.558,4432,6.596,4439,6.596,5107,3.409,6582,9.104,7142,5.291,8538,3.409,9053,4.416,9060,6.596,11014,9.082,11069,4.416,11079,6.093,11091,4.228,11094,4.666,11149,6.316,11155,5.047,11156,6.971,11157,6.971,11158,5.047,11159,5.047,11160,6.971,11161,5.047,11162,5.047,11163,6.971,11164,5.047,11165,5.047,11166,5.047,11167,5.047,11168,10.011,11169,10.011,11170,10.011,11171,7.54,11172,5.047,11173,5.047,11174,5.047,11175,7.54,11176,9.025,11177,5.047,11178,5.047,11179,5.047,11180,5.047,11181,5.047,11182,5.047]],["title/classes/GroupResponse.html",[0,0.231,11053,5.705]],["body/classes/GroupResponse.html",[0,0.263,2,0.868,3,0.018,4,0.018,5,0.009,7,0.117,27,0.539,29,0.603,30,0.001,31,0.678,32,0.188,33,0.603,34,1.941,47,0.911,95,0.153,101,0.013,103,0.001,104,0.001,112,0.81,138,2.348,149,4.784,150,1.766,245,3.451,379,0.969,404,3.162,556,1.952,564,2.379,818,3.895,838,2.43,974,5.509,1058,5.907,1985,3.082,2507,3.462,2862,4.756,3063,4.962,8514,6.071,8538,7.695,8553,9.544,10999,8.685,11053,10.535,11138,6.492,11183,7.75,11184,8.919,11185,10.195,11186,7.75,11187,7.75,11188,7.75,11189,11.627,11190,7.75,11191,10.14,11192,7.75,11193,7.75,11194,7.75,11195,7.75,11196,6.78,11197,6.78,11198,7.165,11199,6.78,11200,7.165,11201,7.165]],["title/classes/GroupResponseMapper.html",[0,0.231,11054,5.958]],["body/classes/GroupResponseMapper.html",[0,0.231,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,8,1.12,27,0.437,29,0.831,30,0.001,31,0.674,32,0.164,33,0.512,34,1.817,35,1.282,47,0.48,48,3.232,55,2.675,56,5.552,59,2.903,70,5.733,95,0.146,99,1.135,100,2.286,101,0.011,103,0.001,104,0.001,236,1.958,239,1.562,276,2.893,349,1.102,413,4.052,437,1.556,556,1.714,603,2.143,651,3.251,652,3.251,655,3.421,781,4.04,821,5.518,823,3.278,988,2.935,1557,4.758,1718,2.866,3063,2.964,4330,9.279,4333,5.701,4334,5.701,4335,4.525,4336,5.701,4358,10.081,4360,4.336,4372,10.081,4487,6.745,8507,5.188,8538,4.597,8553,7.827,9246,5.954,10999,5.188,11052,9.279,11053,10.081,11054,8.173,11095,5.954,11189,6.292,11191,7.827,11202,11.483,11203,10.668,11204,9.343,11205,9.343,11206,6.806,11207,6.292,11208,9.343,11209,9.343,11210,6.806,11211,6.806,11212,9.343,11213,6.806,11214,6.806,11215,6.806,11216,9.343,11217,6.806,11218,6.806,11219,6.806,11220,6.806,11221,6.806,11222,6.806,11223,6.806,11224,6.806,11225,6.806,11226,6.806,11227,6.806,11228,6.806,11229,6.806,11230,6.806,11231,6.806,11232,6.806,11233,6.806,11234,6.806,11235,6.806,11236,6.806,11237,6.806,11238,6.806,11239,6.806]],["title/classes/GroupRoleUnknownLoggable.html",[0,0.231,11240,5.958]],["body/classes/GroupRoleUnknownLoggable.html",[0,0.304,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,8,1.341,27,0.458,29,0.697,30,0.001,31,0.502,32,0.122,33,0.43,35,1.076,95,0.142,101,0.015,103,0.001,104,0.001,177,1.64,239,2.055,276,5.186,284,2.767,345,2.851,349,0.925,379,1.12,974,4.331,1025,3.504,1154,3.562,1275,5.598,1276,6.26,1278,2.834,1280,3.497,1281,6.296,1458,5.062,3024,6.383,7095,5.564,8369,6.305,8370,6.549,8523,5.956,11240,9.787,11241,12.199,11242,8.957,11243,8.957,11244,10.325,11245,8.957,11246,10.343,11247,8.957,11248,8.957,11249,6.515,11250,8.957,11251,8.957,11252,8.957]],["title/injectables/GroupRule.html",[539,0.901,1705,5.705]],["body/injectables/GroupRule.html",[0,0.269,3,0.018,4,0.018,5,0.009,7,0.12,8,1.239,27,0.472,29,0.896,30,0.001,31,0.645,32,0.167,33,0.552,35,1.242,95,0.161,99,1.321,101,0.013,103,0.001,104,0.001,119,2.643,131,4.312,143,1.763,177,1.449,226,1.132,239,3.112,345,2.52,349,1.068,379,0.99,437,1.337,539,1.368,541,1.895,604,3.217,662,4.084,974,6.487,1280,2.475,1604,5.598,1609,6.606,1637,8.067,1675,7.405,1705,8.661,1816,6.677,1820,6.422,1827,5.264,3352,6.874,3353,5.348,3356,6.772,3359,5.348,3360,6.983,3361,5.889,6055,5.642,11253,7.917,11254,7.917,11255,7.917,11256,7.917,11257,7.917,11258,10.339]],["title/injectables/GroupService.html",[539,0.901,11148,5.705]],["body/injectables/GroupService.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.011,10,3.426,12,3.869,18,4.267,26,2.822,27,0.512,29,0.973,30,0.001,31,0.7,32,0.174,33,0.6,34,1.834,35,1.468,36,2.856,40,4.077,47,0.696,48,5.113,95,0.15,99,0.981,101,0.01,103,0,104,0,177,1.077,226,0.841,236,0.957,239,1.349,262,3.042,345,1.872,349,1.225,379,0.735,437,1.534,529,1.664,539,1.116,541,1.408,593,3.651,608,2.817,655,2.956,662,4.365,974,6.769,1280,1.838,1690,7.064,1718,2.477,2428,3.183,2472,2.669,4209,1.995,4432,7.377,4439,7.377,4482,3.972,4483,4.111,4484,3.491,6541,4.953,7142,5.691,11148,7.064,11149,9.938,11156,7.796,11157,7.796,11160,7.796,11163,7.796,11259,5.881,11260,8.432,11261,5.881,11262,5.881,11263,8.432,11264,5.881,11265,5.881,11266,5.881,11267,5.881,11268,5.881,11269,8.432,11270,5.881,11271,8.432,11272,5.881,11273,8.432,11274,5.881,11275,5.881,11276,5.881,11277,5.881,11278,8.432,11279,5.881,11280,5.881]],["title/classes/GroupUcMapper.html",[0,0.231,11281,6.296]],["body/classes/GroupUcMapper.html",[0,0.401,2,0.724,3,0.015,4,0.015,5,0.008,7,0.098,8,1.081,27,0.425,29,0.809,30,0.001,31,0.703,32,0.172,33,0.498,34,1.769,35,1.247,59,2.802,95,0.155,99,1.079,100,2.172,101,0.011,103,0.001,104,0.001,236,1.689,349,1.073,413,4.006,437,1.528,662,3.265,696,2.551,974,6.371,1058,6.874,1379,4.521,1718,2.724,2367,4.442,3063,2.817,3075,4.739,3116,4.176,3489,5.417,4281,5.417,4330,10.513,4333,7.555,4334,7.555,4335,7.469,4336,7.555,4337,8.338,4345,5.657,4360,6.616,4487,7.188,4491,5.979,4492,5.979,4603,3.529,7142,6.244,8538,4.368,9803,4.3,9804,4.3,10836,7.255,11052,9.547,11196,7.889,11197,5.657,11199,5.657,11281,8.338,11282,11.234,11283,6.467,11284,9.018,11285,10.384,11286,9.018,11287,9.018,11288,6.467,11289,6.467,11290,11.234,11291,11.039,11292,7.469,11293,6.467,11294,9.018,11295,11.234,11296,6.467,11297,6.467,11298,6.467,11299,6.467,11300,6.467,11301,6.467,11302,9.018,11303,6.467,11304,6.467,11305,6.467,11306,9.018,11307,6.467,11308,6.467,11309,6.467,11310,6.467,11311,6.467,11312,6.467,11313,6.467,11314,6.467,11315,6.467]],["title/classes/GroupUser.html",[0,0.231,11001,5.191]],["body/classes/GroupUser.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,26,2.84,27,0.515,29,0.746,30,0.001,31,0.536,32,0.172,33,0.459,39,3.381,95,0.121,99,1.597,101,0.016,103,0.001,104,0.001,112,0.926,181,3.12,191,5.182,192,6.101,379,1.198,381,3.216,4697,9.347,11001,10.218,11316,13.078,11317,8.853,11318,11.657,11319,9.576,11320,8.377,11321,8.377]],["title/classes/GroupUserEntity.html",[0,0.231,11087,5.335]],["body/classes/GroupUserEntity.html",[0,0.303,2,1.001,3,0.021,4,0.021,5,0.011,7,0.136,27,0.499,29,0.696,30,0.001,31,0.501,32,0.167,33,0.429,95,0.142,96,2.455,101,0.018,103,0.001,104,0.001,105,0.964,112,0.887,138,2.032,173,2.643,181,2.99,239,3.182,276,5.895,379,1.118,381,3.002,1658,5.362,2071,6.501,2503,5.774,5040,5.592,6819,7.546,7645,6.249,11087,8.752,11322,10.695,11323,7.487,11324,11.169,11325,11.171,11326,8.938,11327,6.501,11328,6.813]],["title/interfaces/GroupUserEntityProps.html",[105,0.735,11324,5.958]],["body/interfaces/GroupUserEntityProps.html",[0,0.318,3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.157,95,0.146,96,2.575,101,0.019,103,0.001,104,0.001,105,1.012,107,2.249,112,0.914,173,2.773,181,2.509,239,3.244,276,6.01,1658,5.625,2071,6.819,2503,5.947,5040,5.713,7645,6.554,11087,7.344,11322,7.854,11323,7.854,11324,10.892,11327,6.819,11328,7.146]],["title/classes/GroupUserResponse.html",[0,0.231,11191,5.705]],["body/classes/GroupUserResponse.html",[0,0.29,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,27,0.531,29,0.665,30,0.001,31,0.478,32,0.177,33,0.41,34,2.033,47,0.935,95,0.138,99,1.424,101,0.014,103,0.001,104,0.001,112,0.862,138,2.284,150,1.946,239,1.959,245,3.573,276,5.073,379,1.068,404,3.485,528,4.446,651,5.7,652,5.7,838,2.677,2071,6.211,2862,5.241,3115,5.678,3116,5.515,4603,7.074,9624,5.678,9626,5.678,11191,10.861,11329,13.251,11330,6.9,11331,10.036,11332,10.855,11333,8.539,11334,8.539,11335,8.539,11336,8.539]],["title/interfaces/GroupUsers.html",[105,0.735,11337,5.065]],["body/interfaces/GroupUsers.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.975,55,2.652,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,986,5.916,991,6.188,1025,3.584,3063,5.61,4543,6.188,6541,5.382,11337,8.438,11338,6.983,11339,6.814,11340,6.814,11341,6.983,11342,8.616,11343,6.983,11344,6.983,11345,6.814,11346,6.983,11347,6.664,11348,6.814,11349,6.983,11350,6.814]],["title/classes/GroupValidPeriodEntity.html",[0,0.231,11092,5.335]],["body/classes/GroupValidPeriodEntity.html",[0,0.31,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.504,29,0.712,30,0.001,31,0.512,32,0.168,33,0.439,83,4.139,95,0.116,96,2.511,101,0.019,103,0.001,104,0.001,105,0.986,112,0.9,138,2.061,172,4.224,173,2.703,181,3.032,379,1.143,381,3.07,578,7.808,2503,5.855,8249,7.898,8516,7.997,8517,7.997,8518,7.997,8519,7.997,11092,8.875,11322,10.781,11351,8.451,11352,11.258,11353,11.329,11354,9.141]],["title/interfaces/GroupValidPeriodEntityProps.html",[105,0.735,11352,5.958]],["body/interfaces/GroupValidPeriodEntityProps.html",[0,0.329,3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.16,83,4.285,95,0.123,96,2.662,101,0.019,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,172,4.033,173,2.866,181,2.594,578,5.88,2503,6.069,8249,8.255,8516,8.478,8517,8.478,8518,8.478,8519,8.478,11092,7.592,11322,8.118,11351,8.96,11352,11.052]],["title/interfaces/GroupfoldersCreated.html",[105,0.735,11350,5.065]],["body/interfaces/GroupfoldersCreated.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,2.194,47,0.952,55,2.849,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,986,5.916,991,6.188,1025,3.584,3063,3.99,4543,6.188,6541,5.382,11337,6.814,11338,6.983,11339,6.814,11340,6.814,11341,6.983,11342,8.616,11343,6.983,11344,6.983,11345,6.814,11346,6.983,11347,6.664,11348,6.814,11349,6.983,11350,8.438]],["title/interfaces/GroupfoldersFolder.html",[105,0.735,11348,5.065]],["body/interfaces/GroupfoldersFolder.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.952,55,2.849,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,986,5.916,991,6.188,1025,3.584,3063,3.99,4543,6.188,6541,5.382,11337,6.814,11338,6.983,11339,6.814,11340,6.814,11341,6.983,11342,8.616,11343,6.983,11344,6.983,11345,6.814,11346,6.983,11347,6.664,11348,8.438,11349,9.817,11350,6.814]],["title/classes/GuardAgainst.html",[0,0.231,11355,5.958]],["body/classes/GuardAgainst.html",[0,0.287,2,0.946,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,27,0.346,29,0.84,30,0.001,31,0.473,32,0.147,33,0.405,35,1.295,101,0.014,103,0.001,104,0.001,153,1.921,333,4.562,349,0.873,413,3.657,479,4.95,480,3.812,529,2.391,556,3.329,593,4.894,937,6.209,1154,3.36,2192,10.108,4484,7.425,4701,9.033,8120,7.842,11355,9.433,11356,10.782,11357,8.45,11358,10.782,11359,10.782,11360,12.923,11361,8.45,11362,9.969,11363,8.219,11364,8.447,11365,9.433,11366,10.782]],["title/controllers/H5PEditorController.html",[259,2.591,11367,5.958]],["body/controllers/H5PEditorController.html",[0,0.223,3,0.015,4,0.015,5,0.008,7,0.1,8,1.093,27,0.374,30,0.001,32,0.189,35,1.096,47,0.464,72,2.983,95,0.143,101,0.011,103,0.001,104,0.001,138,1.659,150,1.497,223,2.706,226,0.94,259,2.5,261,3.121,262,2.695,282,7.987,287,7.411,319,2.967,335,6.284,336,8.11,337,3.397,338,3.474,340,3.159,343,3.501,346,5.414,347,4.71,349,1.27,413,2.809,437,0.85,823,3.97,933,3.901,1154,3.627,1162,5.003,1202,7.074,1207,3.344,2035,4.133,2365,7.379,2471,6.217,2621,6.031,2874,6.634,2878,6.952,2879,6.952,3071,9.938,5120,8.644,6259,4.749,6498,7.145,8443,8.624,10388,5.01,11367,7.979,11368,9.163,11369,10.474,11370,6.572,11371,9.163,11372,11.313,11373,11.313,11374,13.057,11375,9.12,11376,9.12,11377,6.572,11378,6.572,11379,6.572,11380,6.572,11381,6.572,11382,6.572,11383,6.077,11384,6.572,11385,7.463,11386,6.572,11387,6.572,11388,6.572,11389,9.12,11390,6.572,11391,6.572,11392,6.077,11393,6.572,11394,6.572,11395,6.572,11396,6.572,11397,6.572,11398,6.572,11399,6.572,11400,6.572,11401,9.12,11402,6.572]],["title/modules/H5PEditorModule.html",[201,1.804,11403,5.705]],["body/modules/H5PEditorModule.html",[0,0.237,3,0.016,4,0.016,5,0.008,30,0.001,32,0.095,47,0.493,87,3.51,94,4.626,95,0.173,96,2.612,99,1.165,101,0.012,103,0.001,104,0.001,143,1.555,155,2.33,173,2.065,201,2.864,203,2.512,204,2.699,205,2.777,206,2.766,207,2.754,208,4.251,209,2.626,218,3.782,219,2.721,220,2.656,223,4.451,225,4.264,226,0.998,236,1.136,239,2.481,276,4.042,292,3.534,358,3.072,437,1.501,490,3.372,511,3.12,521,2.766,573,6.422,598,4.021,644,4.339,687,4.812,761,4.574,996,3.336,997,3.296,998,3.296,999,3.486,1076,4.643,1077,4.286,1278,2.209,1319,8.207,1458,3.946,1666,2.955,1692,6.837,1912,3.222,2253,5.135,2472,3.17,2622,3.719,4902,4.796,5520,4.643,5571,4.717,6490,8.33,8549,5.146,10010,4.976,10501,4.882,10662,7.072,10663,7.072,10664,5.079,10665,7.248,10666,4.976,10667,4.976,10674,6.916,10675,6.916,10676,6.916,10677,4.976,10678,4.796,10680,5.85,10689,7.248,10690,5.194,10691,5.194,10692,5.079,10693,5.643,10694,5.194,10695,5.323,10696,6.109,10836,6.14,10837,6.109,11367,9.458,11368,6.109,11371,6.109,11403,11.401,11404,6.983,11405,6.983,11406,6.983,11407,6.456,11408,6.983,11409,6.983,11410,6.983,11411,6.983]],["title/modules/H5PEditorTestModule.html",[201,1.804,11412,5.958]],["body/modules/H5PEditorTestModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,8,0.833,27,0.285,29,0.541,30,0.001,31,0.389,32,0.095,33,0.333,35,0.835,59,2.158,94,4.61,95,0.171,99,1.159,101,0.011,103,0.001,104,0.001,155,2.318,201,3.068,203,2.499,204,2.685,205,2.763,206,2.751,207,2.74,208,4.242,209,2.612,214,5.804,218,3.768,219,2.706,220,2.643,223,4.439,225,4.781,226,0.993,239,2.174,276,4.028,349,0.718,413,2.918,437,1.395,490,3.36,644,4.324,1106,5.053,1107,6.507,1110,7.169,1278,2.198,1315,9.8,1319,8.194,1692,6.826,2472,3.153,3071,7.656,6490,8.317,8439,4.619,10501,4.857,10508,5.442,10661,8.745,10730,8.474,10731,6.077,10732,8.614,10734,5.053,10735,5.614,10736,5.053,10737,5.614,10738,5.82,10739,7.047,10836,6.119,11368,8.289,11371,6.077,11403,10.479,11407,8.76,11412,12.357,11413,6.947,11414,6.947,11415,6.947,11416,6.947,11417,6.947]],["title/interfaces/HtmlMailContent.html",[105,0.735,1309,5.065]],["body/interfaces/HtmlMailContent.html",[3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,31,0.49,32,0.151,33,0.529,47,1.012,77,5.571,101,0.014,103,0.001,104,0.001,105,1.46,107,2.098,112,0.875,180,2.34,1294,8.195,1295,6.665,1296,8.974,1297,8.399,1298,6.665,1299,4.896,1300,8.195,1301,6.359,1302,6.665,1303,6.359,1304,9.421,1305,6.665,1306,8.195,1307,9.953,1308,9.953,1309,8.974,1310,6.685,1311,6.503,1312,6.503,1313,6.665,1314,6.665]],["title/injectables/HydraOauthUc.html",[539,0.901,11418,5.705]],["body/injectables/HydraOauthUc.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.077,8,0.912,27,0.479,29,0.784,30,0.001,31,0.564,32,0.154,33,0.483,35,1.092,36,2.403,39,1.375,47,0.976,55,1.957,56,2.471,59,2.365,95,0.161,99,0.853,100,2.556,101,0.008,103,0,104,0,105,0.552,112,0.604,119,1.04,133,1.787,143,1.138,177,2.2,226,0.731,236,1.479,262,2.691,278,3.511,310,2.215,347,3.33,349,0.939,379,0.952,437,1.513,448,3.727,480,2.525,486,2.736,521,2.024,529,2.153,539,1.007,541,1.224,603,2.58,608,2.77,696,3.002,710,5.227,789,2.552,823,2.671,950,5.239,990,3.818,996,2.442,997,2.413,998,2.413,1079,3.002,1162,2.442,1278,1.617,1417,6.942,1634,4.727,1721,7.124,1911,7.675,1923,3.574,2020,2.237,2021,2.503,2022,2.413,2253,3.727,2254,4.548,3881,2.862,3950,6.15,6208,4.472,6209,4.472,7199,7.178,8905,4.726,9914,4.472,11418,6.376,11419,12.019,11420,5.111,11421,9.093,11422,9.093,11423,10.074,11424,7.611,11425,9.093,11426,7.611,11427,4.472,11428,8.608,11429,9.798,11430,5.111,11431,7.611,11432,5.111,11433,5.111,11434,5.111,11435,10.074,11436,7.611,11437,5.111,11438,7.037,11439,5.111,11440,5.111,11441,5.111,11442,5.872,11443,6.376,11444,4.726,11445,5.423,11446,4.726,11447,4.472,11448,5.536,11449,4.726,11450,4.472,11451,5.111,11452,4.472,11453,9.314,11454,7.611,11455,7.037,11456,5.111,11457,5.111,11458,5.111,11459,7.611,11460,7.617,11461,5.111,11462,5.111,11463,5.111,11464,5.111,11465,5.111,11466,7.611,11467,4.726,11468,4.472,11469,4.282,11470,5.111,11471,5.111,11472,4.282,11473,5.111,11474,5.111,11475,5.111,11476,7.611,11477,5.111,11478,5.111]],["title/classes/HydraRedirectDto.html",[0,0.231,11443,5.705]],["body/classes/HydraRedirectDto.html",[0,0.298,2,0.983,3,0.021,4,0.021,5,0.01,7,0.133,27,0.547,29,0.684,30,0.001,31,0.492,32,0.182,33,0.421,47,0.78,55,2.378,95,0.14,101,0.014,103,0.001,104,0.001,112,0.877,181,2.957,379,1.098,381,2.95,823,4.242,1014,7.096,1911,8.614,1923,6.139,3950,9.769,6206,10.127,11443,10.952,11460,10.127,11467,11.177,11468,10.576,11469,10.127,11479,8.781,11480,8.781,11481,8.781,11482,8.781,11483,8.781,11484,8.781,11485,8.781,11486,8.119,11487,8.781,11488,8.781,11489,8.781,11490,8.781,11491,8.781,11492,8.781,11493,8.781,11494,8.781,11495,8.781]],["title/injectables/HydraSsoService.html",[539,0.901,11429,5.705]],["body/injectables/HydraSsoService.html",[0,0.153,3,0.011,4,0.011,5,0.005,7,0.068,8,0.83,27,0.459,29,0.838,30,0.001,31,0.603,32,0.153,33,0.516,35,1.225,36,2.576,47,0.947,95,0.165,99,0.752,100,1.515,101,0.007,103,0,104,0,112,0.55,177,2.052,226,0.645,227,1.857,236,1.538,238,2.597,262,2.599,292,2.282,310,1.955,349,1.053,360,2.525,379,0.866,437,1.67,448,3.454,480,1.252,486,1.357,519,1.397,529,1.276,539,0.916,541,1.08,556,1.136,569,3.214,603,2.432,608,1.596,639,2.117,708,1.873,950,2.093,962,7.835,963,2.597,965,2.954,1131,6.601,1162,2.154,1198,1.55,1278,1.427,1330,3.214,1333,3.945,1398,3.945,1425,2.801,1454,3.214,1507,2.873,1721,3.533,1760,2.999,1911,3.214,1923,3.153,2020,1.974,2021,2.208,2022,2.129,2032,3.354,2185,5.277,2186,3.778,2215,4.17,2220,3.945,2253,3.454,2254,4.268,2489,2.295,3881,2.525,3950,9.057,4524,3.354,4616,6.875,4620,2.331,4903,6.601,5505,2.813,5590,2.252,6206,9.935,6208,6.057,6209,6.057,6682,6.385,7193,5.149,7199,3.214,7251,4.84,7276,6.105,7348,2.736,8340,3.354,8887,3.046,8926,3.153,9369,6.875,9398,3.644,11429,5.8,11438,4.17,11442,6.951,11443,8.543,11444,4.17,11453,6.401,11460,9.689,11468,3.945,11469,9.017,11486,4.17,11496,4.51,11497,6.923,11498,6.923,11499,6.923,11500,6.923,11501,4.51,11502,7.372,11503,4.51,11504,6.923,11505,6.923,11506,4.51,11507,6.923,11508,4.51,11509,6.923,11510,4.51,11511,6.923,11512,4.51,11513,4.51,11514,6.923,11515,4.51,11516,4.51,11517,3.438,11518,4.51,11519,5.8,11520,3.778,11521,4.51,11522,4.51,11523,3.354,11524,3.354,11525,3.354,11526,3.438,11527,4.51,11528,4.51,11529,4.51,11530,4.51,11531,6.923,11532,4.51,11533,4.51,11534,4.51,11535,4.51,11536,6.923,11537,4.51,11538,4.51,11539,3.778,11540,4.17,11541,4.51,11542,4.51,11543,7.919,11544,4.51,11545,4.51,11546,4.51,11547,6.923,11548,4.51,11549,4.51,11550,4.51,11551,6.923,11552,4.51,11553,4.51,11554,4.51,11555,4.51,11556,4.51,11557,4.51,11558,4.51,11559,4.51,11560,4.51,11561,4.51,11562,4.51,11563,4.51,11564,4.51,11565,6.923,11566,4.51,11567,4.51,11568,4.51,11569,6.923,11570,3.097,11571,4.51,11572,4.51,11573,2.999,11574,3.778,11575,3.097,11576,4.51,11577,4.51,11578,3.097,11579,4.51,11580,4.51,11581,2.768,11582,4.51,11583,4.51,11584,3.533,11585,3.046,11586,4.51,11587,4.51,11588,4.51]],["title/interfaces/IAccountConfig.html",[105,0.735,11589,5.958]],["body/interfaces/IAccountConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.167,55,2.792,101,0.017,103,0.001,104,0.001,105,1.113,107,2.474,112,0.968,119,2.64,221,9.534,1576,11.727,11589,10.661,11590,6.965,11591,12.393]],["title/interfaces/IBbbSettings.html",[105,0.735,2140,5.503]],["body/interfaces/IBbbSettings.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.174,47,0.996,101,0.02,103,0.001,104,0.001,105,1.072,107,2.383,112,0.946,437,1.284,1131,10.372,1939,5.133,2137,10.699,2138,11.583,2140,9.629,2143,8.687,11592,9.93,11593,8.687,11594,9.93]],["title/interfaces/ICalendarEvent.html",[105,0.735,3921,5.705]],["body/interfaces/ICalendarEvent.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,32,0.177,47,0.856,101,0.017,103,0.001,104,0.001,105,1.104,107,2.455,112,0.963,120,5.337,284,4.13,346,6.074,1080,6.52,3911,7.028,3921,10.163,3928,8.269,3931,7.8,11595,10.233,11596,10.233]],["title/interfaces/IClassEntityProps.html",[105,0.735,4278,5.705]],["body/interfaces/IClassEntityProps.html",[0,0.276,2,0.627,3,0.013,4,0.028,5,0.007,7,0.183,26,2.23,30,0.001,31,0.626,32,0.179,33,0.654,34,1.794,47,0.953,49,5.444,55,2.266,62,6.57,95,0.142,96,2.237,97,2.428,99,0.935,101,0.013,103,0,104,0,105,0.605,107,1.344,112,0.762,133,1.959,143,2.8,144,4.064,154,1.74,172,4.132,173,1.657,174,3.238,178,2.327,180,1.004,181,1.499,182,1.822,236,0.911,404,2.286,405,4.481,480,1.555,529,1.585,556,3.218,603,1.125,708,2.327,1985,2.228,4209,3.794,4210,7.819,4211,8.525,4212,8.487,4213,8.525,4214,7.338,4215,8.525,4216,8.525,4259,4.075,4260,5.18,4268,9.141,4275,4.443,4276,3.399,4277,5.18,4278,8.82,4279,4.693,4280,9.734,4281,6.821,4282,5.18,4283,5.18,4284,4.693,4285,2.452,4286,3.325,4287,4.167,4288,7.528,4289,4.389,4290,5.18,4291,5.18,4292,7.528,4293,5.18,4294,7.528,4295,5.18,4296,5.18,4297,6.379,4298,4.167,4299,7.528,4300,5.18,4301,6.207,4302,4.075,4303,7.528,4304,5.18]],["title/interfaces/ICleanOptions.html",[105,0.735,11597,5.503]],["body/interfaces/ICleanOptions.html",[0,0.16,3,0.011,4,0.011,5,0.006,7,0.071,10,1.914,30,0.001,32,0.064,33,0.343,36,2.421,47,0.505,52,3.419,53,3.426,55,2.449,70,4.322,72,3.249,78,8.714,95,0.123,101,0.008,103,0,104,0,105,0.934,107,1.13,112,0.568,118,3.001,119,0.959,142,4.067,145,3.256,153,2.83,177,1.585,179,4.688,208,1.725,236,1.164,239,1.081,262,2.683,310,2.042,333,3.663,349,0.894,359,2.826,379,0.589,413,1.451,437,1.345,486,3.128,490,4.035,529,1.333,556,1.803,562,3.235,568,5.515,595,2.962,600,2.926,603,1.942,608,2.768,696,2.823,697,6.296,708,2.973,710,5.945,844,3.591,933,2.796,937,4.121,990,1.593,1224,2.638,1278,1.49,1451,5.515,1458,4.044,1584,5.607,1734,3.001,1762,4.294,1773,2.57,2020,2.062,2037,3.69,2253,1.931,2254,3.231,2347,2.687,2777,5.67,3063,5.107,3446,4.759,3454,3.235,3455,8.861,3456,6.539,3457,2.796,5511,3.504,5949,7.502,6499,3.69,7095,2.926,7112,3.001,7396,7.926,7870,6.052,7880,7.926,8334,3.591,8391,3.293,10227,5.004,11364,3.69,11597,6.995,11598,2.687,11599,2.891,11600,3.946,11601,3.946,11602,7.574,11603,5.996,11604,6.438,11605,3.69,11606,3.69,11607,5.996,11608,3.946,11609,3.946,11610,8.403,11611,3.946,11612,3.946,11613,5.784,11614,5.456,11615,3.946,11616,3.591,11617,3.69,11618,3.946,11619,3.946,11620,3.946,11621,8.711,11622,3.426,11623,3.946,11624,3.946,11625,7.251,11626,3.086,11627,5.847,11628,3.357,11629,4.916,11630,3.504,11631,3.946,11632,3.946,11633,3.946,11634,8.099,11635,3.946,11636,3.946,11637,3.946,11638,8.099,11639,3.946,11640,3.946,11641,3.946,11642,8.099,11643,8.099,11644,3.69,11645,3.946,11646,3.946,11647,3.946,11648,3.426,11649,3.806,11650,5.206,11651,3.946,11652,3.946,11653,3.946,11654,3.946,11655,3.946,11656,5.1,11657,3.69,11658,3.69,11659,3.946,11660,3.946,11661,3.946,11662,3.946,11663,3.946,11664,3.946,11665,3.946,11666,3.946,11667,3.946,11668,3.946,11669,3.946,11670,3.806]],["title/interfaces/ICollaborativeStorageStrategy.html",[105,0.735,4559,5.503]],["body/interfaces/ICollaborativeStorageStrategy.html",[3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.503,29,0.956,30,0.001,31,0.688,32,0.168,33,0.589,35,1.475,36,2.864,47,0.819,95,0.132,100,4.125,101,0.013,103,0.001,104,0.001,105,1.252,107,1.93,153,2.375,274,7.368,276,4.932,301,6.946,333,3.404,1663,5.25,1941,5.958,3911,5.525,4543,8.596,4553,8.441,4554,8.441,4556,8.441,4557,8.441,4559,8.441,4562,8.441,4563,9.462,4565,7.627,4566,8.441,4570,8.441,4576,5.983,4578,6.302,4579,6.739,4598,9.923,4599,6.5,11671,8.044,11672,10.446,11673,9.139,11674,8.044,11675,8.044,11676,8.044,11677,9.658,11678,8.044,11679,10.446]],["title/interfaces/ICollectionFilePath.html",[105,0.735,11680,6.296]],["body/interfaces/ICollectionFilePath.html",[0,0.09,3,0.006,4,0.021,5,0.01,7,0.04,10,1.072,27,0.108,30,0.001,31,0.432,32,0.061,33,0.28,35,1.008,36,1.905,47,0.887,55,0.965,83,1.376,95,0.142,96,0.725,97,1.143,99,0.44,101,0.013,103,0,104,0,105,0.285,107,0.633,112,0.356,119,0.912,143,0.998,155,0.88,177,1.261,209,0.992,225,1.04,226,0.377,236,0.951,262,2.152,274,1.583,284,2.765,285,1.728,301,1.754,316,1.416,319,2.024,333,3.267,348,2.238,349,1.289,360,2.51,361,2.533,379,0.33,437,1.706,461,1.452,480,0.732,521,1.045,524,4.403,529,0.746,539,0.593,556,0.665,561,2.439,569,1.88,573,1.782,584,3.828,598,1.519,603,2.507,608,2.929,639,1.238,646,1.88,651,2.141,652,2.141,653,2.317,685,2.473,696,1.768,708,2.863,741,1.812,932,2.467,937,1.519,990,0.892,996,1.26,997,1.245,998,1.245,999,1.317,1000,1.44,1001,1.812,1002,1.782,1154,2.324,1273,2.308,1278,0.835,1414,1.844,1430,1.534,1442,6.853,1657,5.481,1679,1.204,1758,1.812,1761,4.578,1762,5.894,1829,4.578,1941,1.505,2020,1.155,2021,1.292,2022,1.245,2023,1.681,2029,1.704,2131,1.782,2196,1.067,2252,2.581,2253,1.081,2254,2.024,2298,1.919,2303,2.067,2337,1.505,2358,2.751,2384,5.348,2771,4.983,2778,3.194,2823,4.75,2899,1.583,2971,2.21,3075,2.046,3287,1.601,3460,2.936,3469,2.439,3506,3.622,3826,4.896,3828,2.439,3829,2.439,3833,7.614,3835,1.812,3837,4.144,3844,7.832,4209,0.895,4324,3.546,4452,2.132,4549,3.921,4649,1.812,5072,5.348,5531,2.011,6259,4.371,6302,1.782,6382,2.308,6433,2.98,6502,3.134,6969,1.88,7112,2.856,7196,2.132,7276,1.704,7369,2.011,7554,1.844,7862,2.132,7863,2.067,7866,8.761,7867,5.773,7870,5.398,7873,3.334,7891,4.733,7892,5.113,7906,10.357,7930,4.722,7936,6.371,8018,4.347,8066,2.439,8067,2.439,8340,3.334,8341,3.921,8549,4.543,8926,1.844,9369,4.251,9398,2.132,9689,1.681,10358,4.896,10375,4.144,10378,3.302,10388,4.455,10392,2.439,10397,8.711,10401,2.439,10460,3.622,10734,1.919,10762,1.88,11540,2.439,11680,7.761,11681,2.638,11682,2.439,11683,2.439,11684,2.638,11685,2.638,11686,7.721,11687,5.844,11688,3.921,11689,8.394,11690,5.844,11691,6.891,11692,2.638,11693,2.638,11694,2.439,11695,2.638,11696,2.638,11697,2.638,11698,2.308,11699,2.638,11700,4.482,11701,2.638,11702,8.394,11703,4.482,11704,4.482,11705,2.638,11706,2.638,11707,2.638,11708,2.439,11709,2.638,11710,2.638,11711,6.891,11712,2.638,11713,2.638,11714,2.638,11715,2.638,11716,2.638,11717,2.638,11718,2.638,11719,2.638,11720,2.638,11721,2.638,11722,5.844,11723,2.638,11724,6.891,11725,2.638,11726,2.638,11727,1.639,11728,2.638,11729,4.482,11730,4.482,11731,2.638,11732,2.638,11733,2.638,11734,4.482,11735,2.638,11736,2.638,11737,2.638,11738,4.482,11739,3.921,11740,4.482,11741,4.482,11742,2.638,11743,2.638,11744,2.638,11745,2.638,11746,2.638,11747,2.638,11748,2.638,11749,2.638,11750,2.638,11751,2.638,11752,2.638,11753,6.891,11754,2.638,11755,3.755,11756,4.896,11757,2.638,11758,4.482,11759,4.482,11760,2.638,11761,4.482,11762,2.638,11763,4.482,11764,2.638,11765,2.638,11766,2.638,11767,5.844,11768,2.638,11769,2.638,11770,2.067,11771,2.439,11772,2.638,11773,2.638,11774,2.638,11775,3.26,11776,2.21,11777,2.638,11778,2.638,11779,2.638,11780,2.638,11781,2.638,11782,4.482,11783,2.638,11784,2.638,11785,2.638,11786,2.638,11787,1.681,11788,2.638,11789,2.638,11790,2.638,11791,2.638,11792,3.622,11793,2.638,11794,2.638,11795,2.638,11796,2.638,11797,1.962,11798,2.638,11799,2.638,11800,2.638,11801,2.638,11802,2.638,11803,4.482,11804,2.638,11805,2.638,11806,5.844,11807,2.638,11808,2.638,11809,2.638,11810,2.638,11811,2.308,11812,2.638,11813,2.638,11814,3.622,11815,3.622,11816,3.622,11817,2.638,11818,5.403,11819,2.638,11820,2.439,11821,2.308,11822,2.638,11823,2.638,11824,2.638,11825,3.921,11826,2.638,11827,2.638,11828,2.638,11829,2.638,11830,2.638,11831,2.638,11832,2.638,11833,2.638,11834,5.844,11835,2.638,11836,2.638,11837,2.638,11838,2.638,11839,2.638,11840,4.482,11841,3.334,11842,4.482,11843,2.638,11844,4.144,11845,4.482,11846,2.638,11847,4.482,11848,5.844,11849,2.638,11850,2.308,11851,2.439,11852,2.439,11853,2.638,11854,2.638,11855,2.439,11856,1.962,11857,2.439,11858,2.638,11859,2.638,11860,2.638,11861,2.638,11862,2.638,11863,2.638]],["title/interfaces/ICommonCartridgeConfig.html",[105,0.735,11864,5.958]],["body/interfaces/ICommonCartridgeConfig.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,101,0.017,103,0.001,104,0.001,105,1.136,107,2.526,112,0.98,119,2.663,5145,6.799,5146,6.799,11864,10.792,11865,10.528,11866,12.477]],["title/interfaces/ICommonCartridgeElement.html",[105,0.735,5172,4.461]],["body/interfaces/ICommonCartridgeElement.html",[3,0.024,4,0.024,5,0.012,7,0.158,8,1.468,27,0.426,30,0.001,35,1.248,101,0.017,103,0.001,104,0.001,105,1.121,107,2.494,988,5.28,5044,7.604,5145,7.906,5146,7.906,5172,8.019,5207,8.679,11867,10.392,11868,10.392]],["title/interfaces/ICommonCartridgeFile.html",[105,0.735,5214,5.335]],["body/interfaces/ICommonCartridgeFile.html",[3,0.023,4,0.023,5,0.012,7,0.152,8,1.439,27,0.492,30,0.001,35,1.442,47,0.847,101,0.017,103,0.001,104,0.001,105,1.085,107,2.413,119,2.443,2196,5.378,5044,7.972,5145,8.289,5146,8.289,5214,9.405,5215,10.743,11869,10.054,11870,10.054,11871,10.054]],["title/interfaces/ICommonCartridgeFileBuilder.html",[105,0.735,5148,5.503]],["body/interfaces/ICommonCartridgeFileBuilder.html",[0,0.287,3,0.014,4,0.014,5,0.014,7,0.089,8,1.013,27,0.404,29,0.658,30,0.001,31,0.473,32,0.135,33,0.405,35,1.186,36,2.101,47,0.761,95,0.155,101,0.018,103,0,104,0,105,0.912,107,1.415,177,2.29,236,2.102,262,1.292,345,1.877,349,1.227,379,0.738,381,3.316,437,1.536,454,5.419,490,2.091,603,2.456,1207,2.698,1249,5.457,1280,2.641,1672,4.399,1883,4.083,2004,6.669,3163,5.384,5044,7.911,5056,4.621,5057,4.573,5058,5.804,5068,9.322,5080,6.572,5085,6.62,5087,6.62,5095,6.828,5099,6.87,5101,4.766,5107,5.707,5145,6.963,5146,6.963,5147,4.941,5148,9.596,5149,7.735,5150,6.441,5151,7.079,5152,7.812,5153,7.812,5155,7.079,5159,8.272,5161,8.272,5162,9.596,5164,9.882,5165,8.272,5168,4.766,5169,4.766,5170,4.496,5171,4.203,5172,6.468,5173,3.984,5174,6.62,5175,6.828,5176,4.621,5177,6.021,5178,4.621,5179,7.079,5180,4.766,5181,4.941,5182,4.941,5183,4.941,5184,9.033,5185,4.941,5186,7.079,5187,4.941,5188,4.941,5189,7.079,5190,4.941,5191,4.941,5192,4.941,5193,4.941,5194,4.941,5195,4.941,5196,4.941,5197,4.941,5198,4.941,5199,4.941,5200,4.941,5201,4.766,5202,4.941,5203,4.941,5204,4.941,5205,4.941,5206,4.941,5207,3.809,5208,4.941,5209,4.941,5210,4.941,11872,5.898,11873,5.898,11874,5.898]],["title/interfaces/ICommonCartridgeOrganizationBuilder.html",[105,0.735,5164,5.503]],["body/interfaces/ICommonCartridgeOrganizationBuilder.html",[0,0.297,3,0.014,4,0.014,5,0.012,7,0.094,8,1.048,27,0.253,29,0.482,30,0.001,31,0.347,32,0.119,33,0.297,35,0.743,36,1.861,47,0.778,95,0.157,101,0.018,103,0,104,0,105,0.944,107,1.485,177,2.319,236,2.124,262,1.356,345,1.97,349,1.246,379,0.774,381,2.937,437,1.56,454,4.152,490,2.194,603,2.491,1207,2.792,1249,5.647,1280,2.733,1672,4.552,1883,4.193,2004,6.849,3163,5.571,5044,7.703,5056,4.848,5057,4.732,5058,6.005,5068,9.453,5080,6.693,5085,6.85,5087,6.85,5095,7.066,5099,7.02,5101,5.001,5107,5.906,5145,5.647,5146,5.647,5147,5.184,5148,8.904,5149,7.943,5150,6.665,5151,7.325,5155,7.325,5159,8.494,5161,7.325,5162,8.904,5164,10.236,5165,7.325,5168,5.001,5169,5.001,5170,4.717,5171,4.41,5172,6.642,5173,4.18,5174,6.85,5175,7.066,5176,4.848,5177,6.231,5178,4.848,5179,8.494,5180,5.001,5181,5.184,5182,5.184,5183,5.184,5184,9.231,5185,5.184,5186,7.325,5187,5.184,5188,5.184,5189,7.325,5190,5.184,5191,5.184,5192,5.184,5193,5.184,5194,5.184,5195,5.184,5196,5.184,5197,5.184,5198,5.184,5199,5.184,5200,5.184,5201,5.001,5202,5.184,5203,5.184,5204,5.184,5205,5.184,5206,5.184,5207,3.996,5208,5.184,5209,5.184,5210,5.184,5315,8.084,11875,6.188]],["title/interfaces/IComponentEtherpadProperties.html",[105,0.735,11876,4.853]],["body/interfaces/IComponentEtherpadProperties.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.144,26,2.167,30,0.001,31,0.39,32,0.147,47,0.963,55,2.201,95,0.154,96,1.247,101,0.021,103,0,104,0,105,1.251,107,1.089,112,0.553,119,1.416,143,1.884,144,1.496,145,1.932,153,2.453,154,1.487,172,3.266,173,1.343,174,2.768,175,2.008,178,1.886,180,0.814,181,1.215,182,1.477,226,0.649,236,1.543,239,1.042,316,3.736,349,1.293,437,1.619,474,1.939,529,1.969,556,1.753,563,4.131,603,1.398,604,1.845,662,1.428,696,1.791,838,1.423,975,2.499,1154,1.806,1162,2.169,1198,3.862,1207,3.587,1280,1.419,1603,1.707,1657,2.156,1679,3.176,1861,2.169,1867,3.788,1885,1.895,1985,1.806,2196,4.366,2611,3.904,2614,3.797,2618,2.478,2623,4.434,2624,2.667,2625,4.472,2627,3.78,2628,4.323,2637,2.131,2641,4.559,2745,3.678,2823,4.092,3307,4.225,3417,5.322,3436,6.03,3542,1.853,3570,3.174,3571,3.174,4060,4.088,4221,2.855,4285,1.987,4915,2.787,4919,2.855,4920,2.932,5040,2.083,5065,6.515,5076,3.235,5092,2.566,5099,4.434,5104,6.843,5116,3.235,5122,3.235,5127,3.235,5699,7.412,6433,5.626,6436,6.03,6554,2.932,6576,2.82,6586,6.009,6587,3.019,6588,4.559,6590,4.377,6628,4.434,6629,4.627,6654,4.701,6825,2.82,6826,3.019,8498,4.959,10845,4.701,11876,6.03,11877,3.302,11878,5.391,11879,3.302,11880,4.865,11881,6.7,11882,4.959,11883,3.235,11884,4.959,11885,4.959,11886,4.959,11887,3.302,11888,4.959,11889,3.019,11890,4.959,11891,4.959,11892,3.302,11893,3.302,11894,3.302,11895,3.174,11896,3.174,11897,3.302,11898,3.302,11899,3.302,11900,5.062,11901,5.916,11902,3.174,11903,5.062,11904,3.302,11905,3.302,11906,3.302,11907,3.118,11908,3.302,11909,3.302,11910,5.062,11911,3.302,11912,3.302,11913,6.9,11914,6.155,11915,3.235,11916,3.302,11917,3.302,11918,3.302,11919,3.302,11920,3.302,11921,3.302,11922,3.302,11923,3.302,11924,3.302,11925,3.302,11926,3.302,11927,3.118,11928,3.302,11929,3.302]],["title/interfaces/IComponentGeogebraProperties.html",[105,0.735,11886,4.853]],["body/interfaces/IComponentGeogebraProperties.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.145,26,2.182,30,0.001,31,0.395,32,0.131,47,0.95,55,2.217,95,0.154,96,1.267,101,0.021,103,0,104,0,105,1.257,107,1.107,112,0.559,119,1.434,143,1.903,144,1.52,145,1.956,153,1.943,154,1.506,172,3.289,173,1.364,174,2.802,175,2.04,178,1.916,180,0.827,181,1.235,182,1.501,226,0.66,236,1.556,239,1.058,316,3.782,349,1.297,437,1.625,474,1.971,529,1.993,556,1.774,563,4.181,603,1.415,604,1.874,662,1.451,696,1.819,838,1.446,975,2.539,1154,1.835,1162,2.204,1198,3.288,1207,3.054,1280,1.442,1603,1.735,1657,2.191,1679,3.215,1861,2.204,1867,3.816,1885,1.925,1985,1.835,2196,4.393,2611,3.943,2614,3.844,2618,2.517,2623,4.488,2624,2.71,2625,4.517,2627,3.818,2628,4.376,2637,2.165,2641,4.614,2745,3.723,2823,4.132,3307,4.267,3417,5.375,3436,6.089,3542,1.883,3570,3.225,3571,3.225,4060,4.138,4221,2.901,4285,2.019,4915,2.831,4919,2.901,4920,2.979,5040,2.117,5065,6.569,5076,3.287,5092,2.607,5099,4.488,5104,6.874,5116,3.287,5122,3.287,5127,3.287,5699,7.459,6433,5.682,6436,6.089,6554,2.979,6576,2.865,6586,6.052,6587,3.067,6588,4.614,6590,4.43,6628,4.488,6629,4.684,6654,4.758,6825,2.865,6826,3.067,8498,5.02,10845,4.758,11876,5.02,11877,3.355,11878,5.445,11879,3.355,11880,4.925,11881,6.748,11882,5.02,11883,3.287,11884,5.02,11885,5.02,11886,6.089,11887,6.957,11888,5.02,11889,3.067,11890,5.02,11891,5.02,11892,3.355,11893,3.355,11894,3.355,11895,3.225,11896,3.225,11897,3.355,11898,3.355,11899,3.355,11900,5.124,11901,5.975,11902,3.225,11903,5.124,11904,3.355,11905,3.355,11906,3.355,11907,3.168,11908,3.355,11909,3.355,11910,5.124,11911,3.355,11912,3.355,11913,6.957,11914,6.216,11915,3.287,11916,3.355,11917,3.355,11918,3.355,11919,3.355,11920,3.355,11921,3.355,11922,3.355,11923,3.355,11924,3.355,11925,3.355,11926,3.355,11927,3.168,11928,3.355,11929,3.355]],["title/interfaces/IComponentInternalProperties.html",[105,0.735,11891,4.853]],["body/interfaces/IComponentInternalProperties.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.145,26,2.182,30,0.001,31,0.395,32,0.131,47,0.95,55,2.217,95,0.154,96,1.267,101,0.021,103,0,104,0,105,1.257,107,1.107,112,0.559,119,1.434,143,1.903,144,1.52,145,1.956,153,1.943,154,1.506,172,3.289,173,1.364,174,2.802,175,2.04,178,1.916,180,0.827,181,1.235,182,1.501,226,0.66,236,1.556,239,1.058,316,3.782,349,1.297,437,1.625,474,1.971,529,1.993,556,1.774,563,4.181,603,1.415,604,1.874,662,1.451,696,1.819,838,1.446,975,2.539,1154,1.835,1162,2.204,1198,3.884,1207,3.054,1280,1.442,1603,1.735,1657,2.191,1679,3.215,1861,2.204,1867,3.816,1885,1.925,1985,1.835,2196,4.393,2611,3.943,2614,3.844,2618,2.517,2623,4.488,2624,2.71,2625,4.517,2627,3.818,2628,4.376,2637,2.165,2641,4.614,2745,3.723,2823,4.132,3307,4.267,3417,5.375,3436,6.089,3542,1.883,3570,3.225,3571,3.225,4060,4.138,4221,2.901,4285,2.019,4915,2.831,4919,2.901,4920,2.979,5040,2.117,5065,6.569,5076,3.287,5092,2.607,5099,4.488,5104,6.874,5116,3.287,5122,3.287,5127,3.287,5699,7.459,6433,5.682,6436,6.089,6554,2.979,6576,2.865,6586,6.052,6587,3.067,6588,4.614,6590,4.43,6628,4.488,6629,4.684,6654,4.758,6825,2.865,6826,3.067,8498,5.02,10845,4.758,11876,5.02,11877,3.355,11878,5.445,11879,3.355,11880,4.925,11881,6.748,11882,5.02,11883,3.287,11884,5.02,11885,5.02,11886,5.02,11887,3.355,11888,5.02,11889,3.067,11890,5.02,11891,6.089,11892,3.355,11893,3.355,11894,3.355,11895,3.225,11896,3.225,11897,3.355,11898,3.355,11899,3.355,11900,5.124,11901,5.975,11902,3.225,11903,5.124,11904,3.355,11905,3.355,11906,3.355,11907,3.168,11908,3.355,11909,3.355,11910,5.124,11911,3.355,11912,3.355,11913,6.957,11914,6.216,11915,3.287,11916,3.355,11917,3.355,11918,3.355,11919,3.355,11920,3.355,11921,3.355,11922,3.355,11923,3.355,11924,3.355,11925,3.355,11926,3.355,11927,3.168,11928,3.355,11929,3.355]],["title/interfaces/IComponentLernstoreProperties.html",[105,0.735,11888,4.853]],["body/interfaces/IComponentLernstoreProperties.html",[0,0.156,3,0.011,4,0.011,5,0.005,7,0.145,26,2.18,30,0.001,31,0.394,32,0.148,47,0.941,55,2.215,95,0.154,96,1.264,101,0.021,103,0,104,0,105,1.256,107,1.104,112,0.558,119,1.431,120,3.094,143,1.9,144,1.516,145,1.952,153,1.94,154,1.503,172,3.286,173,1.361,174,2.797,175,2.035,178,1.912,180,0.825,181,1.232,182,1.497,226,0.658,236,1.554,239,1.056,316,3.775,349,1.297,437,1.624,474,1.966,529,1.99,556,1.771,563,4.174,603,1.413,604,1.87,662,1.447,696,1.815,838,1.443,975,2.533,1154,1.831,1162,2.199,1198,3.284,1207,3.05,1280,1.439,1603,1.731,1657,2.186,1679,3.209,1861,2.199,1867,3.812,1885,1.921,1985,1.831,2196,4.389,2611,3.937,2614,3.837,2618,2.512,2623,4.48,2624,2.704,2625,4.51,2627,3.812,2628,4.368,2637,2.16,2641,4.606,2745,3.717,2823,4.126,3307,4.261,3417,5.367,3436,6.081,3542,1.878,3570,3.218,3571,3.218,4060,4.131,4221,2.895,4285,2.015,4915,2.825,4919,2.895,4920,2.972,5040,2.112,5065,6.562,5076,3.28,5092,2.601,5099,6.557,5104,6.87,5116,3.28,5122,3.28,5127,3.28,5699,7.452,6433,5.674,6436,6.081,6554,2.972,6576,2.859,6586,6.046,6587,3.06,6588,4.606,6590,4.423,6628,4.48,6629,4.676,6654,4.75,6825,2.859,6826,3.06,8498,5.011,10845,4.75,11876,5.011,11877,3.348,11878,5.437,11879,3.348,11880,4.916,11881,6.741,11882,5.011,11883,3.28,11884,5.011,11885,5.011,11886,5.011,11887,3.348,11888,6.081,11889,3.06,11890,5.011,11891,5.011,11892,3.348,11893,3.348,11894,3.348,11895,3.218,11896,3.218,11897,3.348,11898,3.348,11899,3.348,11900,5.115,11901,5.966,11902,3.218,11903,5.115,11904,3.348,11905,3.348,11906,3.348,11907,3.161,11908,3.348,11909,3.348,11910,5.115,11911,3.348,11912,3.348,11913,6.949,11914,6.207,11915,3.28,11916,3.348,11917,3.348,11918,3.348,11919,3.348,11920,3.348,11921,3.348,11922,3.348,11923,3.348,11924,3.348,11925,3.348,11926,3.348,11927,3.161,11928,3.348,11929,3.348]],["title/interfaces/IComponentNexboardProperties.html",[105,0.735,11890,4.853]],["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.153,47,0.969,55,2.193,95,0.153,96,1.238,101,0.021,103,0,104,0,105,1.248,107,1.081,112,0.549,119,1.408,143,1.875,144,1.484,145,1.921,153,2.446,154,1.479,172,3.254,173,1.332,174,2.751,175,1.992,178,1.871,180,0.807,181,1.206,182,1.465,226,0.644,236,1.537,239,1.034,316,3.714,349,1.29,437,1.616,474,1.924,529,1.957,556,1.742,563,4.106,603,1.389,604,1.83,662,1.417,696,1.777,838,1.412,975,2.479,1154,1.792,1162,2.152,1198,3.851,1207,3.577,1280,1.408,1603,1.694,1657,2.139,1679,3.157,1861,2.152,1867,3.775,1885,3.942,1985,1.792,2196,4.352,2611,3.885,2614,3.775,2618,2.458,2623,4.407,2624,2.646,2625,4.451,2627,3.762,2628,4.297,2637,2.114,2641,4.531,2745,3.656,2823,4.072,3307,4.204,3417,5.296,3436,6,3542,1.838,3570,3.149,3571,3.149,4060,4.063,4221,2.833,4285,1.972,4915,2.765,4919,2.833,4920,2.909,5040,2.067,5065,6.488,5076,3.21,5092,2.546,5099,4.407,5104,6.827,5116,3.21,5122,3.21,5127,3.21,5699,7.389,6433,5.599,6436,6,6554,2.909,6576,2.798,6586,5.987,6587,2.995,6588,4.531,6590,4.35,6628,4.407,6629,4.599,6654,4.672,6825,2.798,6826,2.995,8498,4.929,10845,4.672,11876,4.929,11877,3.277,11878,5.365,11879,3.277,11880,4.836,11881,6.677,11882,4.929,11883,3.21,11884,4.929,11885,4.929,11886,4.929,11887,3.277,11888,4.929,11889,2.995,11890,6,11891,4.929,11892,3.277,11893,3.277,11894,3.277,11895,3.149,11896,3.149,11897,3.277,11898,3.277,11899,3.277,11900,5.031,11901,5.887,11902,3.149,11903,5.031,11904,3.277,11905,3.277,11906,3.277,11907,3.094,11908,3.277,11909,3.277,11910,5.031,11911,3.277,11912,3.277,11913,6.871,11914,6.125,11915,3.21,11916,3.277,11917,3.277,11918,3.277,11919,3.277,11920,3.277,11921,3.277,11922,3.277,11923,3.277,11924,3.277,11925,3.277,11926,3.277,11927,3.094,11928,3.277,11929,3.277]],["title/interfaces/IComponentTextProperties.html",[105,0.735,11885,4.853]],["body/interfaces/IComponentTextProperties.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.145,26,2.182,30,0.001,31,0.395,32,0.131,47,0.95,55,2.217,95,0.154,96,1.267,101,0.021,103,0,104,0,105,1.257,107,1.107,112,0.559,119,1.434,143,1.903,144,1.52,145,1.956,153,1.943,154,1.506,172,3.289,173,1.364,174,2.802,175,2.04,178,1.916,180,0.827,181,1.235,182,1.501,226,0.66,236,1.556,239,1.058,316,3.782,349,1.297,437,1.625,474,1.971,529,1.993,556,1.774,563,4.181,603,1.415,604,1.874,662,1.451,696,1.819,838,1.446,975,2.539,1154,1.835,1162,2.204,1198,3.288,1207,3.054,1280,1.442,1603,1.735,1657,2.191,1679,3.215,1861,2.204,1867,3.816,1885,1.925,1985,1.835,2196,4.393,2611,3.943,2614,3.844,2618,2.517,2623,4.488,2624,2.71,2625,4.517,2627,3.818,2628,4.376,2637,2.165,2641,4.614,2745,3.723,2823,5.251,3307,4.267,3417,5.375,3436,6.089,3542,1.883,3570,3.225,3571,3.225,4060,4.138,4221,2.901,4285,2.019,4915,2.831,4919,2.901,4920,2.979,5040,2.117,5065,6.569,5076,3.287,5092,2.607,5099,4.488,5104,6.874,5116,3.287,5122,3.287,5127,3.287,5699,7.459,6433,5.682,6436,6.089,6554,2.979,6576,2.865,6586,6.052,6587,3.067,6588,4.614,6590,4.43,6628,4.488,6629,4.684,6654,4.758,6825,2.865,6826,3.067,8498,5.02,10845,4.758,11876,5.02,11877,3.355,11878,5.445,11879,3.355,11880,4.925,11881,6.748,11882,5.02,11883,3.287,11884,5.02,11885,6.089,11886,5.02,11887,3.355,11888,5.02,11889,3.067,11890,5.02,11891,5.02,11892,3.355,11893,3.355,11894,3.355,11895,3.225,11896,3.225,11897,3.355,11898,3.355,11899,3.355,11900,5.124,11901,5.975,11902,3.225,11903,5.124,11904,3.355,11905,3.355,11906,3.355,11907,3.168,11908,3.355,11909,3.355,11910,5.124,11911,3.355,11912,3.355,11913,6.957,11914,6.216,11915,3.287,11916,3.355,11917,3.355,11918,3.355,11919,3.355,11920,3.355,11921,3.355,11922,3.355,11923,3.355,11924,3.355,11925,3.355,11926,3.355,11927,3.168,11928,3.355,11929,3.355]],["title/interfaces/IContextExternalToolProperties.html",[105,0.735,5854,5.705]],["body/interfaces/IContextExternalToolProperties.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,29,0.973,30,0.001,32,0.175,33,0.576,47,0.938,55,2.583,95,0.158,96,2.085,101,0.017,103,0.001,104,0.001,105,0.819,107,1.821,112,0.798,131,2.843,143,2.239,144,2.5,154,2.149,172,3.988,173,2.244,174,3.999,178,3.153,180,1.36,181,2.031,182,2.469,564,3.686,654,2.257,1342,5.645,1672,3.951,2489,2.516,4275,5.487,4276,4.604,4804,7.494,5040,4.614,5400,7.337,5764,4.413,5768,6.364,5788,4.835,5789,5.212,5790,5.046,5791,5.52,5792,5.408,5793,5.645,5831,7.855,5839,5.52,5840,6.357,5841,6.133,5842,10.463,5844,10.926,5847,9.784,5849,9.084,5852,6.357,5853,4.901,5854,9.446,5855,7.016,5856,7.016,5857,7.016,5858,6.639,5859,6.357,5860,6.133,5861,6.357]],["title/interfaces/ICopyFileDO.html",[105,0.735,10600,5.191]],["body/interfaces/ICopyFileDO.html",[3,0.018,4,0.023,5,0.009,7,0.115,10,3.083,26,2.878,30,0.001,31,0.7,32,0.154,33,0.482,34,2.128,39,2.042,47,0.95,55,1.633,83,2.33,95,0.127,99,1.266,101,0.022,103,0.001,104,0.001,105,1.295,107,1.821,112,0.798,239,1.741,319,3.426,437,0.982,654,2.257,822,4.25,838,3.535,990,3.399,1064,6.791,1299,4.25,1867,2.811,2020,3.322,2021,3.716,2022,3.582,2421,4.458,2627,3.39,2637,3.562,2680,3.426,2824,3.339,3063,3.305,3112,3.981,3307,5.63,3321,5.212,3573,4.923,3683,4.288,3881,4.25,4209,2.574,4779,4.212,5092,4.288,5104,4.37,6240,7.982,6256,6.153,6258,6.586,6259,5.871,6283,5.645,6284,4.212,6285,4.955,6286,4.971,10113,7.313,10114,7.313,10115,7.313,10116,4.773,10586,5.645,10599,5.945,10600,7.664,10601,5.785,10702,5.945,10706,8.834,11930,6.357,11931,6.357,11932,6.357,11933,6.357,11934,6.357,11935,6.357]],["title/interfaces/ICopyFileDomainObjectProps.html",[105,0.735,6241,5.705]],["body/interfaces/ICopyFileDomainObjectProps.html",[3,0.023,4,0.023,5,0.014,7,0.146,26,2.927,30,0.001,31,0.734,32,0.172,33,0.562,34,2.233,47,0.89,95,0.122,99,1.609,101,0.016,103,0.001,104,0.001,105,1.041,107,2.314,112,0.93,133,3.373,556,3.176,1718,4.062,3541,4.752,6237,4.475,6240,8.717,6241,9.808,11936,8.917,11937,8.917]],["title/interfaces/ICopyFilesOfParentParams.html",[105,0.735,10702,5.335]],["body/interfaces/ICopyFilesOfParentParams.html",[3,0.018,4,0.029,5,0.009,7,0.115,10,3.095,26,2.818,30,0.001,31,0.565,32,0.154,34,1.717,39,3.234,47,0.925,55,1.639,83,2.339,95,0.128,99,1.271,101,0.022,103,0.001,104,0.001,105,1.297,107,1.828,112,0.8,239,1.748,319,3.439,437,0.985,654,2.266,822,4.266,838,3.542,990,3.408,1064,6.808,1299,4.266,1867,2.821,2020,3.334,2021,3.73,2022,3.596,2421,4.475,2627,3.403,2637,3.575,2680,5.428,2824,3.351,3063,3.318,3112,3.996,3307,5.64,3321,5.232,3573,4.935,3683,4.305,3881,4.266,4209,2.584,4779,4.228,5092,4.305,5104,4.386,6240,5.065,6256,6.165,6258,6.603,6259,5.882,6283,5.666,6284,4.228,6285,4.967,6286,4.99,10113,7.332,10114,7.332,10115,7.332,10116,4.791,10586,5.666,10599,5.968,10600,5.807,10601,5.807,10702,7.897,10706,10.267,11930,6.382,11931,6.382,11932,6.382,11933,6.382,11934,6.382,11935,6.382]],["title/interfaces/ICopyFilesRequestInfo.html",[105,0.735,6352,5.705]],["body/interfaces/ICopyFilesRequestInfo.html",[3,0.027,4,0.031,5,0.015,7,0.147,26,2.782,30,0.001,32,0.173,39,3.533,95,0.149,99,1.617,101,0.016,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,141,5.609,2680,5.928,3541,4.775,6237,4.497,6350,10.837,6352,9.836,11936,8.96,11938,8.478]],["title/interfaces/ICoreModuleConfig.html",[105,0.735,11939,5.705]],["body/interfaces/ICoreModuleConfig.html",[3,0.024,4,0.024,5,0.012,30,0.001,95,0.156,101,0.017,103,0.001,104,0.001,105,1.127,107,2.506,180,2.2,201,2.767,340,5.02,2253,4.281,11590,7.056,11939,10.287,11940,10.446,11941,10.926,11942,10.926]],["title/interfaces/ICourseGroupProperties.html",[105,0.735,6824,5.705]],["body/interfaces/ICourseGroupProperties.html",[0,0.238,3,0.016,4,0.016,5,0.008,7,0.19,26,2.464,30,0.001,31,0.681,32,0.175,33,0.458,39,1.888,47,0.859,62,4.123,95,0.168,96,1.928,101,0.016,103,0.001,104,0.001,105,1.03,107,1.684,112,0.861,154,2.04,172,3.047,173,2.076,174,3.795,175,3.104,178,2.916,180,1.258,181,1.879,182,2.283,236,1.142,239,2.669,349,0.725,437,0.908,519,2.175,556,1.768,644,4.947,654,2.838,662,3.001,765,3.896,914,4.908,974,3.394,990,2.373,1246,4.042,1280,2.194,1603,2.639,1657,3.333,1861,3.353,1867,5.045,1985,2.792,2337,4.004,2368,4.598,2611,5.002,2614,3.83,2618,3.83,2624,4.123,2626,4.908,2628,4.36,2641,4.598,2771,4.167,2824,3.088,3025,5.351,3393,4.821,4209,2.381,4285,3.073,5040,4.378,6219,5.499,6539,5.002,6544,7.651,6579,5.789,6586,4.123,6588,6.25,6589,4.308,6590,6.001,6591,3.931,6607,5.002,6611,4.36,6613,5.672,6628,4.472,6629,7.208,6666,5.672,6815,6.49,6824,9.081,6825,4.36,6826,4.667,6827,6.49,6828,6.49,6829,5.106,6830,6.49,6831,6.49,6832,6.49,6833,6.49,6834,6.49,6835,6.49]],["title/interfaces/ICourseProperties.html",[105,0.735,6592,5.503]],["body/interfaces/ICourseProperties.html",[0,0.196,2,1.02,3,0.008,4,0.008,5,0.004,7,0.155,26,2.171,30,0.001,31,0.546,32,0.172,33,0.631,34,1.233,39,1.947,47,0.901,62,2.097,83,3.617,95,0.149,96,0.981,101,0.012,103,0,104,0,105,0.385,107,0.857,112,0.457,119,1.172,143,2.375,144,3.002,145,0.991,153,2.215,154,1.231,168,3.285,172,3.405,173,1.056,174,2.29,175,1.578,178,1.483,180,0.64,181,0.955,182,1.161,236,1.735,239,2.703,253,1.748,316,1.916,348,2.875,349,1.318,379,0.446,404,1.457,413,1.773,437,1.651,473,1.948,486,2.178,490,1.266,519,1.784,528,1.859,529,1.629,556,2.454,565,3.418,603,1.668,644,4.446,651,2.751,652,2.751,654,2.71,662,3.555,708,1.483,726,2.99,838,2.269,914,2.496,1162,2.751,1207,1.14,1280,1.116,1603,1.342,1657,2.735,1666,2.437,1672,1.859,1760,2.373,1867,3.076,1965,1.964,1985,3.303,2611,4.495,2614,5.316,2618,3.95,2626,2.496,2628,2.217,3063,3.618,3115,2.373,3116,2.305,3287,2.166,3395,2.274,3692,2.544,3738,2.217,3762,3.772,3763,3.772,4060,2.097,4209,1.211,4210,5.061,4225,2.99,4259,6.628,4285,2.521,4360,6.207,4779,1.981,4915,2.191,5040,2.643,6443,2.655,6504,2.544,6536,3.123,6537,7.091,6538,6.581,6539,5.158,6540,6.059,6541,5.723,6542,2.452,6543,6.942,6544,6.127,6545,6.371,6546,7.086,6548,3.123,6550,3.123,6553,3.123,6554,2.305,6556,3.123,6558,7.972,6561,3.123,6563,3.123,6572,3.123,6576,2.217,6577,3.123,6578,3.123,6579,3.494,6580,4.104,6581,3.123,6582,6.778,6583,3.123,6584,4.189,6585,2.885,6586,3.383,6587,2.373,6588,3.772,6589,2.191,6590,3.622,6591,1.999,6592,5.85,6593,4.654,6594,3.123,6595,2.885,6596,2.544,6597,3.123,6598,3.123,6599,2.99,6600,2.655,6601,3.123,6602,3.123,6603,2.796,6604,3.123,6605,3.535,6606,10.172,6607,5.158,6608,2.885,6609,3.89,6610,2.305,6611,2.217,6612,2.142,6613,2.885,6614,3.123,6615,3.123,6616,5.038,6617,5.038,6618,5.038,6619,6.712,6620,4.654,6621,4.39,6622,5.038,6623,4.283,6624,4.39,6625,2.655,6626,3.123,6627,3.123,6628,2.274,6629,3.829,6630,3.123,6631,3.123,6632,3.123,6633,5.038,6634,3.123,6635,3.123,6636,3.123,6637,3.123,6638,3.123,6639,3.123,6640,3.123,6641,5.85,6642,6.333,6643,3.123,6644,3.123,6645,3.123,6646,3.123,6647,3.123,6648,2.596,6649,3.123,6650,3.123,6651,3.123,6652,3.123,6653,3.123,6654,2.411,6655,3.123,6656,2.99,6657,3.123,6658,6.333,6659,5.038,6660,3.123,6661,3.123,6662,2.885,6663,2.885,6664,2.452,6665,3.123,6666,5.85,6667,3.123,6668,3.123,6669,3.123,6670,3.123]],["title/interfaces/ICreateNews.html",[105,0.735,11943,5.503]],["body/interfaces/ICreateNews.html",[3,0.019,4,0.019,5,0.009,7,0.121,26,2.443,30,0.001,32,0.189,33,0.553,34,1.354,47,0.918,83,3.542,95,0.155,101,0.021,103,0.001,104,0.001,105,1.403,107,1.907,112,0.823,119,1.618,120,4.56,153,1.807,154,1.699,484,4.139,644,4.73,654,2.364,838,2.492,1207,3.903,1867,4.272,2196,4.945,2282,4.879,2680,5.724,3605,6.954,4565,4.937,4779,4.412,6915,6.289,6917,5.912,6918,7.449,6921,8.128,6925,6.153,6926,7.552,7103,8.064,10116,4.999,10768,6.423,11943,8.376,11944,7.349,11945,9.583,11946,7.349,11947,7.349,11948,7.349,11949,5.285,11950,6.659,11951,6.423]],["title/interfaces/ICurrentUser.html",[105,0.735,270,3.334]],["body/interfaces/ICurrentUser.html",[3,0.017,4,0.017,5,0.009,7,0.111,26,3.013,30,0.001,32,0.177,33,0.568,34,2.015,39,3.182,47,0.516,48,5.617,72,3.319,85,7.639,94,4.773,95,0.093,99,1.22,101,0.016,103,0.001,104,0.001,105,1.059,107,1.755,112,0.779,119,2.585,121,4.79,128,4.459,143,2.828,180,1.311,239,3.096,270,5.42,276,4.17,303,7.685,359,5.886,517,2.804,564,3.788,565,5.823,1002,6.626,2346,6.737,2365,5.886,3063,5.531,3075,4.477,3081,5.906,3249,6.522,4209,4.308,5106,6.426,5462,4.542,5497,4.79,5501,5.595,7093,9.558,7094,8.218,7095,4.542,7143,5.91,7145,5.439,7166,10.348,11952,6.761,11953,9.069,11954,5.91,11955,6.761,11956,6.761,11957,5.439]],["title/interfaces/IDashboardModelProperties.html",[105,0.735,7642,5.503]],["body/interfaces/IDashboardModelProperties.html",[0,0.323,3,0.016,4,0.016,5,0.008,7,0.184,30,0.001,32,0.148,33,0.456,34,2.222,39,2.558,47,0.884,49,2.754,55,2.498,95,0.154,96,2.612,97,3.027,101,0.019,103,0.001,104,0.001,105,1.026,107,1.676,112,0.755,143,2.407,144,2.3,154,2.311,172,3.706,173,2.065,174,4.3,178,3.95,180,1.704,181,1.869,182,3.093,236,1.547,239,3.035,379,0.873,404,3.88,405,3.843,556,1.759,1207,3.706,1657,4.515,1867,3.521,2359,7.864,2609,6.799,2611,4.387,2612,7.248,2614,5.188,2616,5.643,2618,3.811,2620,5.079,2624,4.102,2725,3.584,4276,4.237,5040,3.204,6576,4.337,6591,3.91,6932,4.51,7434,7.637,7619,9.093,7620,5.85,7621,9.379,7622,9.379,7630,7.683,7631,7.072,7632,5.85,7633,7.965,7634,5.85,7635,5.85,7636,5.85,7637,5.85,7638,5.85,7639,5.643,7640,5.85,7641,5.85,7642,8.737,7643,8.832,7644,5.85,7645,4.882,7646,5.85,7647,5.85,7648,5.85,7649,5.85,7650,5.85]],["title/interfaces/IDashboardRepo.html",[105,0.735,7815,5.705]],["body/interfaces/IDashboardRepo.html",[0,0.322,3,0.016,4,0.016,5,0.008,7,0.105,8,1.136,9,3.279,26,2.831,27,0.442,29,0.84,30,0.001,31,0.604,32,0.147,33,0.517,34,1.614,35,1.295,36,2.844,39,3.116,49,2.74,95,0.147,96,1.908,97,3.011,99,1.159,101,0.016,103,0.001,104,0.001,105,0.75,107,1.667,154,1.485,177,1.734,226,0.993,236,1.13,239,1.594,262,2.538,349,1.292,437,1.709,448,2.847,511,3.103,539,1.254,608,2.951,631,3.565,679,4.081,1280,2.171,1666,2.94,2252,5.456,2294,4.692,3287,4.215,6896,4.771,7434,7.867,7466,9.098,7502,7.222,7631,5.167,7711,7.423,7733,8.289,7792,6.077,7796,5.442,7797,6.423,7798,8.76,7799,8.289,7800,8.76,7802,9.969,7804,9.433,7806,6.423,7808,9.969,7810,6.423,7811,6.423,7812,8.76,7813,6.423,7814,6.077,7815,9.033,7816,5.295,7817,8.76,7818,6.423,7819,8.76,7820,6.423,7821,9.969,7822,6.423,7823,8.76,7824,6.423,7825,6.423,11958,6.947,11959,6.947,11960,6.947]],["title/interfaces/IEncryptionService.html",[105,0.735,9369,4.953]],["body/interfaces/IEncryptionService.html",[3,0.022,4,0.022,5,0.011,7,0.146,8,1.399,27,0.478,29,0.909,30,0.001,31,0.654,32,0.16,33,0.56,35,1.402,47,0.996,101,0.021,103,0.001,104,0.001,105,1.036,107,2.303,284,3.606,437,1.51,8340,7.139,8341,8.397,9369,8.491,11961,9.598,11962,10.213,11963,9.779,11964,10.793,11965,9.598,11966,10.793,11967,9.598,11968,9.598,11969,9.598]],["title/interfaces/IEntity.html",[105,0.735,2352,5.335]],["body/interfaces/IEntity.html",[3,0.022,4,0.022,5,0.011,7,0.145,30,0.001,32,0.159,34,2.228,47,0.887,49,5.158,83,3.579,95,0.148,96,2.631,97,4.15,101,0.021,103,0.001,104,0.001,105,1.356,107,2.298,112,0.926,180,2.089,376,4.171,377,4.346,644,5.32,654,2.848,975,7.197,2352,10.245,6579,5.81,11136,6.695,11970,8.377,11971,8.022]],["title/interfaces/IEntityWithSchool.html",[105,0.735,6579,4.132]],["body/interfaces/IEntityWithSchool.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.132,34,1.651,47,0.684,49,4.631,83,3.605,95,0.149,96,2.662,97,4.2,101,0.021,103,0.001,104,0.001,105,1.363,107,2.325,112,0.932,180,2.264,376,4.221,377,4.399,644,5.993,654,3.906,975,5.333,2352,10.287,6579,7.124,11136,6.775,11970,8.478,11971,8.118]],["title/interfaces/IEntityWithTimestamps.html",[105,0.735,11971,5.705]],["body/interfaces/IEntityWithTimestamps.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.159,34,1.623,47,0.673,49,4.584,83,4.181,95,0.147,96,2.618,97,4.13,101,0.021,103,0.001,104,0.001,105,1.353,107,2.287,112,0.923,180,2.247,376,5.687,377,5.926,644,5.304,654,2.835,975,5.244,2352,10.229,6579,5.782,11136,6.663,11970,8.338,11971,9.737]],["title/interfaces/IError.html",[105,0.735,8436,5.503]],["body/interfaces/IError.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.163,33,0.572,47,0.901,55,2.747,101,0.02,103,0.001,104,0.001,105,1.286,107,2.383,112,0.946,180,2.135,347,4.849,479,3.72,990,4.316,1025,5.297,8436,10.317,10597,7.386,11972,8.687,11973,9.181]],["title/interfaces/IErrorType.html",[105,0.735,3858,5.958]],["body/interfaces/IErrorType.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.19,47,0.997,101,0.016,103,0.001,104,0.001,105,1.08,107,2.401,112,0.95,177,2.344,1207,4.238,1226,8.347,3858,10.471,11974,10.004,11975,10.004]],["title/interfaces/IExternalToolPseudonymEntityProps.html",[105,0.735,9009,5.705]],["body/interfaces/IExternalToolPseudonymEntityProps.html",[0,0.282,3,0.019,4,0.019,5,0.01,7,0.126,26,2.631,30,0.001,32,0.17,33,0.511,34,2.116,39,3.537,47,0.877,49,5.397,95,0.157,96,2.927,97,3.594,99,1.383,101,0.018,103,0.001,104,0.001,105,0.895,107,1.99,112,0.935,154,2.277,168,6.714,172,3.966,173,2.453,174,4.237,178,3.445,180,1.486,181,2.219,182,2.698,191,4.488,192,5.283,404,3.384,405,5.863,564,2.546,593,3.071,2489,3.532,4276,5.031,8858,7.175,9001,5.909,9002,7.667,9003,7.667,9004,7.398,9009,9.861,9010,5.514,9011,6.701,9012,6.947,9013,6.032,9014,6.497]],["title/interfaces/IFederalStateProperties.html",[105,0.735,6523,5.705]],["body/interfaces/IFederalStateProperties.html",[0,0.344,3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,31,0.721,32,0.176,33,0.486,47,0.985,55,1.652,83,3.953,95,0.128,96,2.109,101,0.019,103,0.001,104,0.001,105,0.828,107,1.842,112,0.804,143,2.256,144,3.736,145,2.813,154,2.165,172,3.85,173,2.27,174,4.029,175,3.394,178,3.189,180,1.376,181,2.054,182,2.497,376,5.252,377,5.473,406,4.957,407,5.851,408,4.957,409,5.851,1672,3.996,1985,4.029,2503,5.236,4275,5.528,4285,3.36,5807,7.084,5823,5.028,6513,10.999,6514,6.715,6515,6.715,6516,6.715,6517,6.715,6518,6.715,6523,9.499,6524,10.967,6525,10.967,6526,6.715,6527,6.715,6528,6.715,6529,6.715,6530,6.715,6531,6.715,6532,5.272,6533,6.715,6534,6.715,6535,6.013]],["title/interfaces/IFileDO.html",[105,0.735,10601,5.191]],["body/interfaces/IFileDO.html",[3,0.016,4,0.022,5,0.008,7,0.107,10,2.857,26,2.659,30,0.001,31,0.682,32,0.181,33,0.458,34,2.073,39,1.892,47,0.986,55,2.335,83,3.331,95,0.121,99,1.173,101,0.022,103,0.001,104,0.001,105,1.256,107,1.687,112,0.759,239,1.613,319,3.175,437,0.909,654,2.091,822,6.518,838,3.402,990,3.23,1064,6.453,1299,6.518,1867,2.604,2020,3.078,2021,3.443,2022,3.319,2421,4.131,2627,3.141,2637,3.3,2680,3.175,2824,3.094,3063,3.063,3112,3.689,3307,5.417,3321,4.83,3573,5.96,3683,3.974,3881,3.938,4209,2.385,4779,3.903,5092,3.974,5104,4.049,6240,4.675,6256,6.642,6258,7.625,6259,5.649,6283,8.658,6284,6.461,6285,5.998,6286,7.625,10113,6.949,10114,6.949,10115,6.949,10116,4.422,10586,5.23,10599,5.509,10600,5.36,10601,7.282,10702,5.509,10706,8.5,11930,5.891,11931,5.891,11932,5.891,11933,5.891,11934,5.891,11935,5.891]],["title/interfaces/IFileDomainObjectProps.html",[105,0.735,9887,5.705]],["body/interfaces/IFileDomainObjectProps.html",[3,0.022,4,0.022,5,0.011,7,0.144,26,2.92,30,0.001,31,0.731,32,0.178,34,2.224,47,0.885,95,0.147,99,1.59,101,0.016,103,0.001,104,0.001,105,1.028,107,2.287,112,0.923,133,3.333,1718,4.014,3541,4.696,3573,6.393,6237,4.422,6256,7.125,6285,6.434,8439,6.337,9887,9.737,11937,8.811,11976,8.811]],["title/interfaces/IFileRecordParams.html",[105,0.735,10706,5.335]],["body/interfaces/IFileRecordParams.html",[3,0.018,4,0.024,5,0.009,7,0.115,10,3.095,26,2.88,30,0.001,31,0.565,32,0.154,34,1.717,39,2.049,47,0.925,55,1.639,83,2.339,95,0.128,99,1.271,101,0.022,103,0.001,104,0.001,105,1.297,107,1.828,112,0.8,239,1.748,319,3.439,437,0.985,654,2.266,822,4.266,838,3.542,990,3.408,1064,6.808,1299,4.266,1867,2.821,2020,3.334,2021,3.73,2022,3.596,2421,4.475,2627,3.403,2637,3.575,2680,3.439,2824,3.351,3063,3.318,3112,3.996,3307,5.64,3321,5.232,3573,6.123,3683,4.305,3881,4.266,4209,4.078,4779,4.228,5092,4.305,5104,4.386,6240,5.065,6256,6.824,6258,6.603,6259,5.882,6283,5.666,6284,4.228,6285,6.162,6286,4.99,10113,7.332,10114,7.332,10115,7.332,10116,4.791,10586,5.666,10599,5.968,10600,5.807,10601,5.807,10702,5.968,10706,9.419,11930,6.382,11931,6.382,11932,6.382,11933,6.382,11934,6.382,11935,6.382]],["title/interfaces/IFileRecordProperties.html",[105,0.735,10131,5.191]],["body/interfaces/IFileRecordProperties.html",[0,0.244,3,0.008,4,0.008,5,0.007,7,0.155,26,2.736,30,0.001,31,0.615,32,0.154,33,0.396,34,0.973,39,0.951,47,0.884,49,3.576,55,1.777,83,3.263,95,0.135,96,1.57,97,1.532,99,0.59,101,0.017,103,0,104,0,105,0.776,107,0.848,112,0.571,119,2.078,133,1.998,143,1.839,144,2.369,145,0.982,154,1.938,172,3.813,173,1.045,174,2.272,178,1.469,180,0.633,181,1.529,182,1.15,226,0.505,236,1.875,239,0.811,347,2.634,349,1.35,358,1.555,360,3.2,376,1.54,377,1.605,437,1.545,490,2.55,519,2.559,529,1,556,2.571,565,2.098,570,4.414,654,1.699,662,3.974,696,1.394,708,1.469,739,2.501,746,2.571,754,2.316,822,5.716,838,3.2,988,1.525,990,2.431,994,2.519,1064,3.86,1159,4.072,1299,5.716,1666,2.418,1759,2.428,1867,1.309,1927,2.077,1928,3.995,1985,3.285,2161,2.016,2337,2.016,2503,2.953,2588,1.962,2611,3.811,2621,2.036,2627,1.579,2637,1.659,2824,1.555,3063,1.54,3112,1.854,3307,1.765,3321,2.428,3573,5.519,3683,1.998,3836,2.629,4209,3.824,4219,2.695,4221,2.223,4275,3.118,4285,1.547,4286,2.098,4779,1.962,5092,1.998,5104,2.036,6237,1.64,6255,4.315,6256,5.293,6257,4.072,6258,5.41,6266,2.472,6274,2.519,6276,2.35,6278,5.231,6284,5.384,6285,5.555,6286,5.939,6579,2.145,6807,2.769,6808,4.25,6922,1.913,9892,2.629,9957,2.695,9960,4.072,9964,2.571,9998,2.472,10008,2.695,10012,2.695,10038,4.356,10041,2.571,10042,2.571,10047,2.695,10048,2.695,10088,2.857,10089,2.769,10090,4.476,10091,2.857,10092,4.476,10094,8.249,10106,6.143,10109,2.857,10110,2.695,10111,4.476,10112,2.629,10113,4.156,10114,4.156,10115,4.156,10116,2.223,10117,4.617,10118,4.617,10119,4.617,10120,4.617,10121,4.617,10122,4.617,10123,4.476,10124,5.579,10125,4.617,10126,2.695,10127,4.25,10128,2.629,10129,4.356,10130,2.695,10131,5.482,10132,5.634,10133,2.519,10134,2.769,10135,2.571,10136,2.571,10137,2.857,10138,2.857,10139,2.695,10140,2.629,10141,2.695,10142,2.857,10143,2.857,10144,2.857,10145,2.857,10146,2.857,10147,2.857,10148,2.857,10149,2.857,10150,2.857,10151,2.857,10152,7.838,10153,2.857,10154,2.857,10155,4.617,10156,2.857,10157,2.857,10158,4.617,10159,4.617,10160,4.617,10161,2.857,10162,2.857,10163,2.857,10164,2.857,10165,2.857,10166,2.857,10167,2.857,10168,4.617,10169,5.811,10170,2.769,10171,2.857,10172,4.617,10173,2.769,10174,2.857,10175,4.617,10176,2.857,10177,5.811,10178,5.811,10179,2.769,10180,5.811,10181,2.857,10182,2.857,10183,2.857,10184,2.857,10185,2.857,10186,2.857,10187,2.857,10188,2.769,10189,2.857,10190,2.857,10191,2.857,10192,2.857,10193,2.857,10194,2.857,10195,2.857,10196,2.857,10197,2.857]],["title/interfaces/IFileRecordSecurityCheckProperties.html",[105,0.735,10123,5.335]],["body/interfaces/IFileRecordSecurityCheckProperties.html",[0,0.25,3,0.009,4,0.009,5,0.007,7,0.157,26,2.553,30,0.001,31,0.552,32,0.115,33,0.473,34,1.002,39,0.986,47,0.891,49,3.642,55,1.266,83,3.027,95,0.137,96,1.616,97,1.588,99,0.611,101,0.017,103,0,104,0,105,0.795,107,0.879,112,0.585,119,2.108,133,2.057,143,1.877,144,2.427,145,1.017,154,1.974,172,3.848,173,1.084,174,2.339,178,1.522,180,0.657,181,1.574,182,1.192,226,0.524,236,1.895,239,0.841,347,3.611,349,1.358,358,1.612,360,3.293,376,1.596,377,1.663,437,1.559,490,2.612,519,2.612,529,1.037,556,2.609,565,2.175,570,4.521,654,1.749,662,4.002,696,1.445,708,1.522,739,2.574,746,2.665,754,2.4,822,4.722,838,3.247,988,1.58,990,2.491,994,2.611,1064,3.972,1159,6.58,1299,4.722,1666,2.489,1759,2.516,1867,1.357,1927,2.152,1928,4.112,1985,3.354,2161,2.09,2337,2.09,2503,3.04,2588,2.034,2611,3.891,2621,2.11,2627,1.637,2637,1.72,2824,1.612,3063,1.596,3112,1.922,3307,1.829,3321,2.516,3573,5.072,3683,2.07,3836,2.725,4209,3.514,4219,2.793,4221,2.304,4275,3.209,4285,1.604,4286,2.175,4779,2.034,5092,2.07,5104,2.11,6237,1.7,6255,4.42,6256,4.601,6257,4.191,6258,6.457,6266,2.562,6274,2.611,6276,2.436,6278,5.358,6284,4.089,6285,5.104,6286,3.852,6579,2.223,6807,2.87,6808,4.374,6922,1.983,9892,2.725,9957,2.793,9960,4.191,9964,2.665,9998,2.562,10008,2.793,10012,2.793,10038,4.483,10041,2.665,10042,2.665,10047,2.793,10048,2.793,10088,2.961,10089,2.87,10090,4.607,10091,2.961,10092,4.607,10094,6.814,10106,6.272,10109,2.961,10110,2.793,10111,4.607,10112,2.725,10113,4.278,10114,4.278,10115,4.278,10116,2.304,10117,4.752,10118,4.752,10119,4.752,10120,4.752,10121,4.752,10122,4.752,10123,5.771,10124,6.997,10125,4.752,10126,2.793,10127,4.374,10128,2.725,10129,4.483,10130,2.793,10131,4.483,10132,5.771,10133,2.611,10134,2.87,10135,2.665,10136,2.665,10137,2.961,10138,2.961,10139,2.793,10140,2.725,10141,2.793,10142,2.961,10143,2.961,10144,2.961,10145,2.961,10146,2.961,10147,2.961,10148,2.961,10149,2.961,10150,2.961,10151,2.961,10152,7.966,10153,2.961,10154,2.961,10155,4.752,10156,2.961,10157,2.961,10158,4.752,10159,4.752,10160,4.752,10161,2.961,10162,2.961,10163,2.961,10164,2.961,10165,2.961,10166,2.961,10167,2.961,10168,4.752,10169,5.953,10170,2.87,10171,2.961,10172,4.752,10173,2.87,10174,2.961,10175,4.752,10176,2.961,10177,5.953,10178,5.953,10179,2.87,10180,5.953,10181,2.961,10182,2.961,10183,2.961,10184,2.961,10185,2.961,10186,2.961,10187,2.961,10188,2.87,10189,2.961,10190,2.961,10191,2.961,10192,2.961,10193,2.961,10194,2.961,10195,2.961,10196,2.961,10197,2.961]],["title/interfaces/IFileRequestInfo.html",[105,0.735,6350,5.335]],["body/interfaces/IFileRequestInfo.html",[3,0.023,4,0.023,5,0.012,7,0.148,26,2.935,30,0.001,32,0.173,95,0.15,99,1.628,101,0.016,103,0.001,104,0.001,105,1.053,107,2.342,112,0.936,141,4.663,3541,4.81,3573,6.445,4209,4.465,6237,4.529,6256,7.183,6285,6.487,6350,9.239,8439,6.49,11938,8.54,11976,9.025]],["title/interfaces/IFileStorageConfig.html",[105,0.735,11977,6.296]],["body/interfaces/IFileStorageConfig.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,32,0.159,47,0.922,55,2.956,95,0.147,101,0.021,103,0.001,104,0.001,105,0.872,107,1.938,112,0.832,119,2.503,180,1.877,437,1.648,1168,6.156,1912,3.726,2020,3.535,2021,3.954,2022,3.812,2023,5.146,2035,5.079,2366,5.146,3542,3.296,6237,3.747,6335,7.405,6336,6.327,6337,5.646,6338,5.646,6339,5.646,6340,5.646,9882,5.37,10501,5.646,11627,5.455,11939,9.737,11977,10.746,11978,8.076,11979,12.743,11980,12.743,11981,12.743,11982,10.746,11983,9.683,11984,6.526,11985,7.467,11986,6.526,11987,8.076,11988,10.473,11989,6.766,11990,7.467,11991,10.473,11992,8.076,11993,7.066,11994,7.467,11995,8.076,11996,8.076,11997,8.076,11998,8.076,11999,8.076,12000,8.076,12001,8.076]],["title/interfaces/IFilesStorageClientConfig.html",[105,0.735,10714,5.705]],["body/interfaces/IFilesStorageClientConfig.html",[3,0.024,4,0.024,5,0.012,7,0.158,30,0.001,32,0.143,55,2.807,101,0.017,103,0.001,104,0.001,105,1.127,107,2.506,112,0.975,3541,6.051,3542,4.263,6237,4.847,10714,10.287,11590,7.056,11989,11.277,12002,10.446]],["title/interfaces/IFindOptions.html",[105,0.735,6970,4.132]],["body/interfaces/IFindOptions.html",[3,0.022,4,0.022,5,0.011,7,0.146,30,0.001,32,0.172,33,0.628,55,2.512,56,4.641,70,4.792,101,0.022,103,0.001,104,0.001,105,1.26,107,2.303,112,0.927,484,4.997,721,6.037,838,3.009,2034,7.396,3617,9.779,6680,7.853,6970,7.083,9045,9.977,9232,10.254,10460,9.433,12003,8.874,12004,8.874]],["title/interfaces/IGridElement.html",[105,0.735,7499,5.705]],["body/interfaces/IGridElement.html",[0,0.191,3,0.008,4,0.008,5,0.004,7,0.136,8,0.675,26,2.428,27,0.415,29,0.636,30,0.001,31,0.458,32,0.157,33,0.392,34,1.638,35,1.217,39,1.515,47,0.862,55,2.658,83,1.066,95,0.09,101,0.017,103,0,104,0,105,0.375,107,0.833,112,0.447,119,1.958,181,0.929,191,3.047,192,2.211,226,0.496,236,1.717,349,1.371,381,1.166,404,3.665,405,3.098,413,2.516,437,1.717,474,3.49,480,1.563,519,3.736,529,2.009,556,2.058,603,2.348,696,3.223,708,2.951,739,3.577,848,1.91,974,4.343,1080,5.206,1207,3.235,1280,1.085,1492,5.414,1507,3.587,1679,3.729,1883,4.634,2238,2.719,2442,1.7,2588,3.125,2609,7.048,2621,1.999,2622,1.849,2664,2.582,2725,4.193,2745,4.747,3202,2.582,3399,2.427,3572,3.587,3666,7.525,3738,3.497,4915,2.13,6431,2.908,6538,2.345,6580,9.378,6584,4.095,6664,3.867,6896,5.612,7443,5.823,7466,2.525,7467,3.037,7469,3.037,7472,3.037,7473,2.908,7474,8.058,7476,2.805,7483,4.925,7489,3.037,7493,3.037,7496,3.037,7497,8.058,7499,9.388,7502,6.229,7504,3.037,7505,7.525,7508,3.037,7510,3.037,7512,3.037,7514,3.037,7516,3.037,7518,3.037,7521,3.037,7523,4.925,7524,2.582,7525,7.858,7526,7.149,7527,4.925,7528,7.858,7529,6.214,7530,4.925,7531,7.858,7532,4.925,7533,6.214,7534,3.037,7535,4.188,7536,9.157,7537,3.037,7538,4.925,7539,3.037,7540,4.925,7541,3.037,7542,4.925,7543,3.037,7544,3.037,7545,3.037,7546,3.037,7547,3.037,7548,4.925,7549,3.037,7550,4.925,7551,2.908,7552,4.925,7553,3.037,7554,2.427,7555,4.925,7556,3.037,7557,3.037,7558,3.037,7559,4.925,7560,2.805,7561,3.037,7562,4.925,7563,3.037,7564,2.646,7565,3.037,7566,3.037,7567,3.037,7568,3.037,7569,3.037,7570,3.037,7571,3.037,7572,3.037,7573,3.037,7574,4.925,7575,4.925,7576,2.908,7577,6.214,7578,3.037,7579,4.925,7580,3.037,7581,3.037,7582,3.037,7583,3.037,7584,3.037,7585,3.037,7586,3.037,7587,3.037,7588,3.037,7589,3.037,7590,3.037,7591,3.037,7592,3.037,7593,3.037,7594,3.037,7595,3.037,7596,3.037,7597,3.037,7598,3.037,7599,3.037,7600,3.037,7601,3.037,7602,3.037,7603,4.925,7604,3.037,7605,3.037,7606,3.037,7607,4.925,7608,4.925,7609,3.037,7610,3.037,7611,3.037,7612,3.037,7613,3.037,7614,3.037,7615,3.037,7616,6.214,7617,3.037,7618,3.037,10969,5.205,10974,5.205,10975,5.205,10976,5.205,10983,3.209,12005,3.471,12006,3.471,12007,3.471,12008,3.471,12009,3.471,12010,3.471,12011,3.471]],["title/interfaces/IIdentityManagementConfig.html",[105,0.735,12012,5.705]],["body/interfaces/IIdentityManagementConfig.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.175,101,0.017,103,0.001,104,0.001,105,1.085,107,2.413,112,0.953,119,2.878,11598,5.734,12012,10.057,12013,7.877,12014,10.054,12015,12.291,12016,12.291,12017,12.291]],["title/interfaces/IImportUserProperties.html",[105,0.735,12018,5.705]],["body/interfaces/IImportUserProperties.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,30,0.001,31,0.404,32,0.18,33,0.589,47,0.972,49,1.875,95,0.139,96,1.306,101,0.016,103,0,104,0,105,0.778,107,1.141,112,0.873,119,1.977,128,2.904,143,2.618,144,2.375,145,1.32,154,1.541,168,5.955,172,3.755,173,1.406,174,2.867,175,2.102,178,1.975,180,0.852,181,1.273,182,1.547,220,1.809,236,0.774,239,2.966,250,3.212,349,0.745,359,2.853,361,4.92,437,1.126,490,1.686,517,1.823,529,1.345,556,1.816,564,1.46,593,2.67,603,0.955,644,4.765,651,4.988,652,4.988,653,5.901,654,3.581,655,5.523,696,3.434,708,1.975,838,3.046,974,2.299,1280,1.486,1618,5.282,1666,2.012,1844,4.722,2148,2.885,2176,4.16,2359,6.332,2360,3.983,2609,4.534,2611,4.818,2612,5.495,2620,3.459,2688,4.16,2899,2.853,3075,4.765,3081,2.374,4209,1.613,4214,6.911,4297,3.725,4298,3.537,4313,5.137,4603,2.595,5040,3.995,6055,3.388,6579,4.374,6589,2.918,6591,2.663,6611,2.953,6932,3.071,6939,2.822,6940,2.918,7554,3.324,7645,5.04,8549,5.651,8550,3.537,8551,3.725,9624,3.162,9625,3.459,9626,3.162,9627,3.459,9628,3.625,9629,3.842,9803,3.162,9804,3.162,10383,3.625,10743,7.3,10744,5.979,10762,3.388,10763,2.885,10771,3.983,11323,3.983,11327,3.459,12018,7.293,12019,4.396,12020,7.959,12021,8.964,12022,7.053,12023,8.88,12024,8.18,12025,3.625,12026,4.16,12027,4.16,12028,4.396,12029,3.983,12030,3.388,12031,4.396,12032,4.396,12033,4.396,12034,4.396,12035,4.396,12036,4.396,12037,4.396,12038,4.396,12039,6.039,12040,4.396,12041,6.039,12042,3.983,12043,5.825,12044,4.396,12045,4.396,12046,4.396,12047,3.842,12048,3.625,12049,4.396,12050,4.396,12051,4.396,12052,4.396,12053,3.983,12054,3.983,12055,5.495,12056,5.362,12057,6.306,12058,4.396,12059,4.396,12060,4.396,12061,3.842,12062,6.039,12063,4.396]],["title/interfaces/IImportUserScope.html",[105,0.735,12064,5.503]],["body/interfaces/IImportUserScope.html",[2,1.393,3,0.019,4,0.019,5,0.01,7,0.126,30,0.001,31,0.466,32,0.185,33,0.677,47,0.991,95,0.106,101,0.019,103,0.001,104,0.001,105,1.153,107,1.998,112,0.848,119,2.4,250,8.403,276,5.289,361,4.705,651,6.145,652,6.145,838,2.611,1414,7.468,1844,6.997,4324,5.052,6591,4.663,10743,8.698,10744,8.545,10762,5.934,10763,5.052,12024,9.747,12064,8.632,12065,7.699,12066,10.422,12067,7.699,12068,6.729]],["title/interfaces/IInterceptorConfig.html",[105,0.735,11941,5.705]],["body/interfaces/IInterceptorConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.167,55,2.984,101,0.017,103,0.001,104,0.001,105,1.113,107,2.474,112,0.968,11590,6.965,11941,10.209,11986,10.832,11989,11.23,12069,10.312]],["title/interfaces/IJsonAccount.html",[105,0.735,12070,5.958]],["body/interfaces/IJsonAccount.html",[3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.191,33,0.551,39,3.487,47,0.997,48,6.155,51,6.307,87,6.515,101,0.015,103,0.001,104,0.001,105,1.007,107,2.239,112,0.911,120,5.702,975,7.133,11598,5.322,11599,5.727,12070,10.038,12071,8.627,12072,9.331,12073,10.608]],["title/interfaces/IJsonUser.html",[105,0.735,12074,5.958]],["body/interfaces/IJsonUser.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.187,47,0.998,101,0.016,103,0.001,104,0.001,105,1.046,107,2.325,112,0.932,120,5.166,651,6.273,652,6.273,653,6.787,975,7.226,11598,5.527,11599,5.948,12071,8.96,12073,8.96,12074,10.272,12075,9.691]],["title/interfaces/IKeycloakConfigurationInputFiles.html",[105,0.735,12076,5.705]],["body/interfaces/IKeycloakConfigurationInputFiles.html",[3,0.024,4,0.024,5,0.012,7,0.153,30,0.001,32,0.164,47,0.974,101,0.02,103,0.001,104,0.001,105,1.088,107,2.419,112,0.955,437,1.304,2020,4.412,2161,5.749,11598,5.749,11599,6.186,12076,10.072,12077,10.079,12078,10.079,12079,12.301,12080,12.301,12081,8.818,12082,10.079]],["title/interfaces/IKeycloakSettings.html",[105,0.735,12083,5.705]],["body/interfaces/IKeycloakSettings.html",[3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.186,47,1.003,51,4.593,87,5.808,101,0.019,103,0.001,104,0.001,105,1.019,107,2.265,112,0.918,120,5.084,437,1.221,2136,7.354,5590,6.666,8065,9.68,11573,6.277,11593,8.259,11598,5.385,11599,5.794,12083,9.681,12084,9.441,12085,10.903,12086,7.909,12087,9.441]],["title/interfaces/ILearnroom.html",[105,0.735,6580,4.853]],["body/interfaces/ILearnroom.html",[3,0.023,4,0.023,5,0.012,7,0.152,30,0.001,32,0.137,95,0.127,101,0.02,103,0.001,104,0.001,105,1.295,107,2.413,112,0.953,474,5.128,519,3.719,2442,4.923,2623,6.406,4919,6.323,4920,6.493,6580,8.554,6584,8.732,6662,10.743,12088,9.296]],["title/interfaces/ILearnroomElement.html",[105,0.735,2623,4.339]],["body/interfaces/ILearnroomElement.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,95,0.125,101,0.02,103,0.001,104,0.001,105,1.282,107,2.371,112,0.943,474,5.646,519,3.68,2442,4.838,2623,7.569,4919,8.313,4920,8.536,6580,7.041,6584,8.641,6662,7.985,12088,9.136]],["title/interfaces/ILegacyLogger.html",[105,0.735,12089,5.958]],["body/interfaces/ILegacyLogger.html",[3,0.017,4,0.017,5,0.009,7,0.113,8,1.188,27,0.508,29,0.965,30,0.001,31,0.694,32,0.174,33,0.595,35,1.489,39,1.996,47,1.003,59,3.963,72,4.496,101,0.016,102,4.979,103,0.001,104,0.001,105,0.801,107,1.781,131,5.228,141,3.545,236,1.611,271,2.903,310,3.216,519,4.192,556,1.869,591,4.193,990,3.77,1025,4.85,1154,5.178,1198,2.551,1231,7.205,2253,4.06,5520,6.587,8391,6.926,12089,8.666,12090,12.754,12091,7.421,12092,8.666,12093,8.666,12094,9.159,12095,7.421,12096,9.159,12097,10.31,12098,7.421,12099,9.159,12100,10.409,12101,7.421,12102,9.159,12103,7.421,12104,9.159,12105,7.421]],["title/interfaces/ILessonParent.html",[105,0.735,6588,4.461]],["body/interfaces/ILessonParent.html",[0,0.156,3,0.011,4,0.011,5,0.005,7,0.145,8,0.844,26,2.299,27,0.189,30,0.001,31,0.394,32,0.117,35,0.554,47,0.941,55,2.216,95,0.154,96,1.266,101,0.021,103,0,104,0,105,1.257,107,1.106,119,1.433,143,1.901,144,1.518,145,1.954,153,1.941,154,1.504,172,3.288,173,1.363,174,2.799,175,2.037,178,1.914,180,0.826,181,1.233,182,1.499,226,0.659,236,1.555,239,1.057,316,3.779,349,1.297,437,1.624,474,1.968,529,1.991,556,1.773,563,4.178,603,1.414,604,1.872,662,1.449,696,1.817,838,1.445,975,2.536,1154,1.833,1162,2.201,1198,3.286,1207,3.052,1280,1.44,1603,1.733,1657,2.188,1679,3.212,1861,2.201,1867,3.814,1885,1.923,1985,1.833,2196,4.391,2611,3.94,2614,3.841,2618,2.514,2623,4.484,2624,2.707,2625,4.514,2627,3.815,2628,4.372,2637,2.163,2641,4.61,2745,3.72,2823,4.129,3307,4.264,3417,5.371,3436,6.085,3542,1.88,3570,3.222,3571,3.222,4060,4.134,4221,2.898,4285,2.017,4915,2.828,4919,2.898,4920,2.976,5040,2.114,5065,6.566,5076,3.283,5092,2.604,5099,4.484,5104,6.872,5116,3.283,5122,3.283,5127,3.283,5699,7.456,6433,5.678,6436,6.085,6554,2.976,6576,2.862,6586,6.049,6587,3.064,6588,5.594,6590,4.426,6628,6.56,6629,4.68,6654,4.754,6825,2.862,6826,3.064,8498,5.015,10845,4.754,11876,5.015,11877,3.352,11878,5.441,11879,3.352,11880,4.921,11881,6.745,11882,5.015,11883,3.283,11884,5.015,11885,5.015,11886,5.015,11887,3.352,11888,5.015,11889,3.064,11890,5.015,11891,5.015,11892,3.352,11893,3.352,11894,3.352,11895,3.222,11896,3.222,11897,3.352,11898,3.352,11899,3.352,11900,5.119,11901,5.97,11902,3.222,11903,5.119,11904,3.352,11905,3.352,11906,3.352,11907,3.165,11908,3.352,11909,3.352,11910,5.119,11911,3.352,11912,3.352,11913,6.953,11914,6.211,11915,3.283,11916,3.352,11917,3.352,11918,3.352,11919,3.352,11920,3.352,11921,3.352,11922,3.352,11923,3.352,11924,3.352,11925,3.352,11926,3.352,11927,3.165,11928,3.352,11929,3.352,12106,4.608]],["title/interfaces/ILessonProperties.html",[105,0.735,11880,4.761]],["body/interfaces/ILessonProperties.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.141,26,2.128,30,0.001,31,0.563,32,0.164,33,0.51,47,0.943,55,2.383,95,0.152,96,1.199,101,0.02,103,0,104,0,105,1.235,107,1.047,112,0.536,119,1.891,143,1.838,144,1.437,145,1.874,153,1.876,154,1.443,172,3.207,173,1.29,174,2.684,175,1.929,178,1.813,180,0.782,181,1.168,182,1.419,226,0.624,236,1.511,239,1.001,316,3.623,349,1.281,437,1.604,474,1.864,529,1.909,556,1.7,563,4.006,603,1.356,604,1.773,662,1.372,696,1.721,838,1.368,975,2.401,1154,1.735,1162,2.084,1198,3.193,1207,2.966,1280,1.364,1603,1.641,1657,2.072,1679,3.08,1861,2.084,1867,4.444,1885,1.821,1985,1.735,2196,4.297,2611,3.808,2614,3.683,2618,2.381,2623,4.3,2624,2.563,2625,4.362,2627,3.687,2628,4.192,2637,2.048,2641,4.421,2745,5.309,2823,3.991,3307,4.121,3417,6.68,3436,5.881,3542,1.78,3570,3.05,3571,3.05,4060,3.965,4221,2.744,4285,1.91,4915,2.678,4919,2.744,4920,2.818,5040,2.002,5065,7.295,5076,3.109,5092,2.465,5099,4.3,5104,6.763,5116,3.109,5122,3.109,5127,3.109,5699,7.295,6433,5.488,6436,5.881,6554,2.818,6576,2.71,6586,7.048,6587,2.901,6588,4.421,6590,4.245,6628,4.3,6629,4.487,6654,4.559,6825,2.71,6826,2.901,8498,4.809,10845,6.785,11876,4.809,11877,3.174,11878,6.4,11879,3.174,11880,5.77,11881,7.495,11882,4.809,11883,3.109,11884,4.809,11885,4.809,11886,4.809,11887,3.174,11888,4.809,11889,2.901,11890,4.809,11891,4.809,11892,3.174,11893,3.174,11894,3.174,11895,3.05,11896,3.05,11897,3.174,11898,3.174,11899,3.174,11900,4.909,11901,5.77,11902,3.05,11903,4.909,11904,3.174,11905,3.174,11906,3.174,11907,2.997,11908,3.174,11909,3.174,11910,4.909,11911,3.174,11912,3.174,11913,6.756,11914,6.003,11915,3.109,11916,3.174,11917,3.174,11918,3.174,11919,3.174,11920,3.174,11921,3.174,11922,3.174,11923,3.174,11924,3.174,11925,3.174,11926,3.174,11927,2.997,11928,3.174,11929,3.174]],["title/interfaces/ILoggerConfig.html",[105,0.735,11942,5.705]],["body/interfaces/ILoggerConfig.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,47,0.925,101,0.017,103,0.001,104,0.001,105,1.139,107,2.533,112,0.981,11590,7.13,11942,10.35,11984,10.914,12107,10.555]],["title/interfaces/IMaterialProperties.html",[105,0.735,12108,5.335]],["body/interfaces/IMaterialProperties.html",[0,0.233,3,0.016,4,0.016,5,0.008,7,0.104,30,0.001,32,0.182,33,0.553,47,1.019,95,0.119,96,1.889,101,0.019,103,0.001,104,0.001,105,1.157,107,1.65,112,0.747,153,2.745,154,2.011,172,4.3,173,2.033,174,3.742,175,3.04,180,1.232,181,1.84,182,2.237,238,3.959,1198,4.152,1207,3.856,1657,3.265,2725,3.528,3542,4.928,3572,4.381,6264,3.691,6609,4.644,6610,4.44,7205,4.324,11878,4.381,11881,4.504,11889,8.03,12108,8.402,12109,5.76,12110,8.983,12111,9.759,12112,9.759,12113,9.461,12114,9.759,12115,9.759,12116,9.759,12117,5.76,12118,5.001,12119,5.76,12120,5.76,12121,5.556,12122,5.76,12123,5.76,12124,5.76,12125,5.76,12126,5.76,12127,5.76,12128,5.76,12129,5.76,12130,5.76,12131,5.76,12132,5.76,12133,5.76,12134,5.76]],["title/interfaces/IMigrationOptions.html",[105,0.735,11613,5.503]],["body/interfaces/IMigrationOptions.html",[0,0.157,3,0.011,4,0.011,5,0.005,7,0.07,10,1.874,30,0.001,32,0.117,33,0.521,36,2.404,47,0.675,52,3.365,53,3.355,55,2.431,70,5.422,72,3.197,78,8.679,95,0.121,101,0.008,103,0,104,0,105,0.922,107,1.107,112,0.559,118,2.939,119,1.739,142,4.03,145,3.234,153,2.815,177,1.564,179,4.614,208,1.69,236,1.146,239,1.058,262,2.669,310,4.146,333,3.616,349,0.883,359,2.768,379,0.577,413,1.421,437,1.332,486,3.099,490,4.006,529,1.305,556,1.774,562,3.168,568,5.445,595,2.901,600,2.865,603,1.921,608,2.752,696,2.778,697,6.216,708,2.926,710,5.869,844,3.517,933,2.738,937,4.056,990,1.56,1224,2.583,1278,1.459,1451,5.445,1458,3.981,1584,5.519,1734,2.939,1762,4.227,1773,2.517,2020,2.019,2037,3.614,2253,1.891,2254,3.18,2347,2.631,2777,5.598,3063,5.074,3446,4.684,3454,3.168,3455,8.825,3456,6.479,3457,2.738,5511,3.431,5949,7.472,6499,3.614,7095,2.865,7112,2.939,7396,7.853,7870,5.975,7880,7.853,8334,3.517,8391,3.225,10227,4.925,11364,3.614,11597,5.693,11598,2.631,11599,2.831,11600,3.865,11601,3.865,11602,3.614,11603,5.901,11604,6.356,11605,3.614,11606,3.614,11607,5.901,11608,3.865,11609,3.865,11610,8.325,11611,3.865,11612,3.865,11613,6.906,11614,7.853,11615,3.865,11616,3.517,11617,3.614,11618,3.865,11619,3.865,11620,3.865,11621,8.63,11622,3.355,11623,3.865,11624,3.865,11625,7.159,11626,3.022,11627,5.772,11628,3.287,11629,4.838,11630,3.431,11631,3.865,11632,3.865,11633,3.865,11634,8.013,11635,3.865,11636,3.865,11637,3.865,11638,8.013,11639,3.865,11640,3.865,11641,3.865,11642,8.013,11643,8.013,11644,3.614,11645,3.865,11646,3.865,11647,3.865,11648,3.355,11649,3.728,11650,5.124,11651,3.865,11652,3.865,11653,3.865,11654,3.865,11655,3.865,11656,5.02,11657,3.614,11658,3.614,11659,3.865,11660,3.865,11661,3.865,11662,3.865,11663,3.865,11664,3.865,11665,3.865,11666,3.865,11667,3.865,11668,3.865,11669,3.865,11670,3.728]],["title/interfaces/INameMatch.html",[105,0.735,12068,5.503]],["body/interfaces/INameMatch.html",[2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,31,0.725,32,0.156,33,0.549,47,0.968,95,0.118,101,0.02,103,0.001,104,0.001,105,1.235,107,2.229,112,0.909,119,1.89,250,6.274,276,3.949,361,6.465,651,5.923,652,5.923,838,2.912,1414,7.999,1844,7.495,4324,6.942,6591,5.201,10743,6.494,10744,6.379,10762,6.619,10763,5.635,12024,8.963,12064,7.506,12065,8.587,12066,9.585,12067,8.587,12068,9.246]],["title/interfaces/INewsProperties.html",[105,0.735,6920,5.335]],["body/interfaces/INewsProperties.html",[0,0.327,3,0.011,4,0.025,5,0.006,7,0.165,9,3.355,26,2.588,30,0.001,31,0.398,32,0.174,33,0.561,34,0.795,47,0.931,83,2.954,95,0.148,96,2.364,101,0.017,103,0,104,0,105,0.504,107,1.12,112,0.822,143,2.429,144,3.594,154,2.213,172,3.622,173,1.38,174,2.826,175,2.063,180,1.724,181,2.575,182,1.518,236,1.4,239,2.748,349,0.482,355,5.413,358,3.786,381,1.567,403,4.777,413,1.437,459,4.417,521,3.409,563,5.711,643,2.074,644,5.335,654,3.477,655,5.205,838,2.228,996,4.111,997,4.542,998,4.063,999,4.297,1000,4.696,1207,3.483,1225,4.362,1603,1.755,1657,3.375,1663,2.346,1679,3.243,1755,3.057,1773,2.547,1867,2.632,2196,4.413,2506,4.863,2611,3.971,2624,2.741,2680,5.754,2725,2.395,3393,3.205,3395,2.973,3396,3.263,3398,3.325,3399,3.263,3400,3.471,3414,2.864,3547,3.152,3572,2.973,4209,1.583,4301,3.557,4302,3.394,4443,3.394,5040,3.949,5120,3.394,5688,7.935,6284,2.59,6502,3.263,6589,2.864,6591,2.613,6612,2.8,6825,2.899,6912,3.471,6913,3.771,6915,4.312,6916,3.771,6917,7.702,6918,5.558,6919,3.771,6920,8.886,6921,6.885,6922,5.904,6923,7.157,6924,7.702,6925,6.475,6926,7.412,6927,3.771,6928,5.064,6929,3.771,6930,3.557,6931,3.557,6932,4.59,6933,3.771,6934,3.557,6935,3.557,6936,3.771,6937,3.471,6938,3.771,6939,2.77,6940,2.864,6941,3.557,6942,3.771,6943,3.771,6944,6.743,6945,3.771,6946,6.955,6947,3.771,6948,3.771,6949,5.417,6950,3.557,6951,6.017,6952,3.656,6953,4.655,6954,3.557,6955,3.394,6956,3.557,6957,3.771]],["title/interfaces/INewsScope.html",[105,0.735,11951,5.503]],["body/interfaces/INewsScope.html",[3,0.019,4,0.019,5,0.01,7,0.123,26,2.469,30,0.001,32,0.186,33,0.628,34,1.384,47,0.742,83,2.495,95,0.156,101,0.021,103,0.001,104,0.001,105,1.411,107,1.95,112,0.835,119,2.373,120,4.626,153,1.847,154,1.737,484,4.23,644,4.798,654,2.417,838,2.547,1207,2.594,1867,4.317,2196,3.287,2282,4.987,2680,5.764,3605,9.199,4565,5.047,4779,4.51,6915,6.379,6917,6.043,6918,7.528,6921,5.402,6925,6.241,6926,7.459,7103,8.618,10116,5.11,10768,9.961,11943,6.566,11944,7.512,11945,7.512,11946,7.512,11947,7.512,11948,7.512,11949,5.402,11950,6.807,11951,8.497]],["title/interfaces/IPagination.html",[105,0.735,9045,5.191]],["body/interfaces/IPagination.html",[3,0.022,4,0.022,5,0.011,7,0.146,30,0.001,32,0.172,33,0.628,55,2.935,56,6.329,70,6.535,101,0.022,103,0.001,104,0.001,105,1.26,107,2.303,112,0.927,484,4.997,721,6.037,838,3.009,2034,5.424,3617,9.779,6680,5.759,6970,5.823,9045,9.59,9232,9.145,10460,9.433,12003,8.874,12004,8.874]],["title/interfaces/IParentInfo.html",[105,0.735,10132,5.335]],["body/interfaces/IParentInfo.html",[0,0.251,3,0.009,4,0.009,5,0.007,7,0.157,26,2.676,30,0.001,31,0.554,32,0.116,34,1.006,39,0.991,47,0.852,49,3.652,55,1.271,83,3.034,95,0.137,96,1.623,97,1.597,99,0.615,101,0.017,103,0,104,0,105,0.798,107,0.884,112,0.587,119,2.113,133,2.066,143,1.883,144,2.436,145,1.023,154,1.979,172,3.853,173,1.09,174,2.349,178,1.53,180,0.66,181,1.581,182,1.198,226,0.527,236,1.898,239,0.845,347,2.708,349,1.359,358,1.621,360,3.308,376,1.605,377,1.672,437,1.561,490,2.622,519,2.62,529,1.042,556,2.615,565,2.187,570,4.538,654,1.757,662,4.006,696,1.453,708,1.53,739,2.586,746,2.68,754,2.413,822,4.737,838,3.255,988,1.589,990,2.5,994,2.625,1064,3.99,1159,4.209,1299,4.737,1666,2.499,1759,2.53,1867,1.364,1927,2.164,1928,4.13,1985,3.364,2161,2.101,2337,2.101,2503,3.053,2588,2.045,2611,3.903,2621,2.121,2627,1.646,2637,1.729,2824,1.621,3063,1.605,3112,1.932,3307,1.839,3321,2.53,3573,5.591,3683,2.082,3836,2.74,4209,3.874,4219,2.808,4221,2.317,4275,3.223,4285,1.613,4286,2.187,4779,2.045,5092,2.082,5104,2.121,6237,1.709,6255,4.436,6256,5.393,6257,4.209,6258,5.541,6266,2.576,6274,2.625,6276,2.449,6278,5.378,6284,4.104,6285,5.627,6286,3.869,6579,2.235,6807,2.886,6808,4.393,6922,1.994,9892,2.74,9957,2.808,9960,4.209,9964,2.68,9998,2.576,10008,2.808,10012,2.808,10038,4.503,10041,2.68,10042,2.68,10047,2.808,10048,2.808,10088,2.977,10089,2.886,10090,4.628,10091,2.977,10092,4.628,10094,6.836,10106,6.292,10109,2.977,10110,2.808,10111,4.628,10112,2.74,10113,4.296,10114,4.296,10115,4.296,10116,2.317,10117,4.773,10118,4.773,10119,4.773,10120,4.773,10121,4.773,10122,4.773,10123,4.628,10124,5.714,10125,4.773,10126,2.808,10127,4.393,10128,2.74,10129,4.503,10130,2.808,10131,4.503,10132,6.627,10133,2.625,10134,2.886,10135,2.68,10136,2.68,10137,2.977,10138,2.977,10139,2.808,10140,2.74,10141,2.808,10142,2.977,10143,2.977,10144,2.977,10145,2.977,10146,2.977,10147,2.977,10148,2.977,10149,2.977,10150,2.977,10151,2.977,10152,7.986,10153,2.977,10154,2.977,10155,4.773,10156,2.977,10157,2.977,10158,4.773,10159,4.773,10160,4.773,10161,2.977,10162,2.977,10163,2.977,10164,2.977,10165,2.977,10166,2.977,10167,2.977,10168,4.773,10169,5.975,10170,2.886,10171,2.977,10172,4.773,10173,2.886,10174,2.977,10175,4.773,10176,2.977,10177,5.975,10178,5.975,10179,2.886,10180,5.975,10181,2.977,10182,2.977,10183,2.977,10184,2.977,10185,2.977,10186,2.977,10187,2.977,10188,2.886,10189,2.977,10190,2.977,10191,2.977,10192,2.977,10193,2.977,10194,2.977,10195,2.977,10196,2.977,10197,2.977]],["title/interfaces/IRelatedResourceProperties.html",[105,0.735,12115,5.503]],["body/interfaces/IRelatedResourceProperties.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,30,0.001,32,0.138,33,0.576,47,1.012,95,0.128,96,2.089,101,0.02,103,0.001,104,0.001,105,1.218,107,1.824,112,0.799,153,2.288,154,2.152,172,4.374,173,2.249,174,4.004,175,3.362,180,1.363,181,2.035,182,2.473,238,4.378,1198,3.461,1207,3.214,1657,3.61,2725,3.902,3542,4.108,3572,4.844,6264,4.082,6609,5.136,6610,4.91,7205,4.782,11878,4.844,11881,4.98,11889,6.694,12108,7.887,12109,6.369,12110,7.488,12111,8.135,12112,8.135,12113,7.887,12114,8.135,12115,9.708,12116,9.12,12117,6.369,12118,5.53,12119,10.064,12120,10.064,12121,6.144,12122,6.369,12123,6.369,12124,6.369,12125,6.369,12126,6.369,12127,6.369,12128,6.369,12129,6.369,12130,6.369,12131,6.369,12132,6.369,12133,6.369,12134,6.369]],["title/interfaces/IRepoLoader.html",[105,0.735,12135,5.958]],["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.152,33,0.427,36,1.352,49,2.506,95,0.158,99,1.06,101,0.01,103,0.001,104,0.001,105,0.686,107,1.525,112,0.707,119,2.094,133,4.105,143,1.983,177,2.43,217,6.689,226,0.908,227,2.616,236,1.449,262,1.392,349,0.92,379,0.795,437,1.152,529,1.798,539,1.179,564,1.951,603,2.711,608,2.053,1366,7.191,1600,5.18,1686,5.18,1687,3.947,1743,8.734,1744,6.764,1745,7.303,1746,5.135,1747,8.292,1748,8.498,1749,7.794,1750,7.657,1771,4.622,1787,7.33,2428,7.501,2459,7.065,2588,4.945,3196,4.049,3543,4.104,4690,7.805,5391,5.323,5794,9.009,6141,3.9,12135,9.753,12136,5.875,12137,10.307,12138,5.135,12139,5.875,12140,5.875,12141,5.875,12142,5.875,12143,5.875,12144,5.875,12145,5.875,12146,5.875,12147,5.875,12148,5.875,12149,5.875,12150,5.875,12151,5.875,12152,5.875,12153,5.875,12154,5.875,12155,5.875,12156,5.875,12157,5.875,12158,5.875,12159,5.875,12160,5.875,12161,5.875,12162,5.875,12163,5.875,12164,5.875,12165,5.875,12166,5.875,12167,5.875,12168,5.875,12169,5.875,12170,8.236]],["title/interfaces/IRetryOptions.html",[105,0.735,11610,5.503]],["body/interfaces/IRetryOptions.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.071,10,1.894,30,0.001,32,0.097,33,0.461,36,2.413,47,0.501,52,3.392,53,3.39,55,2.577,70,4.294,72,3.223,78,8.697,95,0.122,101,0.008,103,0,104,0,105,0.928,107,1.118,112,0.564,118,2.97,119,0.949,142,4.049,145,3.245,153,2.822,177,1.574,179,4.651,208,1.707,236,1.155,239,1.069,262,2.676,310,2.02,333,3.639,349,0.888,359,2.797,379,0.583,413,1.435,437,1.339,486,3.114,490,4.02,529,1.319,556,1.789,562,3.201,568,5.48,595,2.932,600,2.895,603,1.932,608,2.76,696,2.8,697,6.256,708,2.95,710,5.907,844,3.553,933,2.767,937,4.089,990,1.576,1224,2.61,1278,1.475,1451,5.48,1458,4.012,1584,5.563,1734,2.97,1762,4.26,1773,2.544,2020,2.04,2037,3.652,2253,1.911,2254,3.206,2347,2.659,2777,5.634,3063,5.09,3446,4.721,3454,3.201,3455,8.843,3456,6.509,3457,2.767,5511,3.467,5949,7.487,6499,3.652,7095,2.895,7112,2.97,7396,7.889,7870,6.013,7880,7.889,8334,3.553,8391,3.259,10227,4.964,11364,3.652,11597,5.738,11598,2.659,11599,2.861,11600,3.905,11601,3.905,11602,3.652,11603,5.948,11604,6.397,11605,3.652,11606,3.652,11607,5.948,11608,3.905,11609,3.905,11610,8.812,11611,8.056,11612,8.056,11613,5.738,11614,5.412,11615,3.905,11616,3.553,11617,3.652,11618,3.905,11619,3.905,11620,3.905,11621,8.67,11622,3.39,11623,3.905,11624,3.905,11625,7.205,11626,3.053,11627,5.809,11628,3.322,11629,4.877,11630,3.467,11631,3.905,11632,3.905,11633,3.905,11634,8.056,11635,3.905,11636,3.905,11637,3.905,11638,8.056,11639,3.905,11640,3.905,11641,3.905,11642,8.056,11643,8.056,11644,3.652,11645,3.905,11646,3.905,11647,3.905,11648,3.39,11649,3.767,11650,5.165,11651,3.905,11652,3.905,11653,3.905,11654,3.905,11655,3.905,11656,5.06,11657,3.652,11658,3.652,11659,3.905,11660,3.905,11661,3.905,11662,3.905,11663,3.905,11664,3.905,11665,3.905,11666,3.905,11667,3.905,11668,3.905,11669,3.905,11670,3.767]],["title/interfaces/IRoleProperties.html",[105,0.735,12171,5.958]],["body/interfaces/IRoleProperties.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,30,0.001,31,0.711,32,0.158,33,0.587,47,0.733,95,0.146,96,2.188,101,0.017,103,0.001,104,0.001,105,1.12,107,1.911,112,0.824,154,2.468,168,5.92,172,3.686,173,2.355,174,4.128,175,3.522,178,3.309,180,1.427,181,2.132,182,2.591,236,1.878,276,5.394,349,0.823,437,1.493,529,2.253,643,5.638,662,2.504,826,4.586,1657,3.782,1663,6.752,1985,3.168,2614,4.346,2618,5.664,3081,6.494,4060,4.678,4285,3.486,4603,6.923,7219,6.436,10019,7.72,10049,8.131,12171,10.101,12172,7.364,12173,6.672,12174,6.436,12175,6.672,12176,6.436,12177,7.364,12178,6.672,12179,7.364,12180,9.596,12181,7.364,12182,8.695,12183,6.436]],["title/interfaces/ISchoolExternalToolProperties.html",[105,0.735,12184,5.705]],["body/interfaces/ISchoolExternalToolProperties.html",[0,0.275,3,0.019,4,0.019,5,0.01,7,0.123,30,0.001,32,0.168,33,0.503,55,2.649,95,0.162,96,2.223,101,0.017,103,0.001,104,0.001,105,0.873,107,1.942,112,0.833,143,2.335,154,2.242,172,3.348,173,2.393,174,4.171,178,3.362,180,1.45,181,2.166,182,2.632,564,3.572,644,5.962,654,3.792,1672,4.213,2489,4.228,4275,5.723,4276,4.91,5040,5.339,5400,7.49,5792,5.767,5793,6.019,5841,6.54,5847,9.958,5849,5.886,5852,6.779,5853,5.226,6611,5.027,6612,4.856,7322,5.027,8762,9.086,11136,5.658,12043,6.54,12184,9.747,12185,7.482,12186,11.155,12187,7.482,12188,7.482,12189,7.482,12190,7.482,12191,7.482]],["title/interfaces/ISchoolProperties.html",[105,0.735,12192,5.335]],["body/interfaces/ISchoolProperties.html",[0,0.306,3,0.012,4,0.012,5,0.006,7,0.137,30,0.001,31,0.6,32,0.175,33,0.651,47,0.953,83,3.074,95,0.142,96,1.387,101,0.018,102,2.537,103,0,104,0,105,0.545,107,1.211,112,0.717,119,2.288,128,2.033,133,1.765,143,2.934,144,4.307,145,2.093,154,1.611,172,4.09,173,1.493,175,2.232,178,2.097,180,0.904,181,1.351,182,1.642,236,0.821,261,2.397,556,1.271,593,1.869,644,2.303,655,5.649,838,1.582,975,5.509,992,3.529,1657,2.397,1663,2.537,1985,2.007,2292,5.093,2503,4.665,2611,5.374,2614,2.754,2618,4.114,2619,5.907,3076,4.804,3077,4.26,4275,4.114,4285,2.209,4335,7.123,4352,3.847,4353,5.907,4523,6.981,5040,4.141,6532,7.719,6540,7.123,6554,3.26,6605,4.627,6624,5.747,6625,3.754,6939,2.996,6940,4.627,8532,6.738,8536,3.754,8537,6.093,8549,5.798,8550,3.754,9872,7.362,10116,3.174,10378,6.582,10836,7.259,11584,5.907,12192,7.07,12193,4.228,12194,8.167,12195,7.793,12196,7.358,12197,7.634,12198,8.663,12199,4.079,12200,4.079,12201,4.228,12202,4.079,12203,4.228,12204,4.228,12205,6.316,12206,4.228,12207,4.228,12208,4.228,12209,4.228,12210,4.228,12211,4.228,12212,4.228,12213,4.228,12214,7.293,12215,4.228,12216,4.228,12217,7.293,12218,4.228,12219,4.228,12220,4.228,12221,3.529,12222,5.907,12223,3.754,12224,4.079,12225,4.228,12226,6.316,12227,3.847,12228,4.228,12229,4.228,12230,6.093,12231,4.079,12232,3.597,12233,4.228]],["title/interfaces/ISchoolYearProperties.html",[105,0.735,12234,5.958]],["body/interfaces/ISchoolYearProperties.html",[0,0.306,3,0.021,4,0.021,5,0.011,7,0.137,30,0.001,31,0.738,32,0.167,47,0.904,83,4.229,95,0.142,96,2.477,101,0.019,103,0.001,104,0.001,105,0.973,107,2.164,112,0.892,154,2.401,172,4.089,173,2.667,175,3.987,178,3.746,180,1.616,181,2.413,182,2.933,1280,2.819,1985,3.586,2292,7.588,4285,3.947,6543,9.389,6620,7.287,6621,6.874,10836,5.824,12234,11.205,12235,8.337,12236,11.038,12237,7.554,12238,8.337,12239,8.337]],["title/interfaces/IScopeInfo.html",[105,0.735,12240,5.503]],["body/interfaces/IScopeInfo.html",[3,0.023,4,0.023,5,0.012,7,0.147,26,2.784,30,0.001,32,0.18,47,0.992,95,0.123,99,1.62,101,0.016,103,0.001,104,0.001,105,1.048,107,2.331,112,0.934,1207,4.196,1939,5.021,1962,8.487,9657,10.62,12240,9.502,12241,8.981,12242,9.714,12243,13.142]],["title/interfaces/IServerConfig.html",[105,0.735,601,5.335]],["body/interfaces/IServerConfig.html",[3,0.018,4,0.018,5,0.009,7,0.118,30,0.001,32,0.183,47,0.943,52,4.876,55,2.454,95,0.167,101,0.019,103,0.001,104,0.001,105,0.838,107,1.863,112,0.811,119,2.561,180,1.829,437,1.32,599,5.648,600,4.823,601,8.934,838,2.434,933,6.059,1167,4.883,1376,5.919,1576,6.793,1912,4.71,2020,3.399,2021,3.802,2022,3.665,2023,4.947,2031,7.179,3541,3.826,3542,3.169,3544,3.929,5044,4.823,10501,5.429,10714,9.553,11589,9.977,11591,9.438,11627,6.895,11648,7.425,11864,9.977,11866,7.179,11939,9.553,11984,6.275,11985,7.179,11986,6.275,11989,6.505,11990,7.179,12012,9.553,12015,7.179,12016,7.179,12017,7.179,12244,7.765,12245,9.215,12246,12.583,12247,12.583,12248,7.765,12249,10.208,12250,7.765,12251,7.179,12252,7.765,12253,7.765,12254,7.765,12255,7.765,12256,7.179,12257,7.765,12258,6.505,12259,7.765,12260,7.765,12261,5.333]],["title/interfaces/IShareTokenProperties.html",[105,0.735,12262,5.705]],["body/interfaces/IShareTokenProperties.html",[0,0.239,3,0.016,4,0.016,5,0.008,7,0.165,26,2.806,30,0.001,32,0.172,33,0.602,34,1.198,49,5.225,83,3.574,95,0.154,96,2.624,97,3.048,101,0.016,103,0.001,104,0.001,105,0.759,107,1.687,112,0.759,124,6.118,131,2.634,143,2.416,144,3.574,154,2.042,159,8.222,172,3.886,173,2.08,174,3.799,178,2.921,180,1.26,181,1.882,182,2.287,187,5.36,188,5.891,197,5.509,198,5.891,236,1.554,349,0.987,490,2.493,556,2.406,696,2.773,838,3.402,2611,4.408,3307,3.511,3333,5.682,3573,5.96,4276,4.266,4804,7.303,4810,5.891,5831,7.655,5859,5.891,5860,5.682,5861,5.891,6276,4.675,6285,5.998,6542,4.83,9892,5.23,9960,5.011,9965,5.891,10041,5.115,10042,5.115,10139,5.36,10141,5.36,12262,9.09,12263,6.501,12264,6.501,12265,9.836,12266,8.36,12267,9.536,12268,6.501,12269,4.675,12270,4.606,12271,6.501,12272,6.501]],["title/interfaces/IStorageProviderProperties.html",[105,0.735,12273,5.958]],["body/interfaces/IStorageProviderProperties.html",[0,0.288,3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,32,0.177,33,0.519,47,1.004,95,0.151,96,2.331,101,0.018,103,0.001,104,0.001,105,0.916,107,2.036,112,0.858,143,1.889,144,2.795,154,2.311,172,4.131,173,2.509,174,4.3,175,3.752,178,3.525,180,1.521,181,2.271,182,2.76,2611,3.915,6337,9.046,6339,9.046,6340,9.249,8018,6.311,11688,7.423,12273,10.409,12274,7.845,12275,11.963,12276,9.057,12277,7.845,12278,7.845,12279,7.845,12280,7.845,12281,7.845,12282,7.845,12283,7.845,12284,7.845,12285,7.845]],["title/interfaces/ISubmissionProperties.html",[105,0.735,12286,5.705]],["body/interfaces/ISubmissionProperties.html",[0,0.166,3,0.011,4,0.011,5,0.006,7,0.16,26,2.236,30,0.001,32,0.176,33,0.61,34,0.831,47,0.856,55,2.117,62,2.864,72,2.213,95,0.15,96,1.34,101,0.012,103,0,104,0,105,0.526,107,1.17,112,0.781,119,2.618,143,2.191,144,3.242,145,2.04,154,1.57,168,4.19,172,3.542,173,1.442,174,2.922,175,2.156,178,2.026,180,0.874,181,1.305,182,1.586,226,0.697,236,1.438,239,2.879,349,1.224,437,1.694,528,2.539,529,1.38,556,2.227,603,1.476,644,5.063,654,3.14,662,3.489,765,2.706,914,3.409,937,2.808,950,2.262,1162,3.509,1603,1.833,1657,2.315,1756,3.349,1758,3.349,1764,3.474,1773,2.661,2611,4.871,2614,2.661,2618,2.661,2627,5.681,2628,3.029,2824,3.232,3077,6.507,3395,3.107,3396,3.409,3683,2.755,3760,7.13,3765,7.13,3773,6.155,3775,6.155,4209,1.654,5040,3.371,6284,4.078,6586,7.258,6587,3.242,6589,2.993,6591,2.73,6607,3.474,6611,3.029,6612,2.926,6932,3.149,7112,3.107,8976,8.047,11895,3.409,11896,3.409,11901,5.136,11902,3.409,12118,7.678,12286,7.405,12287,4.508,12288,9.76,12289,9.646,12290,4.266,12291,4.508,12292,4.508,12293,4.508,12294,4.508,12295,4.508,12296,4.508,12297,3.94,12298,4.508,12299,4.508,12300,4.508,12301,4.085,12302,4.508,12303,4.508,12304,4.508,12305,4.508,12306,4.508,12307,4.508,12308,9.76,12309,4.508,12310,4.508,12311,4.508,12312,4.508,12313,4.508,12314,4.508,12315,9.097,12316,4.508,12317,6.575,12318,3.94,12319,10.258,12320,6.792,12321,4.085,12322,6.792,12323,4.266,12324,3.547,12325,3.82,12326,4.508,12327,4.508,12328,4.508,12329,4.508,12330,6.792,12331,6.792,12332,4.508,12333,4.508,12334,4.508,12335,4.508,12336,6.575,12337,3.94,12338,4.085,12339,6.792]],["title/interfaces/ISystemProperties.html",[105,0.735,12340,5.191]],["body/interfaces/ISystemProperties.html",[0,0.317,3,0.01,4,0.01,5,0.005,7,0.067,26,1.438,30,0.001,32,0.174,33,0.622,47,1.014,83,2.546,95,0.118,96,1.208,101,0.017,103,0,104,0,105,0.474,107,1.055,112,0.539,119,0.895,133,1.537,143,2.991,144,4.426,145,1.221,153,0.999,154,1.773,172,4.5,173,1.3,174,2.7,175,1.944,177,0.805,178,1.826,180,0.788,181,1.177,182,1.43,276,1.869,511,1.964,570,2.698,578,2.667,838,2.6,949,2.698,1198,3.663,1310,2.667,1393,3.133,1425,2.731,1603,1.653,1962,2.839,1987,3.27,2503,3.509,2507,1.964,4275,3.705,4313,4.838,4347,2.638,4620,3.509,5505,1.786,5590,3.389,5768,5.137,5788,2.801,5789,3.02,6264,3.645,7205,2.765,7292,2.97,7348,4.119,8549,2.379,8887,2.97,9872,2.88,10378,2.484,11442,7.903,11523,3.27,11524,3.27,11525,3.27,11526,3.351,11570,3.02,11573,2.923,11575,3.02,11578,3.02,11581,2.698,11585,2.97,11626,2.88,12048,3.351,12232,3.133,12340,6.322,12341,3.553,12342,6.702,12343,8.901,12344,8.556,12345,6.34,12346,7.047,12347,6.603,12348,2.923,12349,2.923,12350,3.553,12351,4.663,12352,5.05,12353,3.444,12354,5.05,12355,3.351,12356,3.351,12357,3.351,12358,3.351,12359,3.444,12360,3.351,12361,3.351,12362,3.351,12363,3.444,12364,5.05,12365,3.444,12366,3.351,12367,3.444,12368,3.351,12369,3.351,12370,3.351,12371,3.444,12372,4.663,12373,3.553,12374,3.553,12375,3.553,12376,3.553,12377,3.553,12378,3.553,12379,3.553,12380,3.553,12381,3.553,12382,3.553,12383,3.553,12384,3.553,12385,3.444,12386,3.553,12387,3.553,12388,3.553,12389,3.553,12390,3.553,12391,3.553,12392,3.553,12393,3.553,12394,3.553,12395,3.553,12396,3.553,12397,3.553,12398,3.553,12399,3.553,12400,3.553,12401,3.553,12402,3.553,12403,3.27,12404,3.553,12405,3.553,12406,3.553,12407,3.553,12408,3.553,12409,3.553,12410,3.553,12411,3.553,12412,3.553,12413,3.553,12414,3.553,12415,3.553,12416,3.553,12417,3.553,12418,3.351,12419,3.553,12420,3.27,12421,3.444,12422,3.351,12423,3.444,12424,3.351,12425,3.351,12426,3.444,12427,3.351,12428,3.444,12429,3.351,12430,3.198,12431,3.198,12432,3.198,12433,3.27,12434,3.351,12435,3.553,12436,3.351,12437,3.553,12438,3.553,12439,3.553,12440,3.553,12441,3.553,12442,3.351,12443,3.444,12444,3.351,12445,3.444]],["title/interfaces/ITargetGroupProperties.html",[105,0.735,12116,5.503]],["body/interfaces/ITargetGroupProperties.html",[0,0.254,3,0.017,4,0.017,5,0.009,7,0.113,30,0.001,32,0.153,33,0.613,47,1.014,95,0.126,96,2.054,101,0.02,103,0.001,104,0.001,105,1.208,107,1.794,112,0.79,153,2.263,154,2.128,172,4.362,173,2.211,174,3.959,175,3.306,180,1.34,181,2.001,182,2.432,238,6.872,1198,3.422,1207,3.178,1657,3.55,2725,3.837,3542,4.063,3572,4.763,6264,4.014,6609,5.05,6610,4.828,7205,4.702,11878,4.763,11881,4.897,11889,6.619,12108,7.799,12109,6.263,12110,7.405,12111,8.045,12112,8.045,12113,7.799,12114,8.045,12115,9.044,12116,9.644,12117,9.997,12118,8.68,12119,6.263,12120,6.263,12121,6.041,12122,6.263,12123,6.263,12124,6.263,12125,6.263,12126,6.263,12127,6.263,12128,6.263,12129,6.263,12130,6.263,12131,6.263,12132,6.263,12133,6.263,12134,6.263]],["title/interfaces/ITask.html",[105,0.735,12446,5.335]],["body/interfaces/ITask.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,31,0.689,32,0.178,33,0.646,47,0.969,55,2.501,83,4.009,95,0.102,99,1.347,101,0.02,103,0.001,104,0.001,105,1.375,107,1.938,112,0.832,119,2.658,153,2.796,180,2.083,239,2.667,603,1.622,644,4.78,654,2.402,1861,5.003,1867,4.305,2625,5.536,2637,3.79,2824,4.608,3227,6.357,3230,6.311,3683,4.564,3737,7.943,3756,5.37,3760,5.455,3761,5.646,3762,5.29,3763,5.29,3764,5.755,3765,5.455,5067,6.354,6922,4.371,8005,5.146,12446,9.983,12447,6.526,12448,8.945,12449,6.007,12450,6.007,12451,5.755,12452,6.007,12453,5.874]],["title/interfaces/ITaskCreate.html",[105,0.735,12450,5.065]],["body/interfaces/ITaskCreate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.162,33,0.601,47,0.977,55,2.558,83,3.315,95,0.107,99,1.412,101,0.021,103,0.001,104,0.001,105,1.395,107,2.032,112,0.857,119,2.691,153,1.925,180,2.243,239,2.727,603,1.701,644,4.927,654,2.518,1861,6.177,1867,4.402,2625,5.706,2637,3.974,2824,4.75,3227,5.58,3230,4.345,3683,4.785,3737,5.468,3756,5.63,3760,5.719,3761,5.92,3762,5.546,3763,5.546,3764,6.034,3765,5.719,5067,7.845,6922,4.583,8005,5.395,12446,10.13,12447,6.842,12448,6.159,12449,6.298,12450,8.03,12451,6.034,12452,6.298,12453,6.159]],["title/interfaces/ITaskParent.html",[105,0.735,6590,4.283]],["body/interfaces/ITaskParent.html",[0,0.183,3,0.008,4,0.008,5,0.004,7,0.175,8,0.646,26,1.988,27,0.135,30,0.001,31,0.184,32,0.141,34,0.919,35,0.396,47,0.699,55,1.16,83,2.682,95,0.149,96,0.904,101,0.014,103,0,104,0,105,0.582,107,0.79,112,0.629,119,2.296,143,2.452,144,3.091,145,3.197,153,0.748,154,1.153,172,3.417,173,0.974,174,2.145,175,1.456,178,1.368,180,0.59,181,0.881,182,1.071,226,0.471,236,1.682,239,2.73,347,3.628,349,1.341,437,1.767,474,1.406,517,1.262,519,2.453,528,1.714,529,1.526,556,1.994,578,1.997,593,1.219,603,2.423,604,2.191,644,3.125,654,0.979,662,3.62,696,2.127,708,3.289,739,1.441,765,1.827,826,1.896,914,2.302,1154,1.309,1162,1.573,1280,1.029,1395,2.156,1657,1.563,1666,1.393,1679,2.461,1762,3.235,1861,3.782,1867,3.236,1889,4.704,1927,1.934,1985,1.309,2384,2.097,2611,4.031,2614,2.942,2618,1.796,2623,3.436,2624,1.934,2625,2.85,2626,2.302,2627,4.781,2637,1.545,2641,5.723,2824,3.843,3077,1.86,3227,2.787,3230,2.767,3307,4.685,3395,2.097,3683,5.598,3685,2.758,3737,2.126,3756,5.809,3760,3.642,3761,6.108,3762,5.187,3763,6.146,3764,6.686,3765,3.642,3776,6.398,4060,1.934,4209,1.117,4221,2.07,4285,1.441,4919,2.07,4920,2.126,5040,2.474,5067,1.997,6537,4.554,6576,2.045,6579,3.272,6590,4.307,6591,1.844,6603,2.579,6607,2.346,6609,2.224,6610,2.126,6611,2.045,6612,1.975,6628,5.045,6825,2.045,6826,2.189,6899,2.579,6922,1.782,6932,2.126,6937,2.449,8005,5.045,8161,2.395,9689,2.097,11136,2.302,11907,2.261,11927,2.261,12061,2.66,12297,2.66,12317,5.889,12318,2.66,12336,5.889,12337,2.66,12448,2.395,12451,3.842,12452,2.449,12453,2.395,12454,2.88,12455,3.292,12456,2.88,12457,2.758,12458,2.88,12459,2.88,12460,2.88,12461,2.88,12462,2.88,12463,5.992,12464,5.534,12465,5.365,12466,2.88,12467,2.88,12468,2.758,12469,2.88,12470,2.88,12471,2.88,12472,2.758,12473,8.209,12474,2.88,12475,2.509,12476,2.66,12477,4.717,12478,6.927,12479,4.357,12480,6.927,12481,2.88,12482,2.88,12483,2.88,12484,4.717,12485,2.88,12486,2.88,12487,2.88,12488,2.88,12489,2.88,12490,2.88,12491,2.88,12492,2.88,12493,2.88,12494,2.88,12495,2.88,12496,2.88,12497,4.717,12498,2.88,12499,2.88,12500,2.509,12501,2.88,12502,2.88,12503,2.88,12504,2.88,12505,2.88,12506,2.88,12507,4.717,12508,2.88,12509,2.88,12510,4.717,12511,2.88,12512,4.717,12513,2.579,12514,2.758,12515,2.88,12516,6.927,12517,5.992,12518,4.517,12519,2.66,12520,5.992,12521,2.88,12522,5.992,12523,2.758,12524,4.717,12525,2.88,12526,2.88,12527,2.88,12528,5.992,12529,2.88,12530,4.717,12531,2.758,12532,2.88,12533,2.88,12534,6.927,12535,2.88,12536,2.88,12537,2.88,12538,2.88,12539,2.88,12540,2.88,12541,2.88,12542,4.717,12543,2.88,12544,2.88,12545,4.717,12546,2.88,12547,2.88,12548,2.88,12549,2.88,12550,2.758,12551,2.88,12552,6.927,12553,2.88,12554,2.88,12555,2.88,12556,2.88,12557,2.88,12558,2.88,12559,2.88,12560,2.88,12561,2.88,12562,2.88]],["title/interfaces/ITaskProperties.html",[105,0.735,12451,4.853]],["body/interfaces/ITaskProperties.html",[3,0.018,4,0.018,5,0.009,7,0.114,30,0.001,31,0.422,32,0.185,33,0.668,47,0.904,55,2.417,83,3.072,95,0.095,99,1.256,101,0.02,103,0.001,104,0.001,105,1.344,107,1.807,112,0.794,119,2.803,153,1.712,180,2.145,239,2.999,603,2.404,644,5.462,654,3.56,1861,4.779,1867,4.916,2625,6.326,2637,5.617,2824,5.266,3227,5.171,3230,3.865,3683,6.764,3737,4.864,3756,5.008,3760,5.088,3761,5.266,3762,4.934,3763,4.934,3764,5.367,3765,5.088,5067,6.07,6922,6.478,8005,7.626,12446,9.76,12447,6.087,12448,5.479,12449,5.602,12450,5.602,12451,7.129,12452,8.903,12453,8.706]],["title/interfaces/ITaskStatus.html",[105,0.735,3756,4.528]],["body/interfaces/ITaskStatus.html",[3,0.019,4,0.019,5,0.01,7,0.123,30,0.001,31,0.453,32,0.182,47,0.922,55,2.931,83,3.22,95,0.103,99,1.35,101,0.02,103,0.001,104,0.001,105,1.376,107,1.942,112,0.833,119,2.833,153,1.84,180,2.085,239,2.669,603,1.626,644,4.786,654,2.407,1861,5.01,1867,4.309,2625,5.543,2637,3.798,2824,4.614,3227,5.42,3230,4.153,3683,4.573,3737,5.226,3756,6.973,3760,8.313,3761,8.605,3762,8.062,3763,8.062,3764,8.77,3765,8.313,5067,6.363,6922,4.38,8005,5.156,12446,9.642,12447,6.54,12448,5.886,12449,6.019,12450,6.019,12451,5.767,12452,6.019,12453,5.886]],["title/interfaces/ITaskUpdate.html",[105,0.735,12449,5.065]],["body/interfaces/ITaskUpdate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.162,33,0.601,47,0.977,55,2.558,83,3.315,95,0.107,99,1.412,101,0.021,103,0.001,104,0.001,105,1.395,107,2.032,112,0.857,119,2.691,153,1.925,180,2.243,239,2.727,603,1.701,644,4.927,654,2.518,1861,6.177,1867,4.402,2625,5.706,2637,3.974,2824,4.75,3227,5.58,3230,4.345,3683,4.785,3737,5.468,3756,5.63,3760,5.719,3761,5.92,3762,5.546,3763,5.546,3764,6.034,3765,5.719,5067,7.845,6922,4.583,8005,5.395,12446,10.13,12447,6.842,12448,6.159,12449,8.03,12450,6.298,12451,6.034,12452,6.298,12453,6.159]],["title/interfaces/ITeamProperties.html",[105,0.735,12563,5.335]],["body/interfaces/ITeamProperties.html",[0,0.328,3,0.017,4,0.017,5,0.009,7,0.109,30,0.001,31,0.686,32,0.132,33,0.464,39,1.925,47,0.828,62,4.204,72,3.248,95,0.155,96,2.656,101,0.019,103,0.001,104,0.001,105,1.043,107,1.717,112,0.768,143,1.593,154,2.066,172,3.087,173,2.117,174,3.845,175,3.165,178,2.973,180,1.283,181,2.587,182,2.328,191,5.925,236,1.164,239,3.01,276,5.365,349,1.131,480,3.04,517,4.198,603,1.438,644,5.759,654,2.876,1672,3.726,1985,2.846,2071,5.206,2503,5.659,2611,3.302,3547,4.834,4209,2.428,4275,5.276,4285,3.133,4286,6.499,4289,8.577,5040,5.619,6589,4.393,6591,4.008,6612,4.294,6915,4.342,6953,4.688,10135,5.206,10136,5.206,11327,5.206,11328,5.456,11949,4.759,12563,8.577,12564,5.996,12565,8.907,12566,9.35,12567,5.607,12568,7.813,12569,5.996,12570,5.996,12571,5.996,12572,5.996,12573,5.996,12574,5.607,12575,5.996,12576,5.996]],["title/interfaces/ITeamUserProperties.html",[105,0.735,12568,5.503]],["body/interfaces/ITeamUserProperties.html",[0,0.326,3,0.017,4,0.017,5,0.008,7,0.108,30,0.001,31,0.538,32,0.149,39,1.908,47,0.678,62,4.167,72,3.22,95,0.155,96,2.64,101,0.019,103,0.001,104,0.001,105,1.037,107,1.702,112,0.763,143,1.579,154,2.054,172,3.068,173,2.098,174,3.822,175,3.137,178,2.947,180,1.271,181,2.572,182,2.308,191,5.899,236,1.154,239,3.151,276,5.757,349,1.126,480,3.026,517,4.179,603,1.425,644,5.976,654,3.631,1672,3.693,1985,2.821,2071,5.16,2503,5.633,2611,3.273,3547,4.792,4209,2.406,4275,5.244,4285,3.105,4286,6.469,4289,8.539,5040,5.602,6589,4.354,6591,3.972,6612,4.256,6915,4.304,6953,4.647,10135,5.16,10136,5.16,11327,5.16,11328,5.407,11949,4.717,12563,7.529,12564,5.943,12565,6.99,12566,8.969,12567,5.557,12568,8.808,12569,5.943,12570,5.943,12571,5.943,12572,5.943,12573,5.943,12574,5.557,12575,5.943,12576,5.943]],["title/interfaces/IToolFeatures.html",[105,0.735,8597,5.191]],["body/interfaces/IToolFeatures.html",[0,0.299,3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,32,0.179,47,0.897,55,2.734,95,0.112,101,0.02,103,0.001,104,0.001,105,0.952,107,2.116,112,0.88,119,2.867,413,2.716,437,1.141,486,2.653,1589,4.939,2020,3.861,2021,4.318,2022,4.163,3881,4.939,8597,9.234,8599,8.445,8873,11.453,8906,11.453,11590,5.957,12577,12.103,12578,12.103,12579,12.103,12580,8.154,12581,7.389,12582,8.154,12583,8.154,12584,8.154,12585,8.154,12586,7.389]],["title/interfaces/IToolLaunchParams.html",[105,0.735,2547,5.503]],["body/interfaces/IToolLaunchParams.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.171,95,0.159,101,0.016,103,0.001,104,0.001,105,1.028,107,2.287,112,0.923,131,3.57,564,3.851,654,2.835,1589,5.337,1839,7.412,1840,7.141,1842,6.18,2528,7.984,2547,9.393,2568,6.857,2592,6.337,12587,8.811,12588,9.53]],["title/interfaces/IToolLaunchStrategy.html",[105,0.735,12589,5.958]],["body/interfaces/IToolLaunchStrategy.html",[3,0.021,4,0.021,5,0.011,7,0.137,8,1.349,26,2.715,27,0.461,29,0.876,30,0.001,31,0.63,32,0.154,33,0.54,35,1.351,36,2.394,39,2.431,95,0.155,99,1.508,101,0.015,103,0.001,104,0.001,105,0.975,107,2.169,271,4.791,1589,6.859,1603,3.398,2489,2.997,2528,10.261,2542,9.842,2543,9.842,2547,10.358,2570,9.771,2575,7.907,2576,9.842,2580,8.909,2592,8.522,2593,7.907,12587,11.324,12589,9.842,12590,9.038,12591,9.038,12592,11.249,12593,9.038]],["title/interfaces/IUserConfig.html",[105,0.735,12245,5.503]],["body/interfaces/IUserConfig.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,47,0.925,101,0.017,103,0.001,104,0.001,105,1.139,107,2.533,112,0.981,11590,7.13,12245,9.984,12251,12.487,12594,10.555]],["title/interfaces/IUserProperties.html",[105,0.735,12595,5.503]],["body/interfaces/IUserProperties.html",[0,0.169,3,0.012,4,0.012,5,0.006,7,0.196,30,0.001,32,0.178,33,0.644,34,0.85,47,0.986,83,3.924,95,0.135,96,1.371,101,0.015,103,0,104,0,105,0.807,107,1.198,112,0.921,119,2.026,143,2.877,144,4.257,154,1.916,168,2.847,172,4.258,173,1.476,174,2.973,175,2.207,178,2.073,180,0.894,181,1.336,182,1.623,236,1.458,239,1.145,276,4.533,349,0.516,437,1.159,529,1.412,644,5.108,651,5.346,652,5.346,653,5.785,654,3.549,655,5.626,662,1.569,826,2.874,838,1.565,988,4.294,1280,1.56,1657,2.37,1663,4.506,1664,4.366,2611,4.136,2614,2.723,2618,4.08,3063,2.174,3081,5.958,4060,2.932,4202,7.455,4203,8.128,4209,1.693,4214,7.039,4297,3.91,4298,3.712,5040,3.431,6579,4.536,6589,3.063,6611,3.1,6612,2.995,6939,2.962,6940,3.063,7369,5.699,9624,3.318,9625,3.63,9626,3.318,9627,3.63,9628,3.804,9629,4.033,9961,8.128,10023,4.033,10027,4.181,11814,4.033,11815,4.033,11816,4.033,12053,4.181,12173,4.181,12174,4.033,12175,4.181,12176,4.033,12178,4.181,12182,6.263,12183,4.033,12196,7.323,12222,3.91,12223,3.712,12567,3.91,12595,7.244,12596,4.614,12597,8.353,12598,8.128,12599,7.931,12600,8.353,12601,6.912,12602,6.912,12603,6.912,12604,4.181,12605,4.181,12606,4.614,12607,4.181,12608,4.614,12609,4.181,12610,4.614,12611,4.181,12612,4.614,12613,4.181,12614,4.614,12615,4.614,12616,6.912]],["title/interfaces/IVideoConferenceSettings.html",[105,0.735,12617,5.958]],["body/interfaces/IVideoConferenceSettings.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.173,47,0.895,95,0.124,101,0.019,103,0.001,104,0.001,105,1.056,107,2.348,112,0.938,119,2.582,437,1.266,1117,7.993,1939,5.058,1955,8.091,2140,10.646,8082,5.48,11593,8.561,12617,10.333,12618,9.785,12619,11.526,12620,9.047,12621,9.785]],["title/classes/IdParams.html",[0,0.231,12622,5.958]],["body/classes/IdParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,34,2.293,47,0.83,95,0.149,101,0.016,103,0.001,104,0.001,112,0.934,135,6.527,138,1.767,142,4.6,143,2.618,144,3.874,145,3.265,148,3.083,150,2.213,153,2.208,245,3.083,248,4.907,257,7.225,3542,4.799,5501,6.707,12622,10.287,12623,9.714,12624,9.714]],["title/interfaces/IdToken.html",[105,0.735,121,4.461]],["body/interfaces/IdToken.html",[3,0.021,4,0.021,5,0.011,7,0.137,30,0.001,31,0.717,32,0.184,33,0.671,39,3.445,47,1.012,101,0.019,103,0.001,104,0.001,105,1.212,107,2.164,112,0.892,121,7.359,123,7.554,135,5.005,653,6.62,4209,4.344,5768,4.595,6541,7.523,11151,10.729,11152,8.337,11153,7.889,11154,11.205]],["title/classes/IdTokenCreationLoggableException.html",[0,0.231,12625,5.958]],["body/classes/IdTokenCreationLoggableException.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.668,30,0.001,31,0.48,32,0.149,33,0.411,34,1.461,35,1.03,39,3.384,47,0.936,59,2.664,95,0.138,101,0.014,103,0.001,104,0.001,124,6.322,135,6.637,177,1.992,180,1.95,182,2.79,191,4.641,226,1.226,284,2.649,292,4.34,345,2.73,349,0.886,379,1.072,437,1.109,603,1.723,1025,4.677,1162,5.712,1275,5.487,1278,2.713,1280,3.402,1281,6.198,2489,2.843,3467,9.355,5587,7.929,5590,5.97,7844,6.537,8369,6.18,8827,4.987,8828,5.203,12351,5.89,12625,9.522,12626,11.957,12627,8.576,12628,8.576,12629,8.576,12630,8.576,12631,7.184,12632,7.929]],["title/injectables/IdTokenService.html",[539,0.901,12633,5.705]],["body/injectables/IdTokenService.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.002,27,0.439,29,0.834,30,0.001,31,0.682,32,0.146,33,0.514,34,0.99,35,1.177,36,2.279,39,2.25,47,0.952,95,0.161,99,0.97,101,0.01,103,0,104,0,105,0.627,121,3.808,124,4.203,135,6.299,177,1.961,226,0.831,227,2.393,236,0.946,239,1.919,262,2.589,349,1.106,379,1.046,437,1.575,528,4.354,529,1.645,539,1.107,541,1.391,556,2.859,603,2.587,608,2.724,653,3.004,1666,2.46,1750,8.363,1775,4.142,1842,2.864,2489,2.772,2558,7.466,2568,4.121,3467,4.324,3544,2.942,4209,1.972,4600,5.085,4602,5.085,4624,4.554,4768,7.153,4787,4.697,5501,3.315,5590,6.079,5768,2.962,6541,5.753,6915,7.17,7142,5.998,7251,5.846,7341,3.611,7816,4.431,8620,4.87,9004,5.64,9733,8.363,9821,4.554,11151,9.507,11153,5.085,11154,8.568,11949,6.512,12625,5.085,12633,7.005,12634,10.492,12635,5.374,12636,8.362,12637,8.362,12638,8.362,12639,5.813,12640,9.549,12641,5.813,12642,8.362,12643,5.813,12644,8.362,12645,5.813,12646,8.362,12647,5.813,12648,5.813,12649,5.813,12650,5.813,12651,4.697,12652,5.085,12653,8.362,12654,5.374,12655,5.374,12656,5.813,12657,5.813,12658,5.813,12659,5.813,12660,4.554,12661,8.362,12662,5.813,12663,5.813,12664,5.813,12665,5.813,12666,5.813,12667,7.731]],["title/modules/IdentityManagementModule.html",[201,1.804,616,5.335]],["body/modules/IdentityManagementModule.html",[0,0.272,3,0.019,4,0.019,5,0.01,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,201,3.067,203,2.882,204,3.096,205,3.186,206,3.173,207,3.16,208,3.816,209,4.354,218,4.144,219,3.121,220,3.048,225,4.109,226,1.145,568,5.105,583,10.869,600,6.472,616,10.889,636,6.059,963,4.614,2777,8.032,3939,6.928,7932,7.408,7933,8.728,8336,9.477,8454,7.942,11598,4.57,12013,6.277,12668,8.012,12669,8.012,12670,8.012,12671,10.207,12672,10.528,12673,10.537,12674,7.408,12675,8.728,12676,6.474,12677,7.009,12678,8.012,12679,8.728,12680,10.419,12681,8.728]],["title/classes/IdentityManagementOauthService.html",[0,0.231,12673,5.335]],["body/classes/IdentityManagementOauthService.html",[0,0.251,2,0.828,3,0.017,4,0.017,5,0.009,7,0.112,8,1.185,9,6.383,27,0.456,29,0.576,30,0.001,31,0.414,32,0.101,33,0.355,35,1.625,36,2.711,47,0.933,51,5.781,78,9.211,87,6.403,94,5.781,95,0.094,101,0.012,103,0.001,104,0.001,143,2.2,145,2.744,153,1.681,274,5.929,333,4.181,556,2.489,600,7.38,937,6.841,986,6.382,990,2.5,1400,6.909,1417,7.052,1912,6.176,2192,5.975,2358,7.599,5501,7.634,8065,7.35,11365,8.645,11598,6.776,11628,8.466,12013,9.308,12673,7.742,12682,6.836,12683,10.985,12684,10.985,12685,9.136,12686,7.394,12687,7.394,12688,9.136,12689,7.394,12690,5.636,12691,7.394]],["title/classes/IdentityManagementService.html",[0,0.231,583,5.503]],["body/classes/IdentityManagementService.html",[0,0.126,2,0.415,3,0.009,4,0.009,5,0.004,7,0.056,8,0.712,9,6.458,27,0.479,29,0.927,30,0.001,31,0.686,32,0.165,33,0.571,34,2.173,35,1.565,36,2.787,39,2.666,47,0.976,51,4.131,55,1.278,56,1.793,59,1.845,70,1.851,85,6.985,87,6.159,94,6.818,95,0.047,98,2.201,99,0.618,101,0.01,103,0,104,0,119,0.755,153,2.601,179,7.084,236,1.381,239,2.625,263,5.194,264,5.194,273,4.526,280,5.831,284,1.834,292,3.005,305,6.228,330,7.428,333,5.352,480,3.304,481,3.267,490,3.514,517,3.8,543,2.996,556,1.871,583,4.798,593,2.199,600,5.274,685,2.512,812,4.231,993,6.606,1206,4.842,1400,4.151,1671,6.472,1672,3.091,1761,8.473,2309,3.783,2771,5.04,2777,5.561,2778,7.707,2899,5.094,4060,6.353,4549,5.194,4700,4.651,7934,3.244,11598,6.788,11739,5.194,11755,7.112,12013,9.324,12692,5.489,12693,5.489,12694,5.489,12695,5.489,12696,7.85,12697,6.866,12698,6.866,12699,5.489,12700,5.489,12701,5.489,12702,9.623,12703,3.708,12704,10.815,12705,5.937,12706,3.708,12707,5.489,12708,3.708,12709,8.49,12710,5.489,12711,5.489,12712,3.708,12713,5.489,12714,5.937,12715,3.708,12716,5.489,12717,7.85,12718,3.708,12719,3.708,12720,3.428,12721,9.999,12722,3.708,12723,8.588,12724,11.586,12725,3.428,12726,7.85,12727,3.708,12728,5.937,12729,3.708,12730,5.937,12731,3.708,12732,2.905]],["title/entities/ImportUser.html",[154,1.456,12030,4.853]],["body/entities/ImportUser.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,27,0.507,30,0.001,31,0.375,32,0.175,33,0.443,47,0.936,49,1.702,95,0.134,96,1.186,101,0.015,103,0,104,0,105,0.722,112,0.84,119,1.668,128,2.696,138,2.25,143,2.79,144,3.043,145,1.858,154,1.431,155,1.44,168,5.701,172,4.001,173,1.277,174,2.662,175,1.908,178,1.793,180,0.773,181,1.155,182,1.404,220,1.642,236,0.702,239,2.908,250,2.915,349,0.691,359,2.59,361,5.219,437,1.06,480,2.276,486,2.466,490,1.531,517,2.566,529,1.221,556,2.065,564,1.325,593,2.479,603,0.867,644,3.741,651,4.412,652,4.412,653,5.466,654,3.391,655,5.024,696,3.233,708,1.793,838,2.895,974,2.087,1280,1.349,1618,6.064,1666,1.826,1844,4.384,2148,2.619,2176,3.776,2359,7.27,2360,3.616,2609,5.156,2611,5.09,2612,7.04,2620,3.139,2688,3.776,2899,4.016,3075,4.215,3081,3.342,4209,2.27,4214,6.286,4297,3.381,4298,3.21,4313,4.769,4603,2.355,4802,3.29,5040,3.762,6055,3.076,6567,3.776,6579,4.061,6589,2.649,6591,2.417,6611,2.681,6819,4.521,6932,4.322,6939,2.562,6940,2.649,7554,3.018,7645,4.679,8549,4.437,8550,3.21,8551,3.381,9624,2.87,9625,3.139,9626,2.87,9627,3.139,9628,3.29,9629,3.488,9803,2.87,9804,2.87,10383,3.29,10743,6.457,10744,5.63,10762,3.076,10763,2.619,10771,5.607,11323,3.616,11327,3.139,12018,5.607,12019,11.586,12020,7.04,12021,8.691,12022,6.238,12023,8.077,12024,7.235,12025,3.29,12026,3.776,12027,3.776,12028,3.991,12029,3.616,12030,4.769,12031,3.991,12032,3.991,12033,3.991,12034,3.991,12035,3.991,12036,3.991,12037,3.991,12038,3.991,12039,5.607,12040,3.991,12041,5.607,12042,3.616,12043,7.463,12044,3.991,12045,3.991,12046,3.991,12047,3.488,12048,3.29,12049,3.991,12050,3.991,12051,3.991,12052,3.991,12053,5.607,12054,3.616,12055,7.04,12056,6.869,12057,7.172,12058,3.991,12059,6.188,12060,3.991,12061,3.488,12062,5.607,12063,3.991,12733,4.316,12734,4.316,12735,4.316,12736,4.316,12737,4.316,12738,4.316,12739,4.316,12740,4.316,12741,6.693,12742,4.316,12743,4.316,12744,4.316,12745,4.316,12746,4.316]],["title/controllers/ImportUserController.html",[259,2.591,12747,5.958]],["body/controllers/ImportUserController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.808,10,1.771,27,0.468,29,0.891,30,0.001,31,0.641,32,0.156,33,0.549,35,1.374,36,2.753,56,4.489,59,1.354,70,4.635,95,0.149,99,0.727,100,1.464,101,0.007,103,0,104,0,119,1.679,138,2.08,150,0.993,177,1.234,223,1.794,226,0.623,236,1.097,239,1,247,1.908,259,1.658,261,2.07,262,2.965,270,6.65,271,4.153,294,6.849,310,5.199,324,4.174,333,3.928,334,2.815,337,2.253,338,2.304,343,2.321,345,1.387,349,1.037,437,1.698,490,3.292,603,0.875,608,2.637,739,3.61,815,3.65,823,4.209,835,7.74,1154,1.733,2882,6.954,2903,2.463,2904,2.34,4508,5.245,5505,4.314,5949,3.921,6680,7.197,6970,5.004,9231,6.665,10740,7.777,10777,7.777,12030,3.106,12747,5.899,12748,11.741,12749,4.358,12750,4.358,12751,6.743,12752,8.248,12753,8.248,12754,8.248,12755,6.743,12756,8.248,12757,8.248,12758,8.248,12759,4.358,12760,6.743,12761,4.358,12762,4.358,12763,7.777,12764,4.358,12765,4.358,12766,6.743,12767,4.358,12768,4.358,12769,10.493,12770,6.743,12771,4.358,12772,4.358,12773,6.235,12774,4.358,12775,4.358,12776,8.122,12777,6.743,12778,4.358,12779,4.358,12780,8.583,12781,6.743,12782,4.358,12783,4.358,12784,8.122,12785,6.743,12786,4.358,12787,3.813,12788,4.358,12789,4.358,12790,3.651,12791,4.03,12792,3.813,12793,8.583,12794,3.813,12795,4.03,12796,3.651,12797,3.522,12798,5.649,12799,4.358,12800,4.358,12801,3.522,12802,3.813,12803,4.358,12804,4.358,12805,4.358,12806,4.358,12807,5.649,12808,4.358,12809,4.358,12810,4.358,12811,4.358,12812,8.248,12813,4.358,12814,8.248,12815,4.358,12816,4.358,12817,4.358,12818,4.358,12819,4.358,12820,4.358,12821,4.358,12822,4.03,12823,4.358,12824,4.358,12825,4.358,12826,4.358,12827,4.358,12828,4.358,12829,4.358]],["title/classes/ImportUserFactory.html",[0,0.231,12830,6.296]],["body/classes/ImportUserFactory.html",[0,0.159,2,0.524,3,0.011,4,0.011,5,0.006,7,0.071,8,0.854,27,0.528,29,1.013,30,0.001,31,0.696,32,0.18,33,0.596,34,1.469,35,1.44,47,0.609,55,2.444,59,3.222,95,0.138,99,0.781,101,0.008,103,0,104,0,112,0.566,120,3.135,133,2.492,140,2.622,145,1.3,153,1.961,154,2.217,155,2.378,177,1.304,180,1.277,239,2.751,271,4.862,319,3.217,349,0.736,379,0.586,382,3.848,413,2.194,437,0.922,447,7.213,448,4.478,449,5.447,452,4.027,453,5.447,454,5.693,455,4.027,456,4.027,457,4.027,458,3.955,459,4.426,460,4.874,461,6.249,462,5.757,463,7.038,464,2.671,469,2.646,470,4.027,471,2.671,472,5.095,473,5.26,474,4.118,475,4.947,476,3.99,477,2.646,478,3.795,479,4.092,480,3.25,481,2.577,482,2.534,483,2.646,484,5.019,485,2.671,486,3.521,487,4.787,488,2.646,489,7.122,490,4.15,491,6.614,492,2.671,493,4.278,494,2.646,495,2.671,496,2.646,497,2.671,498,2.646,499,2.984,500,2.78,501,2.646,502,6.064,503,2.671,504,2.646,505,4.027,506,3.766,507,4.027,508,2.671,509,2.555,510,2.534,511,2.092,512,2.646,513,2.646,514,2.646,515,2.671,516,2.671,517,1.795,518,2.646,519,1.451,520,2.671,521,3.416,522,2.646,523,2.671,525,2.723,526,2.78,527,2.81,570,2.874,651,2.237,652,2.237,653,2.42,654,1.393,655,2.354,996,2.237,997,2.211,998,2.211,999,2.338,1000,2.555,1001,3.216,1154,1.862,3075,2.137,3868,6.234,4214,2.945,4603,2.555,6804,3.669,6805,3.784,6814,3.669,9804,3.114,9998,3.274,10743,3.274,12018,3.923,12020,3.57,12021,5.432,12022,3.163,12023,7.79,12024,5.582,12030,3.337,12830,7.974,12831,7.126,12832,4.683,12833,7.126,12834,4.683,12835,6.588,12836,4.097,12837,4.683,12838,4.683,12839,4.683,12840,4.683,12841,4.683,12842,4.683,12843,4.097,12844,4.683]],["title/classes/ImportUserListResponse.html",[0,0.231,12796,5.705]],["body/classes/ImportUserListResponse.html",[0,0.337,2,0.952,3,0.014,4,0.014,5,0.007,7,0.09,27,0.469,29,0.463,30,0.001,31,0.476,32,0.179,33,0.549,34,1.014,47,0.808,55,2.913,56,5.759,59,2.642,70,5.946,94,2.895,95,0.151,101,0.014,103,0,104,0,112,0.675,119,1.211,128,2.397,138,1.969,143,2.209,145,1.652,148,1.888,149,3.235,150,1.356,153,2.85,180,1.524,181,1.592,239,2.877,245,3.346,247,2.605,248,4.518,253,2.913,276,2.53,284,3.537,319,2.686,361,3.362,379,0.744,382,3.266,506,3.145,521,2.357,556,1.499,564,3.516,593,2.204,651,4.062,652,4.062,654,1.77,807,3.47,814,7.525,815,6.446,816,4.85,818,2.991,820,4.553,821,2.86,822,3.332,823,2.088,824,4.16,825,5.492,826,4.897,827,3.898,828,3.169,829,4.16,830,4.16,832,3.742,833,3.303,838,1.865,996,2.842,997,2.809,998,2.809,999,2.971,1000,3.247,1451,3.791,1603,2.237,1679,2.715,1764,4.24,1935,4.16,2859,3.169,2860,3.169,3075,4.94,3076,3.791,3077,3.362,3081,2.971,4324,3.61,4508,3.799,5072,3.791,5537,3.791,9624,3.956,9625,4.328,9626,3.956,9627,4.328,10378,4.805,10743,4.16,10744,4.087,10762,4.24,10763,3.61,10775,4.426,11330,4.808,11727,3.696,12020,4.536,12022,4.019,12041,4.985,12042,4.985,12796,7.124,12797,10.132,12845,7.439,12846,5.95,12847,5.95,12848,7.774,12849,5.501,12850,7.564,12851,5.501,12852,5.501,12853,4.985,12854,4.985,12855,4.985,12856,4.985,12857,5.501,12858,5.501,12859,7.862,12860,5.501,12861,4.808,12862,5.501,12863,5.501,12864,4.662,12865,5.501]],["title/classes/ImportUserMapper.html",[0,0.231,12787,5.958]],["body/classes/ImportUserMapper.html",[0,0.221,2,0.728,3,0.015,4,0.015,5,0.008,7,0.099,8,1.085,27,0.426,29,0.811,30,0.001,31,0.583,32,0.142,33,0.5,35,1.251,95,0.159,99,1.084,100,3.781,101,0.011,103,0.001,104,0.001,143,2.015,226,0.929,236,1.472,239,2.076,276,2.763,310,2.816,340,3.123,349,1.163,413,4.011,437,1.531,486,1.955,529,1.838,556,2.622,593,3.856,651,3.104,652,3.104,739,3.961,782,5.022,789,3.244,1246,5.21,1872,4.087,2621,5.21,2990,7.936,4508,5.029,5257,4.321,7132,5.685,9199,8.366,9228,8.366,9231,7.312,9232,8.819,9287,5.685,10740,9.431,10743,4.543,10744,4.463,12020,4.953,12022,4.389,12030,8.733,12064,9.097,12763,9.431,12787,7.916,12790,5.444,12792,7.916,12797,9.097,12822,6.008,12861,5.251,12866,11.258,12867,9.049,12868,9.049,12869,6.498,12870,6.498,12871,9.049,12872,6.498,12873,5.091,12874,6.008,12875,5.444,12876,5.685,12877,6.498,12878,6.498,12879,6.498,12880,6.498,12881,6.498,12882,6.498,12883,6.498,12884,6.498,12885,6.498,12886,6.498,12887,6.498,12888,6.498,12889,6.008,12890,9.049,12891,6.498,12892,6.498,12893,6.008,12894,6.498,12895,6.498,12896,6.008,12897,6.498,12898,6.498,12899,6.498,12900,6.498,12901,6.498,12902,6.498,12903,6.498,12904,6.498,12905,6.498,12906,6.498,12907,6.498,12908,6.498,12909,6.498,12910,6.498,12911,6.498,12912,6.498]],["title/classes/ImportUserMatchMapper.html",[0,0.231,12875,5.705]],["body/classes/ImportUserMatchMapper.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,27,0.447,29,0.85,30,0.001,31,0.611,32,0.149,33,0.524,35,1.311,95,0.138,99,1.437,101,0.014,103,0.001,104,0.001,310,3.733,349,1.343,361,7.345,413,4.089,486,2.591,529,2.437,789,4.3,1246,6.284,1872,5.416,4324,5.225,4508,5.352,10753,11.647,12023,10.731,12066,10.037,12875,9.143,12913,8.612,12914,10.914,12915,10.914,12916,10.914,12917,8.612,12918,10.914,12919,8.612,12920,10.482,12921,8.612,12922,7.962,12923,8.612,12924,7.962,12925,8.612,12926,7.962,12927,6.747,12928,8.612,12929,8.612,12930,8.612,12931,8.612]],["title/modules/ImportUserModule.html",[201,1.804,12932,5.503]],["body/modules/ImportUserModule.html",[0,0.256,3,0.018,4,0.018,5,0.009,30,0.001,52,3.605,94,3.672,95,0.168,101,0.012,103,0.001,104,0.001,201,3.173,203,2.714,204,2.916,205,3.001,206,2.989,207,2.976,208,4.118,209,3.767,213,9.131,214,5.946,217,7.689,218,3.984,219,2.94,220,2.871,223,4.124,225,3.951,226,1.079,227,3.107,239,1.731,564,2.317,622,9.321,636,4.388,654,2.244,1278,2.387,1366,8.959,1634,4.687,1692,6.993,1734,4.808,1904,4.226,2173,4.226,2609,4.746,2771,4.479,3063,3.287,4508,3.371,5381,8.164,7872,5.912,10953,5.912,12747,9.837,12793,11.848,12794,6.602,12795,6.977,12932,11.526,12933,7.546,12934,7.546,12935,7.546,12936,11.211,12937,7.546,12938,7.546,12939,7.546,12940,7.546,12941,5.183]],["title/injectables/ImportUserRepo.html",[539,0.901,12936,5.958]],["body/injectables/ImportUserRepo.html",[0,0.171,3,0.012,4,0.012,5,0.006,7,0.076,8,0.903,10,3.06,12,3.456,18,3.812,26,2.119,27,0.501,29,0.932,30,0.001,31,0.67,32,0.164,33,0.574,34,1.536,35,1.438,36,2.725,40,3.642,49,1.988,56,2.437,58,3.255,59,2.34,94,3.665,95,0.142,96,2.069,97,2.185,98,2.992,99,0.841,101,0.008,103,0,104,0,143,1.122,154,1.077,155,2.514,173,1.491,180,1.35,226,0.721,236,1.467,239,2.807,262,2.959,276,2.143,310,3.909,349,1.106,382,3.019,437,1.583,479,4.737,480,1.4,486,1.517,490,4.244,529,1.426,539,0.997,541,1.207,593,4.433,603,1.811,605,4.661,608,2.684,644,5.313,654,2.976,679,6.839,685,3.187,686,3.556,687,4.564,711,3.094,712,3.131,713,3.094,714,3.131,716,3.094,717,3.131,718,2.798,723,3.843,741,3.462,1451,4.799,1761,3.949,2034,4.256,2291,5.939,3063,2.196,3081,3.761,3393,3.462,3868,6.59,5072,3.212,5505,3.06,5949,4.38,5951,3.524,6680,3.025,6969,6.426,6970,7.064,6980,5.603,6998,6.59,6999,3.667,7000,3.667,12029,6.31,12030,8.005,12064,8.085,12889,4.661,12927,3.949,12936,6.59,12942,5.041,12943,7.532,12944,9.018,12945,9.018,12946,7.532,12947,7.532,12948,5.041,12949,5.041,12950,5.041,12951,5.041,12952,5.041,12953,5.041,12954,7.532,12955,5.041,12956,6.59,12957,5.041,12958,7.89,12959,5.041,12960,5.041,12961,5.041,12962,5.041,12963,5.041,12964,5.041,12965,5.041,12966,5.041,12967,5.041,12968,5.041,12969,5.041,12970,5.041,12971,5.041,12972,5.041,12973,5.041,12974,5.041,12975,5.041,12976,5.041,12977,5.041,12978,5.041,12979,7.532,12980,5.041,12981,7.532,12982,5.041,12983,5.041,12984,5.041,12985,5.041,12986,5.041,12987,5.041]],["title/classes/ImportUserResponse.html",[0,0.231,12797,5.503]],["body/classes/ImportUserResponse.html",[0,0.32,2,1.055,3,0.013,4,0.013,5,0.006,7,0.082,27,0.511,29,0.423,30,0.001,31,0.528,32,0.18,33,0.452,34,1.357,47,0.895,55,2.029,56,3.851,70,3.977,94,3.875,95,0.151,101,0.013,103,0,104,0,112,0.632,119,1.621,128,3.208,138,2.225,143,2.311,145,2.211,148,1.725,149,3.03,150,1.239,153,2.837,180,0.974,181,2.132,239,3.039,245,3.272,247,2.379,248,4.331,253,2.662,257,7.011,276,2.311,284,2.46,319,3.596,361,5.327,379,0.68,381,1.826,480,1.509,486,1.635,506,2.873,521,2.153,564,3.895,593,2.013,651,5.278,652,5.278,654,1.617,807,3.25,814,4.888,815,2.942,816,3.1,820,4.326,832,3.419,833,3.017,838,2.497,996,2.597,997,2.566,998,2.566,999,2.714,1000,2.966,1213,3.017,1451,5.075,1603,2.044,1679,3.635,1764,3.873,1935,3.8,2859,4.242,2860,4.242,3075,5.444,3076,5.075,3077,4.501,3081,3.977,4324,4.832,4508,5.668,5072,5.075,5537,5.075,7111,5.026,9624,3.614,9625,3.954,9626,3.614,9627,3.954,10378,5.865,10743,6.591,10744,6.474,10762,5.676,10763,4.832,10775,5.924,11330,4.393,11727,4.947,12020,7.186,12022,6.367,12041,4.554,12042,4.554,12796,4.554,12797,9.886,12845,11.099,12848,8.656,12849,5.026,12850,8.422,12851,5.026,12852,5.026,12853,4.554,12854,4.554,12855,4.554,12856,4.554,12857,5.026,12858,5.026,12859,7.364,12860,5.026,12861,7.618,12862,7.364,12863,7.364,12864,4.259,12865,5.026,12988,5.436,12989,5.436,12990,5.436,12991,5.436,12992,5.436,12993,5.436,12994,5.436,12995,5.436,12996,5.436]],["title/classes/ImportUserScope.html",[0,0.231,12958,5.958]],["body/classes/ImportUserScope.html",[0,0.148,2,0.753,3,0.01,4,0.01,5,0.005,7,0.066,8,0.806,27,0.52,29,0.95,30,0.001,31,0.711,32,0.172,33,0.585,34,1.146,35,1.466,39,1.169,47,0.874,49,1.713,95,0.134,96,1.848,97,1.883,99,0.725,101,0.007,103,0,104,0,112,0.534,119,1.675,128,2.709,143,2.544,173,1.285,180,1.205,236,1.339,239,2.537,250,4.543,276,1.847,310,1.883,340,2.088,349,1.296,361,5.665,382,3.025,437,1.43,480,1.868,486,2.476,490,3.286,519,1.346,529,2.329,574,6.893,593,3.048,603,2.13,644,4.229,651,3.213,652,3.213,654,2.448,696,1.713,982,6.741,1246,5.773,1666,4.486,1668,6.071,1753,4.703,1844,2.846,1872,2.732,2281,5.561,2291,5.951,4209,1.474,4214,2.732,4313,4.793,4324,4.081,4603,5.786,4692,3.528,5257,5.473,5462,4.178,5488,6.071,5505,4.869,6059,4.543,6060,4.543,6061,4.543,6066,4.543,6067,4.543,6068,2.984,6069,2.934,6070,2.984,6071,2.984,6080,2.934,6081,4.543,6082,2.984,6083,2.934,6084,2.984,6085,2.934,6086,8.241,6969,4.793,9803,4.472,9804,4.472,10743,5.755,10744,2.984,10763,2.636,12020,3.312,12021,6.274,12022,5.56,12025,5.127,12030,3.096,12066,7.764,12873,3.403,12922,4.016,12924,4.016,12926,4.016,12927,5.27,12958,11.313,12997,4.344,12998,6.727,12999,6.727,13000,6.727,13001,6.727,13002,6.727,13003,6.727,13004,6.727,13005,6.727,13006,6.727,13007,6.727,13008,4.344,13009,6.727,13010,4.344,13011,6.727,13012,4.344,13013,6.727,13014,4.344,13015,6.219,13016,6.727,13017,4.344,13018,6.727,13019,4.344,13020,6.727,13021,4.344,13022,6.727,13023,4.344,13024,6.727,13025,4.344,13026,3.639,13027,4.016,13028,4.344,13029,4.016,13030,4.344,13031,4.344,13032,6.727,13033,4.344,13034,8.108,13035,8.568,13036,4.344,13037,6.727,13038,6.727,13039,6.727,13040,6.727,13041,4.344,13042,4.344,13043,4.344,13044,4.344,13045,4.344,13046,4.344,13047,4.344,13048,6.727,13049,4.344,13050,4.344,13051,5.436,13052,4.344,13053,4.344,13054,4.016]],["title/classes/ImportUserUrlParams.html",[0,0.231,12769,5.958]],["body/classes/ImportUserUrlParams.html",[0,0.392,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.387,30,0.001,32,0.129,34,1.969,47,0.816,95,0.147,101,0.016,103,0.001,104,0.001,112,0.918,133,4.041,138,1.717,142,4.521,143,2.573,144,3.807,145,3.209,148,2.996,150,2.151,153,2.146,239,2.986,245,3.03,250,7.806,563,6.86,564,3.548,807,4.716,3817,5.546,4508,5.163,12030,8.235,12769,10.11,12845,10.11,12861,10.092,13055,9.441,13056,9.441]],["title/interfaces/InlineAttachment.html",[105,0.735,1300,5.065]],["body/interfaces/InlineAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,31,0.496,32,0.121,47,1.008,77,5.644,101,0.015,103,0.001,104,0.001,105,1.465,107,2.126,112,0.882,180,2.349,1294,8.263,1295,6.753,1296,9.466,1297,9.992,1298,6.753,1299,4.961,1300,9.028,1301,6.443,1302,9.701,1303,6.443,1304,9.028,1305,6.753,1306,8.263,1307,8.469,1308,8.469,1309,8.263,1310,6.74,1311,6.589,1312,6.589,1313,6.753,1314,6.753]],["title/modules/InterceptorModule.html",[201,1.804,6495,5.705]],["body/modules/InterceptorModule.html",[0,0.294,3,0.02,4,0.02,5,0.01,30,0.001,95,0.16,101,0.014,103,0.001,104,0.001,153,1.966,201,2.899,203,3.111,208,3.168,226,1.237,236,1.407,284,3.38,340,4.157,349,0.893,437,1.119,493,6.258,517,4.196,584,8.265,598,4.981,636,6.364,637,6.163,639,4.059,1666,3.66,1773,4.72,2161,6.242,2368,7.168,3460,7.168,3959,8.929,6165,7.168,6495,9.168,6507,7.651,6508,10.502,6512,8.843,8450,6.593,8454,6.593,11385,6.163,11727,6.797,11941,7.246,13057,8.649,13058,8.843,13059,12.617,13060,9.168,13061,10.502,13062,7.997,13063,8.649]],["title/interfaces/IntrospectResponse.html",[105,0.735,13064,5.958]],["body/interfaces/IntrospectResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.191,33,0.69,47,1.016,51,5.867,55,2.902,101,0.013,103,0.001,104,0.001,105,0.828,107,1.842,108,5.366,112,0.804,119,2.308,133,3.965,1330,8.593,5505,4.9,6228,8.593,7060,9.447,7062,9.447,7084,9.447,7085,9.447,11626,7.899,13064,8.863,13065,7.676,13066,11.149,13067,12.059,13068,12.059,13069,12.059,13070,12.059]],["title/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.231,13071,5.958]],["body/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.282,2,0.93,3,0.019,4,0.019,5,0.01,7,0.126,8,1.279,27,0.437,29,0.647,30,0.001,31,0.465,32,0.146,33,0.399,35,0.998,47,0.929,72,3.772,95,0.135,101,0.014,103,0.001,104,0.001,141,3.969,177,1.953,180,1.912,182,2.703,226,1.188,236,1.352,284,2.567,345,2.645,349,0.858,379,1.039,556,2.968,603,1.669,1025,3.251,1275,5.406,1276,6.046,1278,2.629,1280,3.334,1281,6.126,1718,3.5,1939,6.09,1962,7.609,1964,10.812,2621,6.785,3113,6.51,3249,5.525,7844,6.334,8369,6.09,8370,6.325,8820,5.226,8827,4.832,8828,5.042,8836,6.715,8837,6.715,11957,8.763,13071,9.333,13072,11.782,13073,11.782,13074,8.31,13075,8.31,13076,6.51,13077,7.27,13078,8.31,13079,8.31]],["title/classes/IservMapper.html",[0,0.231,13080,5.958]],["body/classes/IservMapper.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.848,30,0.001,31,0.67,32,0.149,33,0.522,35,1.308,95,0.138,99,1.43,100,2.88,101,0.014,103,0.001,104,0.001,236,1.771,349,1.124,413,4.085,651,4.096,652,4.096,653,4.432,655,5.471,1905,7.043,3081,4.281,4603,6.863,7142,6.861,8530,9.355,8532,5.393,9620,9.148,12022,8.495,13080,9.522,13081,11.957,13082,8.576,13083,10.063,13084,10.063,13085,10.884,13086,8.576,13087,6.93,13088,10.884,13089,8.576,13090,8.576,13091,7.929,13092,7.929,13093,8.576,13094,8.576,13095,8.576,13096,7.929]],["title/injectables/IservProvisioningStrategy.html",[539,0.901,13097,5.705]],["body/injectables/IservProvisioningStrategy.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,27,0.465,29,0.833,30,0.001,31,0.6,32,0.146,33,0.514,34,0.989,35,1.286,36,2.513,47,0.834,95,0.163,99,0.968,100,1.95,101,0.01,103,0,104,0,121,5.472,143,1.292,177,1.529,180,1.497,182,1.888,226,0.83,236,1.592,239,2.602,262,2.588,284,1.793,345,1.848,349,1.172,379,0.726,382,2.953,437,1.666,529,2.363,539,1.106,541,1.389,556,2.696,570,3.562,593,3.094,595,3.65,603,1.166,608,2.467,653,4.318,654,1.726,696,2.289,1382,4.317,1417,3.445,1442,4.222,1551,6.076,1899,4.69,1900,6.732,1902,5.472,1904,3.25,1905,4.678,2029,5.395,2161,3.311,3075,2.649,3544,2.937,4209,1.969,4603,5.34,4692,3.045,4768,7.15,6055,4.136,7142,4.415,7148,5.642,8523,3.859,8530,6.213,9620,6.076,11012,8.385,11445,5.952,11727,5.189,12022,5.642,12047,4.69,12345,7.428,12347,6.41,12348,3.859,12349,3.859,13080,5.078,13097,6.998,13098,5.804,13099,8.353,13100,6.368,13101,5.804,13102,6.75,13103,8.258,13104,5.804,13105,8.353,13106,5.804,13107,6.75,13108,7.961,13109,5.804,13110,5.804,13111,5.078,13112,6.368,13113,5.078,13114,5.367,13115,5.804,13116,5.804,13117,5.367,13118,9.786,13119,5.078,13120,5.367,13121,8.353,13122,5.804,13123,5.367,13124,5.804,13125,5.804,13126,5.804,13127,5.804,13128,5.804,13129,5.804,13130,5.804,13131,5.804,13132,6.75,13133,5.804,13134,6.998,13135,5.804,13136,6.75,13137,5.078,13138,5.367,13139,5.804,13140,5.804,13141,5.804,13142,5.804,13143,5.804,13144,5.804,13145,5.078]],["title/injectables/JwtAuthGuard.html",[539,0.901,13146,5.958]],["body/injectables/JwtAuthGuard.html",[0,0.357,3,0.025,4,0.025,5,0.013,30,0.001,95,0.156,101,0.017,103,0.001,104,0.001,180,2.207,226,1.501,539,1.63,541,2.514,1374,7.81,13146,10.775,13147,10.5,13148,10.5,13149,12.317,13150,9.708]],["title/interfaces/JwtConstants.html",[105,0.735,1383,5.705]],["body/interfaces/JwtConstants.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.174,39,2.399,47,0.978,85,7.205,95,0.113,101,0.018,103,0.001,104,0.001,105,0.962,107,2.14,112,0.886,120,4.908,143,1.986,437,1.443,567,9.76,1380,6.986,1383,10.687,1421,6.798,1423,8.245,1425,5.539,1427,7.471,1430,7.637,1562,6.633,1666,3.773,1719,5.41,2346,6.125,2771,5.293,6228,6.354,7060,6.986,7062,6.986,7084,6.986,7085,6.986,13151,8.918,13152,13.134,13153,11.156,13154,8.918,13155,8.918,13156,7.206,13157,7.471,13158,7.471,13159,8.918,13160,8.918,13161,8.918,13162,7.802,13163,8.918,13164,8.918]],["title/classes/JwtExtractor.html",[0,0.231,13165,5.958]],["body/classes/JwtExtractor.html",[0,0.295,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.316,27,0.356,29,0.676,30,0.001,31,0.615,32,0.119,33,0.417,35,1.044,47,0.892,95,0.153,101,0.014,103,0.001,104,0.001,124,6.046,141,5.746,316,5.891,349,1.133,413,3.704,437,1.124,521,4.346,593,4.064,996,5.242,997,5.18,998,5.18,999,6.006,1000,6.564,1001,8.262,1002,7.412,1013,6.805,1417,5.156,6684,5.212,11469,9.193,11543,9.193,13165,9.6,13166,10.145,13167,8.687,13168,10.973,13169,10.973,13170,8.687,13171,12.029,13172,6.805,13173,8.687,13174,10.973]],["title/interfaces/JwtPayload.html",[105,0.735,1551,4.953]],["body/interfaces/JwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.125,30,0.001,32,0.179,39,2.855,47,1.004,48,3.914,55,2.825,85,5.323,101,0.017,103,0.001,104,0.001,105,1.145,107,1.978,112,0.843,119,2.16,128,3.32,180,1.902,239,1.891,359,4.945,511,3.682,764,5.399,1421,8.089,1425,6.591,1531,9.194,1551,7.718,1562,9.218,1666,5.244,1760,5.48,2346,7.288,3081,4.115,4209,2.796,5106,5.399,6228,8.831,7060,9.709,7062,9.709,7084,9.709,7085,9.709,7091,7.62,7092,7.62,7093,6.66,7094,6.904,7095,5.119,7096,7.62,7097,7.21,7098,9.284]],["title/injectables/JwtStrategy.html",[539,0.901,1362,5.958]],["body/injectables/JwtStrategy.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.205,27,0.412,29,0.783,30,0.001,31,0.563,32,0.137,33,0.482,35,0.912,36,2.139,85,4.901,95,0.171,101,0.013,103,0.001,104,0.001,105,0.819,145,2.107,177,1.389,180,1.802,182,2.469,226,1.085,236,1.235,239,1.741,262,2.471,270,3.716,276,3.226,294,5.054,345,2.416,349,0.784,379,0.949,437,1.3,472,4.011,529,2.147,539,1.331,541,1.817,579,4.042,608,1.749,631,3.894,937,6.493,990,2.566,1178,4.074,1179,6.685,1362,8.796,1363,10.372,1374,5.645,1383,6.357,1384,6.639,1388,6.639,1417,7.126,1431,7.016,1551,8.732,1554,6.357,1555,6.314,1562,7.479,1666,3.211,1818,5.046,2778,5.408,3859,5.945,4551,5.126,5486,6.133,6165,6.586,7130,5.645,9689,4.835,10959,6.639,11626,4.971,13165,6.639,13172,5.945,13175,7.589,13176,8.423,13177,7.589,13178,7.589,13179,10.055,13180,7.589,13181,6.357,13182,7.589,13183,6.133,13184,7.589,13185,7.589,13186,7.589,13187,7.589,13188,7.589,13189,7.589,13190,7.589,13191,7.589,13192,7.589,13193,7.589,13194,7.589,13195,7.589]],["title/classes/JwtTestFactory.html",[0,0.231,7075,5.958]],["body/classes/JwtTestFactory.html",[0,0.261,2,0.861,3,0.018,4,0.018,5,0.009,7,0.117,8,1.216,27,0.415,29,0.599,30,0.001,31,0.431,32,0.155,33,0.369,35,1.219,47,0.975,59,2.389,85,7.33,95,0.129,101,0.013,103,0.001,104,0.001,105,0.83,271,3.008,348,5.064,349,1.048,413,3.967,437,1.561,662,3.19,1380,6.025,1382,5.72,1405,6.443,1417,4.565,1421,5.862,1425,4.777,1550,7.378,1562,7.545,4540,7.732,6228,7.228,7058,10.558,7059,7.11,7060,7.946,7061,8.497,7062,7.946,7063,10.494,7064,10.508,7065,9.378,7066,7.11,7067,7.11,7068,7.11,7069,7.11,7070,8.874,7071,7.11,7072,9.378,7073,9.378,7074,7.11,7075,8.874,7076,10.558,7077,9.378,7078,9.378,7079,7.11,7080,7.11,7081,7.11,7082,7.11,7083,7.11,7084,6.025,7085,6.025,7086,6.728,7087,7.11,7088,7.11,7089,7.11,7090,7.11,13196,10.143,13197,7.691,13198,7.691]],["title/injectables/JwtValidationAdapter.html",[539,0.901,1363,5.503]],["body/injectables/JwtValidationAdapter.html",[0,0.214,3,0.015,4,0.015,5,0.008,7,0.096,8,1.063,27,0.455,29,0.866,30,0.001,31,0.623,32,0.152,33,0.533,34,1.894,35,1.232,36,2.584,47,0.981,85,7.563,94,4.315,95,0.154,101,0.01,103,0.001,104,0.001,142,3.469,145,1.753,153,1.435,177,1.624,226,0.903,262,2.836,333,3.753,379,1.109,437,1.147,478,5.922,521,3.513,539,1.174,541,1.512,603,1.781,608,2.363,639,2.964,937,5.107,996,4.237,997,4.187,998,4.187,999,4.428,1000,4.84,1001,6.091,1342,4.697,1363,7.167,1375,5.524,1417,7.557,1562,10.03,1582,5.157,1668,5.81,1719,3.831,1821,7.167,2368,7.283,3063,3.863,3834,6.948,3876,10.449,3880,5.524,3883,4.813,3885,5.524,3893,5.524,3894,9.175,3895,6.948,7098,7.759,10959,7.759,11787,5.651,12026,7.759,13166,10.828,13199,6.315,13200,8.869,13201,8.869,13202,8.869,13203,6.315,13204,6.315,13205,8.869,13206,8.869,13207,6.315,13208,8.869,13209,6.315,13210,8.869,13211,8.2,13212,8.869,13213,8.869,13214,6.315,13215,6.315,13216,6.315,13217,6.315,13218,6.315,13219,8.869,13220,6.315,13221,6.315,13222,6.315,13223,8.869,13224,8.869,13225,6.315,13226,6.315,13227,6.315]],["title/classes/KeycloakAdministration.html",[0,0.231,13228,6.296]],["body/classes/KeycloakAdministration.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.353,30,0.001,47,0.991,51,5.31,87,6.331,95,0.138,101,0.014,103,0.001,104,0.001,112,0.867,119,2.221,413,3.69,480,2.391,486,3.283,2020,3.77,2021,4.217,2022,4.065,2136,6.167,2187,7.215,3881,4.823,5590,6.289,8065,8.118,11573,7.257,11590,5.817,11598,6.225,11599,6.698,12083,10.889,12085,9.143,12086,10.037,12258,9.143,12676,8.819,13228,10.09,13229,10.914,13230,10.914,13231,10.914,13232,10.914,13233,10.914,13234,10.914,13235,8.612,13236,6.747]],["title/modules/KeycloakAdministrationModule.html",[201,1.804,12671,5.335]],["body/modules/KeycloakAdministrationModule.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,95,0.167,101,0.015,103,0.001,104,0.001,201,3.228,203,3.214,204,3.454,205,3.555,206,3.54,207,3.525,208,4.463,209,4.582,218,4.443,219,3.482,220,3.4,223,3.68,226,1.278,568,5.694,636,5.197,1116,6.369,1912,4.124,2187,7.487,3542,4.559,10763,6.778,11598,5.098,11599,5.485,12086,9.359,12671,10.654,12676,7.222,13236,7.002,13237,8.938,13238,8.938,13239,8.938,13240,10.263,13241,8.938,13242,10.328,13243,6.648,13244,8.263,13245,8.263,13246,7.487,13247,7.487,13248,6.813,13249,8.938]],["title/injectables/KeycloakAdministrationService.html",[539,0.901,13240,4.953]],["body/injectables/KeycloakAdministrationService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.12,8,0.949,27,0.532,29,0.42,30,0.001,31,0.302,32,0.108,33,0.259,34,0.919,35,1.496,36,2.45,47,0.813,55,1.16,95,0.119,101,0.009,103,0,104,0,112,0.629,143,1.201,145,1.497,177,1.449,226,0.771,236,1.288,262,2.92,349,1.261,379,0.99,413,2.889,437,1.424,480,2.198,486,2.382,519,2.453,539,1.048,541,1.291,579,2.872,603,2.579,608,2.813,639,2.531,662,4.386,696,3.701,1178,2.895,1179,3.585,1573,7.32,1575,5.759,2020,2.36,2136,3.047,2187,4.517,3542,3.231,5590,2.692,7348,3.271,10763,4.804,11598,7.481,11599,8.05,12083,8.661,12085,4.517,12086,4.517,13236,4.224,13240,5.759,13242,9.559,13243,4.011,13244,4.985,13245,4.985,13250,9.998,13251,5.392,13252,9.383,13253,9.383,13254,10.339,13255,10.339,13256,10.339,13257,10.339,13258,10.339,13259,10.339,13260,10.339,13261,10.339,13262,10.339,13263,4.985,13264,9.383,13265,7.918,13266,7.32,13267,5.392,13268,5.392,13269,5.392,13270,5.392,13271,5.392,13272,5.392,13273,5.392,13274,5.392,13275,5.392,13276,7.918,13277,5.392,13278,5.392,13279,5.392,13280,5.392,13281,5.392,13282,5.392,13283,5.392,13284,7.918,13285,5.392,13286,5.392,13287,5.392,13288,7.918,13289,6.398,13290,7.918,13291,9.383,13292,4.985,13293,4.985,13294,5.392,13295,5.392,13296,4.985,13297,4.717,13298,5.392,13299,5.392,13300,5.392,13301,9.383,13302,7.918,13303,5.392]],["title/classes/KeycloakConfiguration.html",[0,0.231,13246,5.705]],["body/classes/KeycloakConfiguration.html",[0,0.33,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,95,0.123,101,0.016,103,0.001,104,0.001,112,0.934,413,3.894,480,2.697,486,3.538,2020,4.252,2161,5.541,11590,6.562,11598,6.707,11599,7.217,12076,10.594,12079,10.872,12080,10.872,13236,7.61,13246,9.851,13304,10.287,13305,12.646,13306,11.759,13307,11.759,13308,9.714,13309,8.499]],["title/modules/KeycloakConfigurationModule.html",[201,1.804,13310,5.705]],["body/modules/KeycloakConfigurationModule.html",[0,0.228,3,0.016,4,0.016,5,0.008,30,0.001,95,0.175,101,0.011,103,0.001,104,0.001,201,2.806,203,2.415,204,2.595,205,2.671,206,2.659,207,2.648,208,3.88,209,3.983,213,8.822,214,5.745,218,3.681,219,2.616,220,2.554,223,3.811,225,3.651,226,0.96,568,5.898,636,3.905,1116,4.785,1278,2.124,1360,8.656,1376,5.119,1379,4.695,1912,3.098,2020,2.939,2161,3.83,3454,4.612,3531,9.437,8336,9.005,8926,4.695,11598,3.83,11599,4.121,11604,9.209,11605,5.261,11606,5.261,11617,10.126,12081,8.098,12671,9.699,12676,5.426,12677,5.875,13236,5.261,13246,5.625,13247,8.874,13304,5.875,13309,5.875,13310,11.897,13311,6.715,13312,6.715,13313,6.715,13314,6.715,13315,11.327,13316,10.828,13317,10.372,13318,6.715,13319,9.267,13320,6.715,13321,6.715,13322,7.755,13323,6.208,13324,6.208,13325,6.208,13326,6.208,13327,6.715,13328,6.715,13329,5.625,13330,6.715]],["title/injectables/KeycloakConfigurationService.html",[539,0.901,13315,5.705]],["body/injectables/KeycloakConfigurationService.html",[0,0.09,3,0.006,4,0.006,5,0.003,7,0.04,8,0.539,10,1.828,27,0.459,29,0.766,30,0.001,31,0.588,32,0.135,33,0.472,34,1.832,35,1.345,36,2.383,47,0.854,59,0.823,74,2.142,95,0.139,101,0.004,103,0,104,0,128,1.068,143,1.874,145,2.149,153,0.602,168,1.512,177,1.265,179,1.736,226,0.379,239,1.345,262,2.828,280,3.091,305,2.591,333,1.904,349,0.8,359,1.59,360,4.335,379,0.563,437,1.707,521,3.739,539,0.596,541,0.634,564,0.814,568,3.736,584,5.877,591,4.374,598,1.526,601,2.076,602,2.142,603,2.604,608,3.093,631,3.547,662,3.095,685,2.481,696,1.045,708,2.436,739,1.97,838,0.831,996,4.51,997,4.457,998,4.457,1117,1.608,1127,2.319,1612,4.631,1760,2.992,1844,1.736,1912,3.883,2146,1.889,2173,1.484,2282,1.627,2347,2.566,2899,2.7,2903,2.543,3075,2.054,4022,1.667,4596,2.142,4620,1.37,5590,2.247,5949,4.502,6228,3.206,7061,4.912,7102,2.076,7350,3.273,7353,1.971,7998,2.45,8591,2.45,8972,2.02,10763,5.105,11472,6.485,11581,2.762,11598,6.495,11599,6.989,11787,2.867,11954,4.739,12085,8.534,12342,6.544,12344,4.832,12420,1.971,12724,5.421,13240,5.027,13243,6.259,13248,2.02,13250,2.02,13289,8.232,13292,2.45,13293,2.45,13296,2.45,13297,2.319,13315,3.77,13322,7.516,13323,2.45,13324,2.45,13331,9.962,13332,4.5,13333,6.912,13334,6.912,13335,6.912,13336,6.912,13337,4.5,13338,4.5,13339,4.5,13340,6.912,13341,4.5,13342,4.5,13343,4.5,13344,4.5,13345,2.22,13346,7.516,13347,2.65,13348,3.77,13349,4.5,13350,2.65,13351,9.442,13352,2.65,13353,2.65,13354,2.65,13355,2.65,13356,4.5,13357,8.425,13358,2.65,13359,4.5,13360,2.65,13361,8.972,13362,4.5,13363,2.65,13364,2.65,13365,5.864,13366,4.5,13367,2.65,13368,5.864,13369,4.5,13370,8.415,13371,6.39,13372,2.65,13373,4.5,13374,5.864,13375,4.5,13376,2.65,13377,4.5,13378,2.65,13379,2.65,13380,2.65,13381,2.65,13382,2.65,13383,4.5,13384,2.65,13385,2.65,13386,2.45,13387,2.65,13388,2.142,13389,2.65,13390,2.45,13391,4.5,13392,9.697,13393,2.319,13394,3.937,13395,6.047,13396,5.864,13397,4.739,13398,5.864,13399,8.913,13400,4.5,13401,4.5,13402,7.741,13403,4.5,13404,7.741,13405,2.65,13406,8.415,13407,2.65,13408,2.65,13409,2.65,13410,4.5,13411,4.5,13412,4.5,13413,4.5,13414,2.65,13415,4.5,13416,2.45,13417,2.319,13418,2.65,13419,2.65,13420,5.13,13421,5.13,13422,4.5,13423,4.5,13424,2.319,13425,2.65,13426,2.319,13427,2.45,13428,4.16,13429,2.45,13430,2.65,13431,2.65,13432,4.5,13433,4.5,13434,4.5,13435,3.43,13436,2.65,13437,2.65,13438,2.65,13439,2.65,13440,2.65,13441,2.65,13442,4.5,13443,2.65,13444,5.864,13445,5.864,13446,2.65,13447,5.864,13448,2.65,13449,5.864,13450,2.65,13451,2.65,13452,4.5,13453,2.65,13454,4.5,13455,4.5,13456,4.5,13457,6.912,13458,2.65,13459,2.65,13460,4.5,13461,2.65,13462,4.16,13463,2.65,13464,2.65,13465,5.864,13466,4.5,13467,5.864,13468,4.5,13469,2.65,13470,2.65,13471,4.5,13472,2.65,13473,4.5,13474,2.65,13475,2.65,13476,2.65,13477,2.65,13478,2.65,13479,2.65,13480,4.5,13481,4.5,13482,2.65,13483,2.65,13484,4.5,13485,2.65,13486,2.45,13487,2.65,13488,2.45,13489,4.5,13490,2.65,13491,2.65,13492,2.65,13493,2.65,13494,2.65,13495,2.65,13496,2.65,13497,2.65]],["title/injectables/KeycloakConfigurationUc.html",[539,0.901,11604,5.065]],["body/injectables/KeycloakConfigurationUc.html",[0,0.228,3,0.016,4,0.016,5,0.008,7,0.102,8,1.11,27,0.507,29,0.825,30,0.001,31,0.593,32,0.145,33,0.508,35,1.439,36,2.825,55,2.664,59,3.291,70,3.353,95,0.152,101,0.011,103,0.001,104,0.001,119,2.156,177,2.09,226,0.96,262,3.018,349,1.237,379,1.158,539,1.225,541,1.607,568,4.278,603,2.293,608,2.632,662,4.252,937,6.574,7870,7.982,8641,6.208,8658,6.208,10227,6.472,11598,7.236,11599,7.786,11602,5.261,11604,6.885,11614,8.703,11650,8.305,11656,6.596,13240,8.305,13247,8.874,13248,5.119,13250,5.119,13315,9.565,13316,10.628,13317,10.628,13325,6.208,13326,6.208,13329,5.625,13345,5.625,13348,7.755,13498,12.687,13499,10.593,13500,6.715,13501,6.715,13502,8.558,13503,6.715,13504,6.715,13505,9.257,13506,6.715,13507,6.715,13508,6.715,13509,6.715,13510,6.715,13511,6.715,13512,6.715,13513,6.715,13514,6.715,13515,6.715]],["title/classes/KeycloakConsole.html",[0,0.231,11617,5.335]],["body/classes/KeycloakConsole.html",[0,0.117,2,0.387,3,0.008,4,0.008,5,0.004,7,0.052,8,0.673,10,1.404,27,0.446,29,0.82,30,0.001,31,0.566,32,0.138,33,0.485,35,1.215,36,2.526,47,0.575,52,3.383,53,4.081,55,2.512,70,3.536,72,3.699,78,8.745,95,0.103,101,0.006,103,0,104,0,105,0.764,112,0.445,118,2.202,119,0.703,138,1.63,142,3.956,145,3.107,153,2.86,177,1.296,179,4.639,208,2.055,236,0.913,239,1.287,262,2.837,310,1.498,333,2.997,349,0.731,359,2.074,379,0.702,413,2.181,437,1.159,474,1.476,479,1.295,480,1.558,486,3.276,490,4.327,519,1.071,529,0.978,556,2.418,562,3.853,568,5.71,595,2.174,600,2.147,603,2.116,608,2.51,696,2.213,697,5.151,708,3.386,710,6.593,844,2.635,933,3.33,937,5.528,990,1.169,1224,1.935,1278,1.093,1451,6.116,1458,4.606,1584,4.395,1734,2.202,1762,4.89,1773,3.061,2020,2.456,2037,4.395,2253,2.903,2254,3.68,2347,3.2,2777,5.339,3063,5.085,3446,5.419,3451,7.242,3454,2.374,3455,8.563,3456,6.037,3457,2.051,5511,4.173,5949,7.25,6499,4.395,7095,2.147,7112,2.202,7396,7.709,7870,7.07,7880,7.709,8334,2.635,8391,2.416,10227,6.266,11364,2.708,11597,4.534,11598,6.383,11599,6.868,11600,9.375,11601,2.895,11602,2.708,11603,5.933,11604,7.522,11605,2.708,11606,2.708,11607,4.7,11608,2.895,11609,2.895,11610,8.8,11611,2.895,11612,2.895,11613,4.534,11614,4.277,11615,2.895,11616,2.635,11617,4.395,11618,2.895,11619,5.933,11620,4.7,11621,9.375,11622,4.081,11623,4.7,11624,4.7,11625,9.123,11626,3.675,11627,6.484,11628,3.998,11629,5.598,11630,4.173,11631,2.895,11632,2.895,11633,4.7,11634,6.828,11635,2.895,11636,2.895,11637,4.7,11638,6.828,11639,2.895,11640,2.895,11641,2.895,11642,6.828,11643,6.828,11644,4.395,11645,4.7,11646,2.895,11647,2.895,11648,4.081,11649,4.534,11650,6.519,11651,4.7,11652,2.895,11653,2.895,11654,2.895,11655,4.7,11656,6.386,11657,2.708,11658,2.708,11659,4.7,11660,2.895,11661,2.895,11662,2.895,11663,2.895,11664,2.895,11665,2.895,11666,4.7,11667,2.895,11668,2.895,11669,2.895,11670,4.534,13516,5.61,13517,3.456,13518,3.456,13519,3.456,13520,3.456,13521,3.456,13522,3.456,13523,3.456,13524,3.456,13525,3.456,13526,3.456,13527,3.456,13528,3.456]],["title/injectables/KeycloakIdentityManagementOauthService.html",[539,0.901,12679,5.705]],["body/injectables/KeycloakIdentityManagementOauthService.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.085,8,0.977,27,0.478,29,0.635,30,0.001,31,0.457,32,0.144,33,0.391,35,1.266,36,2.484,47,0.914,51,3.966,87,5.625,95,0.159,101,0.009,103,0,104,0,112,0.647,143,1.249,177,1.929,180,1.461,182,1.825,226,0.802,236,0.913,262,2.757,284,2.517,349,1.206,379,1.019,382,2.896,437,1.558,519,2.525,539,1.079,541,1.343,556,2.654,568,3.574,579,2.988,584,7.891,591,3.17,598,3.231,600,6.951,603,2.42,608,2.213,639,2.633,653,2.9,823,2.86,950,2.603,962,8.422,963,3.231,964,6.213,965,3.675,1079,3.296,1127,4.908,1178,3.012,1179,3.73,1198,1.929,1330,3.998,1331,4.534,1332,4.908,1425,3.485,2196,2.27,2777,7.33,2903,3.17,4620,2.9,5501,3.2,5505,2.279,5590,4.792,7348,4.945,7350,4.081,8340,4.173,8887,3.789,8926,3.922,9369,7.663,9398,4.534,11502,8.398,11520,6.828,11570,3.853,11573,3.73,11574,4.7,11575,3.853,11578,3.853,11581,5.002,11585,6.484,11598,6.009,12673,9.146,12675,4.7,12679,6.828,12682,5.187,12683,9.741,12684,9.741,12685,7.535,12688,7.535,12690,8.031,13240,7.663,13248,4.277,13250,4.277,13388,4.534,13428,7.535,13429,5.187,13529,9.217,13530,9.599,13531,10.536,13532,5.61,13533,8.15,13534,8.15,13535,5.61,13536,5.61,13537,5.61,13538,5.61,13539,11.674,13540,5.61,13541,5.61,13542,5.61,13543,5.61,13544,5.61,13545,5.61,13546,5.61,13547,5.61,13548,5.61,13549,5.61,13550,5.61,13551,5.61,13552,5.61,13553,5.61,13554,5.61,13555,5.61,13556,5.61,13557,5.61,13558,5.187,13559,5.187,13560,4.908,13561,5.187,13562,5.61,13563,5.61]],["title/injectables/KeycloakIdentityManagementService.html",[539,0.901,12681,5.705]],["body/injectables/KeycloakIdentityManagementService.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.66,27,0.491,29,0.945,30,0.001,31,0.661,32,0.168,33,0.566,34,2.183,35,1.418,36,2.744,39,2.906,47,0.974,51,4.621,59,1.711,87,5.715,94,3.912,95,0.12,98,2.005,99,0.563,101,0.006,103,0,104,0,143,1.226,145,1.529,177,0.618,179,5.267,180,0.987,182,1.099,226,0.483,236,1.699,239,2.179,262,2.958,263,4.818,264,4.818,291,2.457,292,4.481,302,4.45,340,1.623,345,1.075,349,1.237,359,2.027,379,0.422,382,3.431,429,3.924,437,1.588,480,2.637,490,2.472,528,1.759,529,2.955,539,0.729,541,0.809,543,8.094,549,2.955,551,3.123,552,2.955,553,2.955,556,0.851,568,2.152,579,1.799,583,9.679,593,2.039,603,1.908,608,3.035,651,3.33,652,3.33,653,3.603,662,1.732,696,2.172,708,2.288,815,2.98,1117,3.341,1154,1.343,1178,1.813,1179,3.661,2148,3.341,2777,5.801,3115,2.246,3116,2.181,3491,2.73,3928,2.73,7933,2.83,7934,2.955,10763,2.049,11598,4.586,12660,2.646,12681,4.613,12692,5.091,12693,5.091,12694,5.091,12695,5.091,12696,7.434,12697,6.445,12698,6.445,12699,5.091,12700,5.091,12701,5.091,12702,7.434,12707,5.091,12710,5.091,12711,5.091,12713,5.091,12716,5.091,12717,7.434,12720,3.123,12721,9.26,12723,8.781,12725,3.123,12726,8.187,12732,2.646,13240,5.848,13243,2.512,13248,2.575,13250,2.575,13263,3.123,13266,5.091,13289,6.498,13529,7.034,13564,5.507,13565,5.507,13566,3.378,13567,3.378,13568,5.507,13569,3.378,13570,5.507,13571,7.747,13572,3.378,13573,5.507,13574,3.378,13575,3.378,13576,3.378,13577,5.507,13578,3.378,13579,3.378,13580,3.378,13581,3.378,13582,3.378,13583,5.507,13584,3.378,13585,5.507,13586,3.378,13587,2.955,13588,10.443,13589,3.378,13590,5.507,13591,5.507,13592,5.507,13593,2.955,13594,2.955,13595,2.955,13596,3.378,13597,5.507,13598,5.507,13599,3.378,13600,3.378,13601,3.378,13602,5.507,13603,3.378,13604,6.971,13605,3.378,13606,6.971,13607,5.507,13608,5.507,13609,3.378,13610,8.041,13611,5.507,13612,5.507,13613,3.378,13614,3.378,13615,2.955,13616,3.378,13617,3.378,13618,3.378,13619,3.378,13620,3.378,13621,3.378,13622,3.378,13623,3.378,13624,3.378,13625,5.507,13626,5.507,13627,6.971,13628,6.971,13629,3.378,13630,2.955,13631,5.091,13632,3.123,13633,3.378,13634,3.378,13635,3.378,13636,3.378,13637,3.378,13638,3.378,13639,3.378,13640,3.378,13641,3.378,13642,3.378]],["title/controllers/KeycloakManagementController.html",[259,2.591,13319,5.958]],["body/controllers/KeycloakManagementController.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.329,30,0.001,35,1.255,36,2.223,55,2.248,72,4.741,78,7.836,95,0.147,101,0.013,103,0.001,104,0.001,138,1.463,177,1.912,208,3.826,223,3.312,226,1.15,236,1.309,259,3.06,261,3.82,262,2.542,345,2.56,349,1.079,529,2.276,579,4.285,603,1.616,608,2.674,708,3.342,933,6.201,1178,4.319,1179,5.348,1278,2.545,1844,6.843,2192,6.5,2253,3.297,2254,4.716,2777,6.843,2903,4.546,3063,5.348,6221,6.946,11598,5.958,11599,6.411,11604,7.77,11605,6.302,11606,6.302,11644,9.62,13319,9.139,13643,10.446,13644,7.437,13645,8.044,13646,12.28,13647,10.446,13648,8.044,13649,10.446,13650,10.446,13651,8.441,13652,8.441,13653,10.446,13654,9.658,13655,10.446,13656,11.601,13657,8.044,13658,8.044,13659,8.044,13660,8.044,13661,8.044,13662,8.044,13663,8.044,13664,8.044]],["title/injectables/KeycloakMigrationService.html",[539,0.901,13317,5.705]],["body/injectables/KeycloakMigrationService.html",[0,0.195,3,0.013,4,0.013,5,0.007,7,0.087,8,0.994,27,0.399,29,0.758,30,0.001,31,0.545,32,0.146,33,0.467,34,1.413,35,0.996,36,2.267,51,4.734,55,1.785,66,7.296,70,4.858,87,2.888,94,5.184,95,0.149,101,0.009,103,0,104,0,143,1.846,145,2.303,177,1.781,179,6.979,226,0.822,236,0.935,262,2.579,349,1.005,379,1.037,425,7.078,429,6.934,434,4.814,437,1.607,438,9.85,480,2.303,486,1.729,521,3.285,529,1.626,539,1.098,541,1.376,568,3.661,579,3.061,595,3.614,603,2.364,608,2.863,617,9.25,696,4.456,697,4.18,708,4.042,710,3.947,790,4.814,825,5.356,828,4.417,875,4.814,890,4.644,996,3.961,997,3.915,998,3.915,1117,3.486,1178,3.085,1179,5.514,1278,1.818,1380,4.502,1544,4.274,2137,4.644,2253,3.988,2254,4.81,2899,3.448,3928,4.644,8065,4.274,8393,4.274,10763,3.486,10793,4.38,11472,6.947,11598,6.077,11599,6.539,11614,8.612,11656,5.909,12732,4.502,13240,7.749,13243,4.274,13248,4.38,13250,4.38,13289,4.644,13317,6.947,13331,9.321,13345,4.814,13348,6.947,13399,5.027,13571,7.255,13587,5.027,13593,5.027,13594,5.027,13595,5.027,13615,5.027,13630,5.027,13665,4.814,13666,7.667,13667,5.746,13668,7.667,13669,5.746,13670,8.293,13671,5.746,13672,4.814,13673,5.746,13674,9.731,13675,5.746,13676,5.746,13677,8.293,13678,5.313,13679,5.746,13680,5.746,13681,5.746,13682,7.667,13683,5.313,13684,7.667,13685,5.313,13686,5.313,13687,5.313,13688,7.667,13689,7.667,13690,9.731,13691,5.746,13692,5.313,13693,5.746,13694,5.746,13695,5.746]],["title/modules/KeycloakModule.html",[201,1.804,12672,5.503]],["body/modules/KeycloakModule.html",[0,0.278,3,0.019,4,0.019,5,0.01,30,0.001,95,0.169,101,0.013,103,0.001,104,0.001,201,3.097,203,2.94,204,3.159,205,3.251,206,3.238,207,3.224,208,4.282,209,4.396,214,6.078,218,4.198,219,3.185,220,3.11,225,4.163,226,1.169,568,5.208,600,5.078,963,4.707,1278,2.586,2777,6.915,3939,7.019,7933,6.848,8336,9.528,8926,5.715,11598,4.663,12671,10.262,12672,11.448,12675,6.848,12676,6.606,12677,7.152,12679,11.677,12681,11.677,13247,8.843,13696,8.175,13697,8.175,13698,8.175,13699,8.175,13700,8.175]],["title/classes/KeycloakSeedService.html",[0,0.231,13316,5.705]],["body/classes/KeycloakSeedService.html",[0,0.161,2,0.529,3,0.011,4,0.011,5,0.006,7,0.072,8,0.86,10,1.921,27,0.449,29,0.675,30,0.001,31,0.486,32,0.132,33,0.416,34,1.222,35,1.251,36,2.608,51,4.221,55,1.544,87,2.376,94,4.221,95,0.149,101,0.008,103,0,104,0,143,2.157,145,1.312,168,2.696,177,1.588,179,4.701,226,0.676,239,2.515,262,2.854,284,2.217,292,2.392,349,1.177,379,0.897,429,5.114,434,3.96,437,1.634,480,1.993,486,1.422,521,4.125,528,2.461,568,3.012,603,2.537,608,3.048,639,2.218,651,2.258,652,2.258,653,2.443,662,2.728,676,5.114,696,4.107,697,5.22,708,3.604,710,3.247,875,3.96,890,3.82,931,9.628,938,4.37,996,4.975,997,4.916,998,4.916,1117,2.868,1278,1.495,1380,3.703,2020,2.069,2036,3.193,2137,3.82,2148,2.868,2161,2.696,2253,3.556,2254,4.373,3063,4.962,3115,3.143,3116,3.053,3491,3.82,3928,3.82,6641,3.82,7870,6.772,8065,3.516,10227,5.017,10362,6.278,10395,6.635,10396,6.635,10411,4.37,10763,2.868,11472,8.114,11598,6.498,11599,6.993,11602,5.622,12070,9.111,12074,9.111,12076,8.114,12081,4.135,12660,3.703,12732,3.703,13236,3.703,13240,7.045,13243,3.516,13248,3.603,13250,3.603,13289,7.01,13309,4.135,13316,6.012,13331,9.967,13345,3.96,13348,6.012,13399,7.589,13420,4.135,13421,4.135,13502,6.635,13571,6.278,13587,4.135,13593,4.135,13594,4.135,13595,4.135,13615,6.278,13630,4.135,13632,4.37,13666,6.635,13668,6.635,13678,4.37,13682,6.635,13683,4.37,13684,6.635,13685,4.37,13686,4.37,13687,4.37,13688,6.635,13689,6.635,13692,4.37,13701,4.727,13702,9.686,13703,9.686,13704,8.675,13705,4.727,13706,4.727,13707,4.727,13708,4.727,13709,4.727,13710,4.727,13711,4.727,13712,7.176,13713,4.727,13714,4.727,13715,4.727,13716,8.675,13717,4.727,13718,4.727,13719,4.727,13720,4.727,13721,4.727,13722,9.686,13723,4.727,13724,4.727,13725,4.37,13726,4.727,13727,4.727,13728,4.727,13729,4.727,13730,4.727,13731,4.727,13732,4.727,13733,7.176,13734,4.727]],["title/classes/LdapAlreadyPersistedException.html",[0,0.231,13735,5.503]],["body/classes/LdapAlreadyPersistedException.html",[0,0.407,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.411,29,0.59,30,0.001,31,0.424,32,0.104,33,0.363,35,0.91,47,0.881,52,5.381,55,1.63,59,2.353,95,0.127,101,0.02,103,0.001,104,0.001,157,4.962,180,2.237,226,1.083,239,2.585,349,1.164,379,0.947,590,6.163,654,3.351,935,4.826,1025,4.407,1275,5.727,1276,6.405,1278,2.396,1280,3.75,1281,6.321,2621,5.783,4484,5.961,4508,5.033,8369,6.451,8370,6.701,8469,10.366,12941,5.202,13735,8.115,13736,9.437,13737,5.634,13738,10.086,13739,10.049,13740,7.575,13741,10.049,13742,7.575,13743,6.345,13744,6.345,13745,6.121,13746,8.413,13747,5.509,13748,6.121]],["title/classes/LdapAuthorizationBodyParams.html",[0,0.231,13749,5.705]],["body/classes/LdapAuthorizationBodyParams.html",[0,0.381,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.524,30,0.001,32,0.175,47,0.972,48,5.804,51,5.947,87,6.144,95,0.142,101,0.015,103,0.001,104,0.001,112,0.891,138,2.328,148,2.855,150,2.05,245,3.453,248,5.101,807,4.988,808,7.334,4209,4.146,5876,8.16,7399,9.065,13749,9.398,13750,13.168,13751,7.871,13752,8.319,13753,8.997,13754,8.997,13755,8.997]],["title/classes/LdapConfig.html",[0,0.231,12343,4.953]],["body/classes/LdapConfig.html",[0,0.301,2,0.449,3,0.009,4,0.009,5,0.005,7,0.061,26,1.658,27,0.505,29,0.313,30,0.001,31,0.225,32,0.174,33,0.639,47,1.007,83,3.15,95,0.113,96,1.103,101,0.016,103,0,104,0,105,0.433,112,0.502,119,1.287,120,1.766,133,1.404,138,2.21,143,3.064,144,4.369,145,1.115,153,0.913,154,1.673,160,6.816,172,4.473,173,1.187,174,2.515,175,1.775,177,1.432,178,1.668,180,0.719,181,1.074,182,1.306,276,1.707,379,0.502,511,1.794,570,2.464,578,2.436,838,2.453,949,2.464,1198,3.321,1310,2.436,1393,2.861,1425,2.494,1603,1.51,1962,2.593,1987,2.986,2503,3.269,2507,1.794,4275,3.451,4313,4.507,4347,2.409,4620,4.589,5505,1.631,5590,3.158,5768,3.223,5788,2.558,5789,2.757,6264,3.395,7205,2.525,7292,2.712,7348,3.837,8549,2.173,8887,2.712,9872,5.126,10378,2.269,11442,6.626,11523,2.986,11524,2.986,11525,2.986,11526,3.06,11570,2.757,11573,2.669,11575,2.757,11578,2.757,11581,2.464,11585,2.712,11626,5.126,12048,3.06,12232,2.861,12340,4.821,12341,3.244,12342,4.205,12343,8.092,12344,7.173,12345,3.978,12346,4.422,12347,5.126,12348,2.669,12349,2.669,12350,3.244,12351,4.344,12352,4.704,12353,3.145,12354,4.704,12355,3.06,12356,3.06,12357,3.06,12358,3.06,12359,3.145,12360,3.06,12361,3.06,12362,3.06,12363,3.145,12364,4.704,12365,3.145,12366,3.06,12367,3.145,12368,3.06,12369,3.06,12370,3.06,12371,3.145,12372,4.344,12373,5.111,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,3.244,12383,3.244,12384,3.244,12385,3.145,12386,3.244,12387,3.244,12388,3.244,12389,3.244,12390,3.244,12391,3.244,12392,3.244,12393,3.244,12394,3.244,12395,6.324,12396,6.324,12397,6.324,12398,6.324,12399,6.324,12400,6.324,12401,6.324,12402,6.324,12403,2.986,12404,3.244,12405,3.244,12406,3.244,12407,3.244,12408,3.244,12409,3.244,12410,3.244,12411,3.244,12412,3.244,12413,3.244,12414,3.244,12415,3.244,12416,3.244,12417,3.244,12418,3.06,12419,3.244,12420,2.986,12421,3.145,12422,3.06,12423,3.145,12424,3.06,12425,3.06,12426,3.145,12427,3.06,12428,3.145,12429,3.06,12430,2.92,12431,2.92,12432,2.92,12433,2.986,12434,3.06,12435,3.244,12436,3.06,12437,3.244,12438,3.244,12439,3.244,12440,3.244,12441,3.244,12442,3.06,12443,3.145,12444,3.06,12445,3.145,13756,4.015,13757,4.015,13758,4.015,13759,4.015,13760,4.015,13761,4.015,13762,4.015,13763,4.015,13764,4.015,13765,4.015,13766,4.015,13767,4.015,13768,4.015]],["title/classes/LdapConnectionError.html",[0,0.231,13769,5.958]],["body/classes/LdapConnectionError.html",[0,0.265,2,0.874,3,0.018,4,0.018,5,0.009,7,0.118,8,1.228,27,0.54,29,0.608,30,0.001,31,0.437,32,0.187,33,0.549,35,0.938,47,0.807,55,1.681,59,2.427,95,0.13,101,0.013,103,0.001,104,0.001,112,0.814,138,2.293,177,2.5,180,1.836,182,2.54,226,1.117,340,3.753,347,2.86,379,0.977,382,3.904,595,6.444,820,5.571,823,2.74,950,5.306,988,5.236,990,4.105,1025,4.474,1205,8.304,1206,7.19,1207,3.876,1208,7.286,1212,5.044,1213,4.335,1214,5.044,1215,5.044,1216,5.044,1217,5.044,1218,5.044,1219,4.686,1220,4.454,1226,4.912,11629,7.038,12941,7.038,13769,8.964,13770,10.247,13771,7.81,13772,8.584,13773,7.81,13774,7.81,13775,7.81]],["title/injectables/LdapService.html",[539,0.901,1364,5.705]],["body/injectables/LdapService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.119,27,0.437,29,0.83,30,0.001,31,0.597,32,0.146,33,0.511,35,1.121,36,2.442,47,0.956,51,6.192,87,6.515,95,0.158,99,1.133,101,0.011,103,0.001,104,0.001,177,1.244,226,0.971,236,1.734,239,1.559,262,2.336,292,3.438,338,4.932,345,2.163,349,0.964,379,0.85,437,1.379,529,2.64,539,1.235,541,1.626,603,2.141,608,1.566,697,4.942,990,2.297,1163,4.842,1164,5.323,1179,7.629,1180,5.944,1198,2.336,1278,2.15,1364,7.818,1818,6.205,1912,3.135,2253,3.825,2254,5.18,2943,4.589,3075,5.236,3506,5.49,3542,4.35,3903,5.944,3905,5.944,8009,8.164,8549,6.888,11629,4.667,12343,6.788,12385,5.323,12941,4.667,13435,7.113,13769,8.164,13776,6.794,13777,9.332,13778,6.794,13779,9.332,13780,6.794,13781,9.332,13782,6.794,13783,6.282,13784,6.794,13785,6.794,13786,6.794,13787,6.794,13788,6.794,13789,6.794,13790,6.794,13791,6.794,13792,4.842,13793,6.794,13794,6.794,13795,6.794,13796,6.794,13797,6.794,13798,6.794,13799,8.628,13800,6.794,13801,6.794,13802,6.794,13803,6.794,13804,6.282,13805,5.692,13806,6.794,13807,6.794]],["title/injectables/LdapStrategy.html",[539,0.901,1365,5.958]],["body/injectables/LdapStrategy.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.066,8,0.804,27,0.433,29,0.86,30,0.001,31,0.656,32,0.167,33,0.508,34,0.737,35,1.202,36,2.252,39,1.164,47,0.895,48,5.684,51,5.15,66,6.835,72,1.963,87,5.888,94,5.699,95,0.159,99,0.722,101,0.007,103,0,104,0,105,0.467,120,4.068,128,2.7,141,3.202,142,2.623,177,1.937,179,4.391,180,1.201,182,1.407,217,6.624,226,0.618,227,1.781,236,1.504,239,2.296,253,2.118,262,2.567,270,3.282,292,2.189,294,3.37,324,3.393,349,0.955,358,1.903,379,0.838,437,1.548,479,3.965,480,2.567,521,1.713,529,2.616,539,0.887,541,1.035,556,2.329,579,3.571,593,3.424,603,2.634,604,1.757,608,2.7,622,7.698,631,2.22,654,3.148,937,2.491,990,3.126,1154,1.72,1178,3.599,1179,4.458,1241,2.467,1249,5.301,1278,1.368,1361,8.212,1364,9.249,1365,5.865,1366,6.464,1374,3.217,1385,3.624,1386,3.999,1393,3.082,1521,6.198,1533,6.198,1544,3.217,1666,1.83,1818,5.458,1832,3.389,1905,5.603,2034,2.444,2253,4.525,2401,3.297,3075,5.207,3565,3.389,3612,3.024,4150,3.999,4209,3.136,4214,6.656,4551,2.922,4692,3.517,6165,4.391,6654,2.922,7130,3.217,8120,4.876,8356,5.417,8384,3.297,8549,5.415,10425,3.389,12056,3.217,12138,6.633,12196,2.971,12941,6.351,13172,3.389,13176,5.616,13181,3.624,13749,6.877,13792,3.082,13808,4.326,13809,7.589,13810,6.704,13811,6.704,13812,3.784,13813,4.326,13814,4.326,13815,4.326,13816,6.704,13817,4.326,13818,6.704,13819,4.326,13820,4.326,13821,6.198,13822,4.326,13823,4.326,13824,3.999,13825,4.326,13826,4.326,13827,3.999,13828,3.624,13829,3.999,13830,4.326,13831,3.784,13832,4.326,13833,4.326,13834,3.999,13835,4.326,13836,4.326,13837,3.999,13838,6.198,13839,3.999,13840,3.999,13841,4.326,13842,3.999,13843,7.589,13844,4.326,13845,3.784,13846,4.326,13847,4.326,13848,3.999,13849,6.704,13850,3.784,13851,4.326,13852,3.217,13853,4.326,13854,6.704,13855,4.326,13856,4.326,13857,4.326]],["title/classes/LdapUserMigrationException.html",[0,0.231,13738,5.503]],["body/classes/LdapUserMigrationException.html",[0,0.42,2,0.917,3,0.019,4,0.019,5,0.01,30,0.001,47,0.826,52,5.59,55,1.763,95,0.134,101,0.02,103,0.001,104,0.001,157,5.366,180,2.294,226,1.171,239,1.879,349,1.209,590,6.487,654,3.481,935,5.219,1025,4.578,1275,5.674,1276,6.345,1278,2.591,1280,3.658,1281,5.767,2621,6.738,4484,6.274,4508,3.659,8369,6.391,8370,6.638,8469,9.992,12941,5.626,13735,6.619,13736,6.862,13737,6.093,13738,10.343,13739,9.803,13741,9.803,13743,6.862,13744,6.862,13745,6.619,13746,8.855,13747,5.958,13748,6.619]],["title/modules/LearnroomApiModule.html",[201,1.804,13858,5.503]],["body/modules/LearnroomApiModule.html",[0,0.213,3,0.015,4,0.015,5,0.007,30,0.001,95,0.169,101,0.01,103,0,104,0,201,2.704,203,2.253,204,2.421,205,2.492,206,2.481,207,2.471,208,3.739,209,2.356,217,7.268,218,3.508,219,2.441,220,2.383,222,3.892,223,3.631,225,4.026,226,0.896,227,2.579,358,2.756,636,3.643,1692,6.61,1737,9.01,1744,7.349,1745,7.935,1773,3.419,1885,2.615,2472,2.844,2705,2.958,2944,9.01,2984,3.801,2985,3.509,3672,4.166,4443,4.557,6406,8.811,6671,8.93,6685,10.148,6687,10.148,6763,10.148,7432,8.93,7449,10.148,7711,9.49,7796,6.91,7816,4.776,8127,9.49,8218,9.789,8454,4.776,9707,4.232,10509,5.063,10510,5.063,13858,11.654,13859,6.265,13860,6.265,13861,6.265,13862,8.632,13863,9.01,13864,10.148,13865,10.148,13866,10.148,13867,6.265,13868,8.93,13869,5.481,13870,6.265,13871,6.265,13872,6.265,13873,6.265,13874,5.793,13875,6.265,13876,5.793]],["title/modules/LearnroomModule.html",[201,1.804,13862,4.853]],["body/modules/LearnroomModule.html",[0,0.224,3,0.015,4,0.015,5,0.008,30,0.001,95,0.163,101,0.011,103,0.001,104,0.001,201,2.777,203,2.368,204,2.544,205,2.618,206,2.607,207,2.596,208,3.839,209,3.942,214,5.709,217,7.383,218,3.631,219,2.565,220,2.504,225,3.601,226,0.941,227,2.71,560,2.71,636,3.828,1278,2.083,1744,7.466,1745,8.06,1770,9.152,1771,4.788,1852,9.103,2932,10.308,2944,9.152,2984,3.994,2985,3.686,4923,10.308,5042,11.289,6406,8.95,6708,10.89,6715,10.89,7711,9.64,7796,7.153,8454,5.018,13862,10.288,13863,9.152,13869,5.759,13876,6.086,13877,6.583,13878,6.583,13879,6.583,13880,6.583,13881,9.152,13882,6.583,13883,6.086]],["title/injectables/LegacyLogger.html",[539,0.901,2254,3.074]],["body/injectables/LegacyLogger.html",[0,0.308,3,0.012,4,0.012,5,0.006,7,0.077,8,1.205,27,0.511,29,0.955,30,0.001,31,0.71,32,0.168,33,0.589,35,1.442,47,0.97,59,3.628,72,2.308,95,0.143,101,0.008,102,2.556,103,0,104,0,107,1.22,112,0.602,131,5.242,177,0.931,226,0.727,236,0.827,284,3.104,349,0.783,358,3.336,379,0.636,437,0.981,462,2.823,472,2.688,480,1.412,486,2.281,519,3.926,539,1.004,541,1.217,556,2.284,560,3.122,572,5.94,603,2.508,639,2.387,739,2.226,990,2.563,1025,4.884,1154,4.644,1231,5.515,1241,2.901,1280,2.834,1965,2.799,2253,5.027,2254,3.423,2309,3.24,2943,3.435,3249,3.381,3857,3.24,4546,5.515,5231,3.198,5505,3.081,5520,5.041,7874,3.284,8391,8.39,8412,8.791,8422,4.449,8423,5.94,8426,4.449,9708,7.326,10425,3.984,10911,6.352,11787,4.831,12089,9.403,12092,4.449,12093,6.633,12094,7.01,12096,7.01,12097,9.291,12099,7.01,12100,8.791,12102,7.01,12104,7.01,13884,12.672,13885,5.086,13886,7.582,13887,9.291,13888,9.291,13889,7.582,13890,7.582,13891,5.086,13892,5.086,13893,5.086,13894,5.086,13895,5.086,13896,7.01,13897,5.086,13898,7.582,13899,5.086,13900,5.086,13901,7.582,13902,7.582,13903,6.633,13904,5.94,13905,7.582,13906,5.086,13907,5.086,13908,4.702,13909,4.11,13910,5.086,13911,4.11,13912,4.702,13913,4.11,13914,5.086,13915,5.086,13916,5.086,13917,5.086,13918,5.086,13919,6.633,13920,5.086,13921,4.702,13922,4.702]],["title/modules/LegacySchoolApiModule.html",[201,1.804,13923,5.503]],["body/modules/LegacySchoolApiModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,52,3.85,95,0.171,101,0.013,102,6.177,103,0.001,104,0.001,128,3.247,201,3.076,203,2.899,204,3.115,205,3.206,206,3.192,207,3.179,208,4.253,209,3.031,214,6.055,218,4.16,219,3.14,220,3.066,222,5.006,223,4.306,225,4.125,226,1.152,654,2.397,949,4.947,1278,2.55,1692,7.121,1905,5.857,2472,3.658,2705,3.805,3544,4.079,5381,8.314,9862,5.28,13923,11.43,13924,8.06,13925,8.06,13926,8.06,13927,9.948,13928,10.932,13929,10.932,13930,6.752,13931,7.453,13932,10.159,13933,8.06,13934,8.06,13935,8.06,13936,7.452]],["title/controllers/LegacySchoolController.html",[259,2.591,13932,5.958]],["body/controllers/LegacySchoolController.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,8,1.103,27,0.377,29,0.717,30,0.001,31,0.516,32,0.169,33,0.442,35,1.106,36,2.421,95,0.16,100,2.237,101,0.011,102,5.718,103,0.001,104,0.001,138,1.674,150,1.517,153,2.397,177,1.685,223,2.742,226,0.952,236,1.497,259,2.533,261,3.162,262,2.706,270,6.198,274,5.522,292,5.757,294,6.582,324,4.658,333,4.463,337,3.442,338,3.52,343,5.618,345,2.12,349,0.951,437,1.471,517,3.529,603,1.338,608,2.122,654,3.137,739,4.98,1905,5.154,2705,3.144,2904,3.575,3720,5.406,4022,4.188,9862,6.909,13928,7.71,13929,8.835,13931,6.558,13932,8.052,13936,6.157,13937,10.547,13938,6.157,13939,9.751,13940,9.227,13941,6.659,13942,11.713,13943,6.659,13944,11.377,13945,6.659,13946,9.204,13947,6.659,13948,6.659,13949,11.074,13950,6.659,13951,6.659,13952,6.659,13953,7.437,13954,8.052,13955,6.694,13956,7.671,13957,8.523,13958,5.579,13959,5.826,13960,9.649,13961,6.659,13962,6.659,13963,6.659,13964,6.659,13965,6.558,13966,6.659,13967,6.659,13968,6.659,13969,6.659,13970,6.659,13971,9.204,13972,6.659,13973,6.659]],["title/classes/LegacySchoolDo.html",[0,0.231,1905,3.813]],["body/classes/LegacySchoolDo.html",[0,0.221,2,0.73,3,0.015,4,0.015,5,0.008,7,0.099,26,2.51,27,0.555,29,0.508,30,0.001,31,0.631,32,0.185,33,0.673,34,1.545,47,0.92,83,2.785,95,0.132,101,0.011,102,5.666,103,0.001,104,0.001,112,0.72,119,1.846,180,2.02,182,2.121,271,2.55,379,0.815,382,1.967,404,2.66,655,5.242,685,3.837,1658,3.911,1666,3.837,1686,7.134,1718,3.82,1775,6.462,1905,6.636,1985,2.593,2442,3.192,3835,6.229,4335,7.879,4352,4.969,5778,4.742,6532,7.162,6540,6.934,6625,4.849,6939,3.87,7249,4.969,8532,6.559,8536,4.849,9289,5.703,9870,7.597,9871,6.913,9872,7.762,10378,5.893,10836,6.735,12194,7.949,12195,7.585,12196,7.162,12197,7.431,12221,7.291,12223,4.849,12224,5.268,12227,4.969,12232,4.645,13974,13.555,13975,6.519,13976,7.934,13977,9.069,13978,6.519,13979,6.519,13980,6.519,13981,6.519,13982,6.519,13983,6.519,13984,6.519,13985,6.519,13986,6.519,13987,6.519,13988,6.027,13989,6.519,13990,6.519,13991,6.519,13992,6.519,13993,6.519,13994,6.519,13995,6.519,13996,6.519,13997,6.519,13998,5.107,13999,6.519,14000,6.519]],["title/classes/LegacySchoolFactory.html",[0,0.231,14001,6.296]],["body/classes/LegacySchoolFactory.html",[0,0.17,2,0.56,3,0.012,4,0.012,5,0.006,7,0.076,8,0.898,27,0.529,29,1.016,30,0.001,31,0.707,32,0.181,33,0.597,34,1.276,35,1.467,47,0.529,55,2.499,59,3.316,95,0.126,99,0.835,101,0.008,103,0,104,0,112,0.595,120,3.295,133,2.619,140,2.802,143,1.114,153,2.041,154,1.919,155,2.5,177,1.371,180,1.342,236,1.621,271,4.865,319,3.382,349,0.517,379,0.626,382,3.901,413,2.307,437,0.647,447,7.114,448,4.592,449,5.633,452,4.233,453,5.633,454,5.671,455,4.233,456,4.233,457,4.233,458,4.158,459,4.607,460,5.073,461,6.572,462,5.925,463,7.063,464,2.854,469,2.827,470,4.233,471,2.854,472,5.268,473,5.439,474,4.258,475,5.115,476,4.194,477,2.827,478,2.665,479,4.196,480,3.316,481,2.753,482,2.708,483,2.827,484,5.19,485,2.854,486,3.593,487,4.983,488,2.827,489,7.027,490,4.235,491,6.749,492,2.854,493,3.715,494,2.827,495,2.854,496,2.827,497,2.854,498,2.827,501,2.827,502,6.218,503,2.854,504,2.827,505,4.233,506,3.959,507,4.233,508,2.854,509,2.73,510,2.708,511,2.235,512,2.827,513,2.827,514,2.827,515,2.854,516,2.854,517,1.918,518,2.827,519,1.55,520,2.854,521,2.967,522,2.827,523,2.854,526,2.97,655,2.515,708,4.141,1905,2.802,4317,6.397,4319,3.639,4335,3.327,6540,3.327,8532,3.147,9872,3.277,10378,2.827,12194,3.814,12195,3.639,12196,3.436,12202,4.043,12403,3.721,14001,6.925,14002,5.003,14003,5.003,14004,5.003,14005,5.003,14006,5.003,14007,5.003,14008,5.003,14009,5.003,14010,5.003,14011,9.968,14012,3.814,14013,3.814,14014,3.814,14015,5.003,14016,5.003,14017,5.003,14018,5.003]],["title/modules/LegacySchoolModule.html",[201,1.804,5381,4.339]],["body/modules/LegacySchoolModule.html",[0,0.261,3,0.018,4,0.018,5,0.009,30,0.001,95,0.159,101,0.013,102,6.061,103,0.001,104,0.001,201,3.004,203,2.761,204,2.966,205,3.053,206,3.04,207,3.027,208,4.153,209,4.264,214,5.974,218,4.029,219,2.99,220,2.92,225,3.996,226,1.097,227,3.16,560,3.16,1278,2.428,1366,9.002,1900,8.686,1905,5.673,2428,4.154,5381,9.116,9855,10.787,9861,11.57,9862,5.028,13930,6.43,13931,7.219,14019,7.676,14020,7.676,14021,7.676,14022,7.676,14023,11.57,14024,10.787,14025,10.787,14026,7.676]],["title/injectables/LegacySchoolRepo.html",[539,0.901,1366,4.761]],["body/injectables/LegacySchoolRepo.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.8,10,2.71,12,3.061,18,3.376,26,2.531,27,0.533,29,1.005,30,0.001,31,0.734,32,0.176,33,0.619,34,1.57,35,1.537,36,2.589,40,2.078,47,0.825,48,4.737,95,0.134,96,1.833,97,1.863,99,0.717,101,0.007,102,4.631,103,0,104,0,112,0.341,133,2.333,154,1.97,173,1.271,177,1.221,180,1.195,226,0.614,236,1.33,262,2.87,292,2.175,349,1.09,379,0.537,381,1.444,382,3.777,437,1.192,448,3.351,519,1.331,529,1.216,539,0.883,541,1.029,556,1.083,593,3.694,603,2.287,608,1.538,644,5.196,654,1.984,655,4.631,680,4.664,686,3.149,687,5.048,708,1.785,718,2.386,1162,2.053,1278,1.36,1366,4.664,1604,3.459,1905,6.813,1941,2.451,2240,8.864,2242,4.753,2243,4.753,2244,4.753,2245,4.753,2246,4.664,2247,4.664,2248,4.753,2249,4.664,2250,4.753,2251,3.126,2252,5.306,2253,3.777,2254,4.16,2256,4.852,2257,3.063,2259,5.306,2260,3.063,2262,3.063,2264,2.815,2265,4.664,2266,3.063,2268,3.063,2270,4.753,2274,4.753,2276,4.506,2277,4.664,2279,3.063,2281,2.579,2282,2.638,2283,3.063,2285,3.063,2287,3.005,2288,3.063,2294,2.903,4335,4.435,4389,2.738,4390,3.367,4523,2.67,5931,3.126,5932,3.126,5933,3.126,5934,3.126,5935,3.126,5936,3.126,5937,3.126,5938,3.126,5939,3.126,5947,3.276,5949,3.879,6540,4.435,8532,6.639,8549,3.61,9091,3.276,9174,3.76,9872,4.37,10116,4.195,10378,4.62,11120,3.6,12192,8.27,12194,5.085,12195,4.852,12196,4.582,12198,3.197,12221,3.005,13087,7.446,13792,3.063,13931,4.753,14027,9.975,14028,4.298,14029,5.836,14030,6.671,14031,4.298,14032,4.298,14033,5.836,14034,4.298,14035,6.671,14036,4.298,14037,4.298,14038,4.298,14039,4.298,14040,3.974,14041,4.298,14042,4.298,14043,4.298,14044,4.298,14045,4.298,14046,4.298,14047,4.298,14048,3.974,14049,4.298,14050,4.298,14051,3.974,14052,4.298,14053,4.298,14054,4.298,14055,4.298,14056,4.298,14057,4.298,14058,3.974,14059,4.298,14060,4.298,14061,4.298,14062,3.974,14063,4.298,14064,4.298,14065,4.298,14066,4.298,14067,3.974,14068,6.671,14069,4.298,14070,4.298]],["title/injectables/LegacySchoolRule.html",[539,0.901,1706,5.705]],["body/injectables/LegacySchoolRule.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.205,27,0.462,29,0.878,30,0.001,31,0.632,32,0.164,33,0.541,35,1.208,95,0.163,99,1.266,101,0.013,102,6.034,103,0.001,104,0.001,119,2.443,131,4.224,133,4.367,154,2.41,177,1.389,226,1.085,239,3.087,345,2.416,349,1.039,379,0.949,437,1.3,539,1.331,541,1.817,604,3.083,662,4.036,1280,2.372,1600,6.981,1609,6.497,1637,7.972,1658,4.553,1675,7.284,1686,6.981,1687,4.714,1706,8.423,1816,6.493,1820,6.245,1827,5.046,1905,7.332,3352,6.685,3353,5.126,3356,6.586,3359,5.126,3360,6.791,3361,5.645,4389,4.835,6055,5.408,13931,7.165,14071,12.005,14072,7.589,14073,7.589,14074,7.589,14075,7.589]],["title/injectables/LegacySchoolService.html",[539,0.901,1900,4.283]],["body/injectables/LegacySchoolService.html",[0,0.197,3,0.014,4,0.014,5,0.007,7,0.088,8,1.001,18,4.227,26,2.578,27,0.498,29,0.948,30,0.001,31,0.682,32,0.166,33,0.584,34,0.989,35,1.419,36,2.803,47,0.93,48,5.083,95,0.136,99,0.968,101,0.01,102,5.38,103,0,104,0,145,2.717,154,1.241,177,1.529,226,0.83,227,2.39,262,3.002,349,1.172,379,1.045,437,1.528,480,1.612,486,1.746,502,3.222,539,1.106,541,1.389,593,3.094,603,1.678,608,2.871,654,2.485,655,2.917,1225,3.562,1366,7.483,1900,5.254,1905,7.378,4209,2.834,6165,7.011,6780,7.86,9862,8.159,12138,6.75,12197,8.876,13087,9.545,13631,7.723,13827,7.723,13931,5.952,14024,10.196,14048,5.367,14076,12.456,14077,5.804,14078,8.353,14079,8.353,14080,8.353,14081,8.353,14082,8.353,14083,5.367,14084,5.804,14085,8.353,14086,5.804,14087,8.353,14088,5.804,14089,8.353,14090,5.804,14091,5.804,14092,8.353,14093,5.804,14094,8.353,14095,5.804,14096,8.353,14097,5.804,14098,5.804,14099,8.353,14100,5.804,14101,5.804,14102,8.353,14103,5.804,14104,5.804,14105,5.804,14106,5.804]],["title/injectables/LegacySchoolUc.html",[539,0.901,13928,5.705]],["body/injectables/LegacySchoolUc.html",[0,0.182,3,0.012,4,0.012,5,0.006,7,0.081,8,0.944,27,0.422,29,0.802,30,0.001,31,0.577,32,0.141,33,0.494,35,1.122,36,2.192,39,3.088,47,0.915,52,2.555,95,0.146,99,0.892,101,0.009,102,5.177,103,0,104,0,119,2.53,128,2.155,131,2.948,177,2.009,226,0.765,236,1.28,239,2.634,262,2.515,349,0.813,379,0.984,437,1.608,519,2.438,539,1.042,541,1.28,556,2.765,560,2.202,593,2.915,603,2.446,608,2.865,643,2.377,654,3.622,932,4.332,1615,3.245,1666,2.263,1698,5.444,1899,4.323,1900,6.477,1902,5.156,1905,6.819,1907,6.361,2472,2.428,3544,2.707,4209,3.723,4514,8.457,4515,8.828,4516,9.591,4521,6.652,4523,6.818,4527,4.191,4530,4.191,4533,5.855,4534,4.68,4536,6.886,4537,4.946,4538,4.946,4539,4.946,4685,8.17,7816,4.078,9862,7.19,13928,6.594,13931,5.609,13939,7.277,13940,8.17,13957,8.87,13959,4.68,13965,7.339,14012,8.751,14013,8.751,14014,8.751,14107,10.977,14108,5.349,14109,7.871,14110,5.349,14111,7.871,14112,5.349,14113,7.316,14114,7.871,14115,5.349,14116,4.946,14117,5.349,14118,4.946,14119,4.68,14120,5.349,14121,4.946,14122,3.979,14123,7.871,14124,6.361,14125,7.871,14126,7.277,14127,5.349,14128,5.349,14129,5.349,14130,7.871,14131,10.3,14132,4.946,14133,5.349,14134,5.349,14135,6.594,14136,5.349,14137,6.594,14138,4.481,14139,4.946,14140,5.349,14141,5.349]],["title/modules/LessonApiModule.html",[201,1.804,14142,5.503]],["body/modules/LessonApiModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.167,101,0.015,103,0.001,104,0.001,201,3.251,203,3.265,204,3.509,205,3.611,206,3.596,207,3.581,208,4.495,209,3.414,218,4.487,219,3.537,220,3.454,222,5.639,223,4.644,225,4.449,226,1.298,259,3.454,1692,7.343,2472,4.121,2705,4.286,13863,10.009,14142,11.311,14143,9.079,14144,9.079,14145,9.079,14146,11.274,14147,9.079,14148,10.737,14149,9.079]],["title/entities/LessonBoardElement.html",[154,1.456,2636,5.503]],["body/entities/LessonBoardElement.html",[0,0.323,3,0.022,4,0.022,5,0.011,7,0.144,27,0.389,30,0.001,32,0.13,95,0.159,96,2.612,101,0.016,103,0.001,104,0.001,112,0.922,138,1.729,154,2.481,155,3.173,173,2.812,180,1.704,181,2.545,403,5.277,2506,5.373,2607,9.093,2625,6.895,2626,6.647,2629,8.27,2631,7.965,2636,9.379,2680,5.89,2975,7.247,3016,9.723,5040,4.363,5041,8.318,12468,9.723,14150,11.606,14151,8.79,14152,9.508]],["title/controllers/LessonController.html",[259,2.591,14148,5.958]],["body/controllers/LessonController.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.134,8,1.332,10,4.932,27,0.363,29,0.69,30,0.001,31,0.496,32,0.121,33,0.425,35,1.064,36,2.364,95,0.166,100,2.976,101,0.015,103,0.001,104,0.001,138,1.611,150,2.018,177,1.622,223,3.647,226,1.267,259,3.37,261,4.207,262,2.66,270,6.231,294,6.588,333,3.749,337,4.579,338,4.682,343,4.719,345,2.82,349,0.915,437,1.146,608,2.042,739,4.863,2705,4.182,2882,7.277,2904,4.756,5092,5.006,14146,10.168,14148,9.719,14153,8.859,14154,7.421,14155,9.97,14156,11.11,14157,8.859,14158,8.859,14159,8.859,14160,7.421,14161,8.859,14162,8.19]],["title/classes/LessonCopyApiParams.html",[0,0.231,6459,5.705]],["body/classes/LessonCopyApiParams.html",[0,0.388,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.38,30,0.001,32,0.127,33,0.548,34,1.946,47,0.806,95,0.145,100,3.838,101,0.015,103,0.001,104,0.001,112,0.907,138,1.686,148,2.941,149,4.346,150,2.111,153,2.816,249,4.622,253,4.537,807,4.662,1394,8.951,1861,5.917,1867,4.231,2421,6.711,2627,5.104,2637,5.362,2859,6.085,2860,6.085,3307,5.704,6224,9.995,6459,9.571,7102,8.951,10769,8.107,14163,11.425,14164,8.568,14165,8.568]],["title/injectables/LessonCopyUC.html",[539,0.901,13864,5.705]],["body/injectables/LessonCopyUC.html",[0,0.195,3,0.013,4,0.013,5,0.007,7,0.087,8,0.992,26,2.568,27,0.462,29,0.828,30,0.001,31,0.596,32,0.145,33,0.511,35,1.278,36,1.761,39,1.541,95,0.16,99,0.956,101,0.009,103,0,104,0,119,1.166,177,2.066,226,0.819,227,2.359,236,1.346,239,3.015,262,2.129,349,0.592,379,1.035,437,1.636,519,3.496,529,2.342,539,1.095,541,1.372,591,4.677,603,2.72,608,2.453,643,2.547,932,3.153,990,1.937,1025,2.241,1117,5.894,1162,2.737,1615,3.476,1670,4.63,1698,5.624,1744,7.356,1745,7.942,1867,3.941,1872,3.604,2020,2.508,2021,2.806,2022,2.705,2023,3.651,2421,3.366,2471,3.401,2472,2.601,2625,5.964,2637,2.689,2938,6.933,2946,10.157,2948,8.818,2954,9.498,2961,10.872,2966,6.274,2984,3.476,2985,3.209,2988,4.63,3030,5.013,3031,5.013,3032,5.298,3549,6.484,4645,4.368,4692,3.006,5067,5.894,6423,6.933,6461,9.837,6727,6.688,6765,5.013,6766,8.913,6772,5.013,6778,5.013,6779,5.013,6780,3.701,13864,6.933,13869,5.013,14166,11.76,14167,8.276,14168,8.276,14169,5.73,14170,5.73,14171,8.276,14172,5.73,14173,5.73,14174,8.276,14175,5.73,14176,7.652,14177,8.982,14178,5.298,14179,5.73,14180,5.298,14181,5.013,14182,5.73,14183,6.484,14184,5.298,14185,5.73,14186,5.73,14187,5.73,14188,5.73,14189,5.73,14190,5.73,14191,5.73,14192,5.73,14193,8.276,14194,5.73,14195,5.73,14196,5.73,14197,5.73,14198,5.73,14199,8.276,14200,4.8,14201,5.73]],["title/entities/LessonEntity.html",[154,1.456,2625,3.599]],["body/entities/LessonEntity.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.137,26,2.083,27,0.462,30,0.001,31,0.508,32,0.154,33,0.313,47,0.931,55,2.243,95,0.15,96,1.145,101,0.02,103,0,104,0,105,1.216,112,0.517,119,1.326,138,2.05,143,2.19,144,2.146,145,2.226,153,1.823,154,1.392,155,1.391,172,3.598,173,1.233,174,2.591,175,1.843,178,1.732,180,0.747,181,1.116,182,1.356,226,0.596,236,1.696,239,0.956,316,3.497,349,1.267,437,1.586,474,1.781,480,2.226,486,2.412,529,1.843,556,2.02,563,3.867,603,1.308,604,1.694,662,1.311,696,1.644,838,1.307,975,2.294,1154,1.658,1162,1.991,1198,3.116,1207,2.894,1280,1.303,1603,1.568,1657,1.979,1679,2.973,1861,3.112,1867,4.174,1885,1.74,1985,1.658,2196,4.217,2611,4.81,2614,4.946,2618,2.275,2623,4.15,2624,2.449,2625,4.791,2627,3.582,2628,4.046,2637,3.057,2641,4.267,2745,4.791,2823,3.877,3307,4.003,3417,6.185,3436,5.713,3542,1.701,3570,2.914,3571,2.914,4060,3.827,4221,2.622,4285,1.825,4915,2.559,4919,2.622,4920,2.692,5040,1.913,5065,6.754,5076,2.971,5092,2.356,5099,4.15,5104,6.951,5116,2.971,5122,2.971,5127,2.971,5699,7.159,6433,5.331,6436,5.713,6554,4.207,6576,2.589,6586,6.62,6587,2.772,6588,4.267,6590,4.097,6628,4.15,6629,4.331,6654,4.4,6816,3.647,6825,2.589,6826,2.772,8498,4.642,10845,6.122,11876,4.642,11877,3.032,11878,5.108,11879,3.032,11880,4.554,11881,7.134,11882,4.642,11883,2.971,11884,4.642,11885,4.642,11886,4.642,11887,3.032,11888,4.642,11889,2.772,11890,4.642,11891,4.642,11892,3.032,11893,3.032,11894,3.032,11895,4.554,11896,4.554,11897,4.738,11898,4.738,11899,4.738,11900,4.738,11901,5.606,11902,2.914,11903,4.738,11904,3.032,11905,3.032,11906,3.032,11907,2.863,11908,3.032,11909,3.032,11910,4.738,11911,3.032,11912,3.032,11913,6.593,11914,5.832,11915,2.971,11916,3.032,11917,3.032,11918,3.032,11919,3.032,11920,3.032,11921,3.032,11922,3.032,11923,3.032,11924,3.032,11925,3.032,11926,3.032,11927,2.863,11928,3.032,11929,3.032,14202,4.169,14203,4.169,14204,4.169,14205,4.169,14206,4.169,14207,4.169,14208,4.169,14209,4.169,14210,4.169]],["title/classes/LessonFactory.html",[0,0.231,14211,6.296]],["body/classes/LessonFactory.html",[0,0.167,2,0.552,3,0.012,4,0.012,5,0.006,7,0.075,8,0.888,27,0.528,29,1.013,30,0.001,31,0.705,32,0.181,33,0.594,34,1.516,35,1.461,47,0.523,55,2.487,59,3.295,95,0.113,99,0.822,101,0.008,103,0,104,0,112,0.588,120,3.259,133,2.59,140,2.761,145,1.369,153,2.023,154,2.267,155,2.472,177,1.356,180,1.327,271,4.922,319,3.344,349,0.509,379,0.617,382,3.889,413,2.281,437,1.151,447,7.277,448,4.566,449,5.591,452,4.186,453,5.591,454,5.775,455,4.186,456,4.186,457,4.186,458,4.112,459,4.567,460,5.028,461,6.543,462,5.887,463,7.103,464,2.812,469,2.786,470,4.186,471,2.812,472,5.229,473,5.399,474,4.226,475,5.077,476,4.148,477,2.786,478,2.626,479,4.173,480,3.301,481,2.713,482,2.668,483,2.786,484,5.151,485,2.812,486,3.577,487,4.939,488,2.786,489,7.001,490,4.216,491,6.719,492,2.812,493,4.413,494,2.786,495,2.812,496,2.786,497,2.812,498,2.786,499,3.141,500,2.926,501,2.786,502,6.184,503,2.812,504,2.786,505,4.186,506,3.915,507,4.186,508,2.812,509,2.69,510,2.668,511,2.202,512,2.786,513,2.786,514,2.786,515,2.812,516,2.812,517,1.89,518,2.786,519,1.527,520,2.812,521,2.934,522,2.786,523,2.812,526,2.926,1867,4.28,2625,3.915,2637,2.314,3417,4.659,5065,5.088,6791,4.13,6839,4.558,6841,4.558,10845,5.003,11880,3.447,11881,3.229,14211,8.227,14212,4.93,14213,4.93,14214,7.408,14215,4.93,14216,4.93,14217,4.93,14218,4.93]],["title/modules/LessonModule.html",[201,1.804,13863,5.065]],["body/modules/LessonModule.html",[0,0.256,3,0.018,4,0.018,5,0.009,30,0.001,95,0.168,101,0.012,103,0.001,104,0.001,201,2.976,203,2.709,204,2.911,205,2.996,206,2.983,207,2.971,208,4.115,209,4.224,214,5.943,218,3.979,219,2.934,220,2.865,225,3.946,226,1.077,227,3.101,560,3.101,1167,4.737,1278,2.383,1716,6.589,1745,8.39,2946,11.537,2984,4.57,2985,4.218,3533,9.526,3541,3.712,3542,3.074,5052,10.789,6406,9.316,8480,11.205,8484,9.316,13863,10.677,13881,9.526,13883,6.964,14219,7.532,14220,7.532,14221,7.532,14222,7.532,14223,11.205,14224,7.532]],["title/injectables/LessonRepo.html",[539,0.901,1745,4.461]],["body/injectables/LessonRepo.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.089,8,1.01,10,3.422,12,3.865,13,6.127,18,4.263,26,2.735,27,0.512,29,0.951,30,0.001,31,0.684,32,0.174,33,0.586,34,1,35,1.467,36,2.747,39,2.266,40,4.073,42,6.127,59,1.825,95,0.144,96,1.613,98,3.486,99,0.98,101,0.01,103,0,104,0,119,1.195,120,3.706,154,1.255,155,2.811,173,1.737,180,1.509,226,0.84,236,0.955,239,1.347,262,2.978,349,1.177,361,3.318,382,3.247,437,1.58,479,4.895,539,1.115,541,1.406,556,1.479,608,2.626,662,3.097,679,7.174,685,3.564,686,3.976,687,4.985,711,3.604,712,3.647,713,3.604,714,3.647,716,3.604,717,3.647,718,3.259,721,3.693,741,4.033,742,3.966,1745,5.518,1867,3.12,2034,4.76,2625,6.022,2637,5.05,2745,3.104,3417,3.693,3638,4.033,5092,6.081,5104,4.85,5505,3.422,5949,4.898,5951,4.105,6846,4.476,6850,4.476,6969,7.019,10459,7.788,10464,7.369,10465,5.429,10845,3.966,11881,5.518,14225,5.872,14226,8.423,14227,8.423,14228,8.423,14229,5.872,14230,8.423,14231,5.872,14232,5.872,14233,5.872,14234,5.872,14235,7.369,14236,5.872,14237,5.872,14238,5.872,14239,5.872,14240,5.872,14241,5.872,14242,5.872,14243,5.872,14244,5.872,14245,5.872,14246,5.872,14247,5.872,14248,5.872]],["title/injectables/LessonRule.html",[539,0.901,1707,5.503]],["body/injectables/LessonRule.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.074,8,0.878,27,0.485,29,0.922,30,0.001,31,0.663,32,0.166,33,0.568,35,1.382,95,0.14,101,0.008,103,0,104,0,119,2.664,131,3.679,145,2.449,154,2.972,177,1.615,226,0.695,236,0.79,239,3.19,349,1.188,379,0.916,437,1.531,529,1.375,539,0.97,541,1.163,603,2.684,604,1.974,662,3.484,739,5.489,1280,1.519,1454,3.462,1609,5.316,1612,7.593,1613,6.028,1618,2.948,1619,3.23,1627,6.058,1628,4.799,1637,6.882,1658,2.915,1675,4.445,1702,9.293,1703,8.554,1707,5.921,1816,4.732,1820,4.551,1827,3.23,1867,4.103,2625,7.019,3076,4.668,3077,2.745,3196,3.095,3352,4.871,3353,3.282,3356,4.799,3359,3.282,3360,4.949,6228,3.462,6586,5.77,6858,4.25,6860,4.07,6861,6.41,14249,4.858,14250,7.327,14251,7.327,14252,7.327,14253,7.327,14254,7.327,14255,4.858,14256,7.327,14257,4.858,14258,7.327,14259,4.858,14260,4.858,14261,4.858,14262,7.327,14263,4.858,14264,7.327,14265,4.858,14266,6.774,14267,4.858,14268,4.858,14269,9.081,14270,4.858,14271,4.858,14272,4.492,14273,7.327,14274,7.327,14275,4.858,14276,9.822,14277,8.155,14278,7.327,14279,7.327,14280,4.858,14281,4.858,14282,4.492,14283,4.858]],["title/classes/LessonScope.html",[0,0.231,14235,5.958]],["body/classes/LessonScope.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,8,1.213,26,2.553,27,0.538,29,0.938,30,0.001,31,0.675,32,0.179,33,0.578,35,1.448,95,0.128,99,1.278,101,0.013,103,0.001,104,0.001,112,0.803,119,2.619,180,1.813,310,3.32,349,1.045,382,3.78,480,2.127,486,2.305,519,2.373,603,2.585,1867,2.837,2291,6.725,2625,4.049,3417,4.818,5505,5.529,6059,6.834,6060,6.834,6061,6.834,6066,6.834,6067,6.834,6068,5.262,6069,5.175,6070,5.262,6071,5.262,6080,5.175,6081,6.834,6082,5.262,6083,5.175,6084,5.262,6085,5.175,6086,6.834,6846,7.713,7204,6.071,9339,9.355,9343,9.355,10293,6.191,14235,11.259,14284,11.329,14285,9.355,14286,9.355,14287,7.083,14288,7.083,14289,6.702]],["title/injectables/LessonService.html",[539,0.901,5052,5.335]],["body/injectables/LessonService.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.103,8,1.117,12,4.277,26,2.889,27,0.509,29,0.967,30,0.001,31,0.696,32,0.17,33,0.596,35,1.444,36,2.831,39,2.865,95,0.145,98,4.026,99,1.131,101,0.011,103,0.001,104,0.001,177,1.706,226,0.97,227,2.793,262,3.023,349,1.283,379,1.166,437,1.377,510,3.671,539,1.234,541,1.624,603,1.872,608,2.771,1167,4.266,1745,8.135,2625,6.353,2637,4.375,3541,3.342,3542,2.768,5052,7.302,5065,6.402,5067,4.115,5092,6.018,6366,9.065,6843,8.618,6844,8.618,6846,5.17,14181,5.934,14290,6.783,14291,9.321,14292,9.321,14293,9.321,14294,6.783,14295,6.783,14296,9.321,14297,6.783,14298,9.321,14299,6.783,14300,9.321,14301,6.783,14302,6.783,14303,9.321,14304,6.783,14305,6.783,14306,6.783,14307,6.783,14308,9.321,14309,6.783,14310,6.783,14311,6.783,14312,9.321,14313,6.783,14314,6.783]],["title/injectables/LessonUC.html",[539,0.901,14146,5.705]],["body/injectables/LessonUC.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,10,4.381,26,2.845,27,0.442,29,0.84,30,0.001,31,0.604,32,0.147,33,0.517,35,1.015,39,2.273,95,0.159,99,1.409,101,0.014,103,0.001,104,0.001,142,3.305,143,1.881,177,1.974,226,1.208,239,1.939,262,2.602,349,0.873,379,1.348,437,1.093,539,1.427,541,2.023,560,3.479,603,2.166,608,2.485,643,3.755,932,4.65,937,4.865,1154,3.36,1615,5.126,1698,6.984,1796,5.126,2458,6.146,2472,3.835,2476,5.907,2637,5.06,3077,4.775,5052,10.522,5067,7.205,5092,4.775,6586,4.963,14146,9.033,14315,8.45,14316,8.45,14317,9.433,14318,8.45,14319,8.45,14320,8.45,14321,6.828,14322,8.45,14323,8.45,14324,8.45]],["title/classes/LessonUrlParams.html",[0,0.231,14155,5.335]],["body/classes/LessonUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,2637,5.551,3817,5.762,5067,7.705,14155,9.266,14325,9.809,14326,9.809]],["title/classes/LessonUrlParams-1.html",[0,0.192,708,2.352,14155,4.435]],["body/classes/LessonUrlParams-1.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,2637,5.551,3817,5.762,5067,7.705,14155,9.266,14327,9.809,14328,9.809]],["title/classes/LinkContentBody.html",[0,0.231,5714,4.528]],["body/classes/LinkContentBody.html",[0,0.45,2,0.609,3,0.013,4,0.013,5,0.006,7,0.083,9,2.57,27,0.425,30,0.001,31,0.619,32,0.187,33,0.554,47,0.918,83,1.671,95,0.14,99,0.908,101,0.022,103,0,104,0,112,0.633,138,1.889,143,1.212,148,1.727,149,3.589,150,1.24,153,2.513,172,1.738,180,1.981,245,3.607,248,4.98,249,4.673,284,1.681,305,3.134,480,3.069,806,5.08,807,3.253,838,1.706,851,2.6,1198,3.243,1207,3.012,1582,3.165,1883,4.777,2196,4.472,2442,2.665,2823,2.632,2824,2.395,2863,2.682,3219,3.231,3221,3.231,3224,5.542,3227,4.876,3230,2.793,3235,3.048,3708,3.381,3729,3.381,3730,6.707,4104,5.489,5622,6.011,5624,6.093,5626,6.011,5628,6.093,5630,6.093,5675,3.566,5712,6.273,5713,6.273,5714,6.906,5715,6.273,5716,6.273,5904,3.423,5905,6.683,7047,3.619,7107,3.468,8239,8.061,8240,7.593,8241,3.739,8244,5.222,8245,6.273,8246,6.273,8247,3.739,8248,6.273,8249,3.341,8250,3.677,8251,6.273,8252,6.273,8253,3.619,8254,3.619,8255,3.619,8256,3.619,8257,3.739,8258,3.739,8259,3.739,8260,3.739,8261,3.739,14329,9.434,14330,5.443,14331,5.443,14332,5.443,14333,5.443,14334,5.443]],["title/classes/LinkElement.html",[0,0.231,2808,4.461]],["body/classes/LinkElement.html",[0,0.189,2,0.625,3,0.013,4,0.013,5,0.007,7,0.085,8,0.973,27,0.552,29,0.978,30,0.001,31,0.704,32,0.177,33,0.603,35,1.554,36,1.727,47,0.97,55,1.747,59,1.733,95,0.103,101,0.016,103,0,104,0,105,0.602,112,0.645,119,1.948,137,5.105,145,1.549,153,2.389,180,1.715,262,2.097,349,1.204,381,2.727,382,3.718,448,3.327,474,2.383,479,3.041,480,3.421,517,4.029,519,3.817,604,2.267,608,1.286,662,2.553,686,3.832,1144,4.674,1154,2.219,1198,3.612,1207,3.355,1603,2.098,1604,3.435,1607,6.18,1679,3.704,1885,2.328,2453,5.533,2727,7.622,2730,5.784,2731,5.784,2732,5.784,2733,6.987,2734,5.784,2736,3.71,2737,4.982,2738,6.173,2740,5.675,2741,4.982,2742,6.051,2744,3.901,2745,4.29,2747,6.018,2748,3.901,2752,3.901,2754,3.71,2781,4.925,2808,6.883,3224,6.173,3967,4.058,3968,4.058,3969,4.058,3970,4.674,3978,3.509,3979,5.575,5234,7.102,5236,6.8,8716,3.976,8721,4.881,8723,4.881,9921,5.158,9923,5.158,14335,11.615,14336,5.579,14337,5.579,14338,5.579,14339,5.579,14340,5.579,14341,5.579,14342,5.579,14343,5.579,14344,5.579,14345,5.579,14346,5.579,14347,5.579,14348,5.579,14349,5.158,14350,5.158,14351,5.158,14352,7.505,14353,5.158,14354,5.158,14355,5.158,14356,4.881,14357,5.158]],["title/classes/LinkElementContent.html",[0,0.231,14358,5.705]],["body/classes/LinkElementContent.html",[0,0.342,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,27,0.512,29,0.593,30,0.001,31,0.427,32,0.182,33,0.6,34,1.924,47,0.95,95,0.143,99,1.271,101,0.017,103,0.001,104,0.001,112,0.8,138,2.187,149,4.757,150,1.736,153,2.843,245,3.53,253,3.73,379,1.413,404,3.109,773,3.855,838,2.388,1198,4.299,1207,3.993,2196,4.57,2507,3.403,2725,3.909,2859,4.057,2860,4.057,2863,3.754,3224,7.346,3402,5.326,3409,7.043,3414,4.675,3657,6.706,3661,5.862,3665,5.065,3667,5.065,3996,7.684,4104,5.971,5624,4.92,6264,4.09,6610,4.92,8732,6.156,8748,7.043,8750,7.043,14358,10.764,14359,11.879,14360,7.618,14361,6.156]],["title/classes/LinkElementContentBody.html",[0,0.231,8246,4.528]],["body/classes/LinkElementContentBody.html",[0,0.453,2,0.633,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,806,5.219,807,3.343,818,2.84,838,1.771,851,2.699,1198,1.942,1207,1.804,1582,3.285,1883,3.986,2196,4.884,2442,2.766,2823,2.732,2824,2.485,2863,2.784,3219,3.353,3221,3.353,3224,3.319,3227,4.981,3230,2.899,3235,3.164,3708,3.509,3729,3.509,3730,6.808,4104,5.587,5622,6.14,5624,6.826,5626,6.14,5628,6.224,5630,6.224,5675,3.701,5712,6.408,5713,6.408,5714,7.028,5715,6.408,5716,6.408,5904,3.553,5905,6.76,7047,3.756,7107,3.599,8239,8.513,8240,5.626,8241,3.88,8244,5.366,8245,6.408,8246,7.028,8247,3.88,8248,6.408,8249,3.467,8250,3.816,8251,6.408,8252,6.408,8253,3.756,8254,3.756,8255,3.756,8256,3.756,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8261,3.88,8737,4.426,14362,5.65,14363,5.65]],["title/entities/LinkElementNode.html",[154,1.456,3151,5.335]],["body/entities/LinkElementNode.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,27,0.479,30,0.001,32,0.16,33,0.507,47,0.964,95,0.157,96,2.25,101,0.017,103,0.001,104,0.001,105,0.884,112,0.839,138,2.128,154,2.259,155,2.734,172,4.258,173,2.423,180,1.894,181,2.192,349,0.846,403,4.547,437,1.059,1198,4.251,1207,3.948,1603,3.08,1604,4.952,1883,5.113,2453,5.019,2506,4.629,2507,3.659,2725,4.204,3112,5.544,3123,6.342,3151,8.28,3190,5.027,3212,9.247,3224,7.263,3561,6.487,3572,5.219,3582,5.088,4067,5.219,4069,5.219,6264,4.398,7205,5.152,9941,7.573,9942,7.166,14361,6.619,14364,11.432,14365,8.192,14366,9.247,14367,7.573,14368,7.573]],["title/interfaces/LinkElementNodeProps.html",[105,0.735,14366,5.958]],["body/interfaces/LinkElementNodeProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.162,33,0.516,47,0.988,95,0.158,96,2.312,101,0.018,103,0.001,104,0.001,105,0.908,107,2.019,112,0.854,154,2.298,172,3.988,173,2.488,180,2.124,181,2.252,349,0.869,403,4.67,437,1.088,1198,4.437,1207,4.121,1603,3.164,1604,5.015,1883,3.48,2453,5.106,2506,4.755,2507,3.759,2725,4.318,3112,5.641,3123,6.452,3151,6.592,3190,5.164,3212,9.408,3224,7.581,3561,7.274,3572,5.361,3582,5.226,4067,5.361,4069,5.361,6264,4.517,7205,5.292,14361,6.799,14364,7.779,14366,10.368,14367,7.779,14368,7.779]],["title/interfaces/LinkElementProps.html",[105,0.735,14356,5.958]],["body/interfaces/LinkElementProps.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,30,0.001,32,0.17,33,0.574,36,1.6,47,1.002,95,0.127,101,0.018,103,0.001,104,0.001,105,0.811,107,1.804,112,0.793,119,1.53,145,2.087,153,2.83,180,2.011,262,1.647,349,1.322,474,3.211,480,3.321,517,4.586,519,2.329,604,3.055,608,1.733,1154,2.99,1198,4.28,1207,3.975,1603,2.827,1679,4.56,1885,3.137,2727,6.062,2733,4.999,2737,4.614,2738,5.87,2741,4.614,2742,5.754,2781,6.809,2808,7.352,3224,7.314,3978,4.728,3979,6.863,5234,8.742,5236,8.371,8716,5.357,14335,6.951,14349,6.951,14350,6.951,14351,6.951,14352,9.238,14353,6.951,14354,6.951,14355,6.951,14356,8.742,14357,6.951]],["title/classes/LinkElementResponse.html",[0,0.231,3996,5.191]],["body/classes/LinkElementResponse.html",[0,0.342,2,0.851,3,0.018,4,0.018,5,0.009,7,0.115,27,0.512,29,0.592,30,0.001,31,0.426,32,0.186,33,0.365,34,2.129,47,0.906,95,0.143,99,1.268,101,0.017,103,0.001,104,0.001,112,0.799,138,2.185,149,4.293,150,1.732,153,2.566,245,3.529,253,3.723,379,1.411,404,3.103,773,3.848,838,2.384,1198,3.88,1207,3.604,2196,5.056,2507,3.397,2725,3.902,2858,4.98,2859,5.362,2860,5.362,2862,4.666,2863,4.961,3224,6.63,3402,5.316,3414,4.666,3657,7.418,3661,6.563,3665,5.055,3667,5.055,3996,9.526,4104,6.605,5624,6.502,6264,4.082,6610,4.91,8752,7.03,14358,10.064,14359,11.873,14361,6.144,14369,7.603,14370,7.603,14371,7.603,14372,7.603]],["title/classes/LinkElementResponseMapper.html",[0,0.231,5650,5.958]],["body/classes/LinkElementResponseMapper.html",[0,0.261,2,0.859,3,0.018,4,0.018,5,0.009,7,0.116,8,1.214,27,0.494,29,0.789,30,0.001,31,0.567,32,0.165,33,0.486,34,1.308,35,1.362,95,0.144,99,1.28,100,2.578,101,0.013,103,0.001,104,0.001,112,0.804,119,2.062,153,1.745,236,1.962,349,1.171,376,3.343,413,3.965,437,0.993,603,2.278,604,3.119,662,2.414,739,4.434,781,4.556,782,5.623,785,6.013,787,5.709,1198,2.639,1207,2.451,1280,3.166,1883,5.512,1941,4.378,2196,3.105,2444,8.434,2447,7.936,2448,7.936,2450,7.722,2808,8.73,3224,4.509,3657,4.556,3661,5.891,3678,5.47,3996,9.192,4104,4.057,5231,7.132,5624,4.957,5647,6.013,5650,11.487,8754,9.192,8756,6.013,8758,6.203,8759,6.203,8760,6.203,14358,8.487,14373,12.536,14374,6.715,14375,11.34,14376,7.676,14377,7.676,14378,7.676,14379,7.676]],["title/classes/ListOauthClientsParams.html",[0,0.231,14380,5.958]],["body/classes/ListOauthClientsParams.html",[0,0.33,2,0.807,3,0.017,4,0.017,5,0.009,7,0.109,27,0.482,30,0.001,31,0.544,32,0.161,33,0.631,47,0.83,55,2.53,56,5.313,58,7.928,95,0.123,101,0.012,103,0.001,104,0.001,112,0.771,135,6.814,138,2.139,142,5.141,144,4.33,145,3.877,148,2.287,150,1.642,153,2.673,245,3.219,248,4.586,249,4.966,482,5.258,696,4.638,825,6.274,828,5.174,843,9.851,844,8.964,3434,7.83,3435,5.136,3440,7.066,3491,5.825,4324,7.135,5501,7.002,5514,7.611,5586,8.609,8060,11.01,8443,8.964,9973,9.131,14380,8.499,14381,12.276,14382,7.208,14383,7.208,14384,7.208,14385,9.715,14386,9.715,14387,7.208,14388,7.208,14389,9.715,14390,7.208,14391,7.208,14392,7.208]],["title/classes/LocalAuthorizationBodyParams.html",[0,0.231,14393,5.958]],["body/classes/LocalAuthorizationBodyParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.48,30,0.001,32,0.16,47,0.926,51,6.14,87,6.343,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,2.133,148,3.068,150,2.203,245,3.309,248,5.266,808,7.572,7399,9.475,13751,8.458,14393,10.257,14394,12.62,14395,8.938,14396,8.938]],["title/injectables/LocalStrategy.html",[539,0.901,1367,5.958]],["body/injectables/LocalStrategy.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.089,8,1.007,27,0.44,29,0.836,30,0.001,31,0.602,32,0.155,33,0.515,35,1.18,36,2.285,39,1.573,47,0.976,51,5.935,59,3.337,66,6.936,87,6.69,94,5.761,95,0.167,101,0.01,103,0,104,0,105,0.631,120,2.572,143,1.302,177,1.966,180,1.505,182,1.902,217,7.318,226,0.836,227,2.407,236,1.926,239,1.927,262,2.594,270,2.863,294,4.22,349,0.867,379,1.05,425,4.253,437,1.531,529,1.654,539,1.111,541,1.4,584,7.99,598,3.367,599,4.253,600,3.632,603,2.591,608,2.729,631,3,790,4.898,875,4.898,876,5.115,1361,8.807,1367,7.346,1374,4.349,1385,4.898,1417,3.47,1451,3.725,1544,4.349,1818,7.873,4551,3.949,6165,5.5,7130,4.349,11355,5.115,11363,4.457,12012,4.898,12673,8.413,13172,4.58,13176,7.034,13181,4.898,13809,9.084,13834,5.405,13837,5.405,13839,5.405,13840,5.405,13842,5.405,14397,5.847,14398,8.397,14399,5.847,14400,9.084,14401,5.847,14402,5.847,14403,10.739,14404,5.847,14405,8.397,14406,8.397,14407,5.847,14408,8.397,14409,5.847,14410,5.847,14411,5.847,14412,5.847,14413,5.847,14414,5.847,14415,5.847,14416,8.397,14417,5.847,14418,5.847,14419,5.847,14420,5.847,14421,5.847,14422,5.115,14423,5.847,14424,5.847,14425,5.847,14426,5.847]],["title/interfaces/Loggable.html",[105,0.735,1275,3.125]],["body/interfaces/Loggable.html",[3,0.024,4,0.024,5,0.012,7,0.154,8,1.448,27,0.416,30,0.001,35,1.22,95,0.129,101,0.017,103,0.001,104,0.001,105,1.096,107,2.437,1275,5.541,1276,6.614,1281,6.573,1603,3.819,8369,6.662,8370,6.92,14427,10.156,14428,10.156]],["title/injectables/Logger.html",[539,0.901,2253,2.791]],["body/injectables/Logger.html",[0,0.233,3,0.025,4,0.016,5,0.008,7,0.104,8,1.125,27,0.522,29,0.97,30,0.001,31,0.728,32,0.174,33,0.598,35,1.449,47,0.813,95,0.153,101,0.011,103,0.001,104,0.001,107,1.644,112,0.745,131,4.01,177,1.254,226,0.98,379,0.857,437,1.489,480,1.903,486,2.062,519,4.082,539,1.242,541,1.64,603,2.313,639,3.216,662,4.344,1025,4.505,1275,6.393,2253,4.944,2943,4.628,5505,3.814,5520,6.241,7874,4.425,8412,10.074,8422,5.995,8423,7.353,8424,5.537,8425,6.335,8426,5.995,8427,10.647,13887,8.678,13896,8.678,13908,6.335,13919,10.553,14429,6.852,14430,8.212,14431,9.386,14432,9.386,14433,9.386,14434,6.852,14435,9.386,14436,6.852,14437,9.386,14438,6.852,14439,6.852,14440,9.386,14441,6.852,14442,6.852,14443,6.852,14444,6.852,14445,6.335]],["title/modules/LoggerModule.html",[201,1.804,214,3.16]],["body/modules/LoggerModule.html",[0,0.261,3,0.018,4,0.018,5,0.009,30,0.001,95,0.169,101,0.013,103,0.001,104,0.001,107,1.845,143,2.258,145,2.135,201,3.007,203,2.766,204,2.972,205,3.059,206,3.046,207,3.033,208,4.157,209,4.268,214,6.446,218,4.034,219,2.996,220,2.925,225,3.033,226,1.1,236,1.251,348,5.064,349,0.794,584,7.905,598,4.428,637,5.48,639,3.609,949,4.72,990,2.6,2253,5.722,2254,6.237,3551,5.72,7874,4.967,8406,11.574,8423,8.892,11942,6.443,14446,7.691,14447,7.691,14448,7.691,14449,7.691,14450,7.11,14451,7.691,14452,7.691,14453,7.691,14454,6.443,14455,7.691,14456,7.691,14457,7.691,14458,7.691,14459,7.691,14460,7.691,14461,7.691,14462,7.691,14463,7.691,14464,7.691,14465,7.691,14466,7.691,14467,7.691,14468,7.691,14469,7.691]],["title/classes/LoggingUtils.html",[0,0.231,8424,5.503]],["body/classes/LoggingUtils.html",[0,0.275,2,0.908,3,0.019,4,0.019,5,0.01,7,0.123,8,1.259,27,0.477,29,0.907,30,0.001,31,0.652,32,0.144,33,0.559,35,1.399,47,0.901,59,2.519,95,0.148,101,0.013,103,0.001,104,0.001,107,1.946,131,4.614,133,4.072,349,1.203,413,4.196,437,1.593,556,2.934,603,2.339,1025,4.556,1154,3.225,1275,6.105,1281,3.996,1603,3.049,8424,8.486,10911,8.797,13888,11.388,13921,7.497,13922,7.497,14470,8.109,14471,10.501,14472,10.501,14473,10.501,14474,10.501,14475,8.109,14476,11.646,14477,10.501,14478,8.109,14479,10.501,14480,8.109,14481,8.109,14482,8.109,14483,10.501]],["title/controllers/LoginController.html",[259,2.591,1322,5.958]],["body/controllers/LoginController.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.875,27,0.36,29,0.685,30,0.001,31,0.493,32,0.186,33,0.422,35,1.057,36,2.353,95,0.156,100,1.624,101,0.008,103,0,104,0,105,0.522,128,5.113,138,1.6,141,5.283,150,1.102,153,3.035,177,0.885,223,1.991,226,0.691,239,2.912,259,1.839,261,2.296,262,2.651,270,5.622,278,7.596,282,6.869,283,7.047,284,3.416,285,8.315,286,8.131,287,7.244,288,9.618,294,3.669,303,7.676,324,4.958,335,5.879,336,7.658,337,2.499,340,2.324,345,1.539,346,5.22,347,4.431,348,4.391,349,0.908,437,1.43,521,3.483,608,2.027,645,8.799,996,4.201,997,4.152,998,4.152,999,4.391,1000,4.799,1220,2.758,1320,7.368,1322,6.386,1325,4.47,1374,3.596,1556,8.995,1557,3.38,1734,3.08,1894,6.397,1895,6.267,2902,3.445,2903,2.732,3063,4.817,3672,3.215,4487,6.496,5501,4.164,6221,6.515,6901,6.869,7145,7.288,7554,3.38,8065,8.226,8394,4.05,10694,5.43,12941,3.321,13150,4.47,13749,8.208,13805,7.368,14393,8.572,14484,4.835,14485,7.3,14486,7.3,14487,8.795,14488,4.835,14489,4.835,14490,10.225,14491,4.835,14492,8.62,14493,8.795,14494,4.835,14495,4.835,14496,4.835,14497,4.835,14498,4.835,14499,4.835,14500,8.208,14501,4.835,14502,4.835,14503,4.835,14504,4.835,14505,6.115,14506,4.23,14507,4.835,14508,4.835,14509,4.835,14510,4.835,14511,8.131,14512,4.835,14513,4.835,14514,8.795,14515,7.3,14516,4.835,14517,4.835,14518,4.835,14519,4.835,14520,4.835,14521,4.835,14522,4.835,14523,4.835]],["title/classes/LoginDto.html",[0,0.231,1556,5.335]],["body/classes/LoginDto.html",[0,0.342,2,1.128,3,0.024,4,0.024,5,0.012,7,0.153,27,0.492,29,0.785,30,0.001,31,0.565,32,0.164,33,0.484,47,0.849,101,0.017,103,0.001,104,0.001,112,0.955,181,3.218,379,1.261,381,3.385,1437,8.543,1556,10.651,14524,10.079,14525,12.023,14526,8.444,14527,8.444]],["title/classes/LoginRequestBody.html",[0,0.231,14528,5.503]],["body/classes/LoginRequestBody.html",[0,0.299,2,0.698,3,0.015,4,0.015,5,0.007,7,0.095,27,0.509,30,0.001,32,0.17,33,0.65,47,0.78,55,2.191,95,0.129,101,0.01,103,0,104,0,110,8.224,111,5.039,112,0.698,116,9.737,117,7.977,119,1.789,135,5.652,138,2.261,142,5.048,143,1.957,144,4.251,145,3.839,147,4.72,148,1.979,150,1.421,153,2.315,180,1.575,239,2.017,245,2.67,249,4.119,282,3.874,287,4.085,347,2.284,348,4.389,382,3.517,517,4.239,662,1.961,696,3.467,842,6.146,950,2.894,990,4.202,1151,3.922,1231,4.536,1243,3.827,1634,7.513,1723,6.887,1965,3.432,2148,7.338,2365,5.275,3542,3.588,4620,4.544,4700,6.887,5462,3.874,5491,10.256,5492,7.365,5493,7.365,5494,6.887,5497,4.085,5499,5.224,5500,7.691,5501,5.807,5502,7.691,5503,8.128,5504,7.691,5505,3.572,5507,5.766,5508,8.128,5509,6.395,5510,10.222,5511,6.539,5512,8.128,5514,8.662,5515,4.754,5516,5.456,5517,5.456,5518,5.456,5519,5.766,5520,4.146,5521,6.702,5522,6.146,5523,4.754,5524,5.039,5525,4.754,5526,5.224,5527,5.039,5528,5.766,5529,5.224,5530,5.766,5531,4.754,5532,5.766,5533,5.456,5534,5.224,5535,5.224,5536,5.766,5538,7.104,5539,5.766,14528,7.104,14529,10.182,14530,6.236,14531,6.236]],["title/classes/LoginResponse.html",[0,0.231,14492,4.853]],["body/classes/LoginResponse.html",[0,0.335,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.486,29,0.768,30,0.001,31,0.552,32,0.162,33,0.473,47,0.837,95,0.125,101,0.016,103,0.001,104,0.001,112,0.942,138,1.793,150,2.246,181,3.175,245,3.337,379,1.233,381,3.311,1437,8.462,14492,9.629,14526,8.258,14527,8.258,14532,9.857,14533,11.863]],["title/classes/LoginResponse-1.html",[0,0.192,708,2.352,14492,4.034]],["body/classes/LoginResponse-1.html",[0,0.28,2,0.64,3,0.013,4,0.013,5,0.007,7,0.087,27,0.532,29,0.445,30,0.001,31,0.32,32,0.178,33,0.636,34,2.001,47,0.943,70,5.628,72,3.749,77,6.18,95,0.135,101,0.009,103,0,104,0,110,6.143,112,0.656,118,5.262,119,1.681,122,5.579,128,4.732,135,7.291,138,2.334,141,5.925,142,3.231,143,2.16,144,2.721,145,2.95,148,1.813,150,1.302,153,2.754,239,2.695,245,3.444,248,3.447,249,4.9,303,6.47,363,4.625,379,0.715,556,3.124,820,4.451,1198,2.839,1330,6.912,1634,5.13,2131,5.579,2148,6.447,2347,3.259,2558,8.1,3271,5.885,3399,3.995,3542,5.157,4059,4.617,4198,6.912,5537,5.262,5544,8.125,5545,8.125,5546,8.125,5547,7.838,5550,8.486,5552,4.999,5558,8.125,5559,7.636,5567,8.125,5571,5.579,5575,7.636,5576,7.636,5579,4.999,5580,5.283,5581,5.283,5582,5.283,5591,7.636,11957,6.143,13397,6.674,14492,8.632,14534,5.714,14535,8.968,14536,8.259,14537,5.714,14538,5.714,14539,5.714,14540,7.225,14541,5.714,14542,5.714,14543,8.259,14544,5.714,14545,5.714,14546,5.714,14547,8.259,14548,8.259,14549,8.259,14550,5.714,14551,5.714,14552,5.714]],["title/classes/LoginResponseMapper.html",[0,0.231,14506,5.958]],["body/classes/LoginResponseMapper.html",[0,0.295,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.316,27,0.449,29,0.854,30,0.001,31,0.615,32,0.15,33,0.527,35,1.318,47,0.849,59,2.699,95,0.139,100,2.918,101,0.014,103,0.001,104,0.001,236,1.785,349,1.133,413,4.098,437,1.419,781,5.156,823,4.434,1437,7.296,1556,10.81,1557,6.073,7143,10.211,14492,9.286,14505,10.917,14506,9.6,14553,12.029,14554,10.973,14555,10.973,14556,10.973,14557,7.6,14558,10.973,14559,8.687,14560,10.973]],["title/injectables/LoginUc.html",[539,0.901,1320,5.705]],["body/injectables/LoginUc.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.131,8,1.31,27,0.448,29,0.851,30,0.001,31,0.612,32,0.149,33,0.524,35,1.037,36,2.325,95,0.168,100,2.899,101,0.014,103,0.001,104,0.001,105,0.931,177,1.58,226,1.234,236,1.404,262,2.628,270,6.173,345,2.747,349,0.891,379,1.079,437,1.551,539,1.446,541,2.066,608,1.989,631,4.429,1320,9.155,1361,9.377,1385,7.23,1437,5.739,1531,9.395,1554,7.23,1555,4.833,1556,10.409,4685,9.561,7130,6.419,14561,8.631,14562,10.929,14563,8.631,14564,8.631,14565,10.929,14566,8.631,14567,7.98,14568,8.631,14569,8.631,14570,8.631,14571,8.631]],["title/injectables/Lti11EncryptionService.html",[539,0.901,14572,5.958]],["body/injectables/Lti11EncryptionService.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,27,0.346,29,0.658,30,0.001,31,0.473,32,0.115,33,0.405,35,1.015,47,0.983,95,0.151,101,0.014,103,0.001,104,0.001,226,1.208,236,1.375,284,2.61,349,0.873,437,1.536,539,1.427,541,2.023,591,4.775,662,3.734,988,5.122,1198,4.3,1430,7.274,1550,6.146,1555,7.005,1589,6.038,1634,8.208,1925,5.835,2158,7.812,2903,4.775,5501,7.134,6596,6.021,14572,9.433,14573,10.782,14574,8.45,14575,9.969,14576,10.782,14577,8.45,14578,7.078,14579,10.782,14580,7.812,14581,8.45,14582,7.842,14583,8.45,14584,8.45,14585,8.45,14586,8.45,14587,8.45,14588,8.45,14589,8.45,14590,8.45]],["title/classes/Lti11ToolConfig.html",[0,0.231,7339,4.953]],["body/classes/Lti11ToolConfig.html",[0,0.259,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,27,0.552,29,0.594,30,0.001,31,0.428,32,0.189,33,0.543,47,0.951,95,0.128,101,0.013,103,0.001,104,0.001,112,0.801,180,1.809,181,2.701,182,2.483,379,0.954,381,2.563,382,3.045,564,2.343,1430,6.575,1870,3.713,1925,6.12,2136,6.39,2487,6.042,2489,4.466,2490,6.394,2491,9.307,2493,6.677,2494,5.602,2495,6.677,2496,6.677,2498,5.438,7180,7.407,7186,7.303,7188,7.303,7190,7.303,7206,5.551,7207,6.167,7208,5.979,7209,6.394,7212,5.818,7213,6.167,7216,5.818,7217,6.167,7220,5.818,7221,6.167,7336,8.225,7339,9.101,7363,5.242,7368,8.058,14591,13.311,14592,9.331,14593,7.056,14594,7.056,14595,7.056,14596,7.056,14597,7.056,14598,6.677,14599,6.677]],["title/classes/Lti11ToolConfigCreateParams.html",[0,0.231,8699,5.705]],["body/classes/Lti11ToolConfigCreateParams.html",[0,0.333,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.54,30,0.001,32,0.186,33,0.47,47,0.952,95,0.15,101,0.012,103,0.001,104,0.001,112,0.778,138,2.397,148,2.316,149,3.727,150,1.663,180,1.756,245,3.456,248,5.145,249,3.964,382,2.956,564,2.241,851,3.487,1430,6.431,1870,3.552,1912,5.983,1925,5.985,2136,6.249,2487,5.886,2489,4.37,2494,6.138,2512,8.967,2513,7.88,2514,5.899,2515,5.899,2516,5.899,2517,5.899,2518,5.899,5894,5.31,7180,7.244,7186,7.142,7188,7.142,7190,7.142,7336,8.044,7368,7.88,8698,5.899,8699,8.208,8706,6.386,14600,11.989,14601,6.749,14602,7.3,14603,6.749,14604,6.749,14605,6.749,14606,7.3,14607,7.3,14608,6.749,14609,9.058,14610,6.749,14611,6.749]],["title/classes/Lti11ToolConfigEntity.html",[0,0.231,8766,5.503]],["body/classes/Lti11ToolConfigEntity.html",[0,0.249,2,0.82,3,0.017,4,0.017,5,0.009,7,0.111,27,0.532,29,0.57,30,0.001,31,0.41,32,0.177,33,0.532,47,0.931,95,0.15,96,2.013,101,0.012,103,0.001,104,0.001,112,0.78,138,2.311,143,2.187,144,2.414,160,4.179,172,4.212,173,2.167,180,1.313,181,2.629,379,0.916,381,2.461,403,4.067,564,2.25,838,3.87,1430,6.443,1870,3.565,1925,5.996,2487,5.987,2489,4.43,2494,4.067,2501,6.138,2503,5.076,2504,7.937,2505,6.409,2506,4.14,2507,3.273,7180,7.257,7186,7.155,7188,7.155,7190,7.155,7206,5.329,7207,5.92,7208,5.74,7209,6.138,7212,5.585,7213,5.92,7216,5.585,7217,5.92,7220,5.585,7221,5.92,7248,6.409,7336,8.059,7363,6.746,7368,7.895,8766,9.975,14598,6.409,14599,6.409,14612,13.191,14613,9.822,14614,7.326,14615,7.326,14616,7.326,14617,7.326,14618,7.326]],["title/classes/Lti11ToolConfigResponse.html",[0,0.231,9295,5.705]],["body/classes/Lti11ToolConfigResponse.html",[0,0.248,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.54,29,0.568,30,0.001,31,0.409,32,0.186,33,0.531,47,0.93,95,0.14,101,0.012,103,0.001,104,0.001,112,0.778,138,2.359,149,4.207,150,1.663,180,1.756,181,2.622,182,2.375,245,3.616,379,0.913,381,2.452,382,2.956,564,2.241,1870,3.552,1925,5.985,2136,6.249,2487,5.886,2489,4.37,2494,6.138,2498,5.202,2507,3.261,2508,5.202,2521,5.899,2522,9.963,2524,6.386,2525,6.386,2526,5.899,7180,7.244,7186,7.142,7188,7.142,7190,7.142,7206,5.31,7207,5.899,7212,5.564,7213,5.899,7216,5.564,7217,5.899,7220,5.564,7221,5.899,7336,8.044,7363,5.014,7368,7.88,9295,10.328,14598,6.386,14599,6.386,14619,12.967,14620,9.058,14621,6.749,14622,6.749,14623,6.749,14624,6.386]],["title/classes/Lti11ToolConfigUpdateParams.html",[0,0.231,9218,5.705]],["body/classes/Lti11ToolConfigUpdateParams.html",[0,0.331,2,0.813,3,0.017,4,0.017,5,0.009,7,0.11,27,0.539,30,0.001,32,0.186,33,0.566,47,0.951,95,0.15,101,0.012,103,0.001,104,0.001,112,0.775,138,2.394,148,2.304,149,4.195,150,1.654,180,1.749,245,3.395,248,5.136,249,4.462,382,2.945,564,2.229,851,3.468,1430,6.413,1870,3.532,1912,5.975,1925,5.969,2136,6.232,2487,5.877,2489,4.365,2494,6.122,2512,8.951,2513,6.956,2514,5.867,2515,5.867,2516,5.867,2517,5.867,2518,5.867,5894,7.1,7180,7.224,7186,7.122,7188,7.122,7190,7.122,7336,8.022,7368,7.859,9218,8.178,9504,6.082,9506,6.352,9508,6.352,14600,11.972,14601,6.712,14603,6.712,14605,6.712,14609,9.025,14610,6.712,14611,6.712,14625,7.26,14626,7.26,14627,7.26,14628,6.712]],["title/classes/LtiRoleMapper.html",[0,0.231,14629,6.296]],["body/classes/LtiRoleMapper.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,8,1.332,27,0.363,29,0.69,30,0.001,31,0.496,32,0.121,33,0.425,35,1.064,95,0.141,99,1.478,101,0.015,103,0.001,104,0.001,349,0.915,413,3.738,437,1.57,484,4.612,556,3.057,662,2.786,1589,6.221,1870,4.31,4603,7.153,9803,5.89,9804,5.89,12022,5.984,12025,6.753,14629,10.271,14630,11.11,14631,8.859,14632,11.11,14633,11.11,14634,8.859,14635,13.944,14636,8.19,14637,8.859,14638,11.11,14639,8.859,14640,11.11,14641,8.859,14642,8.859,14643,8.859,14644,8.859,14645,11.11,14646,8.859]],["title/entities/LtiTool.html",[154,1.456,7184,5.065]],["body/entities/LtiTool.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,26,1.368,27,0.54,30,0.001,31,0.548,32,0.181,33,0.639,47,0.948,49,3.139,95,0.114,96,1.774,97,1.786,101,0.016,103,0,104,0,105,0.445,112,0.513,119,2.403,138,2.396,143,3.023,144,4.364,145,3.758,154,1.38,155,1.375,160,7.418,168,3.683,172,4.229,173,1.219,174,2.568,175,1.822,177,0.754,178,1.712,180,0.739,181,1.103,182,1.341,236,0.67,321,4.696,349,0.426,480,1.144,486,3.552,490,1.462,556,2.269,653,2.13,662,2.03,826,4.583,838,3.066,1198,2.736,1310,2.501,1414,6.298,1430,4.629,1672,2.146,1925,4.875,1985,1.639,2259,2.373,2442,2.018,2611,2.979,3081,3.974,4285,1.804,6264,2.213,6567,3.606,6595,3.331,6608,3.331,7169,6.964,7170,3.811,7171,5.409,7172,7.279,7173,5.97,7174,5.97,7175,3.811,7176,3.811,7177,5.97,7178,3.811,7179,3.811,7180,6.407,7181,5.97,7182,5.97,7183,3.811,7184,4.802,7185,6.236,7186,5.14,7187,6.236,7188,5.14,7189,5.409,7190,5.14,7191,6.236,7192,6.236,7193,5.92,7194,5.97,7195,7.359,7196,3.331,7197,3.229,7198,3.811,7199,5.672,7200,6.236,7201,5.071,7202,4.725,7203,5.92,7204,4.776,7205,2.592,7206,2.998,7207,3.331,7208,3.229,7209,3.453,7210,3.453,7211,3.811,7212,3.142,7213,3.331,7214,3.453,7215,3.811,7216,3.142,7217,3.331,7218,3.229,7219,3.331,7220,3.142,7221,3.331,7222,3.453,7223,3.811,7224,3.453,7225,3.811,7226,3.453,7227,3.811,7228,3.811,7229,3.811,7230,3.811,7231,3.453,7232,3.811,7233,3.453,7234,3.811,7235,3.142,7236,3.331,7237,2.882,7238,3.066,7239,3.453,7240,3.811,7241,3.066,7242,3.331,14647,4.122,14648,4.122,14649,4.122,14650,4.122,14651,4.122,14652,4.122,14653,4.122,14654,4.122,14655,4.122,14656,4.122,14657,4.122,14658,4.122,14659,4.122,14660,4.122,14661,4.122,14662,4.122,14663,4.122,14664,4.122,14665,4.122,14666,4.122,14667,4.122,14668,4.122,14669,4.122]],["title/classes/LtiToolDO.html",[0,0.231,7251,4.761]],["body/classes/LtiToolDO.html",[0,0.282,2,0.643,3,0.013,4,0.013,5,0.007,7,0.087,26,2.061,27,0.569,29,0.447,30,0.001,31,0.597,32,0.19,33,0.668,34,1.413,47,0.993,95,0.123,101,0.014,103,0,104,0,112,0.659,119,2.615,180,1.486,379,0.719,382,1.734,480,2.702,1198,3.345,1430,5.658,1604,2.432,1686,6.195,1925,6.114,1985,2.285,2442,2.814,3081,4.858,4405,5.027,5778,4.18,6264,3.085,7172,7.863,7180,6.374,7185,7.623,7186,6.284,7187,7.623,7188,6.284,7190,6.284,7191,7.623,7192,7.623,7193,7.238,7197,7.623,7199,6.934,7200,7.623,7201,6.2,7202,5.776,7203,7.238,7204,5.838,7206,6.032,7208,4.502,7210,4.814,7212,4.38,7214,4.814,7216,4.38,7218,4.502,7220,4.38,7222,4.814,7224,4.814,7226,4.814,7231,4.814,7233,4.814,7235,4.38,7237,4.018,7239,4.814,7241,4.274,7243,8.152,7244,5.313,7245,5.313,7248,5.027,7249,4.38,7250,4.502,7251,7.898,7252,6.497,7253,4.502,7254,5.313,7255,5.313,7256,5.313,7257,5.313,7258,5.313,7259,5.313,7260,5.313,7261,5.027,7262,5.313,7263,5.313,7264,5.313,7265,5.313,7266,5.313,7267,5.313,7268,5.313,7269,5.313,7270,5.313,7271,5.313,7272,5.313,7273,5.313,14670,8.293,14671,5.746,14672,5.746,14673,5.746,14674,5.746,14675,5.746,14676,5.746,14677,5.746,14678,5.746,14679,5.746,14680,5.746,14681,5.746,14682,5.746,14683,5.746,14684,5.746,14685,5.746,14686,5.746,14687,5.746,14688,5.746,14689,5.746]],["title/classes/LtiToolFactory.html",[0,0.231,14690,6.296]],["body/classes/LtiToolFactory.html",[0,0.156,2,0.515,3,0.011,4,0.011,5,0.005,7,0.07,8,0.843,27,0.531,29,1.018,30,0.001,31,0.726,32,0.181,33,0.602,34,1.454,35,1.433,47,0.822,55,2.429,59,3.198,95,0.121,99,0.768,101,0.008,103,0,104,0,112,0.558,120,3.094,133,2.459,140,2.577,143,1.566,145,2.369,153,1.94,154,2.2,155,2.347,177,1.287,180,1.26,236,0.749,271,4.911,319,3.175,349,0.881,379,0.576,382,3.834,413,2.166,437,1.104,447,7.191,448,4.447,449,5.399,452,3.974,453,5.399,454,5.665,455,3.974,456,3.974,457,3.974,458,3.903,459,4.379,460,4.822,461,6.406,462,5.712,463,7.015,464,2.625,469,2.601,470,3.974,471,2.625,472,5.049,473,5.213,474,4.081,475,4.903,476,3.938,477,2.601,478,2.452,479,4.064,480,3.312,481,2.533,482,2.491,483,2.601,484,4.974,485,2.625,486,3.502,487,4.737,488,2.601,489,7.181,490,4.128,491,6.578,492,2.625,493,4.233,494,2.601,495,2.625,496,2.601,497,2.625,498,2.601,499,2.932,500,2.732,501,2.601,502,6.023,503,2.625,504,2.601,505,3.974,506,3.717,507,3.974,508,2.625,509,2.512,510,2.491,511,2.056,512,2.601,513,2.601,514,2.601,515,2.625,516,2.625,517,1.765,518,2.601,519,1.426,520,2.625,521,2.785,522,2.601,523,2.625,525,2.676,527,4.219,1198,2.418,1430,4.089,1925,3.806,3081,2.298,4310,3.856,5590,2.298,7171,3.856,7172,3.719,7180,3.015,7184,5.23,7185,5.509,7186,4.541,7187,5.509,7188,4.541,7190,2.972,7191,3.606,7192,3.606,7193,3.423,7197,5.509,7199,6.081,7200,5.509,7201,2.932,7202,2.732,7203,5.23,7204,2.762,7243,3.856,8786,6.502,8791,6.502,11517,3.508,14690,7.89,14691,4.603,14692,7.032,14693,4.603,14694,7.032,14695,4.603,14696,4.603,14697,4.603,14698,4.603,14699,4.603,14700,4.603]],["title/modules/LtiToolModule.html",[201,1.804,14701,5.705]],["body/modules/LtiToolModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.163,101,0.015,103,0.001,104,0.001,201,3.251,203,3.265,204,3.509,205,3.611,206,3.596,207,3.581,208,4.495,209,4.615,218,4.487,219,3.537,220,3.454,226,1.298,227,3.738,560,3.738,1278,2.872,2254,6.076,4616,9.788,5386,7.336,14701,11.791,14702,9.079,14703,9.079,14704,9.079,14705,11.845,14706,8.394,14707,9.079]],["title/injectables/LtiToolRepo.html",[539,0.901,4616,4.953]],["body/injectables/LtiToolRepo.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.8,10,2.713,12,3.063,18,3.379,26,2.413,27,0.533,29,1.005,30,0.001,31,0.747,32,0.176,33,0.619,34,1.571,35,1.551,36,2.665,40,2.08,47,0.825,95,0.127,96,1.182,99,0.718,101,0.007,103,0,104,0,112,0.342,119,1.665,133,2.335,154,2.355,155,1.436,173,1.272,180,1.196,226,0.615,236,1.331,262,2.921,292,2.177,349,1.176,381,1.445,382,3.778,437,1.291,448,4.668,519,1.333,529,1.217,539,0.884,541,1.03,593,2.473,603,2.288,608,1.886,680,4.668,686,3.152,687,5.051,696,1.697,718,2.388,1198,2.295,1430,3.882,1604,4.223,1925,3.613,1941,2.454,2240,8.865,2242,4.757,2243,4.757,2244,4.757,2245,4.757,2246,4.668,2247,4.668,2248,4.757,2249,4.668,2250,4.757,2257,3.066,2259,5.309,2260,3.066,2262,3.066,2264,2.818,2265,4.668,2266,3.066,2268,3.066,2270,4.757,2274,4.757,2276,4.51,2277,4.668,2279,3.066,2281,2.581,2282,2.641,2283,3.066,2285,3.066,2287,3.008,2288,3.066,2305,3.008,2306,6.085,2328,5.593,3081,3.333,4389,2.741,4390,3.371,4616,4.856,5931,3.129,5932,3.129,5933,3.129,5934,3.129,5935,3.129,5936,3.129,5937,3.129,5938,3.129,5939,3.129,7171,8.847,7180,2.818,7184,8.699,7185,5.23,7186,4.312,7187,5.23,7188,4.312,7189,3.604,7190,4.312,7191,5.23,7192,5.23,7193,7.855,7197,5.23,7199,7.525,7200,5.23,7201,4.254,7202,3.963,7203,4.966,7204,4.006,7251,8.176,9078,5.593,9086,5.593,9091,3.28,9151,3.764,9155,3.978,9156,3.978,9174,3.764,9175,3.978,9179,3.978,9180,3.978,10488,3.978,11517,3.28,14708,4.302,14709,6.173,14710,6.676,14711,3.978,14712,6.676,14713,4.302,14714,4.302,14715,6.676,14716,4.302,14717,4.302,14718,4.302,14719,4.302,14720,4.302,14721,3.604,14722,4.302,14723,4.302,14724,4.302,14725,4.302,14726,4.302,14727,4.302,14728,4.302,14729,4.302,14730,4.302,14731,4.302,14732,4.302,14733,3.978,14734,4.302,14735,4.302,14736,4.302,14737,4.302,14738,4.302,14739,4.302,14740,4.302,14741,4.302,14742,4.302,14743,4.302,14744,4.302,14745,4.302,14746,4.302,14747,4.302,14748,4.302,14749,4.302,14750,4.302,14751,4.302,14752,4.302,14753,4.302,14754,4.302,14755,4.302,14756,4.302,14757,4.302,14758,4.302]],["title/injectables/LtiToolService.html",[539,0.901,14705,5.705]],["body/injectables/LtiToolService.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,8,1.337,27,0.457,29,0.869,30,0.001,31,0.625,32,0.152,33,0.535,35,1.071,36,2.59,47,0.859,95,0.154,101,0.015,103,0.001,104,0.001,119,2.478,177,1.632,226,1.275,227,3.671,262,2.668,345,2.839,349,0.921,379,1.115,437,1.153,539,1.477,541,2.135,662,3.828,4616,9.745,5393,7.206,5590,4.452,7184,8.298,7193,9.488,7251,6.235,11517,6.798,14705,9.346,14706,11.256,14709,10.314,14759,12.174,14760,8.918,14761,8.918,14762,11.156,14763,8.918,14764,8.918]],["title/interfaces/Mail.html",[105,0.735,1310,4.132]],["body/interfaces/Mail.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,31,0.457,32,0.179,33,0.648,47,1.016,77,5.198,101,0.013,103,0.001,104,0.001,105,1.438,107,1.958,112,0.837,180,2.212,1294,7.841,1295,6.219,1296,8.687,1297,8.036,1298,6.219,1299,4.569,1300,7.841,1301,5.934,1302,6.219,1303,5.934,1304,8.687,1305,6.219,1306,9.183,1307,8.036,1308,8.036,1309,9.183,1310,7.943,1311,9.183,1312,9.183,1313,9.411,1314,9.411]],["title/interfaces/MailAttachment.html",[105,0.735,1296,5.065]],["body/interfaces/MailAttachment.html",[3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,31,0.708,32,0.164,47,1.015,77,5.534,101,0.014,103,0.001,104,0.001,105,1.458,107,2.084,112,0.871,180,2.264,1294,8.162,1295,6.622,1296,9.399,1297,8.365,1298,9.632,1299,7.076,1300,8.162,1301,6.318,1302,6.622,1303,6.318,1304,8.947,1305,6.622,1306,8.162,1307,8.365,1308,8.365,1309,8.162,1310,6.658,1311,6.461,1312,6.461,1313,6.622,1314,6.622]],["title/interfaces/MailContent.html",[105,0.735,1304,5.065]],["body/interfaces/MailContent.html",[3,0.02,4,0.02,5,0.01,7,0.132,30,0.001,31,0.488,32,0.15,33,0.527,47,1.007,77,8.057,101,0.014,103,0.001,104,0.001,105,1.459,107,2.089,112,0.873,180,2.266,1294,9.406,1295,6.636,1296,8.956,1297,8.376,1298,6.636,1299,4.875,1300,9.406,1301,6.332,1302,6.636,1303,6.332,1304,9.406,1305,9.64,1306,8.173,1307,8.376,1308,8.376,1309,8.173,1310,6.667,1311,6.475,1312,6.475,1313,6.636,1314,6.636]],["title/modules/MailModule.html",[201,1.804,14765,5.335]],["body/modules/MailModule.html",[0,0.315,3,0.022,4,0.022,5,0.011,8,1.113,27,0.38,29,0.723,30,0.001,31,0.52,32,0.127,33,0.446,35,1.116,47,0.808,95,0.145,101,0.015,103,0.001,104,0.001,105,1.002,201,3.284,203,3.341,208,3.402,209,3.493,226,1.328,349,0.959,413,3.523,490,3.294,636,5.401,1106,6.756,1107,7.858,1110,8.244,1116,6.619,1121,7.107,1122,8.126,1123,7.389,1124,8.126,14765,9.714,14766,8.587,14767,11.322,14768,9.288,14769,10.02,14770,8.587,14771,8.587]],["title/interfaces/MailModuleOptions.html",[105,0.735,14767,5.958]],["body/interfaces/MailModuleOptions.html",[0,0.315,3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.156,47,0.955,95,0.145,101,0.015,103,0.001,104,0.001,105,1.002,107,2.229,112,0.909,201,3.284,208,3.402,209,3.493,226,1.328,349,0.959,413,2.86,636,5.401,1107,6.379,1110,7.607,1116,6.619,1121,8.255,1122,8.126,1123,8.583,1124,8.126,14765,8.963,14766,8.587,14767,10.848,14769,10.02,14770,8.587,14771,8.587]],["title/injectables/MailService.html",[539,0.901,14769,5.503]],["body/injectables/MailService.html",[0,0.297,3,0.02,4,0.02,5,0.01,7,0.133,8,1.321,27,0.451,29,0.858,30,0.001,31,0.617,32,0.151,33,0.529,35,1.05,36,2.345,47,0.778,95,0.153,101,0.014,103,0.001,104,0.001,105,0.944,143,1.947,177,2.017,226,1.25,262,2.644,284,3.403,379,1.378,490,4.278,539,1.458,541,2.093,603,2.213,608,2.015,639,4.103,662,3.794,1121,5.431,1123,5.646,1145,9.639,1146,7.065,1147,9.915,1160,6.113,1161,5.646,1189,7.649,1192,7.649,1310,7.685,1479,9.23,14769,8.904,14772,8.084,14773,11.081,14774,8.743,14775,8.743,14776,8.084,14777,8.084,14778,8.084]],["title/interfaces/MailServiceOptions.html",[105,0.735,14773,5.958]],["body/interfaces/MailServiceOptions.html",[0,0.312,3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.155,36,1.954,47,0.952,95,0.156,101,0.015,103,0.001,104,0.001,105,0.991,107,2.203,112,0.902,143,2.044,177,2.08,226,1.313,262,2.012,284,2.836,379,1.148,490,3.256,539,1.504,603,2.282,608,2.117,639,4.309,662,2.887,1121,8.006,1123,8.324,1147,9.175,1160,6.42,1161,5.93,1189,8.033,1192,8.033,1310,6.893,1479,7.692,14769,7.42,14772,8.489,14773,10.792,14776,8.489,14777,8.489,14778,8.489]],["title/modules/ManagementModule.html",[201,1.804,14779,5.335]],["body/modules/ManagementModule.html",[0,0.224,3,0.015,4,0.015,5,0.008,30,0.001,95,0.176,101,0.011,103,0.001,104,0.001,119,1.344,201,2.782,203,2.376,204,2.553,205,2.627,206,2.616,207,2.605,208,4.361,209,2.484,214,5.715,218,3.64,219,2.573,220,2.512,223,4.323,225,4.471,226,0.944,437,1.466,598,3.803,599,4.804,1278,2.09,1319,7.426,1548,5.778,1692,6.186,2020,2.891,2021,3.234,2022,3.118,3075,3.014,3441,8.006,3446,8.19,3447,10.319,3454,4.536,3456,4.154,3458,6.106,3459,7.169,3826,10.319,3881,3.699,6490,7.538,7858,7.666,7863,9.65,7878,5.533,7896,9.187,7926,7.666,7930,9.954,8336,6.656,8926,4.618,9707,4.461,10429,7.666,10503,8.881,10661,7.926,10667,4.706,10677,4.706,10678,4.536,10734,4.804,11599,4.054,11682,6.106,11683,6.106,12258,5.533,12261,4.536,13304,5.778,13310,7.666,14779,11.131,14780,6.605,14781,6.605,14782,6.605,14783,6.605,14784,6.605,14785,6.605,14786,9.151,14787,6.605,14788,6.605,14789,6.605,14790,10.501,14791,5.533,14792,6.605]],["title/modules/ManagementServerModule.html",[201,1.804,14793,5.705]],["body/modules/ManagementServerModule.html",[0,0.345,3,0.018,4,0.018,5,0.009,30,0.001,32,0.105,47,0.544,87,3.873,95,0.169,96,2.79,99,1.285,101,0.019,103,0.001,104,0.001,155,2.571,173,2.279,201,3.414,203,2.771,204,2.978,205,3.064,206,3.052,207,3.039,208,2.822,209,2.897,218,4.039,219,3.002,220,2.931,225,4.763,226,1.102,236,1.253,239,1.768,292,3.899,349,0.796,413,2.373,437,0.997,490,2.732,521,3.052,573,5.204,687,5.14,761,5.047,996,3.681,997,3.637,998,3.637,999,3.847,1076,5.123,1077,4.729,1107,5.292,1110,6.753,1666,3.26,1965,4.24,2622,4.104,4902,5.292,5571,5.204,10662,7.554,10663,7.554,10664,5.604,10665,7.742,10666,5.491,10668,7.554,10674,7.387,10675,7.387,10676,7.387,10678,5.292,10689,9.206,10690,5.731,10691,5.731,10692,5.604,10730,5.387,10732,7.554,10734,5.604,10735,6.226,10736,5.604,10737,6.226,10739,7.554,11797,5.731,14779,10.449,14793,10.798,14794,7.705,14795,7.705,14796,7.124,14797,7.124,14798,6.741,14799,6.741,14800,6.455]],["title/modules/ManagementServerTestModule.html",[201,1.804,14800,5.705]],["body/modules/ManagementServerTestModule.html",[0,0.334,3,0.017,4,0.017,5,0.009,8,0.88,27,0.301,29,0.572,30,0.001,31,0.411,32,0.134,33,0.352,35,0.882,47,0.518,59,2.28,87,3.689,95,0.167,96,2.701,99,1.224,101,0.018,103,0.001,104,0.001,155,2.449,173,2.171,201,3.368,203,2.64,204,2.837,205,2.919,206,2.907,207,2.895,208,2.688,209,2.76,218,3.911,219,2.859,220,2.792,225,4.672,226,1.049,236,1.194,239,1.684,292,3.714,349,0.758,413,3.028,437,0.949,490,3.487,521,2.907,573,4.958,687,4.976,761,4.808,996,3.506,997,3.465,998,3.465,999,3.664,1076,4.88,1077,4.505,1106,5.339,1107,6.754,1110,7.373,1666,3.106,1965,4.039,2622,3.909,4902,5.041,5571,4.958,10662,7.314,10663,7.314,10664,5.339,10665,7.496,10666,5.23,10668,7.314,10674,7.152,10675,7.152,10676,7.152,10678,5.041,10689,9.03,10690,5.459,10691,5.459,10692,5.339,10730,8.635,10732,8.811,10734,5.339,10735,5.931,10736,5.339,10737,5.931,10739,7.314,11797,5.459,14779,10.338,14793,6.149,14796,9.092,14797,6.786,14798,6.421,14799,6.421,14800,11.055,14801,7.34,14802,7.34,14803,7.34]],["title/entities/Material.html",[154,1.456,11878,4.339]],["body/entities/Material.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.099,27,0.54,30,0.001,32,0.18,33,0.54,47,1.006,95,0.115,96,1.785,101,0.019,103,0.001,104,0.001,105,1.123,112,0.719,138,2.399,153,2.559,154,1.934,155,2.168,172,4.48,173,1.922,174,3.599,175,2.873,180,1.164,181,1.739,182,2.114,238,3.742,1198,3.87,1207,3.594,1657,3.086,2725,3.335,3542,4.594,3572,4.14,6264,3.489,6609,4.389,6610,4.197,7205,4.087,11878,5.765,11881,4.257,11889,7.485,12108,7.089,12109,5.444,12110,8.373,12111,9.097,12112,9.097,12113,8.819,12114,9.097,12115,9.097,12116,9.097,12117,5.444,12118,4.726,12119,5.444,12120,5.444,12121,5.251,12122,5.444,12123,5.444,12124,5.444,12125,5.444,12126,5.444,12127,5.444,12128,5.444,12129,5.444,12130,5.444,12131,5.444,12132,5.444,12133,5.444,12134,5.444,14804,6.498,14805,6.498,14806,6.498,14807,6.498,14808,6.498,14809,6.498,14810,6.498,14811,6.498,14812,6.498,14813,6.498]],["title/classes/MaterialFactory.html",[0,0.231,14814,6.296]],["body/classes/MaterialFactory.html",[0,0.172,2,0.569,3,0.012,4,0.012,5,0.006,7,0.077,8,0.908,27,0.531,29,1.019,30,0.001,31,0.699,32,0.182,33,0.599,34,1.543,35,1.473,47,0.535,55,2.512,59,3.338,95,0.096,101,0.008,103,0,104,0,112,0.601,120,3.332,133,2.649,140,2.844,153,2.442,154,2.296,155,2.528,177,1.387,180,1.357,271,4.883,319,3.42,349,0.525,379,0.635,382,3.912,413,2.333,437,0.657,447,7.313,448,4.618,449,5.675,452,4.28,453,5.675,454,5.822,455,4.28,456,4.28,457,4.28,458,4.205,459,4.649,460,5.119,461,6.601,462,5.963,463,7.141,464,2.897,469,2.87,470,4.28,471,2.897,472,5.308,473,5.48,474,4.29,475,5.154,476,4.242,477,2.87,478,2.705,479,4.22,480,3.331,481,2.795,482,2.749,483,2.87,484,5.229,485,2.897,486,3.609,487,5.028,488,2.87,489,7.053,490,4.254,491,6.779,492,2.897,493,4.493,494,2.87,495,2.897,496,2.87,497,2.897,498,2.87,499,3.236,500,3.015,501,2.87,502,6.253,503,2.897,504,2.87,505,4.28,506,4.004,507,4.28,508,2.897,509,2.772,510,2.749,511,2.269,512,2.87,513,2.87,514,2.87,515,2.897,516,2.897,517,1.947,518,2.87,519,1.573,520,2.897,521,3,522,2.87,523,2.897,526,3.015,933,5.377,1198,2.604,1207,1.622,3542,3.091,11878,6.844,11889,3.377,12108,3.979,12110,3.778,12111,4.104,12112,4.104,12113,3.979,12114,4.104,14814,8.375,14815,5.079,14816,4.696,14817,5.079]],["title/injectables/MaterialsRepo.html",[539,0.901,14818,6.296]],["body/injectables/MaterialsRepo.html",[0,0.277,3,0.019,4,0.019,5,0.01,7,0.124,8,1.264,10,4.283,12,4.837,18,5.335,26,2.233,27,0.524,29,0.961,30,0.001,31,0.692,32,0.169,33,0.592,34,1.39,35,1.483,36,2.485,40,3.945,49,4.158,95,0.148,101,0.013,103,0.001,104,0.001,154,1.744,155,3.518,180,1.889,226,1.166,262,2.869,349,0.843,382,3.725,479,5.19,539,1.395,541,1.953,679,7.826,685,4.461,686,4.976,687,5.911,711,5.007,712,5.067,713,5.007,714,5.067,715,5.813,716,5.007,717,5.067,718,4.528,3638,5.603,11878,6.717,14816,7.543,14818,9.747,14819,8.158,14820,8.158]],["title/interfaces/Meta.html",[105,0.735,11342,4.761]],["body/interfaces/Meta.html",[3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.178,34,1.467,47,0.999,55,2.797,101,0.022,103,0.001,104,0.001,105,1.456,107,2.067,112,0.867,119,1.753,284,2.66,347,4.614,479,3.226,986,5.562,991,8.509,1025,4.928,3063,3.751,4543,5.817,6541,5.059,11337,6.406,11338,6.565,11339,6.406,11340,6.406,11341,6.565,11342,8.807,11343,9.602,11344,9.602,11345,6.406,11346,6.565,11347,6.264,11348,6.406,11349,6.565,11350,6.406]],["title/modules/MetaTagExtractorApiModule.html",[201,1.804,14821,5.503]],["body/modules/MetaTagExtractorApiModule.html",[0,0.298,3,0.021,4,0.021,5,0.01,30,0.001,95,0.169,101,0.014,103,0.001,104,0.001,201,3.202,203,3.158,204,3.394,205,3.492,206,3.478,207,3.463,208,4.428,209,3.302,214,6.192,218,4.394,219,3.421,220,3.34,222,5.454,223,4.549,225,4.358,226,1.255,259,3.34,1278,2.778,1692,6.029,1767,7.346,2705,4.145,10872,6.694,10873,8.793,11342,6.139,13183,7.096,14821,11.252,14822,8.781,14823,8.781,14824,8.781,14825,10.455,14826,11.18,14827,8.119,14828,10.576,14829,8.119,14830,8.781]],["title/controllers/MetaTagExtractorController.html",[259,2.591,14828,5.958]],["body/controllers/MetaTagExtractorController.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,27,0.308,29,0.585,30,0.001,31,0.421,32,0.179,33,0.361,35,0.903,36,2.126,95,0.166,100,2.525,101,0.012,103,0.001,104,0.001,138,1.367,150,1.713,177,1.376,223,3.095,226,1.075,236,1.223,259,2.86,261,3.57,262,2.459,270,5.856,294,6.012,324,5.057,335,5.995,336,7.429,337,3.886,338,3.974,339,6.951,341,6.951,343,4.004,345,2.393,346,4.463,347,4.111,349,1.159,437,1.452,608,1.733,739,4.374,823,3.506,1162,4.773,1818,6.644,2173,4.21,2705,3.549,2874,5.468,2876,7.617,2897,8.793,2903,6.342,3224,5.87,5535,8.371,8443,7.617,10871,10.464,10872,7.617,10873,9.502,11342,7.847,12047,8.075,12113,5.89,13100,8.555,13183,9.07,14826,9.402,14828,8.742,14831,9.992,14832,7.518,14833,7.518,14834,7.518,14835,7.518,14836,7.518,14837,6.951,14838,7.518,14839,9.819,14840,7.518,14841,7.518,14842,7.518,14843,7.518,14844,7.518,14845,7.518]],["title/modules/MetaTagExtractorModule.html",[201,1.804,14825,5.335]],["body/modules/MetaTagExtractorModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,95,0.174,101,0.013,103,0.001,104,0.001,201,3.079,203,2.905,204,3.121,205,3.212,206,3.199,207,3.185,208,4.257,209,4.371,214,6.058,218,4.165,219,3.146,220,3.072,225,4.131,226,1.155,239,1.853,560,3.325,598,4.651,963,4.651,1278,2.555,1319,8.553,3454,5.547,3531,9.953,3534,8.11,3939,6.964,10667,5.755,10677,5.755,10678,5.547,10837,7.066,10872,6.156,10873,8.454,11342,5.646,14825,11.046,14827,7.467,14846,8.076,14847,8.076,14848,8.076,14849,8.076,14850,11.657,14851,8.076,14852,8.076,14853,8.076,14854,8.076]],["title/classes/MetaTagExtractorResponse.html",[0,0.231,14839,5.958]],["body/classes/MetaTagExtractorResponse.html",[0,0.352,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.519,29,0.619,30,0.001,31,0.445,32,0.173,33,0.635,47,0.948,95,0.146,101,0.013,103,0.001,104,0.001,112,0.823,138,2.223,148,2.522,150,1.811,153,2.882,245,3.324,247,3.479,248,4.326,379,1.296,773,4.022,1198,4.359,1207,4.048,2720,7.386,2723,7.254,2725,4.079,3224,7.448,6264,4.267,6291,6.954,6610,5.133,8244,6.79,10872,9.91,10873,10.098,14361,6.423,14839,11.092,14855,13.001,14856,7.949,14857,7.949,14858,7.949,14859,7.949,14860,7.949,14861,7.949,14862,7.949]],["title/injectables/MetaTagExtractorService.html",[539,0.901,14850,5.705]],["body/injectables/MetaTagExtractorService.html",[0,0.196,3,0.013,4,0.013,5,0.007,7,0.088,8,0.998,27,0.438,29,0.832,30,0.001,31,0.598,32,0.155,33,0.513,35,1.283,36,2.273,47,0.929,55,1.792,95,0.135,101,0.014,103,0,104,0,153,2.574,226,0.826,236,1.355,239,1.326,262,2.584,274,3.468,282,5.172,284,1.785,349,1.218,360,3.236,437,1.664,480,1.605,486,1.739,529,1.635,539,1.102,541,1.383,556,3.192,578,3.506,579,4.436,603,2.546,608,1.92,696,3.284,990,2.815,1079,3.395,1178,4.471,1198,4.478,1207,3.766,2112,7.777,2664,4.299,5738,5.343,8969,4.204,10872,8.631,10873,9.357,14850,6.976,14863,11.323,14864,5.779,14865,7.699,14866,8.328,14867,8.328,14868,8.328,14869,8.328,14870,5.779,14871,8.328,14872,12.155,14873,10.682,14874,5.779,14875,8.328,14876,8.328,14877,5.779,14878,8.328,14879,5.779,14880,8.328,14881,8.178,14882,8.178,14883,7.699,14884,5.779,14885,5.779,14886,9.762,14887,5.779,14888,5.779,14889,5.779,14890,5.779,14891,5.779,14892,5.779,14893,5.779,14894,5.779,14895,5.779,14896,5.779,14897,5.779,14898,5.779,14899,5.779,14900,5.779,14901,5.779,14902,5.779,14903,5.779,14904,5.779,14905,8.328,14906,5.779,14907,8.328,14908,8.328,14909,8.328,14910,5.779]],["title/injectables/MetaTagExtractorUc.html",[539,0.901,14826,5.705]],["body/injectables/MetaTagExtractorUc.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.127,8,1.282,26,2.637,27,0.438,29,0.833,30,0.001,31,0.599,32,0.146,33,0.513,35,1.002,36,2.276,39,2.245,47,0.833,95,0.158,99,1.392,101,0.014,103,0.001,104,0.001,177,1.958,226,1.193,236,1.357,262,2.587,349,0.862,379,1.338,437,1.079,529,2.361,539,1.416,541,1.997,560,3.435,579,4.445,603,2.149,608,2.466,739,4.682,990,2.821,1178,4.48,1198,4.058,1698,6.961,1796,5.063,1818,7.112,2112,5.731,2458,6.069,10872,8.999,10873,9.58,14826,8.96,14829,7.715,14850,11.219,14865,9.889,14911,11.805,14912,8.344,14913,8.344,14914,10.696,14915,8.344,14916,8.344]],["title/classes/MetadataTypeMapper.html",[0,0.231,14917,6.296]],["body/classes/MetadataTypeMapper.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.38,29,0.723,30,0.001,31,0.52,32,0.156,33,0.446,35,1.116,95,0.157,99,1.549,101,0.015,103,0.001,104,0.001,226,1.328,236,1.861,349,0.959,413,3.818,437,1.48,529,2.628,1603,3.493,2588,6.351,3196,7.29,6585,10.02,6663,7.506,6682,8.375,10647,7.781,12266,8.888,12269,6.176,12270,6.084,14917,10.578,14918,11.441,14919,8.126,14920,11.441,14921,11.441,14922,8.126,14923,8.587]],["title/classes/MigrationAlreadyActivatedException.html",[0,0.231,13748,5.503]],["body/classes/MigrationAlreadyActivatedException.html",[0,0.407,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.411,29,0.59,30,0.001,31,0.424,32,0.104,33,0.363,35,0.91,47,0.881,52,5.381,55,1.63,59,2.353,95,0.127,101,0.02,103,0.001,104,0.001,157,4.962,180,2.237,226,1.083,239,2.585,349,1.164,379,0.947,590,6.163,654,3.351,935,4.826,1025,4.407,1275,5.727,1276,6.405,1278,2.396,1280,3.75,1281,6.321,2621,5.783,4484,5.961,4508,5.033,8369,6.451,8370,6.701,8469,10.366,12941,5.202,13735,6.121,13736,9.437,13737,5.634,13738,10.086,13739,10.049,13741,10.049,13743,6.345,13744,6.345,13745,6.121,13746,8.413,13747,5.509,13748,8.115,14924,7.575,14925,7.575]],["title/classes/MigrationBody.html",[0,0.231,13949,5.958]],["body/classes/MigrationBody.html",[0,0.358,2,0.915,3,0.019,4,0.019,5,0.01,7,0.124,27,0.479,30,0.001,32,0.16,33,0.629,52,6.257,95,0.134,101,0.013,103,0.001,104,0.001,112,0.838,119,2.666,138,2.126,142,5.124,143,2.917,144,4.315,145,3.637,147,6.633,148,2.594,150,1.863,153,2.658,245,3.239,249,4.998,517,5.022,654,3.896,2434,6.915,5499,9.794,8005,6.725,9862,8.093,11856,7.851,13949,9.235,14012,8.912,14013,8.912,14014,8.912,14926,8.175,14927,8.175,14928,8.175,14929,8.175]],["title/injectables/MigrationCheckService.html",[539,0.901,14930,5.705]],["body/injectables/MigrationCheckService.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.114,8,1.198,26,2.534,27,0.409,29,0.778,30,0.001,31,0.56,32,0.137,33,0.479,35,0.903,36,2.126,47,0.904,48,5.679,95,0.158,99,1.254,101,0.012,103,0.001,104,0.001,119,1.53,128,4.521,145,2.087,177,2.055,226,1.075,227,3.095,239,1.725,262,2.459,349,1.159,379,1.25,437,1.547,539,1.323,541,1.8,593,4.157,603,2.254,608,2.587,654,3.338,1900,7.522,1902,7.352,1904,4.21,1905,5.596,3544,3.805,4508,5.014,4521,6.453,4523,6.971,4533,7.432,4768,7.519,7142,5.281,8523,4.999,8532,7.059,9732,6.075,14138,6.298,14930,8.371,14931,11.224,14932,7.518,14933,9.238,14934,10.234,14935,7.518,14936,9.992,14937,7.518,14938,6.577,14939,8.075,14940,6.951,14941,6.577,14942,7.518,14943,9.992,14944,6.951]],["title/classes/MigrationDto.html",[0,0.231,13965,4.853]],["body/classes/MigrationDto.html",[0,0.337,2,1.112,3,0.023,4,0.023,5,0.012,7,0.151,27,0.488,29,0.773,30,0.001,31,0.556,32,0.163,33,0.476,47,0.841,101,0.016,103,0.001,104,0.001,112,0.946,128,5.142,379,1.242,2060,8.245,2076,8.319,4508,5.703,13965,9.648,14945,9.93,14946,11.916,14947,11.916,14948,9.181,14949,9.93]],["title/injectables/MigrationMapper.html",[539,0.901,13929,5.705]],["body/injectables/MigrationMapper.html",[0,0.315,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.38,29,0.723,30,0.001,31,0.52,32,0.127,33,0.446,35,1.116,95,0.157,100,3.12,101,0.015,103,0.001,104,0.001,226,1.328,236,1.511,349,0.959,437,1.201,539,1.514,541,2.223,662,3.899,789,4.637,823,4.015,9862,7.495,13929,9.585,13957,10.458,13958,7.781,13959,8.126,13960,10.739,14012,7.08,14013,7.08,14014,7.08,14135,7.781,14137,7.781,14950,9.288,14951,10.009,14952,10.009,14953,9.288,14954,9.288,14955,9.288,14956,9.288,14957,9.288,14958,9.288]],["title/classes/MigrationMayBeCompleted.html",[0,0.231,14959,6.296]],["body/classes/MigrationMayBeCompleted.html",[0,0.309,2,1.019,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,27,0.463,29,0.709,30,0.001,31,0.51,32,0.124,33,0.437,35,1.093,52,4.347,59,2.827,95,0.115,101,0.015,103,0.001,104,0.001,119,2.501,177,1.666,284,2.81,345,2.896,349,0.94,379,1.138,590,5.585,654,2.706,1025,3.559,1275,5.637,1276,6.305,1278,2.879,1280,3.531,1281,6.331,3232,5.521,4508,5.489,8369,6.35,8370,6.596,12195,8.936,12227,6.936,14959,10.444,14960,11.359,14961,8.413,14962,8.413,14963,8.413,14964,8.413,14965,8.413,14966,7.353]],["title/classes/MigrationMayNotBeCompleted.html",[0,0.231,14967,6.296]],["body/classes/MigrationMayNotBeCompleted.html",[0,0.31,2,1.021,3,0.021,4,0.021,5,0.011,7,0.138,8,1.356,27,0.463,29,0.71,30,0.001,31,0.511,32,0.125,33,0.438,35,1.096,52,4.356,59,2.834,95,0.116,101,0.015,103,0.001,104,0.001,119,2.503,177,1.669,284,2.817,345,2.903,349,0.942,379,1.141,654,2.712,1025,3.567,1275,5.643,1276,6.311,1278,2.885,1280,3.536,1281,6.336,4508,5.494,8369,6.357,8370,6.603,12195,8.945,12227,6.952,14960,11.371,14961,8.432,14962,8.432,14963,8.432,14964,8.432,14965,8.432,14966,7.37,14967,10.459,14968,7.37]],["title/classes/MigrationResponse.html",[0,0.231,13960,5.503]],["body/classes/MigrationResponse.html",[0,0.249,2,0.822,3,0.017,4,0.017,5,0.009,7,0.111,27,0.521,29,0.572,30,0.001,31,0.411,32,0.19,33,0.641,52,6.451,83,4.385,95,0.093,101,0.012,103,0.001,104,0.001,112,0.781,119,2.001,138,2.247,149,4.699,150,1.672,153,2.808,245,2.578,271,2.871,379,0.918,820,3.368,1213,6.575,2434,6.441,6319,6.538,8005,7.547,9862,8.506,10953,7.704,11856,7.314,13960,9.981,13976,8.603,14012,8.453,14013,8.453,14014,8.453,14135,9.29,14137,9.29,14969,7.34,14970,9.834,14971,9.092,14972,8.603,14973,7.34,14974,7.34,14975,7.34,14976,7.34,14977,6.786,14978,6.786,14979,6.786,14980,6.786,14981,6.786,14982,6.786,14983,6.786,14984,6.786,14985,6.786,14986,6.786]],["title/classes/MissingSchoolNumberException.html",[0,0.231,13745,5.503]],["body/classes/MissingSchoolNumberException.html",[0,0.407,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.411,29,0.59,30,0.001,31,0.424,32,0.104,33,0.363,35,0.91,47,0.881,52,5.381,55,1.63,59,2.353,95,0.127,101,0.02,103,0.001,104,0.001,157,4.962,180,2.237,226,1.083,239,2.585,349,1.164,379,0.947,590,6.163,654,3.351,935,4.826,1025,4.407,1275,5.727,1276,6.405,1278,2.396,1280,3.75,1281,6.321,2621,5.783,4484,5.961,4508,5.033,8369,6.451,8370,6.701,8469,10.366,12941,5.202,13735,6.121,13736,9.437,13737,5.634,13738,10.086,13739,10.049,13741,10.049,13743,6.345,13744,6.345,13745,8.115,13746,8.413,13747,5.509,13748,6.121,14987,7.575,14988,7.575]],["title/classes/MissingToolParameterValueLoggableException.html",[0,0.231,14989,6.296]],["body/classes/MissingToolParameterValueLoggableException.html",[0,0.219,2,0.723,3,0.015,4,0.015,5,0.008,7,0.098,8,1.08,27,0.524,29,0.874,30,0.001,31,0.362,32,0.182,33,0.498,35,1.082,47,0.886,55,1.389,95,0.15,101,0.011,103,0.001,104,0.001,112,0.715,131,2.418,138,2.148,177,2.459,180,1.614,182,2.1,226,0.923,284,1.994,340,3.103,347,2.365,349,0.667,363,6.612,379,1.127,382,3.69,437,0.835,480,1.793,564,2.766,603,1.809,820,5.151,823,2.266,935,4.114,950,4.814,988,2.785,990,3.796,1025,4.391,1205,7.982,1206,5.917,1207,3.584,1208,6.61,1212,4.17,1213,3.584,1214,4.17,1215,4.17,1216,4.17,1217,4.17,1218,4.17,1219,3.874,1220,3.682,1226,4.061,1275,4.76,1276,5.324,1278,2.043,1280,2.816,1281,5.532,1589,5.81,1840,6.276,1842,3.182,2489,3.915,2507,2.884,2557,7.25,2592,4.293,3235,3.616,3677,5.648,3871,4.922,5477,7.279,5781,4.293,8369,5.362,8370,5.57,8820,4.061,8827,3.754,8828,3.917,8982,5.648,10781,5.969,14989,8.328,14990,10.375,14991,10.375,14992,6.456,14993,6.456,14994,6.456,14995,6.456,14996,5.409,14997,6.456,14998,9.008,14999,10.375,15000,6.456,15001,6.456,15002,6.456]],["title/modules/MongoMemoryDatabaseModule.html",[201,1.804,10730,4.761]],["body/modules/MongoMemoryDatabaseModule.html",[0,0.254,3,0.017,4,0.017,5,0.009,8,0.898,27,0.408,29,0.583,30,0.001,31,0.42,32,0.136,33,0.359,35,1.197,36,2.121,59,2.327,95,0.162,96,2.738,99,1.249,101,0.012,103,0.001,104,0.001,143,1.668,155,2.499,173,2.215,201,2.967,203,2.694,209,2.816,225,2.954,226,1.071,262,2.184,349,1.157,413,3.069,437,1.608,490,4.41,521,2.966,573,5.059,603,1.505,608,1.727,637,5.337,639,3.515,645,5.448,646,5.337,761,4.906,996,3.578,997,3.536,998,3.536,999,3.739,1076,4.98,1077,4.597,1106,5.448,1107,6.846,1110,7.941,1280,2.341,1603,2.816,4902,6.846,6901,4.652,6953,4.906,7875,7.598,10664,8.687,10666,5.337,10668,7.414,10730,7.832,10732,8.883,10736,9.301,15003,11.203,15004,11.203,15005,7.49,15006,7.49,15007,10.879,15008,7.49,15009,9.968,15010,7.49,15011,7.49,15012,7.49,15013,9.968,15014,7.49,15015,6.053,15016,7.49,15017,6.925,15018,7.49,15019,7.49,15020,9.968,15021,7.49]],["title/classes/MongoPatterns.html",[0,0.231,13026,5.705]],["body/classes/MongoPatterns.html",[0,0.32,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.386,30,0.001,72,5.238,101,0.016,103,0.001,104,0.001,112,0.916,355,7.258,358,5.077,413,3.842,480,2.615,486,2.834,572,9.04,1762,6.924,1773,6.297,4202,8.068,5488,8.518,8326,9.325,10382,10.669,11363,8.796,13026,9.667,15022,9.419,15023,12.476,15024,11.54,15025,11.54,15026,9.419,15027,11.54,15028,9.667,15029,11.54,15030,11.54,15031,10.669]],["title/classes/MoveCardBodyParams.html",[0,0.231,4012,5.958]],["body/classes/MoveCardBodyParams.html",[0,0.389,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.469,30,0.001,32,0.157,47,0.809,55,2.466,95,0.145,101,0.015,103,0.001,104,0.001,112,0.91,138,2.084,142,4.482,143,2.884,144,4.267,145,3.596,148,2.954,150,2.121,245,3.254,807,4.676,3434,8.164,3435,6.634,3440,6.771,4012,10.024,4053,9.462,7046,8.607,15032,11.476,15033,12.412,15034,8.607,15035,9.31,15036,8.145,15037,9.31]],["title/classes/MoveColumnBodyParams.html",[0,0.231,4962,5.958]],["body/classes/MoveColumnBodyParams.html",[0,0.385,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.464,30,0.001,32,0.155,34,1.93,47,0.8,55,2.438,95,0.144,101,0.015,103,0.001,104,0.001,112,0.9,138,2.061,142,4.816,143,2.865,144,4.239,145,3.573,148,2.901,150,2.083,153,2.078,245,3.228,807,4.623,1885,4.728,2680,5.115,3434,8.072,3435,6.513,3440,6.648,3817,5.369,4053,9.384,4962,9.911,15032,11.382,15036,7.997,15038,9.141,15039,12.311,15040,9.141,15041,9.141]],["title/classes/MoveContentElementBody.html",[0,0.231,8276,5.958]],["body/classes/MoveContentElementBody.html",[0,0.387,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,27,0.467,30,0.001,32,0.156,47,0.805,55,2.455,95,0.145,101,0.015,103,0.001,104,0.001,112,0.906,138,2.075,142,4.463,143,2.877,144,4.257,145,3.587,148,2.934,150,2.107,245,3.244,807,4.656,2196,5.006,3434,8.13,3435,6.588,3440,6.725,4053,9.432,7051,7.745,8276,9.981,15034,8.548,15036,8.088,15042,12.374,15043,12.374,15044,9.246,15045,9.246]],["title/classes/MoveElementParams.html",[0,0.231,7439,5.705]],["body/classes/MoveElementParams.html",[0,0.415,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.459,30,0.001,32,0.153,55,2.63,72,4.084,95,0.142,100,3.022,101,0.018,103,0.001,104,0.001,112,0.891,138,2.04,148,2.855,149,4.267,150,2.05,153,2.045,245,3.453,249,4.538,974,4.351,1080,5.732,1883,3.721,2282,5.522,2745,5.929,3434,9.119,3435,6.411,3440,8.891,3855,6.18,5556,7.537,5905,6.845,7051,7.537,7434,5.659,7439,9.398,7443,6.411,7560,7.271,8737,8.788,15046,11.301,15047,11.52,15048,8.997,15049,8.997]],["title/classes/MoveElementPositionParams.html",[0,0.231,15047,5.958]],["body/classes/MoveElementPositionParams.html",[0,0.404,2,0.948,3,0.02,4,0.02,5,0.01,7,0.128,27,0.487,30,0.001,32,0.162,33,0.518,55,2.845,72,4.901,95,0.137,100,3.626,101,0.018,103,0.001,104,0.001,112,0.857,138,2.162,148,2.687,149,4.107,150,1.929,153,2.454,245,3.39,249,4.368,974,5.221,1080,7.573,1883,4.465,2282,6.626,2745,6.617,3431,9.982,3434,8.92,3435,6.034,3440,8.646,3855,7.415,5556,9.045,5905,6.656,7051,7.093,7434,6.79,7439,7.093,7443,8.47,7560,9.605,15046,11.574,15047,10.952,15050,8.467,15051,8.467,15052,8.467,15053,8.467]],["title/entities/News.html",[154,1.456,6926,3.884]],["body/entities/News.html",[0,0.314,3,0.01,4,0.023,5,0.005,7,0.16,9,3.159,26,1.956,27,0.507,30,0.001,31,0.517,32,0.175,33,0.547,34,1.14,47,0.895,83,2.517,95,0.145,96,2.252,101,0.016,103,0,104,0,105,0.466,112,0.794,138,2.176,143,2.663,144,3.634,154,2.136,155,1.44,160,4.676,170,3.381,172,3.738,173,1.277,174,2.662,175,1.908,180,1.655,181,2.472,182,1.404,236,1.334,239,2.531,349,0.446,355,5.156,358,3.606,381,1.45,403,4.55,413,1.329,459,4.207,480,1.198,486,1.299,521,3.247,563,4.866,643,2.975,644,5.034,654,3.281,655,4.642,838,2.57,996,3.916,997,4.36,998,3.87,999,4.093,1000,4.473,1207,3.376,1225,4.108,1603,1.623,1657,4.385,1663,4.12,1679,3.741,1755,4.384,1773,2.355,1867,2.479,2196,4.278,2506,4.632,2611,4.879,2624,2.535,2680,5.658,2725,2.215,3393,4.597,3395,4.264,3396,4.679,3398,3.076,3399,3.018,3400,3.21,3414,2.649,3547,2.915,3572,2.75,4209,2.27,4301,3.29,4302,3.139,4443,3.139,5040,3.762,5120,4.868,5688,7.27,6284,3.715,6502,3.018,6589,2.649,6591,2.417,6612,2.59,6819,2.915,6825,2.681,6912,3.21,6913,3.488,6915,4.061,6916,3.488,6917,6.869,6918,5.964,6919,3.488,6920,8.284,6921,6.141,6922,5.409,6923,6.097,6924,6.869,6925,6.768,6926,7.568,6927,5.408,6928,6.581,6929,5.408,6930,5.102,6931,5.102,6932,5.964,6933,5.408,6934,3.29,6935,3.29,6936,3.488,6937,3.21,6938,3.488,6939,2.562,6940,2.649,6941,3.29,6942,3.488,6943,3.488,6944,6.422,6945,3.488,6946,6.624,6947,3.488,6948,3.488,6949,5.102,6950,3.29,6951,5.731,6952,3.381,6953,4.384,6954,3.29,6955,3.139,6956,3.29,6957,3.488,15054,4.316,15055,4.316,15056,4.316,15057,4.316,15058,4.316,15059,4.316,15060,4.316,15061,4.316,15062,4.316,15063,4.316,15064,4.316,15065,4.316]],["title/controllers/NewsController.html",[259,2.591,15066,5.958]],["body/controllers/NewsController.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.917,10,4.388,27,0.442,29,0.841,30,0.001,31,0.605,32,0.148,33,0.518,34,1.303,35,1.297,36,2.664,95,0.149,100,3.937,101,0.008,103,0,104,0,112,0.607,138,1.964,150,1.172,154,1.634,177,0.942,223,2.118,226,0.735,236,0.837,239,2.763,247,2.252,259,1.957,261,2.443,262,2.897,270,6.52,271,4.428,274,4.588,294,6.773,310,3.956,324,4.619,333,3.236,334,3.322,337,2.659,338,2.719,343,2.74,345,1.637,349,1.116,437,1.619,608,2.489,643,3.399,654,3.006,685,4.276,823,2.683,835,7.065,993,4.245,1618,6.131,2558,5.829,2882,7.414,2899,6.48,2903,5.158,2904,2.762,3395,4.872,3720,6.344,4565,4.75,5072,4.872,5486,6.179,5505,4.388,5949,4.447,6680,6.063,6926,7.686,6966,7.07,7099,8.166,7156,3.921,10766,8.166,12807,4.309,14154,4.309,14160,4.309,15066,6.69,15067,5.144,15068,7.15,15069,5.144,15070,5.144,15071,10.954,15072,7.647,15073,5.144,15074,4.756,15075,5.144,15076,7.07,15077,5.144,15078,7.647,15079,5.144,15080,7.647,15081,5.144,15082,8.466,15083,7.647,15084,5.144,15085,4.157,15086,4.5,15087,7.376,15088,4.756,15089,4.157,15090,4.157,15091,4.756,15092,5.144,15093,4.756,15094,4.756,15095,4.756,15096,8.841,15097,4.5,15098,4.756,15099,4.756,15100,4.756,15101,4.756,15102,5.144,15103,5.144,15104,5.144,15105,5.144,15106,5.144,15107,7.647,15108,5.144]],["title/classes/NewsCrudOperationLoggable.html",[0,0.231,15109,5.958]],["body/classes/NewsCrudOperationLoggable.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,26,2.668,27,0.447,29,0.671,30,0.001,31,0.482,32,0.118,33,0.413,35,1.035,39,3.389,95,0.16,99,1.437,101,0.014,103,0.001,104,0.001,177,2.193,191,4.661,284,2.66,349,0.89,379,1.365,603,2.407,1025,3.369,1275,5.498,1276,6.148,1278,2.725,1280,3.411,1281,6.207,2348,10.179,6926,7.858,10793,9.602,15085,6.959,15086,7.534,15109,9.548,15110,11.981,15111,8.612,15112,8.612,15113,11.647,15114,8.612,15115,8.612,15116,7.962,15117,7.962,15118,8.612,15119,8.612]],["title/classes/NewsListResponse.html",[0,0.231,15089,5.503]],["body/classes/NewsListResponse.html",[0,0.264,2,0.589,3,0.012,4,0.027,5,0.006,7,0.08,27,0.447,29,0.41,30,0.001,31,0.518,32,0.177,33,0.523,34,1.944,47,0.856,55,2.857,56,5.519,59,2.417,70,5.699,83,2.841,95,0.145,99,0.878,101,0.013,103,0,104,0,112,0.618,133,1.841,138,1.859,149,3.888,150,1.2,153,3.038,154,2.73,180,1.394,239,2.345,245,3.454,247,2.305,253,3.809,284,3.368,305,3.032,319,2.377,376,4.03,377,4.2,379,0.973,382,3.084,404,2.149,406,3.4,408,3.4,437,1.197,556,1.326,563,3.125,654,3.395,814,7.248,815,6.178,816,4.437,818,2.646,820,4.246,821,2.53,822,2.948,823,1.848,824,3.681,825,5.024,826,4.48,827,3.449,828,2.804,829,3.681,830,3.681,832,3.311,833,2.922,838,2.439,993,2.922,1207,3.263,1507,3.355,1582,3.062,1663,5.137,1679,3.55,1867,1.95,2196,4.135,2309,3.355,2680,5.331,2725,2.702,2859,4.144,2860,4.144,2863,2.595,2899,3.159,3414,3.231,3467,3.916,4302,3.83,4373,7.752,4565,3.27,4649,3.616,5688,6.73,6611,3.27,6918,5.024,6921,6.152,6922,5.008,6923,3.916,6924,6.882,6925,5.492,6926,7.284,6935,4.013,6941,4.013,6951,3.681,7103,6.469,7107,3.355,7108,4.411,7109,4.013,7112,4.957,7115,3.83,10019,3.916,12479,4.255,15089,6.287,15090,9.796,15120,4.868,15121,5.265,15122,5.265,15123,6.287,15124,6.287,15125,7.477,15126,7.193,15127,7.193,15128,4.606,15129,7.193,15130,4.868,15131,4.868,15132,4.125,15133,4.868,15134,4.606,15135,6.806]],["title/classes/NewsMapper.html",[0,0.231,15085,5.503]],["body/classes/NewsMapper.html",[0,0.208,2,0.685,3,0.014,4,0.02,5,0.007,7,0.093,8,1.04,27,0.474,29,0.901,30,0.001,31,0.648,32,0.158,33,0.555,34,1.478,35,1.391,95,0.152,99,1.021,100,4.243,101,0.01,103,0,104,0,236,0.996,239,1.405,271,3.395,284,2.68,310,3.761,349,1.196,376,2.667,377,2.779,413,4.187,437,1.634,654,2.998,782,4.817,789,3.057,1207,3.218,1277,8.819,1278,1.937,1663,3.077,2196,4.078,2680,4.951,6918,6.51,6921,6.702,6922,4.696,6924,4.554,6925,6.509,6926,7.43,7099,8.862,7103,7.667,7465,8.023,10766,8.862,10768,4.947,11943,8.146,11950,8.444,11951,8.862,15082,9.187,15085,7.012,15090,8.862,15136,6.122,15137,8.678,15138,8.678,15139,8.678,15140,8.678,15141,8.678,15142,6.122,15143,8.678,15144,6.122,15145,8.678,15146,6.122,15147,8.678,15148,6.122,15149,8.678,15150,6.122,15151,5.356,15152,10.08,15153,5.356,15154,5.356,15155,6.122,15156,6.122,15157,6.122,15158,8.678,15159,6.122,15160,6.122,15161,5.66,15162,6.122,15163,6.122,15164,8.023,15165,8.023,15166,6.122,15167,6.122,15168,5.66,15169,6.122,15170,6.122,15171,6.122,15172,8.678,15173,6.122,15174,6.122,15175,6.122,15176,6.122,15177,8.678,15178,8.678,15179,6.122,15180,6.122,15181,6.122]],["title/modules/NewsModule.html",[201,1.804,15182,5.503]],["body/modules/NewsModule.html",[0,0.288,3,0.02,4,0.02,5,0.01,30,0.001,95,0.17,101,0.014,103,0.001,104,0.001,201,3.152,203,3.052,204,3.279,205,3.375,206,3.361,207,3.347,208,4.358,209,4.474,214,6.138,218,4.3,219,3.306,220,3.228,223,4.451,225,4.264,226,1.213,227,3.493,1278,2.684,1692,7.219,2472,3.851,15066,10.409,15087,11.323,15088,7.845,15182,11.375,15183,8.485,15184,8.485,15185,8.485,15186,8.485,15187,10.69,15188,8.485,15189,10.409,15190,8.485,15191,8.485,15192,8.485]],["title/injectables/NewsRepo.html",[539,0.901,15187,5.503]],["body/injectables/NewsRepo.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.071,8,0.852,10,2.887,12,3.261,18,3.596,26,2.537,27,0.5,29,0.91,30,0.001,31,0.655,32,0.164,33,0.561,34,1.466,35,1.405,36,2.643,40,2.257,49,2.803,59,2.674,95,0.138,96,1.282,98,2.77,99,0.778,101,0.008,103,0,104,0,112,0.564,153,1.061,154,0.997,155,2.372,173,1.38,180,1.274,226,0.667,236,1.156,262,2.909,310,3.08,319,3.886,333,4.382,349,1.07,382,2.903,437,1.606,479,4.652,480,1.296,486,1.404,490,4.566,539,0.941,541,1.117,590,5.906,603,1.729,604,3.497,608,2.761,654,3.245,679,6.663,685,3.007,686,3.355,687,4.355,711,2.864,712,2.899,713,2.864,714,2.899,715,3.325,716,2.864,717,2.899,718,2.59,723,3.557,741,3.205,848,5.295,1603,1.755,2034,4.016,2291,5.711,2680,5.407,3395,6.13,3398,6.856,3833,5.743,4148,3.057,4324,2.831,4690,3.103,4692,5.047,5462,2.899,5505,3.497,5688,5.169,5949,4.133,6220,4.881,6284,6.055,6680,4.264,6912,6.402,6922,3.846,6926,7.471,6950,6.561,6956,6.561,6970,7.412,6980,5.286,8120,5.169,9659,8.675,10247,6.57,10261,6.57,10770,3.771,12956,8.418,15187,5.743,15193,4.667,15194,8.607,15195,7.107,15196,8.607,15197,7.107,15198,7.107,15199,9.166,15200,4.667,15201,4.667,15202,4.667,15203,7.107,15204,4.667,15205,9.622,15206,4.667,15207,4.667,15208,4.667,15209,7.53,15210,7.107,15211,4.667,15212,9.622,15213,7.107,15214,4.667,15215,4.667,15216,7.107,15217,4.667,15218,4.667,15219,7.107,15220,7.107,15221,4.667,15222,4.667,15223,4.667,15224,8.607,15225,4.667,15226,4.667,15227,4.667]],["title/classes/NewsResponse.html",[0,0.231,15090,5.503]],["body/classes/NewsResponse.html",[0,0.231,2,0.494,3,0.01,4,0.028,5,0.005,7,0.067,27,0.531,29,0.343,30,0.001,31,0.565,32,0.183,33,0.534,34,2.086,47,0.915,55,1.788,56,3.291,70,3.398,83,3.276,95,0.135,99,0.736,101,0.011,103,0,104,0,112,0.54,133,2.38,138,2.339,149,3.554,150,1.005,153,3.026,154,2.873,180,0.79,239,2.551,245,3.338,247,1.931,253,4.069,284,2.102,305,3.919,319,3.073,376,4.397,377,4.582,379,0.851,404,1.8,406,2.849,408,2.849,437,1.075,563,2.618,654,3.579,773,2.232,814,4.177,815,2.387,816,2.516,820,5.522,832,2.774,833,2.448,838,2.605,993,3.778,1207,3.55,1213,3.778,1507,2.81,1582,3.958,1663,5.589,1679,4.264,1867,2.521,2196,4.498,2309,4.336,2680,5.613,2725,2.264,2858,2.889,2859,4.976,2860,4.976,2862,2.707,2863,3.354,2899,4.084,3414,2.707,3467,5.062,4302,3.208,4373,6.962,4565,4.228,4649,4.675,5688,7.343,6226,4.078,6611,2.74,6918,5.367,6921,6.712,6922,5.464,6923,3.281,6924,7.509,6925,5.992,6926,7.667,6935,3.362,6941,3.362,6951,3.084,7103,7.058,7107,4.336,7108,5.702,7109,5.188,7112,5.953,7115,4.951,10019,3.281,12479,3.564,15089,3.564,15090,9.279,15120,4.078,15123,6.716,15124,6.716,15125,8.158,15126,7.683,15127,7.683,15128,3.859,15129,7.683,15130,4.078,15131,4.078,15132,3.456,15133,4.078,15134,5.954,15135,8.174,15228,4.411,15229,4.411,15230,4.411,15231,4.411,15232,4.411,15233,4.411,15234,4.411,15235,4.411,15236,4.411,15237,4.411,15238,4.411,15239,4.411,15240,4.411,15241,4.411,15242,4.411,15243,4.411]],["title/classes/NewsScope.html",[0,0.231,15209,5.958]],["body/classes/NewsScope.html",[0,0.215,2,0.709,3,0.015,4,0.015,5,0.008,7,0.096,8,1.066,26,2.358,27,0.53,29,0.867,30,0.001,31,0.624,32,0.171,33,0.534,35,1.46,83,2.729,95,0.149,96,1.74,99,1.057,101,0.01,103,0.001,104,0.001,112,0.706,119,2.09,173,1.873,180,1.593,236,1.446,310,4.825,349,1.211,382,3.538,437,1.328,480,1.759,486,1.906,519,1.962,556,1.596,603,2.442,696,2.498,708,2.631,739,2.773,1671,4.829,1758,7.646,2291,6.96,2680,2.86,3598,5.857,3600,5.119,4324,3.843,5505,5.331,6059,6.004,6060,6.004,6061,6.004,6066,6.004,6067,6.004,6068,4.351,6069,4.279,6070,4.351,6071,4.351,6080,4.279,6081,6.004,6082,4.351,6083,4.279,6084,4.351,6085,4.279,6086,7.52,6284,5.7,6921,5.91,6922,3.428,6925,3.76,6926,5.07,9659,5.307,9664,5.857,9675,4.829,10293,5.119,10302,5.542,10309,5.542,13051,7.183,13054,8.218,15199,8.996,15209,11.479,15244,10.841,15245,8.889,15246,11.133,15247,8.889,15248,11.133,15249,8.889,15250,6.334,15251,8.889,15252,6.334,15253,5.857,15254,6.334,15255,6.334,15256,6.334,15257,6.334,15258,6.334,15259,6.334,15260,6.334]],["title/interfaces/NewsTargetFilter.html",[105,0.735,15199,5.503]],["body/interfaces/NewsTargetFilter.html",[3,0.024,4,0.024,5,0.012,7,0.154,26,2.823,30,0.001,32,0.165,95,0.128,99,1.69,101,0.017,103,0.001,104,0.001,105,1.093,107,2.431,112,0.958,2680,4.573,6918,8.607,6925,7.911,9663,11.659,15199,9.744,15244,9.366,15261,10.13]],["title/injectables/NewsUc.html",[539,0.901,15087,5.503]],["body/injectables/NewsUc.html",[0,0.112,3,0.008,4,0.008,5,0.004,7,0.05,8,0.647,10,2.194,25,4.724,26,2.881,27,0.451,29,0.858,30,0.001,31,0.617,32,0.154,33,0.529,34,1.689,35,1.43,36,2.533,39,3.545,47,0.484,59,1.678,83,2.434,95,0.126,98,1.957,99,0.55,101,0.005,103,0,104,0,119,1.396,153,0.75,226,0.471,227,1.358,236,0.878,239,1.239,262,2.846,271,4.189,333,5.037,349,1.138,359,4.114,379,0.675,381,1.814,413,2.111,437,1.612,480,1.904,486,2.631,490,3.515,517,2.629,521,1.306,539,0.715,541,0.789,556,1.727,593,2.539,603,2.424,608,2.96,643,3.047,654,0.981,662,3.794,685,2.285,696,1.301,721,2.074,932,2.971,993,1.83,996,1.575,997,1.557,998,1.557,1154,1.311,1278,1.043,1613,3.314,1663,5.892,1698,3.624,1699,6.64,1755,3.537,1925,1.785,2253,4.063,2348,2.665,2472,1.497,2680,3.948,2714,5.192,2899,3.24,3063,2.352,3250,2.074,4209,2.966,4546,3.927,5505,4.204,6680,1.979,6918,5.119,6921,6.879,6922,1.785,6925,6.541,6926,7.629,6970,4.809,7042,2.583,7103,6.931,7115,2.398,8889,5.371,9633,4.992,9640,4.992,9659,8.305,9663,4.724,10768,7.066,11943,6.405,11950,6.64,11951,8.011,12513,2.583,12802,4.724,13420,2.885,13421,2.885,15087,4.363,15097,4.724,15109,2.885,15113,3.049,15116,3.049,15128,2.885,15161,3.049,15164,7.328,15165,7.328,15168,4.992,15187,7.588,15199,4.363,15262,3.298,15263,6.857,15264,5.4,15265,5.4,15266,5.4,15267,6.857,15268,3.298,15269,3.298,15270,4.992,15271,3.298,15272,3.298,15273,3.298,15274,3.298,15275,5.4,15276,5.998,15277,5.998,15278,5.4,15279,3.298,15280,5.4,15281,3.298,15282,9.39,15283,3.298,15284,5.4,15285,3.298,15286,4.992,15287,3.298,15288,5.541,15289,3.298,15290,5.4,15291,3.298,15292,3.298,15293,3.298,15294,5.4,15295,6.857,15296,3.298,15297,3.298,15298,7.926,15299,3.298,15300,5.4,15301,3.298,15302,5.4,15303,3.298,15304,3.298,15305,3.298,15306,3.298,15307,5.4,15308,3.298,15309,3.298,15310,3.298,15311,5.4,15312,6.857,15313,3.298,15314,3.298,15315,3.298,15316,3.298,15317,3.298,15318,3.298,15319,3.298,15320,3.298,15321,3.298,15322,3.298,15323,5.4,15324,3.298,15325,3.298,15326,3.298,15327,5.4,15328,3.298,15329,3.298,15330,3.298,15331,3.298,15332,3.298]],["title/classes/NewsUrlParams.html",[0,0.231,15071,5.958]],["body/classes/NewsUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,3817,5.762,6926,6.746,15071,10.348,15333,9.809,15334,12.7,15335,9.809]],["title/injectables/NexboardService.html",[539,0.901,14223,5.958]],["body/injectables/NexboardService.html",[0,0.268,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,26,2.583,27,0.423,29,0.804,30,0.001,31,0.578,32,0.157,33,0.495,34,1.346,35,0.949,36,2.197,39,3.094,47,0.947,94,3.845,95,0.155,101,0.017,103,0.001,104,0.001,145,2.194,153,2.772,177,1.446,226,1.13,236,1.285,262,2.52,284,2.441,345,2.515,349,1.067,379,0.988,437,1.488,539,1.367,541,1.892,560,3.253,579,4.209,603,1.587,608,1.821,685,3.344,990,3.491,1178,4.242,1198,2.717,1207,3.894,1278,2.5,1885,3.298,2253,4.714,2254,5.506,2442,3.869,8483,6.913,8484,9.441,8488,7.306,8489,6.913,8495,7.306,8497,7.306,11884,7.358,14223,9.033,15336,7.902,15337,11.502,15338,7.902,15339,7.902,15340,7.902,15341,10.326,15342,7.902,15343,7.902,15344,7.902,15345,7.902]],["title/interfaces/NextcloudGroups.html",[105,0.735,11339,5.065]],["body/interfaces/NextcloudGroups.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.975,55,2.652,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,1.865,284,2.83,347,3.355,479,3.432,986,5.916,991,6.188,1025,3.584,3063,3.99,4543,6.188,6541,7.565,11337,6.814,11338,6.983,11339,8.438,11340,6.814,11341,6.983,11342,8.616,11343,6.983,11344,6.983,11345,6.814,11346,6.983,11347,6.664,11348,6.814,11349,6.983,11350,6.814]],["title/injectables/NextcloudStrategy.html",[539,0.901,4618,5.958]],["body/injectables/NextcloudStrategy.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.606,27,0.439,29,0.78,30,0.001,31,0.642,32,0.137,33,0.481,34,1.771,35,1.249,36,2.549,39,1.36,47,0.914,55,1.802,62,2.97,72,1.382,95,0.145,99,0.508,100,2.536,101,0.005,103,0,104,0,112,0.402,153,2.054,177,1.654,226,0.435,236,0.495,239,1.922,262,2.753,273,3.855,276,1.295,280,3.473,301,3.362,305,1.754,333,4.4,349,0.989,379,0.632,413,2.782,437,1.599,448,4.61,473,2.759,517,1.168,529,0.862,539,0.669,541,0.729,562,5.186,564,0.935,579,1.622,593,1.128,603,2.259,608,2.936,654,1.504,696,1.201,708,1.265,764,1.995,932,2.783,935,1.94,937,1.754,974,5.543,1057,3.855,1178,2.715,1249,1.967,1278,0.963,1280,1.581,1400,2.129,1459,3.678,1663,1.531,1666,1.289,1734,1.94,1760,2.025,1775,2.17,1842,1.501,1894,3.678,2146,3.603,2173,5.06,2253,2.073,2254,3.409,2259,1.754,2282,3.104,2309,3.222,2336,1.789,2368,3.312,2435,3.603,2489,2.503,2568,3.195,2771,1.808,2899,1.827,2943,2.057,3063,3.288,3371,2.092,3467,4.823,3541,3.195,3542,2.646,3544,1.541,3547,2.057,3911,6.882,3917,4.675,4543,7.432,4548,4.236,4551,3.416,4553,4.086,4554,4.086,4556,4.086,4557,4.086,4559,5.24,4562,4.086,4563,7.41,4565,8.005,4566,4.086,4570,4.086,4576,2.265,4578,2.386,4598,8.403,4599,2.461,4600,2.664,4601,8.375,4602,7.328,4616,6.963,4617,6.981,4618,4.424,4623,2.816,4624,2.386,4768,5.623,5212,2.551,5501,1.737,5644,1.892,5768,2.577,6132,1.94,6141,1.869,6167,5.876,6922,2.737,7102,2.386,7112,4.81,7142,2.673,7251,4.534,7341,3.141,7535,8.796,7872,3.962,7891,2.092,7997,2.386,8325,2.816,9004,4.823,9689,3.222,9733,6.575,10378,1.721,11517,2.321,11539,8.982,11584,9.915,11677,4.675,11787,3.222,11949,3.362,12565,6.572,14996,2.551,15346,3.045,15347,7.55,15348,7.55,15349,5.057,15350,5.057,15351,5.057,15352,3.045,15353,3.045,15354,7.569,15355,9.035,15356,3.045,15357,3.855,15358,3.045,15359,3.045,15360,5.057,15361,3.045,15362,8.376,15363,7.55,15364,5.057,15365,3.045,15366,3.045,15367,5.432,15368,3.045,15369,4.424,15370,5.057,15371,7.736,15372,3.045,15373,4.236,15374,4.675,15375,4.675,15376,5.057,15377,3.045,15378,3.045,15379,3.045,15380,3.045,15381,10.021,15382,7.55,15383,3.045,15384,2.816,15385,3.045,15386,3.045,15387,3.045,15388,5.057,15389,3.045,15390,5.057,15391,6.485,15392,7.55,15393,5.057,15394,3.045,15395,2.664,15396,2.461,15397,3.045,15398,5.057,15399,3.045,15400,3.045,15401,3.045,15402,3.045,15403,3.045,15404,3.045,15405,5.057,15406,3.045,15407,5.057,15408,3.045,15409,3.045,15410,3.045,15411,2.816,15412,3.045,15413,3.045,15414,3.045,15415,3.045,15416,3.045,15417,3.045,15418,3.045,15419,3.045,15420,3.045,15421,3.045,15422,3.045,15423,3.045,15424,3.045,15425,3.045,15426,3.045,15427,3.045,15428,3.045,15429,3.045,15430,5.057,15431,5.057,15432,3.045,15433,3.045,15434,3.045,15435,3.045,15436,3.045,15437,3.045,15438,3.045,15439,3.045,15440,3.045]],["title/classes/NotFoundLoggableException.html",[0,0.231,4482,4.6]],["body/classes/NotFoundLoggableException.html",[0,0.29,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,8,1.301,27,0.445,29,0.665,30,0.001,31,0.478,32,0.148,33,0.41,35,1.026,47,0.971,95,0.151,101,0.014,103,0.001,104,0.001,177,2.185,180,1.945,182,2.778,226,1.221,284,2.637,349,0.882,379,1.358,437,1.104,603,2.397,1025,4.246,1275,5.476,1280,3.393,1281,6.188,2622,6.356,4482,7.332,8369,6.491,8820,5.37,8822,6.085,8827,4.966,8828,5.181,10783,7.153,10784,7.153,15441,11.934,15442,11.934,15443,11.033,15444,8.539,15445,11.934,15446,11.934,15447,11.934,15448,8.539,15449,8.539,15450,8.539,15451,8.539,15452,8.539]],["title/injectables/OAuth2ToolLaunchStrategy.html",[539,0.901,15453,5.705]],["body/injectables/OAuth2ToolLaunchStrategy.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,8,0.862,9,2.237,26,2.325,27,0.529,29,0.996,30,0.001,31,0.716,32,0.18,33,0.613,35,1.536,36,2.426,39,2.337,47,0.866,95,0.132,99,0.79,101,0.008,103,0,104,0,112,0.871,120,3.163,177,1.316,180,1.288,226,0.677,262,2.688,271,2.812,284,3.389,349,0.897,382,3.897,480,1.996,519,2.227,521,3.841,539,0.952,541,1.134,556,2.443,593,3.217,603,2.673,662,4.021,996,4.632,997,4.578,998,4.578,999,4.842,1000,5.292,1198,3.334,1589,2.653,1603,1.782,1839,6.731,1840,6.485,1894,7.054,1895,6.91,2029,5.61,2489,2.384,2528,3.969,2530,4.381,2531,12.228,2532,6.647,2533,8.032,2534,6.647,2535,6.647,2536,6.647,2537,6.647,2538,6.647,2539,6.647,2540,6.647,2541,6.647,2542,6.289,2543,6.289,2544,6.647,2545,6.647,2546,4.381,2547,9.492,2548,4.381,2549,6.647,2550,10.755,2552,6.647,2554,7.278,2555,4.381,2556,6.647,2557,7.364,2558,5.48,2559,4.381,2560,4.381,2561,6.647,2562,6.78,2563,4.381,2564,4.381,2565,6.647,2566,4.381,2567,4.381,2568,4.281,2569,4.381,2570,8.365,2571,4.381,2572,4.381,2573,4.381,2574,4.381,2575,4.145,2576,4.145,2577,4.381,2578,4.381,2579,4.381,2580,3.446,2581,4.381,2582,6.647,2583,6.352,2584,4.381,2585,4.381,2586,6.647,2587,4.381,2588,2.63,2589,6.647,2591,4.381,2592,3.15,2593,4.145,2594,3.712,2606,4.145,15453,6.023,15454,4.738,15455,4.738]],["title/classes/OAuthMigrationError.html",[0,0.231,15456,5.503]],["body/classes/OAuthMigrationError.html",[0,0.248,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.531,29,0.568,30,0.001,31,0.409,32,0.177,33,0.592,47,1.008,52,4.68,59,3.672,95,0.093,101,0.012,103,0.001,104,0.001,112,0.778,128,4.761,177,2.577,180,1.756,379,1.225,382,3.566,480,2.72,486,2.948,990,3.313,1025,4.965,1631,5.719,3871,5.564,4508,5.28,5501,5.588,6901,6.086,11445,9.24,13111,6.386,13737,5.429,15456,7.917,15457,10.928,15458,9.675,15459,9.675,15460,10.863,15461,12.967,15462,12.967,15463,9.798,15464,9.798,15465,7.3,15466,7.3,15467,7.3,15468,7.3,15469,7.3,15470,6.749,15471,6.749,15472,6.749,15473,6.749,15474,7.3,15475,7.3]],["title/classes/OAuthProcessDto.html",[0,0.231,15476,5.705]],["body/classes/OAuthProcessDto.html",[0,0.327,2,1.08,3,0.023,4,0.023,5,0.011,7,0.146,27,0.516,29,0.751,30,0.001,31,0.54,32,0.172,33,0.605,47,0.925,101,0.016,103,0.001,104,0.001,112,0.93,379,1.206,823,3.384,1417,7.483,2060,8.142,2076,8.079,5999,9.461,15476,11.252,15477,12.121,15478,9.644,15479,11.708,15480,9.644,15481,9.644,15482,9.644,15483,9.644]],["title/classes/OAuthRejectableBody.html",[0,0.231,5491,5.503]],["body/classes/OAuthRejectableBody.html",[0,0.309,2,0.735,3,0.015,4,0.015,5,0.008,7,0.099,27,0.486,30,0.001,32,0.162,33,0.634,47,0.907,55,1.96,95,0.115,101,0.011,103,0.001,104,0.001,112,0.723,135,6.823,138,2.16,142,5.17,144,4.354,145,3.888,148,2.082,150,1.495,153,2.866,245,3.223,248,4.957,249,4.973,282,5.659,287,5.967,347,3.337,348,5.644,662,2.865,842,7.904,950,4.227,990,4.587,1151,5.729,1231,6.626,1243,5.591,1723,8.198,1965,5.013,2365,6.783,3434,6.492,5462,5.659,5491,7.362,5492,8.766,5493,8.766,5494,8.198,5497,5.967,5514,8.857,5515,6.944,5516,7.97,5517,7.97,5518,7.97,5520,6.057,5521,8.618,5522,7.904,5523,6.944,5524,7.362,5525,6.944,5526,7.632,5527,7.362,5529,7.632,5531,6.944,5533,5.741,5534,7.632,5535,7.632,15484,11.365,15485,6.562,15486,6.562,15487,6.562,15488,6.562,15489,6.562,15490,6.562]],["title/classes/OAuthSSOError.html",[0,0.231,11445,4.853]],["body/classes/OAuthSSOError.html",[0,0.276,2,0.912,3,0.019,4,0.019,5,0.01,7,0.123,27,0.523,29,0.634,30,0.001,31,0.456,32,0.175,33,0.391,47,0.992,59,3.271,95,0.133,101,0.013,103,0.001,104,0.001,112,0.836,177,2.55,180,1.887,226,1.164,379,1.018,480,2.923,486,3.167,990,3.945,1025,4.997,1162,5.574,1631,8.248,3871,6.206,5501,6.005,6901,6.539,11445,7.502,15458,10.208,15459,10.208,15460,11.155,15470,7.527,15471,7.527,15472,7.527,15473,7.527,15491,13.085,15492,8.142,15493,10.528,15494,9.734,15495,9.775,15496,8.142,15497,8.142,15498,8.142,15499,7.527,15500,8.142]],["title/injectables/OAuthService.html",[539,0.901,11428,5.191]],["body/injectables/OAuthService.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.604,26,1.594,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,35,1.286,36,2.476,47,1,48,5.808,52,4.305,59,2.595,95,0.157,99,0.505,100,1.018,101,0.005,103,0,104,0,105,0.327,119,1.944,121,6.798,128,1.22,133,1.059,143,1.121,177,1.9,226,0.433,236,1.627,238,4.333,239,2.068,262,2.751,284,0.936,310,1.313,349,1.16,360,1.696,379,0.63,437,1.69,529,2.129,539,0.666,541,0.725,556,1.627,593,2.393,603,2.372,608,2.758,639,1.422,654,2.238,950,3.875,990,1.024,1159,3.588,1198,2.587,1275,1.39,1278,0.958,1326,6.749,1379,2.118,1382,2.253,1401,2.801,1405,2.538,1417,1.798,1421,2.309,1425,1.882,1437,5.004,1507,1.93,1551,3.662,1555,2.819,1567,5.973,1634,3.127,1666,2.13,1900,4.733,1902,4.232,1904,1.696,1905,2.819,2020,1.326,2021,1.483,2022,1.43,2023,1.93,2060,6.912,2253,2.648,2254,3.398,2372,2.081,3075,3.434,3371,3.458,3542,2.055,3544,2.548,4524,2.253,4768,5.294,4902,3.458,4903,2.373,5497,3.298,5501,2.872,6165,1.984,6780,1.956,7070,4.405,7142,3.978,8340,2.253,8523,5.004,8532,6.731,8926,2.118,9369,5.474,9398,2.448,9732,2.448,10116,1.905,11249,6.075,11292,4.295,11428,3.838,11442,8.4,11445,3.588,11448,4.699,11452,2.65,11455,4.655,11502,5.652,11523,2.253,11524,2.253,11525,4.805,11581,7.249,11841,2.253,12197,2.159,12324,3.662,12355,3.838,12357,2.309,12369,2.309,12586,2.538,13076,3.944,13103,3.52,13114,2.801,13119,2.65,13388,2.448,14119,4.405,14321,2.448,14930,8.001,14933,4.655,14938,2.65,14941,4.405,14996,2.538,15396,2.448,15460,6.997,15499,2.801,15501,3.029,15502,6.46,15503,6.46,15504,6.46,15505,4.655,15506,5.035,15507,5.035,15508,5.035,15509,6.46,15510,5.035,15511,8.001,15512,7.482,15513,6.947,15514,7.482,15515,3.029,15516,3.029,15517,7.526,15518,3.029,15519,3.029,15520,3.029,15521,3.029,15522,3.029,15523,5.035,15524,3.029,15525,5.035,15526,8.648,15527,3.029,15528,5.035,15529,3.029,15530,5.035,15531,3.029,15532,3.029,15533,3.029,15534,5.035,15535,3.029,15536,5.035,15537,3.029,15538,2.373,15539,2.65,15540,2.65,15541,2.65,15542,3.029,15543,2.801,15544,4.068,15545,2.801,15546,3.029,15547,4.405,15548,3.029,15549,3.029,15550,3.029,15551,3.029,15552,2.801,15553,2.448,15554,3.029,15555,7.526,15556,3.029,15557,3.029,15558,4.655,15559,3.029,15560,4.655,15561,3.029,15562,3.029,15563,3.029,15564,2.801,15565,4.405,15566,3.029,15567,3.029,15568,3.029,15569,2.801,15570,3.029,15571,4.218,15572,3.029,15573,3.029,15574,3.029,15575,3.029,15576,2.801,15577,3.029,15578,3.029,15579,3.029,15580,3.029,15581,3.029,15582,3.029,15583,3.029,15584,5.035,15585,3.029,15586,3.029,15587,2.801,15588,3.029,15589,3.029,15590,3.029,15591,3.029,15592,3.029,15593,3.029,15594,3.029,15595,3.029,15596,4.655,15597,2.801,15598,3.029,15599,3.029,15600,3.029,15601,4.655,15602,3.029,15603,5.035,15604,3.029]],["title/classes/OAuthTokenDto.html",[0,0.231,11448,4.953]],["body/classes/OAuthTokenDto.html",[0,0.319,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.532,29,0.732,30,0.001,31,0.526,32,0.178,33,0.451,47,0.958,101,0.015,103,0.001,104,0.001,112,0.915,121,8.164,181,3.084,379,1.175,381,3.156,1437,8.287,11448,9.698,14526,7.872,14527,7.872,15605,13.334,15606,9.397,15607,11.523,15608,11.523,15609,9.397,15610,9.397,15611,8.688,15612,8.688,15613,9.397,15614,9.397]],["title/classes/Oauth2AuthorizationBodyParams.html",[0,0.231,14500,5.705]],["body/classes/Oauth2AuthorizationBodyParams.html",[0,0.389,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.508,30,0.001,32,0.17,47,0.956,48,5.894,95,0.145,101,0.015,103,0.001,104,0.001,112,0.91,138,2.258,148,2.954,150,2.121,245,3.396,248,5.18,807,4.676,808,7.447,950,5.759,5876,6.771,7399,9.259,11581,7.618,13751,8.145,13752,8.607,14395,8.607,14396,8.607,14500,9.598,15615,12.952]],["title/classes/Oauth2MigrationParams.html",[0,0.231,15616,5.958]],["body/classes/Oauth2MigrationParams.html",[0,0.385,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.504,30,0.001,32,0.168,47,0.951,48,5.846,95,0.144,101,0.015,103,0.001,104,0.001,112,0.9,128,5.184,138,2.239,148,2.901,150,2.083,245,3.374,248,5.138,807,4.623,808,7.387,950,5.712,4508,5.749,5876,6.648,7399,9.155,11581,7.556,15616,9.911,15617,12.869,15618,9.141,15619,9.141,15620,9.141,15621,9.141]],["title/injectables/Oauth2Strategy.html",[539,0.901,1368,5.958]],["body/injectables/Oauth2Strategy.html",[0,0.241,3,0.017,4,0.017,5,0.008,7,0.108,8,1.152,27,0.394,29,0.748,30,0.001,31,0.538,32,0.16,33,0.461,35,0.852,36,2.045,47,0.501,48,5.175,66,6.206,94,5.303,95,0.173,101,0.012,103,0.001,104,0.001,105,0.766,120,4.228,122,4.792,141,3.389,177,1.759,180,1.722,182,2.308,226,1.014,236,1.563,239,2.68,262,2.388,270,3.473,292,3.59,294,4.83,324,3.59,345,2.258,349,0.733,379,0.887,425,5.16,437,1.579,528,3.693,529,2.719,539,1.272,541,1.698,593,2.627,603,1.425,608,2.512,617,9.812,631,3.64,950,4.459,1241,4.046,1368,8.408,1374,5.276,1544,5.276,1818,4.717,2060,4.581,4551,4.792,5497,6.295,6165,6.295,7130,5.276,7142,5.079,7145,7.148,7149,5.732,11427,6.206,11428,9.595,11448,6.99,11581,5.898,13172,5.557,13176,8.051,13181,5.943,13672,5.943,13821,8.885,13824,6.559,13838,6.559,14500,8.051,15571,5.943,15622,7.094,15623,7.094,15624,7.094,15625,6.559,15626,8.408,15627,7.094,15628,6.559,15629,6.559,15630,6.559,15631,8.408,15632,6.206,15633,7.094,15634,7.094,15635,7.094]],["title/classes/Oauth2ToolConfig.html",[0,0.231,7340,4.677]],["body/classes/Oauth2ToolConfig.html",[0,0.249,2,0.82,3,0.017,4,0.017,5,0.009,7,0.111,27,0.553,29,0.57,30,0.001,31,0.41,32,0.189,33,0.653,47,0.961,95,0.125,101,0.012,103,0.001,104,0.001,112,0.78,119,1.999,180,1.76,181,2.629,182,2.383,379,0.916,381,2.461,382,2.963,564,2.25,1870,3.565,2136,6.261,2487,6.064,2489,4.476,2490,6.138,2491,9.181,2493,6.409,2494,5.452,2495,6.409,2496,6.409,2498,5.221,5505,4.502,5590,5.531,7201,7.059,7235,5.585,7236,5.92,7292,4.949,7293,5.92,7337,9.451,7340,8.478,7348,6.722,7351,8.445,7353,8.241,7359,4.949,12351,5.032,12352,5.449,14592,6.774,14593,6.774,14594,6.774,14595,6.774,14596,6.774,14597,6.774,15636,13.361,15637,9.822,15638,6.409,15639,7.326,15640,6.774,15641,6.774,15642,6.774,15643,6.774,15644,6.774,15645,6.774]],["title/classes/Oauth2ToolConfigCreateParams.html",[0,0.231,8700,5.705]],["body/classes/Oauth2ToolConfigCreateParams.html",[0,0.324,2,0.787,3,0.016,4,0.016,5,0.008,7,0.107,27,0.543,30,0.001,32,0.186,33,0.559,47,0.962,95,0.148,101,0.012,103,0.001,104,0.001,112,0.759,119,1.944,138,2.41,147,5.129,148,2.231,149,4.127,150,1.602,180,1.712,245,3.426,248,5.239,249,4.389,382,2.882,564,2.159,851,3.359,1870,3.421,1912,6.029,2136,6.131,2487,5.931,2489,4.392,2494,6.023,2512,8.853,2513,7.732,2514,5.682,2515,5.682,2516,5.682,2517,5.682,2518,5.682,5505,4.408,5537,6.087,5590,5.417,5894,6.949,7201,6.913,7337,9.338,7348,6.583,7351,8.271,7353,8.07,7401,5.36,8698,5.682,8700,8.003,8706,6.152,14604,6.501,14608,6.501,15646,12.082,15647,6.501,15648,7.032,15649,7.032,15650,6.501,15651,6.501,15652,7.032,15653,6.501]],["title/classes/Oauth2ToolConfigEntity.html",[0,0.231,8765,5.503]],["body/classes/Oauth2ToolConfigEntity.html",[0,0.297,2,0.979,3,0.02,4,0.02,5,0.01,7,0.133,27,0.494,29,0.681,30,0.001,31,0.49,32,0.165,33,0.42,47,0.778,95,0.153,96,2.402,101,0.014,103,0.001,104,0.001,112,0.875,119,2.243,138,2.004,172,4.169,173,2.586,180,1.567,181,2.949,379,1.093,381,2.937,403,4.853,564,2.685,1870,4.254,2487,5.749,2489,4.329,2494,4.853,2501,7.324,2503,5.695,2504,8.904,2505,7.649,2506,4.941,2507,3.906,5590,6.024,7201,7.687,7235,6.665,7236,7.065,7359,7.442,8765,10.551,12351,6.005,15638,7.649,15654,12.666,15655,11.018,15656,8.743]],["title/classes/Oauth2ToolConfigFactory.html",[0,0.231,7346,5.705]],["body/classes/Oauth2ToolConfigFactory.html",[0,0.259,2,0.432,3,0.009,4,0.009,5,0.005,7,0.058,8,0.735,27,0.506,29,0.984,30,0.001,31,0.693,32,0.179,33,0.567,34,1.044,35,1.358,47,0.432,55,2.361,59,3.133,95,0.12,101,0.016,103,0,104,0,112,0.487,120,2.696,133,2.143,140,2.16,145,2.411,153,1.733,154,1.629,155,2.045,177,1.122,180,1.556,239,0.885,249,1.56,271,5.064,319,2.766,349,1.221,363,2.16,379,0.482,382,3.683,413,1.887,437,1.579,447,6.717,448,4.133,449,4.906,452,3.462,453,4.906,454,5.209,455,3.462,456,3.462,457,3.462,458,3.401,459,3.912,460,4.308,461,6.373,462,5.258,463,6.693,464,2.2,469,2.18,470,3.462,471,2.2,472,4.589,473,4.738,474,3.709,475,4.456,476,3.431,477,2.18,478,2.054,479,3.777,480,3.046,481,2.122,482,2.087,483,2.18,484,4.521,485,2.2,486,3.3,487,4.231,488,2.18,489,7.485,490,3.89,491,6.199,492,2.2,493,3.039,494,2.18,495,2.2,496,2.18,497,2.2,498,2.18,501,2.18,502,5.598,503,2.2,504,2.18,505,3.462,506,3.238,507,3.462,508,2.2,509,2.105,510,2.087,511,1.723,512,2.18,513,2.18,514,2.18,515,2.2,516,2.2,517,1.479,518,2.18,519,1.195,520,2.2,521,2.427,522,2.18,523,2.2,525,2.243,526,2.289,527,5.21,564,1.184,708,1.602,1198,1.326,1241,2.2,1430,3.563,1842,1.901,1868,2.748,1912,3.517,1925,3.316,2136,4.308,2486,2.805,2489,1.279,2494,2.141,2497,2.697,2557,3.957,2562,2.697,2568,1.901,4317,6.75,4319,2.805,5057,2.087,5440,2.94,5450,2.649,5468,4.557,5470,2.94,5505,3.849,5590,3.059,5768,1.965,5807,2.18,5864,3.117,5869,3.022,5870,2.605,7180,2.527,7186,2.491,7188,2.491,7190,2.491,7201,2.457,7202,2.289,7204,2.314,7276,2.491,7331,5.133,7332,5.36,7334,3.374,7336,2.805,7337,4.557,7338,3.022,7339,2.805,7340,2.649,7341,2.396,7342,3.374,7343,3.374,7344,3.374,7345,6.669,7346,6.386,7347,5.36,7348,3.717,7349,3.117,7350,2.805,7351,2.94,7352,3.374,7353,2.869,7354,3.374,7355,3.374,7356,3.231,7357,5.36,7358,3.374,7359,2.605,7360,3.374,7361,3.374,7362,3.374,7363,2.649,7364,3.374,7365,3.374,7366,3.231,7367,3.374,7368,2.748,7369,4.671,7370,5.36,7371,6.669,7372,3.022,7373,5.36,7374,5.36,7375,3.374,7376,3.231,7377,3.022,7378,5.133,7379,3.374,7380,3.374,7381,3.374,7382,3.374,7383,3.374,7384,5.36,7385,3.374,7386,3.231,7387,2.527,7388,3.231,7389,3.374,7390,3.374,7391,3.374,7392,3.374,15657,6.127,15658,3.857]],["title/classes/Oauth2ToolConfigResponse.html",[0,0.231,9294,5.705]],["body/classes/Oauth2ToolConfigResponse.html",[0,0.238,2,0.783,3,0.016,4,0.016,5,0.008,7,0.106,27,0.542,29,0.545,30,0.001,31,0.392,32,0.186,33,0.635,47,0.945,95,0.137,101,0.012,103,0.001,104,0.001,112,0.756,119,1.938,138,2.374,149,5.034,150,1.594,180,1.706,181,2.548,182,2.275,245,3.47,379,0.875,381,2.35,382,2.872,564,2.148,1870,3.404,2136,6.115,2487,5.924,2489,4.388,2494,6.006,2498,4.985,2507,3.125,2508,4.985,2521,5.653,2522,9.818,2524,6.12,2525,6.12,2526,5.653,5505,4.397,5590,5.403,7201,6.894,7235,5.332,7236,5.653,7292,4.725,7293,5.653,7337,9.323,7351,8.249,7353,8.049,7359,4.725,9294,10.178,12351,4.804,14620,6.467,14621,6.467,14622,6.467,14623,6.467,14624,6.12,15638,6.12,15640,6.467,15641,6.467,15642,6.467,15643,6.467,15644,6.467,15645,6.467,15659,13.052,15660,9.52]],["title/classes/Oauth2ToolConfigUpdateParams.html",[0,0.231,9225,5.705]],["body/classes/Oauth2ToolConfigUpdateParams.html",[0,0.323,2,0.783,3,0.016,4,0.016,5,0.008,7,0.106,27,0.542,30,0.001,32,0.186,33,0.601,47,0.961,95,0.147,101,0.012,103,0.001,104,0.001,112,0.756,119,1.938,138,2.407,147,5.111,148,2.22,149,4.418,150,1.594,180,1.706,245,3.363,248,5.231,249,4.699,382,2.872,564,2.148,851,3.341,1870,3.404,1912,6.022,2136,6.115,2487,5.924,2489,4.388,2494,6.006,2512,8.837,2513,6.783,2514,5.653,2515,5.653,2516,5.653,2517,5.653,2518,5.653,5505,4.397,5537,6.065,5590,5.403,5894,7.871,7201,6.894,7337,9.323,7348,6.565,7351,8.249,7353,8.049,7401,5.332,9225,7.975,9504,5.86,9506,6.12,9508,6.12,9512,6.467,14628,6.467,15646,12.067,15647,6.467,15651,6.467,15653,6.467,15661,6.995,15662,6.995,15663,6.995]],["title/injectables/OauthAdapterService.html",[539,0.901,15511,5.705]],["body/injectables/OauthAdapterService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.129,27,0.473,29,0.899,30,0.001,31,0.646,32,0.165,33,0.554,35,1.29,36,2.718,47,0.902,95,0.165,100,2.313,101,0.011,103,0.001,104,0.001,124,3.462,143,1.533,177,1.261,236,1.12,262,2.734,345,2.192,349,1.109,379,0.861,437,1.563,529,1.949,539,1.247,541,1.649,579,3.669,595,4.332,603,2.156,608,2.171,662,3.375,962,8.723,963,3.966,964,5.25,965,4.512,990,2.329,1079,4.046,1178,3.698,1275,3.16,1326,9.325,1555,6.011,1911,6.712,1923,4.815,1925,3.728,2185,9.511,2196,2.786,2220,6.025,3542,2.811,3894,5.396,3945,6.368,7076,8.24,11445,4.908,11452,6.025,11520,5.77,11585,6.362,13558,6.368,13559,6.368,13560,6.025,13561,6.368,15511,7.891,15544,5.566,15569,8.709,15664,12.084,15665,6.887,15666,10.735,15667,10.735,15668,6.887,15669,9.419,15670,6.887,15671,9.419,15672,6.887,15673,6.887,15674,6.887,15675,6.887,15676,6.887,15677,9.419,15678,6.025,15679,6.368,15680,6.887,15681,6.887,15682,6.887,15683,6.887,15684,9.419,15685,6.887,15686,6.887,15687,6.887,15688,9.419,15689,6.887,15690,6.887,15691,6.887,15692,6.887]],["title/modules/OauthApiModule.html",[201,1.804,15693,5.503]],["body/modules/OauthApiModule.html",[0,0.249,3,0.017,4,0.017,5,0.009,30,0.001,52,3.5,95,0.174,101,0.012,103,0.001,104,0.001,128,2.951,201,2.935,203,2.635,204,2.831,205,2.914,206,2.902,207,2.89,208,4.058,209,2.755,214,5.896,218,3.906,219,2.854,220,2.787,222,4.551,223,4.044,225,3.874,226,1.047,654,2.179,1278,2.318,1319,8.323,1358,9.954,1360,8.884,1379,5.122,1692,6.934,1904,4.103,2472,3.325,2705,3.458,3534,7.892,3544,4.97,5381,8.096,10508,5.74,11418,10.645,13927,9.686,15538,5.74,15693,11.576,15694,7.326,15695,7.326,15696,7.326,15697,9.954,15698,10.645,15699,7.326,15700,9.693,15701,6.774,15702,7.326,15703,7.326]],["title/classes/OauthClientBody.html",[0,0.231,15704,5.958]],["body/classes/OauthClientBody.html",[0,0.243,2,0.527,3,0.011,4,0.011,5,0.006,7,0.071,27,0.501,30,0.001,31,0.401,32,0.167,33,0.645,34,1.218,47,0.938,95,0.123,101,0.008,103,0,104,0,112,0.568,122,4.83,124,3.594,135,6.907,138,2.227,142,5.257,143,1.926,144,4.427,145,3.923,148,1.493,150,1.072,153,2.783,245,3.263,248,5.01,249,5.034,316,3.839,319,4.362,358,3.146,363,4.004,490,2.536,536,6.611,578,4.339,591,4.041,662,2.249,823,2.509,851,2.247,969,4.911,1081,3.586,1328,5.779,1330,6.164,1331,6.99,1342,3.499,1393,6.885,1414,4.999,1430,4.158,1454,5.096,1603,4.115,1734,4.556,1965,3.935,2035,4.497,2060,4.618,2347,4.933,2361,5.779,2362,5.991,3542,5.425,3983,4.339,4059,6.99,5462,4.442,5497,8.265,5501,4.079,5505,4.622,5514,8.142,5537,6.156,5552,7.567,5570,6.256,5571,6.527,5586,6.776,7203,6.434,9455,7.997,9457,7.567,9460,9.609,9461,6.611,11347,5.201,11957,5.319,13076,5.602,15484,11.505,15704,6.256,15705,4.705,15706,7.997,15707,7.997,15708,4.705,15709,4.705,15710,4.705,15711,7.151,15712,7.151,15713,4.705,15714,4.705,15715,4.705,15716,4.705,15717,5.991,15718,5.779,15719,6.611,15720,5.991,15721,7.151,15722,7.151,15723,7.151,15724,7.151,15725,4.705,15726,8.65,15727,4.705,15728,7.151,15729,7.151,15730,4.705,15731,8.65,15732,4.705,15733,6.611,15734,7.151,15735,7.151,15736,4.705,15737,4.705,15738,4.705,15739,4.705,15740,4.705,15741,4.705]],["title/classes/OauthConfig.html",[0,0.231,11442,4.398]],["body/classes/OauthConfig.html",[0,0.305,2,0.458,3,0.01,4,0.01,5,0.005,7,0.062,26,1.359,27,0.513,29,0.318,30,0.001,31,0.229,32,0.175,33,0.468,47,1.012,83,2.431,95,0.114,96,1.123,101,0.016,103,0,104,0,105,0.441,112,0.509,119,0.832,133,1.43,138,2.251,143,2.987,144,4.38,145,1.135,153,0.929,154,1.692,160,3.659,172,4.529,173,1.209,174,2.551,175,1.808,177,0.748,178,1.698,180,0.733,181,1.094,182,1.33,276,1.738,379,0.511,511,1.826,570,2.509,578,2.48,838,2.482,949,2.509,1198,2.722,1310,2.48,1393,2.913,1425,4.918,1603,1.537,1962,2.64,1987,3.041,2503,3.316,2507,1.826,4275,3.501,4313,4.572,4347,2.453,4620,4.635,5505,3.217,5590,4.477,5768,3.269,5788,2.605,5789,2.808,6264,3.444,7205,2.571,7292,2.761,7348,5.441,8549,2.213,8887,5.348,9872,2.678,10378,2.31,11442,7.608,11523,3.041,11524,3.041,11525,3.041,11526,3.116,11570,5.438,11573,5.265,11575,5.438,11578,5.438,11581,4.86,11585,5.348,11626,2.678,12048,3.116,12232,2.913,12340,4.89,12341,3.304,12342,4.266,12343,7.52,12344,7.229,12345,4.035,12346,4.485,12347,5.187,12348,2.718,12349,2.718,12350,5.184,12351,4.406,12352,4.772,12353,3.203,12354,4.772,12355,3.116,12356,3.116,12357,3.116,12358,3.116,12359,3.203,12360,3.116,12361,3.116,12362,3.116,12363,3.203,12364,4.772,12365,3.203,12366,3.116,12367,3.203,12368,3.116,12369,3.116,12370,3.116,12371,3.203,12372,6.159,12373,3.304,12374,3.304,12375,3.304,12376,3.304,12377,3.304,12378,3.304,12379,3.304,12380,3.304,12381,3.304,12382,3.304,12383,3.304,12384,3.304,12385,3.203,12386,3.304,12387,3.304,12388,3.304,12389,3.304,12390,3.304,12391,3.304,12392,3.304,12393,3.304,12394,3.304,12395,3.304,12396,3.304,12397,3.304,12398,3.304,12399,3.304,12400,3.304,12401,3.304,12402,3.304,12403,3.041,12404,3.304,12405,3.304,12406,3.304,12407,3.304,12408,3.304,12409,3.304,12410,3.304,12411,3.304,12412,3.304,12413,3.304,12414,3.304,12415,3.304,12416,3.304,12417,3.304,12418,3.116,12419,3.304,12420,3.041,12421,3.203,12422,3.116,12423,3.203,12424,3.116,12425,3.116,12426,3.203,12427,3.116,12428,3.203,12429,3.116,12430,2.974,12431,2.974,12432,2.974,12433,3.041,12434,3.116,12435,3.304,12436,3.116,12437,3.304,12438,3.304,12439,3.304,12440,3.304,12441,3.304,12442,3.116,12443,3.203,12444,3.116,12445,3.203,15742,4.088,15743,4.088,15744,4.088,15745,4.088,15746,4.088,15747,4.088,15748,4.088,15749,4.088,15750,4.088,15751,4.088,15752,4.088,15753,4.088,15754,4.088,15755,4.088]],["title/classes/OauthConfigDto.html",[0,0.231,12690,5.191]],["body/classes/OauthConfigDto.html",[0,0.234,2,0.772,3,0.016,4,0.016,5,0.008,7,0.105,27,0.563,29,0.537,30,0.001,31,0.386,32,0.188,33,0.58,47,1.006,72,4.28,101,0.011,103,0.001,104,0.001,112,0.749,128,3.799,239,2.164,379,0.863,517,3.616,1425,6.673,2035,5.931,2060,6.09,2777,6.177,4620,6.25,5505,4.365,5590,5.364,7292,4.66,7348,6.519,8887,7.257,11570,7.379,11573,7.144,11575,7.379,11578,7.379,11581,6.594,11585,7.257,11957,7.014,12351,4.739,12352,5.132,12354,5.132,12356,5.259,12358,5.259,12360,5.259,12361,5.259,12362,5.259,12364,5.132,12366,5.259,12368,5.259,12370,5.259,12372,7.379,12690,9.516,15756,13.826,15757,6.379,15758,9.43,15759,9.43,15760,6.379,15761,6.899,15762,6.899,15763,6.899,15764,6.899,15765,6.899,15766,6.899,15767,6.379,15768,6.899,15769,6.379,15770,6.379,15771,6.899,15772,6.379,15773,6.899,15774,6.379,15775,6.379,15776,6.379,15777,6.379,15778,6.379,15779,6.379,15780,6.379,15781,6.379,15782,6.379,15783,6.379,15784,6.379]],["title/classes/OauthConfigResponse.html",[0,0.231,15785,5.705]],["body/classes/OauthConfigResponse.html",[0,0.172,2,0.566,3,0.012,4,0.012,5,0.006,7,0.077,27,0.531,29,0.394,30,0.001,31,0.283,32,0.185,33,0.559,34,1.287,47,0.997,95,0.064,101,0.008,103,0,104,0,112,0.6,120,3.323,124,3.797,138,2.331,142,5.39,143,3.047,144,4.539,145,3.848,150,1.153,153,2.914,245,3.397,379,0.633,820,5.882,823,2.651,969,5.188,1081,5.758,1328,6.104,1425,6.988,2035,7.536,2060,4.878,2521,4.089,3542,3.082,4620,5.815,5505,4.571,5531,5.758,5590,5.004,7292,3.418,8887,6.77,11570,6.884,11573,6.665,11575,6.884,11578,6.884,11581,6.152,11585,6.77,11954,6.104,11957,5.618,12351,3.475,12354,3.763,12356,3.857,12358,3.857,12360,3.857,12361,3.857,12362,3.857,12364,3.763,12366,3.857,12368,3.857,12370,3.857,12372,6.884,14624,4.427,15678,6.608,15785,7.572,15786,13.078,15787,7.554,15788,7.554,15789,5.06,15790,5.06,15791,5.06,15792,6.984,15793,5.06,15794,5.06,15795,5.06,15796,5.06,15797,5.06,15798,5.06,15799,5.06,15800,5.06,15801,5.06,15802,5.06,15803,5.06,15804,5.06,15805,5.06,15806,5.06,15807,5.06,15808,5.06,15809,5.06,15810,5.06,15811,5.06]],["title/interfaces/OauthCurrentUser.html",[105,0.735,7145,5.065]],["body/interfaces/OauthCurrentUser.html",[3,0.019,4,0.019,5,0.01,7,0.126,26,2.899,30,0.001,32,0.113,33,0.511,34,1.815,39,2.231,47,0.831,48,3.938,72,4.836,85,5.356,94,4.035,95,0.105,99,1.383,101,0.018,103,0.001,104,0.001,105,1.15,107,1.99,112,0.846,119,2.168,121,6.979,128,4.741,143,2.621,180,1.909,239,2.948,270,5.763,276,3.526,303,6.497,359,4.976,517,4.085,564,3.814,565,4.922,1002,5.601,2346,5.696,2365,4.976,3063,5.127,3075,3.784,3081,4.14,3249,5.514,4209,3.614,5106,5.432,5462,6.617,5497,6.979,5501,4.73,7093,6.701,7094,6.947,7095,6.617,7143,10.038,7145,7.924,7166,7.255,11952,7.667,11953,7.667,11954,8.609,11955,9.85,11956,9.85,11957,7.924]],["title/classes/OauthDataDto.html",[0,0.231,13103,4.761]],["body/classes/OauthDataDto.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.532,29,0.668,30,0.001,31,0.48,32,0.177,33,0.623,95,0.159,101,0.014,103,0.001,104,0.001,112,0.864,181,2.913,379,1.072,381,2.88,564,3.671,3075,5.457,8499,9.115,8513,7.929,8530,8.894,8551,6.718,8552,7.184,9620,8.697,11249,6.237,13103,9.076,13132,9.663,13134,10.017,15812,12.264,15813,8.576,15814,10.461,15815,10.884,15816,8.576,15817,8.576,15818,9.367,15819,8.576,15820,8.576,15821,7.929,15822,8.576,15823,8.576,15824,8.576,15825,8.576,15826,8.576,15827,8.576,15828,8.576]],["title/classes/OauthDataStrategyInputDto.html",[0,0.231,13108,5.065]],["body/classes/OauthDataStrategyInputDto.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,27,0.525,29,0.705,30,0.001,31,0.507,32,0.175,33,0.435,47,0.905,95,0.115,101,0.015,103,0.001,104,0.001,112,0.895,121,8.031,181,3.015,284,4.075,379,1.133,381,3.042,1437,8.152,3075,5.595,4551,8.912,8551,7.096,8552,7.588,11249,6.589,13108,9.813,14526,7.588,14527,7.588,15611,8.375,15612,8.375,15812,12.198,15818,9.605,15821,8.375,15829,9.058,15830,11.265,15831,9.058,15832,9.058]],["title/classes/OauthLoginResponse.html",[0,0.231,14505,5.705]],["body/classes/OauthLoginResponse.html",[0,0.299,2,0.985,3,0.021,4,0.021,5,0.01,7,0.133,27,0.496,29,0.685,30,0.001,31,0.493,32,0.165,33,0.581,34,1.885,47,0.854,95,0.14,101,0.015,103,0.001,104,0.001,112,0.879,124,5.561,138,2.012,149,4.209,150,2.005,153,2.001,180,1.983,181,2.961,245,2.307,379,1.101,381,2.956,382,2.655,403,4.885,517,4.242,564,3.898,1213,4.885,1437,7.356,2358,6.79,3075,5.049,5501,6.31,5505,4.495,7143,9.779,7350,8.047,14492,9.047,14505,10.959,15833,12.101,15834,8.801,15835,11.064,15836,8.801,15837,8.801,15838,8.801,15839,8.801]],["title/classes/OauthLoginStateDto.html",[0,0.231,15840,5.503]],["body/classes/OauthLoginStateDto.html",[0,0.292,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,26,2.535,27,0.544,29,0.669,30,0.001,31,0.481,32,0.181,33,0.574,47,0.937,48,5.683,95,0.109,99,1.434,101,0.014,103,0.001,104,0.001,112,0.865,119,2.218,128,5.431,181,2.917,193,6.251,194,6.733,238,6.892,379,1.075,381,2.887,4523,7.434,4620,6.186,8095,6.392,12230,6.945,12231,6.945,12364,6.392,15526,9.672,15840,10.497,15841,13.482,15842,8.594,15843,10.899,15844,8.594,15845,8.594,15846,8.594,15847,8.594,15848,8.594,15849,8.594,15850,8.594,15851,8.594]],["title/classes/OauthLoginStateMapper.html",[0,0.231,15852,5.958]],["body/classes/OauthLoginStateMapper.html",[0,0.326,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,8,1.399,27,0.393,29,0.747,30,0.001,31,0.538,32,0.131,33,0.461,35,1.153,95,0.148,100,3.921,101,0.016,103,0.001,104,0.001,118,6.115,128,5.067,236,1.561,349,0.991,413,3.874,437,1.241,13958,8.041,15840,10.577,15852,10.213,15853,11.674,15854,9.598,15855,11.674,15856,11.674,15857,11.451,15858,9.598,15859,8.397,15860,8.397,15861,9.598]],["title/classes/OauthMigrationDto.html",[0,0.231,13957,5.503]],["body/classes/OauthMigrationDto.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.543,29,0.668,30,0.001,31,0.48,32,0.181,33,0.661,83,4.187,101,0.014,103,0.001,104,0.001,112,0.864,119,2.215,271,3.355,379,1.072,9862,8.827,13957,10.49,13976,9.522,14012,9.115,14013,9.115,14014,9.115,14135,10.017,14137,10.017,14977,7.929,14978,7.929,14979,7.929,14980,7.929,14981,7.929,14982,7.929,14983,7.929,14984,7.929,14985,7.929,14986,7.929,15862,13.476,15863,8.576,15864,10.884,15865,8.576,15866,8.576,15867,8.576,15868,8.576]],["title/modules/OauthModule.html",[201,1.804,1358,5.335]],["body/modules/OauthModule.html",[0,0.23,3,0.016,4,0.016,5,0.008,30,0.001,52,3.235,95,0.175,101,0.011,103,0.001,104,0.001,128,2.728,201,2.818,203,2.435,204,2.617,205,2.693,206,2.682,207,2.671,208,3.897,209,4.001,214,5.759,218,3.703,219,2.638,220,2.576,225,3.672,226,0.968,227,2.788,654,2.014,963,3.899,1278,2.142,1357,10.03,1358,11.247,1360,8.678,1375,5.924,1379,4.734,1692,6.773,1904,3.792,2472,3.074,3534,7.71,3544,4.711,3939,6.19,4616,9.028,5381,7.908,8336,9.028,8926,4.734,11428,10.322,11429,11.343,11449,6.261,11450,5.924,13927,9.462,15511,10.398,15538,5.305,15545,6.261,15697,9.724,15869,6.772,15870,6.772,15871,6.772,15872,6.772,15873,6.772,15874,5.924]],["title/modules/OauthProviderApiModule.html",[201,1.804,15875,5.503]],["body/modules/OauthProviderApiModule.html",[0,0.246,3,0.017,4,0.017,5,0.009,30,0.001,95,0.171,101,0.012,103,0.001,104,0.001,135,4.023,201,2.919,203,2.607,204,2.801,205,2.882,206,2.87,207,2.858,208,4.036,209,2.725,214,5.877,218,3.878,219,2.823,220,2.757,222,4.501,223,4.014,225,3.846,226,1.036,1278,2.293,1692,6.912,2472,3.289,2705,3.421,3534,7.868,3544,3.667,3672,4.819,4615,9.421,4620,5.695,4624,5.678,5501,4.133,8917,9.923,8925,4.819,15701,6.7,15875,11.599,15876,7.247,15877,7.247,15878,7.247,15879,10.611,15880,10.611,15881,10.611,15882,10.611,15883,10.611,15884,10.611,15885,10.611,15886,6.071,15887,9.64,15888,7.247,15889,6.34,15890,7.247]],["title/injectables/OauthProviderClientCrudUc.html",[539,0.901,15880,5.705]],["body/injectables/OauthProviderClientCrudUc.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.078,8,0.916,27,0.48,29,0.881,30,0.001,31,0.634,32,0.16,33,0.543,34,2.095,35,1.297,36,2.663,47,0.933,55,2.434,56,4.883,58,6.522,59,3.138,95,0.143,101,0.008,103,0,104,0,112,0.607,124,3.84,126,6.174,135,6.681,177,1.976,226,0.734,239,2.914,262,2.897,270,6.519,284,3.718,294,5.888,349,1.115,379,0.955,437,1.643,480,1.426,486,1.546,539,1.011,541,1.23,603,2.168,608,2.835,643,2.283,950,3.545,1698,6.192,2472,2.332,2904,2.758,3542,4.912,5505,3.104,5586,7.912,7349,6.174,7350,5.557,8925,5.08,9367,8.229,9391,9.833,9395,3.661,9457,6.684,9503,9.043,9973,7.512,11574,6.4,15706,7.063,15707,7.063,15880,6.4,15891,9.727,15892,11.128,15893,5.137,15894,9.12,15895,6.684,15896,6.684,15897,6.684,15898,7.979,15899,7.979,15900,4.151,15901,5.137,15902,7.063,15903,5.137,15904,7.063,15905,5.137,15906,7.063,15907,5.137,15908,4.75,15909,5.137,15910,4.75,15911,5.137,15912,7.063,15913,5.137,15914,5.137,15915,5.137,15916,10.794,15917,7.64,15918,5.137,15919,5.137,15920,9.12,15921,9.12,15922,7.64,15923,5.137,15924,5.137,15925,5.137]],["title/injectables/OauthProviderConsentFlowUc.html",[539,0.901,15881,5.705]],["body/injectables/OauthProviderConsentFlowUc.html",[0,0.182,3,0.012,4,0.012,5,0.006,7,0.081,8,0.944,27,0.47,29,0.894,30,0.001,31,0.643,32,0.157,33,0.551,35,1.319,36,2.689,39,2.512,47,0.969,95,0.15,101,0.009,103,0,104,0,106,8.628,110,3.979,121,7.19,122,6.308,123,4.481,124,2.689,126,4.323,134,8.323,135,6.588,177,1.441,226,0.765,236,0.87,262,2.724,270,5.811,294,5.177,310,4.048,324,6.627,334,3.455,349,1.064,379,0.984,437,1.42,519,2.438,529,1.513,539,1.042,541,1.28,556,2.892,603,2.574,608,2.374,823,4.165,1330,7.339,2471,3.175,2904,2.872,3720,4.624,4198,8.857,4620,2.765,4694,3.674,5489,8.628,5540,8.323,5547,8.323,8925,5.234,9367,8.35,9395,3.812,12633,9.943,12634,4.946,15881,6.594,15891,9.591,15900,4.323,15926,10.973,15927,4.68,15928,8.635,15929,6.886,15930,8.635,15931,7.277,15932,7.871,15933,5.349,15934,4.946,15935,5.349,15936,7.277,15937,5.349,15938,5.349,15939,5.349,15940,7.277,15941,8.323,15942,5.349,15943,7.871,15944,8.367,15945,5.349,15946,5.855,15947,4.481,15948,4.946,15949,7.871,15950,5.349,15951,4.946,15952,5.349,15953,5.349,15954,5.349,15955,5.349,15956,8.069,15957,5.349,15958,5.349,15959,5.349,15960,5.349,15961,5.349,15962,5.349,15963,4.191,15964,5.349]],["title/controllers/OauthProviderController.html",[259,2.591,15887,5.958]],["body/controllers/OauthProviderController.html",[0,0.114,3,0.008,4,0.008,5,0.004,7,0.051,8,0.658,10,1.367,27,0.483,29,0.902,30,0.001,31,0.649,32,0.158,33,0.556,35,1.416,36,2.863,47,0.237,95,0.154,100,1.13,101,0.006,103,0,104,0,118,2.143,134,8.079,135,6.641,138,2.144,150,0.766,177,1.735,223,1.385,226,0.481,259,1.28,261,1.597,262,2.929,270,6.497,271,5.124,294,6.695,310,4.921,324,6.48,333,4.412,334,2.172,337,1.739,338,1.778,343,6.048,349,1.217,379,0.421,437,1.667,603,1.904,608,2.557,823,1.926,1144,6.719,2020,1.472,2021,1.647,2022,1.588,2023,2.143,2060,2.172,2903,1.901,2904,1.806,3542,3.273,3672,2.236,3720,3.224,4022,2.115,4196,10.731,4487,7.349,4620,2.837,5489,6.719,5497,2.203,5540,4.435,5558,7.941,5583,5.823,8060,2.818,8925,3.649,9391,7.05,9395,2.397,12622,9.704,12651,2.718,13988,6.427,14380,7.017,14492,4.953,14528,6.481,15704,8.747,15880,4.597,15881,4.597,15882,5.823,15883,4.597,15884,5.823,15885,5.823,15887,4.801,15889,2.943,15892,3.11,15895,6.081,15896,4.801,15897,6.081,15898,6.081,15899,6.081,15902,3.11,15904,3.11,15906,3.11,15908,3.11,15910,3.11,15926,3.11,15929,4.801,15930,6.427,15944,4.183,15946,5.966,15956,7.426,15965,11.965,15966,3.364,15967,5.074,15968,4.801,15969,4.801,15970,6.427,15971,4.801,15972,3.364,15973,3.364,15974,3.364,15975,3.364,15976,3.364,15977,3.364,15978,3.364,15979,3.364,15980,3.364,15981,3.364,15982,3.364,15983,5.488,15984,3.364,15985,3.364,15986,3.364,15987,5.488,15988,3.364,15989,3.364,15990,3.364,15991,3.364,15992,3.364,15993,3.364,15994,3.364,15995,3.364,15996,3.364,15997,3.364,15998,3.364,15999,3.364,16000,3.364,16001,7.017,16002,3.364,16003,3.364,16004,3.364,16005,3.364,16006,4.299,16007,5.446,16008,8.836,16009,3.11,16010,6.951,16011,3.364,16012,3.364,16013,3.364,16014,3.364,16015,3.364,16016,3.364,16017,3.364,16018,3.364,16019,3.364,16020,3.364,16021,3.364,16022,8.021,16023,3.364,16024,3.364,16025,3.364,16026,3.364,16027,3.364,16028,3.364,16029,3.364,16030,3.364,16031,3.364,16032,3.364,16033,3.364,16034,3.364,16035,3.364,16036,3.364,16037,3.364,16038,3.364,16039,3.364,16040,3.364,16041,3.364,16042,5.488,16043,5.488,16044,3.364,16045,3.364,16046,3.364,16047,3.364,16048,3.364,16049,3.364,16050,3.364,16051,3.364,16052,3.364,16053,3.364,16054,3.364,16055,3.364,16056,3.364,16057,2.818,16058,3.364,16059,3.364,16060,3.364,16061,3.364,16062,3.364,16063,3.364,16064,3.364,16065,3.364]],["title/injectables/OauthProviderLoginFlowService.html",[539,0.901,12640,5.503]],["body/injectables/OauthProviderLoginFlowService.html",[0,0.236,3,0.016,4,0.016,5,0.008,7,0.105,8,1.136,27,0.442,29,0.84,30,0.001,31,0.604,32,0.147,33,0.517,35,1.138,36,2.016,47,0.761,95,0.165,101,0.011,103,0.001,104,0.001,119,2.195,135,6.429,143,1.547,177,1.974,226,0.993,236,1.13,262,2.363,349,1.114,379,1.185,437,1.395,529,1.965,539,1.254,541,1.663,572,5.442,593,3.509,603,2.166,608,2.184,639,3.26,662,3.933,1666,2.94,1775,4.95,1842,3.423,1912,3.205,2489,2.303,2568,6.512,2622,3.7,4524,5.167,4692,3.644,5590,5.782,6141,5.815,6167,7.857,7184,8.614,7251,8.474,7341,5.885,8597,8.828,8599,8.828,8663,6.423,8664,6.423,8872,6.077,9421,6.077,9812,5.442,11517,5.295,12640,7.656,12651,9.359,14705,10.479,16066,11.582,16067,6.947,16068,9.475,16069,9.475,16070,6.947,16071,6.947,16072,9.475,16073,6.947,16074,9.475,16075,6.947,16076,6.423,16077,5.82,16078,6.947,16079,6.947,16080,6.947,16081,6.947,16082,6.947,16083,6.947,16084,9.475,16085,6.947]],["title/injectables/OauthProviderLoginFlowUc.html",[539,0.901,15882,5.705]],["body/injectables/OauthProviderLoginFlowUc.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,8,0.863,27,0.45,29,0.855,30,0.001,31,0.615,32,0.15,33,0.527,34,0.809,35,1.254,36,2.611,47,0.94,95,0.16,99,0.792,101,0.008,103,0,104,0,119,1.771,122,4.865,127,7.846,128,2.901,134,7.846,135,6.334,177,1.91,226,0.679,236,1.415,239,2.228,262,2.77,310,3.771,324,5.281,349,1.135,358,2.089,379,0.901,437,1.587,529,2.461,539,0.953,541,1.137,603,2.596,604,2.926,608,2.71,643,2.111,823,1.667,1162,2.269,1698,6.032,1842,2.34,2472,2.156,2489,3.46,2568,5.412,3544,2.403,4198,9.115,4620,3.723,4692,2.491,4702,7.049,4768,6.703,5491,7.846,5497,4.718,5644,4.473,7142,3.807,7184,3.532,7199,3.384,7201,4.589,7251,7.679,7340,4.947,7341,2.95,8620,3.979,8925,4.789,9004,5.01,9367,7.989,9395,3.384,9421,4.155,9503,3.979,9733,7.838,9801,3.721,9820,3.721,11517,3.62,12640,9.222,12651,9.499,12652,4.155,14492,6.199,14528,10.079,15543,4.391,15874,4.155,15882,6.033,15891,9.222,15900,3.838,15927,4.155,15941,7.846,15946,6.471,15947,3.979,15951,4.391,15956,9.209,15968,6.301,15970,8.043,16006,5.642,16086,8.043,16087,8.043,16088,7.202,16089,4.749,16090,4.749,16091,4.749,16092,6.659,16093,4.749,16094,4.749,16095,4.749,16096,4.391,16097,4.749,16098,7.202,16099,4.749,16100,4.155,16101,4.155,16102,4.749,16103,7.202,16104,4.749,16105,4.749,16106,7.202,16107,4.749,16108,4.749,16109,4.749,16110,4.749,16111,4.749,16112,4.749,16113,3.62,16114,4.749,16115,4.749,16116,4.749,16117,4.749,16118,4.749,16119,4.749,16120,4.749,16121,4.749]],["title/injectables/OauthProviderLogoutFlowUc.html",[539,0.901,15883,5.705]],["body/injectables/OauthProviderLogoutFlowUc.html",[0,0.308,3,0.021,4,0.021,5,0.011,7,0.138,8,1.352,27,0.462,29,0.878,30,0.001,31,0.632,32,0.154,33,0.541,35,1.091,36,2.612,47,0.866,95,0.156,101,0.015,103,0.001,104,0.001,135,6.812,177,1.662,226,1.298,345,2.89,349,0.938,379,1.135,437,1.174,539,1.493,541,2.173,4198,6.469,4620,4.692,8925,7.501,9367,9.788,9395,6.469,15883,9.45,15891,9.918,15900,7.336,15927,7.942,15946,6.753,16009,11.347,16122,11.281,16123,9.079,16124,11.281,16125,9.079,16126,11.281,16127,9.079]],["title/modules/OauthProviderModule.html",[201,1.804,15879,5.705]],["body/modules/OauthProviderModule.html",[0,0.247,3,0.017,4,0.017,5,0.009,30,0.001,95,0.172,101,0.012,103,0.001,104,0.001,135,4.037,201,2.924,203,2.616,204,2.811,205,2.893,206,2.881,207,2.869,208,4.043,209,4.151,214,5.883,218,3.887,219,2.834,220,2.767,225,3.855,226,1.04,227,2.994,1278,2.301,1750,8.709,1768,9.431,1769,6.093,2489,2.412,3534,7.876,3544,3.681,4615,9.431,4620,3.759,4624,5.698,8917,9.934,8918,9.665,8925,4.836,8927,6.093,12633,11.475,12640,11.069,12651,5.878,12652,6.363,14701,10.622,15874,6.363,15879,11.994,15886,6.093,15948,6.725,16076,6.725,16077,6.093,16128,7.273,16129,7.273,16130,7.273,16131,7.273,16132,7.273,16133,7.273]],["title/classes/OauthProviderRequestMapper.html",[0,0.231,16100,5.958]],["body/classes/OauthProviderRequestMapper.html",[0,0.306,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,8,1.347,27,0.369,29,0.702,30,0.001,31,0.505,32,0.123,33,0.433,35,1.083,47,0.948,59,2.802,77,5.745,95,0.142,101,0.015,103,0.001,104,0.001,116,7.064,117,7.064,122,6.091,127,9.888,131,4.797,132,8.337,133,4.279,135,6.235,349,0.931,413,3.768,4620,5.806,4702,8.651,5978,7.287,8925,5.996,9004,7.375,9395,6.426,14528,10.857,15947,7.554,16100,9.828,16101,9.828,16134,12.236,16135,9.018,16136,9.018,16137,9.018,16138,9.018]],["title/injectables/OauthProviderResponseMapper.html",[539,0.901,15884,5.705]],["body/injectables/OauthProviderResponseMapper.html",[0,0.249,3,0.017,4,0.017,5,0.009,7,0.111,8,1.177,10,2.977,27,0.506,29,0.961,30,0.001,31,0.691,32,0.169,33,0.592,35,1.483,95,0.14,101,0.012,103,0.001,104,0.001,110,7.305,118,4.668,122,4.949,135,7.053,226,1.047,236,2.008,349,1.275,539,1.3,541,1.754,781,4.349,2060,6.343,4620,6.568,5540,9.566,5558,9.916,5583,9.916,8755,6.138,8925,4.871,9391,8.804,9395,5.221,9403,9.081,14374,6.409,14492,8.435,15884,8.228,15944,9.023,15946,8.804,15947,6.138,15956,9.273,16006,9.954,16007,9.273,16101,11.116,16139,9.822,16140,9.822,16141,9.822,16142,9.822,16143,9.822,16144,9.822,16145,7.326,16146,9.822,16147,9.822,16148,7.326,16149,9.822,16150,9.822,16151,7.326,16152,7.326,16153,7.326,16154,7.326,16155,7.326]],["title/classes/OauthProviderService.html",[0,0.231,9367,4.953]],["body/classes/OauthProviderService.html",[0,0.165,2,0.543,3,0.011,4,0.011,5,0.006,7,0.074,8,0.878,9,6.746,27,0.54,29,1.019,30,0.001,31,0.733,32,0.179,33,0.628,34,1.501,35,1.584,36,2.977,47,1.01,55,2.383,56,3.539,58,5.692,59,3.273,95,0.062,100,1.63,101,0.008,103,0,104,0,106,8.223,108,9.283,124,2.439,127,7.932,239,1.679,284,3.032,324,6.429,3542,3.597,4198,8.191,5505,3.581,5586,6.905,9367,5.324,9391,8.55,9973,6.556,13064,4.245,15886,11.123,15895,6.404,15896,6.404,15897,6.404,15898,7.711,15899,6.404,15928,6.768,15929,6.404,15931,6.768,15934,6.768,15936,6.768,15940,6.768,15941,9.289,15944,3.699,15946,3.609,15967,6.768,15968,6.404,15969,6.404,15971,6.404,16006,3.801,16007,3.801,16086,6.768,16087,6.768,16092,6.768,16096,6.768,16156,4.852,16157,7.32,16158,9.816,16159,4.852,16160,7.32,16161,4.852,16162,7.32,16163,4.852,16164,7.32,16165,4.852,16166,7.32,16167,4.852,16168,4.852,16169,4.852,16170,7.32,16171,4.852,16172,7.32,16173,4.852,16174,4.852,16175,7.32,16176,4.852,16177,4.852,16178,4.852,16179,4.852,16180,4.852,16181,7.32,16182,4.852,16183,7.32,16184,4.852]],["title/modules/OauthProviderServiceModule.html",[201,1.804,8917,5.335]],["body/modules/OauthProviderServiceModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.165,101,0.015,103,0.001,104,0.001,108,6.554,201,3.298,203,3.372,204,3.623,205,3.728,206,3.713,207,3.697,208,4.214,209,4.682,218,4.576,219,3.652,220,3.566,225,3.697,226,1.34,636,5.452,963,5.398,3939,7.651,4620,4.846,8454,7.146,8917,10.439,8925,7.651,9367,10.091,15886,9.64,16185,9.375,16186,9.375,16187,9.375,16188,9.375,16189,11.507,16190,9.375]],["title/injectables/OauthProviderUc.html",[539,0.901,15885,5.705]],["body/injectables/OauthProviderUc.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.127,8,1.282,26,2.837,27,0.484,29,0.919,30,0.001,31,0.661,32,0.161,33,0.566,35,1.285,36,2.886,39,2.877,47,0.833,95,0.158,99,1.392,101,0.014,103,0.001,104,0.001,135,6.911,177,1.527,226,1.193,345,2.656,349,1.105,379,1.044,437,1.383,539,1.416,541,1.997,4620,4.313,5590,6.216,8925,7.112,9367,9.58,9395,5.946,15885,8.96,15891,10.061,15900,6.743,15969,9.358,15971,9.358,16007,6.537,16057,8.96,16191,8.344,16192,8.344,16193,10.696,16194,8.344,16195,10.696,16196,8.344,16197,8.344,16198,8.344]],["title/controllers/OauthSSOController.html",[259,2.591,15700,5.958]],["body/controllers/OauthSSOController.html",[0,0.116,3,0.008,4,0.008,5,0.004,7,0.052,8,0.667,27,0.43,29,0.817,30,0.001,31,0.588,32,0.148,33,0.504,35,1.261,36,2.374,47,0.878,52,3.361,55,0.737,59,1.064,95,0.162,100,1.15,101,0.006,103,0,104,0,105,0.369,118,8.283,119,1.133,124,1.721,128,3.265,138,1.622,141,3.872,145,0.951,150,0.78,153,1.599,177,1.484,223,1.41,226,0.489,236,1.766,238,1.972,239,2.193,259,1.302,261,1.626,262,2.668,270,4.932,271,2.752,292,1.733,294,5.276,310,5.602,333,2.356,336,3.458,337,1.77,338,1.81,343,3.748,349,0.727,379,0.428,437,1.554,519,1.725,529,2.293,556,0.862,579,3.748,603,2.379,604,2.262,608,1.622,823,4.366,990,3.67,1154,2.214,1162,3.361,1178,3.778,1198,1.914,1278,1.083,1414,2.394,1417,5.979,1427,2.868,1445,2.868,1634,2.127,1721,8.74,1818,3.702,2020,1.499,2021,1.676,2022,1.616,2060,2.211,2253,1.403,2254,2.514,2434,3.647,2705,1.616,2904,1.838,3075,2.541,3113,2.682,3544,2.818,3720,3.271,3881,1.917,4620,4.61,4902,2.352,4903,2.682,5501,1.953,5644,2.127,6682,8.731,6684,2.054,6809,2.682,6901,2.127,7158,3.165,7199,7.48,8072,3.165,10275,3.165,10338,6.633,11418,4.664,11445,5.776,11446,3.165,11447,2.995,11448,2.49,12791,3.165,13955,4.05,13958,2.868,13965,3.967,15396,2.767,15456,6.55,15457,3.165,15476,5.895,15495,2.868,15505,6.505,15628,3.165,15698,5.895,15700,4.871,15840,7.723,15852,2.995,15857,11.077,15859,2.995,15860,2.995,15889,2.995,16199,10.854,16200,3.424,16201,5.568,16202,7.036,16203,6.505,16204,5.568,16205,7.036,16206,5.568,16207,7.036,16208,5.568,16209,3.424,16210,3.424,16211,6.35,16212,7.091,16213,5.568,16214,3.424,16215,3.424,16216,7.091,16217,3.424,16218,3.424,16219,3.424,16220,3.424,16221,5.568,16222,3.424,16223,3.424,16224,5.568,16225,3.424,16226,3.424,16227,3.424,16228,3.424,16229,5.568,16230,3.424,16231,3.424,16232,5.568,16233,3.424,16234,2.995,16235,5.568,16236,3.424,16237,3.424,16238,4.664,16239,3.424,16240,3.165,16241,3.424,16242,2.995,16243,3.424,16244,2.767,16245,3.424,16246,3.424,16247,3.424,16248,3.424,16249,3.424,16250,3.424,16251,7.036,16252,3.424,16253,5.568,16254,5.568,16255,5.568,16256,3.424,16257,3.424,16258,3.424,16259,3.424,16260,5.568,16261,3.424,16262,3.424,16263,5.568,16264,5.568,16265,3.424,16266,3.424,16267,3.165,16268,3.424,16269,9.558,16270,3.424,16271,5.568,16272,5.148,16273,3.165,16274,3.424,16275,3.424,16276,3.424,16277,3.424,16278,3.424,16279,5.568,16280,5.568,16281,3.424,16282,5.148,16283,5.148,16284,5.568,16285,5.568,16286,2.995,16287,3.424,16288,2.995,16289,3.424,16290,2.995,16291,2.995,16292,2.995,16293,3.424,16294,3.424,16295,3.424,16296,3.424,16297,3.424,16298,3.424,16299,5.568,16300,5.568,16301,3.424,16302,3.424,16303,5.568,16304,3.424,16305,3.424,16306,3.424,16307,3.424,16308,3.424,16309,3.424,16310,3.424,16311,3.424,16312,3.424,16313,3.424]],["title/interfaces/OauthTokenResponse.html",[105,0.735,15544,5.503]],["body/interfaces/OauthTokenResponse.html",[3,0.024,4,0.024,5,0.012,7,0.153,30,0.001,32,0.176,47,0.998,101,0.017,103,0.001,104,0.001,105,1.088,107,2.419,112,0.955,125,11.64,126,10.752,15477,9.319,15544,9.715,15912,12.301,16314,9.319]],["title/injectables/OauthUc.html",[539,0.901,15698,5.705]],["body/injectables/OauthUc.html",[0,0.144,3,0.01,4,0.01,5,0.005,7,0.064,8,0.791,26,2.321,27,0.406,29,0.771,30,0.001,31,0.555,32,0.135,33,0.475,35,1.098,36,2.411,39,1.139,47,0.934,48,5.925,52,5.012,59,2.516,95,0.168,99,0.706,101,0.007,102,3.314,103,0,104,0,105,0.457,118,4.201,119,1.648,128,4.413,177,2.074,201,1.747,226,0.605,236,1.487,238,7.089,239,2.097,262,2.698,284,1.308,310,3.51,349,0.944,379,0.825,437,1.664,528,2.205,529,1.866,539,0.873,541,1.014,556,1.067,593,1.568,603,2.435,608,2.838,789,2.114,823,2.314,950,4.241,990,3.091,1278,1.34,1289,2.735,1361,8.148,1379,2.961,1417,5.426,1437,4.384,1721,7.161,1734,4.201,1773,3.598,1818,2.816,1905,3.693,2060,5.23,2253,3.319,2254,4.127,3075,4.172,3113,3.317,3544,4.626,4515,8.148,4523,5.03,4620,2.189,4702,6.691,4768,6.435,5501,4.619,5644,2.63,6221,4.384,6901,2.63,7142,3.485,7145,6.024,11292,4.384,11427,3.705,11428,7.998,11448,5.891,11450,3.705,11519,5.524,11581,5.61,11656,5.771,11841,3.15,13103,4.61,13965,6.514,14118,3.915,14996,3.547,15476,5.524,15512,8.582,15513,7.968,15514,8.582,15526,8.479,15538,3.317,15539,3.705,15547,3.705,15552,3.915,15553,3.422,15571,5.524,15587,6.097,15629,3.915,15630,3.915,15631,5.769,15632,5.769,15698,5.524,15840,9.155,15857,7.997,15859,3.705,15860,3.705,16234,3.705,16244,3.422,16267,3.915,16272,6.097,16273,3.915,16282,3.915,16283,3.915,16315,4.235,16316,5.769,16317,6.594,16318,6.594,16319,8.099,16320,4.235,16321,6.594,16322,4.235,16323,3.915,16324,10.492,16325,4.235,16326,6.097,16327,6.594,16328,4.235,16329,4.235,16330,4.235,16331,3.915,16332,3.228,16333,4.235,16334,3.915,16335,4.235,16336,4.235,16337,4.235,16338,4.235,16339,4.235,16340,4.235,16341,6.594,16342,4.235,16343,4.235,16344,4.235,16345,3.705,16346,7.085,16347,3.915,16348,3.915,16349,3.915,16350,4.235,16351,3.915,16352,3.915,16353,4.235,16354,4.235]],["title/interfaces/OcsResponse.html",[105,0.735,11340,5.065]],["body/interfaces/OcsResponse.html",[3,0.021,4,0.021,5,0.011,7,0.138,30,0.001,32,0.168,34,1.554,47,0.951,55,2.646,101,0.023,103,0.001,104,0.001,105,1.474,107,2.188,112,0.898,119,1.856,120,4.977,284,2.817,347,3.34,479,3.416,986,5.89,991,6.16,1025,3.567,3063,3.972,4543,6.16,6541,5.357,11337,6.783,11338,6.952,11339,6.783,11340,8.414,11341,9.802,11342,8.598,11343,6.952,11344,6.952,11345,6.783,11346,6.952,11347,6.633,11348,6.783,11349,6.952,11350,6.783]],["title/classes/OidcConfig.html",[0,0.231,12344,4.761]],["body/classes/OidcConfig.html",[0,0.314,2,0.485,3,0.01,4,0.01,5,0.005,7,0.066,26,1.423,27,0.48,29,0.338,30,0.001,31,0.243,32,0.167,33,0.208,47,1.012,83,2.524,95,0.117,96,1.191,101,0.017,103,0,104,0,105,0.468,112,0.533,119,0.882,133,1.516,138,2.077,143,2.986,144,4.418,145,1.204,153,0.985,154,1.757,172,4.534,173,1.282,174,2.671,175,1.917,177,0.794,178,1.801,180,0.777,181,1.16,182,1.41,276,1.843,379,0.542,511,1.937,570,2.661,578,2.63,838,2.577,949,2.661,1198,2.826,1310,2.63,1393,3.089,1425,2.693,1603,1.63,1962,5.308,1987,3.224,2503,3.471,2507,1.937,4275,3.664,4313,4.785,4347,2.601,4620,3.471,5505,1.761,5590,4.622,5768,3.422,5788,2.762,5789,2.977,6264,3.605,7205,2.726,7292,2.928,7348,5.616,8549,2.346,8887,2.928,9872,2.84,10378,2.45,11442,6.841,11523,3.224,11524,3.224,11525,3.224,11526,3.304,11570,2.977,11573,2.882,11575,2.977,11578,2.977,11581,2.661,11585,2.928,11626,2.84,12048,3.304,12232,3.089,12340,5.119,12341,3.503,12342,4.465,12343,7.705,12344,8.373,12345,4.223,12346,4.695,12347,5.384,12348,2.882,12349,2.882,12350,3.503,12351,4.612,12352,4.995,12353,3.396,12354,4.995,12355,3.304,12356,3.304,12357,3.304,12358,3.304,12359,3.396,12360,3.304,12361,3.304,12362,3.304,12363,3.396,12364,4.995,12365,3.396,12366,3.304,12367,3.396,12368,3.304,12369,3.304,12370,3.304,12371,3.396,12372,6.358,12373,3.503,12374,3.503,12375,3.503,12376,3.503,12377,3.503,12378,3.503,12379,3.503,12380,3.503,12381,3.503,12382,3.503,12383,3.503,12384,3.503,12385,3.396,12386,3.503,12387,3.503,12388,3.503,12389,3.503,12390,3.503,12391,3.503,12392,3.503,12393,3.503,12394,3.503,12395,3.503,12396,3.503,12397,3.503,12398,3.503,12399,3.503,12400,3.503,12401,3.503,12402,3.503,12403,3.224,12404,3.503,12405,3.503,12406,3.503,12407,3.503,12408,3.503,12409,3.503,12410,3.503,12411,3.503,12412,3.503,12413,3.503,12414,3.503,12415,3.503,12416,3.503,12417,5.427,12418,3.304,12419,3.503,12420,3.224,12421,3.396,12422,3.304,12423,3.396,12424,3.304,12425,3.304,12426,3.396,12427,3.304,12428,3.396,12429,3.304,12430,5.979,12431,5.979,12432,5.979,12433,6.114,12434,3.304,12435,3.503,12436,3.304,12437,3.503,12438,3.503,12439,3.503,12440,3.503,12441,3.503,12442,3.304,12443,3.396,12444,3.304,12445,3.396,16355,4.335,16356,4.335,16357,4.335,16358,4.335,16359,4.335,16360,4.335,16361,4.335,16362,4.335,16363,4.335]],["title/classes/OidcConfigDto.html",[0,0.231,13357,5.335]],["body/classes/OidcConfigDto.html",[0,0.27,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.561,29,0.619,30,0.001,31,0.445,32,0.187,33,0.381,47,1.003,101,0.013,103,0.001,104,0.001,112,0.823,379,0.994,1962,7.449,1987,5.912,5590,5.759,7348,6.998,12351,5.459,12352,5.912,12354,5.912,12372,7.922,12421,6.227,12423,6.227,12426,6.227,12428,6.227,12430,8.39,12431,8.39,12432,8.39,12433,8.579,13357,10.185,15757,7.349,15760,7.349,15767,7.349,15769,7.349,15770,7.349,16364,13.798,16365,10.664,16366,10.366,16367,7.949,16368,7.949,16369,7.949,16370,7.949,16371,7.949,16372,7.949,16373,7.949,16374,7.949,16375,7.949,16376,7.949,16377,7.949,16378,7.949,16379,7.949,16380,7.949,16381,7.949,16382,7.949]],["title/classes/OidcContextResponse.html",[0,0.231,5567,5.705]],["body/classes/OidcContextResponse.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.532,30,0.001,32,0.177,33,0.673,47,0.963,95,0.138,101,0.014,103,0.001,104,0.001,112,0.864,133,3.806,135,7.363,138,2.361,150,1.954,226,1.226,245,3.637,5567,9.118,5579,11.605,9719,8.52,16383,8.576,16384,11.055,16385,11.055,16386,11.055,16387,11.055,16388,8.576,16389,8.576,16390,8.576,16391,8.576,16392,8.576,16393,8.576]],["title/classes/OidcIdentityProviderMapper.html",[0,0.231,13322,5.705]],["body/classes/OidcIdentityProviderMapper.html",[0,0.279,2,0.921,3,0.019,4,0.019,5,0.01,7,0.125,8,1.27,27,0.434,29,0.825,30,0.001,31,0.594,32,0.145,33,0.508,35,0.988,47,0.828,95,0.166,101,0.014,103,0.001,104,0.001,128,3.313,143,2.36,177,1.506,226,1.176,349,0.85,379,1.029,603,1.652,639,3.86,662,3.687,1117,4.99,1912,3.795,1962,5.312,5590,4.106,5768,4.191,7348,4.99,8340,8.721,8926,5.75,9369,9.007,10763,4.99,11598,6.687,11599,7.196,12342,5.469,12344,5.75,12418,6.27,12420,7.882,12422,6.27,12424,6.27,12425,6.27,12427,6.27,12429,6.27,12430,5.982,12431,5.982,12432,5.982,13243,6.118,13322,8.878,13357,9.702,13371,10.84,13386,7.604,13388,6.646,13392,11.449,13397,6.646,13416,7.604,13486,7.604,15733,7.604,16394,11.725,16395,8.225,16396,10.598,16397,8.225,16398,8.225,16399,10.598,16400,8.225,16401,8.225,16402,8.225,16403,8.225,16404,8.225,16405,8.225,16406,8.225,16407,8.225,16408,8.225]],["title/injectables/OidcMockProvisioningStrategy.html",[539,0.901,16409,5.705]],["body/injectables/OidcMockProvisioningStrategy.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,27,0.46,29,0.779,30,0.001,31,0.56,32,0.137,33,0.48,35,1.35,36,2.547,47,0.532,95,0.162,100,2.53,101,0.012,103,0.001,104,0.001,121,6.554,143,1.677,180,1.793,226,1.077,236,1.827,262,2.462,284,2.326,349,1.16,382,3.39,437,1.453,529,2.131,539,1.324,541,1.803,593,2.79,655,3.786,1382,5.602,1417,4.471,1442,5.479,1551,7.277,2029,6.461,2161,4.296,3075,3.437,7061,8.381,8523,5.008,9620,8.171,11012,9.377,11445,5.367,11727,6.214,12047,6.087,12345,8.055,12347,7.359,12348,5.008,12349,5.008,13100,7.626,13102,8.085,13103,8.954,13107,8.085,13108,8.903,13111,6.589,13112,7.626,13113,6.589,13117,6.964,13119,6.589,13120,6.964,13132,8.085,13136,6.087,13137,6.589,13138,6.964,15553,6.087,16409,8.381,16410,7.532,16411,7.532,16412,7.532,16413,7.532,16414,6.589,16415,7.532,16416,6.964,16417,10.005,16418,7.532]],["title/injectables/OidcProvisioningService.html",[539,0.901,16419,5.503]],["body/injectables/OidcProvisioningService.html",[0,0.114,3,0.008,4,0.008,5,0.004,7,0.051,8,0.659,26,2.599,27,0.389,29,0.739,30,0.001,31,0.605,32,0.137,33,0.455,34,0.936,35,1.062,36,2.417,39,1.478,47,0.706,48,6.277,49,1.329,51,1.639,59,1.047,64,4.305,95,0.157,99,0.562,100,1.132,101,0.006,103,0,104,0,143,1.549,145,0.935,157,2.207,177,1.91,226,0.482,236,1.848,239,2.296,262,2.658,349,1.078,379,0.687,437,1.657,524,1.922,528,1.754,529,1.555,539,0.727,541,0.807,556,1.384,564,1.035,593,3.997,603,2.282,608,2.932,617,7.627,651,1.609,652,1.609,653,1.741,654,2.63,655,4.035,685,2.325,708,1.4,764,2.207,932,3.024,974,5.604,1275,1.546,1278,1.066,1378,2.823,1544,2.506,1550,2.451,1666,1.426,1718,1.419,1775,2.401,1900,5.049,1902,4.559,1904,3.077,1905,5.312,1907,2.723,2253,4.101,3024,2.401,3063,3.031,3081,3.475,3115,2.24,3116,2.176,3358,2.276,3544,1.705,3835,2.314,4129,2.207,4209,3.218,4335,4.627,4482,2.276,4483,2.356,4484,2,4573,5.721,4584,2.568,4604,2.401,4683,7.627,4697,2.506,4768,5.572,4787,2.723,5644,3.413,6532,3.774,6540,2.24,6596,2.401,6641,2.723,7142,5.288,7148,5.423,7151,2.723,8499,8.66,8510,4.305,8512,2.823,8523,4.627,8530,5.972,8532,2.119,8538,4.701,8889,4.305,9620,5.84,9732,2.723,9861,8.382,9870,2.823,9871,2.568,9872,4.559,10378,1.904,10836,3.549,10999,5.305,11001,8.835,11015,2.823,11016,2.823,11148,8.382,12197,2.401,12660,2.64,13132,2.723,13134,2.823,13672,2.823,13828,4.604,13829,3.115,14023,8.382,14578,2.823,14941,2.948,15560,6.434,15814,6.088,16419,4.441,16420,10.005,16421,3.369,16422,5.495,16423,5.495,16424,5.495,16425,5.495,16426,6.959,16427,3.369,16428,5.495,16429,3.369,16430,6.959,16431,5.495,16432,3.369,16433,5.495,16434,3.369,16435,5.495,16436,3.369,16437,3.369,16438,3.369,16439,3.369,16440,3.369,16441,2.948,16442,2.948,16443,8.177,16444,5.495,16445,5.495,16446,3.115,16447,5.495,16448,5.495,16449,3.115,16450,3.369,16451,3.369,16452,3.369,16453,3.369,16454,2.948,16455,5.495,16456,3.115,16457,8.029,16458,3.115,16459,3.369,16460,3.115,16461,3.369,16462,6.959,16463,5.495,16464,3.369,16465,5.495,16466,3.369,16467,5.495,16468,3.369,16469,3.115,16470,3.369,16471,3.369,16472,5.495,16473,5.081,16474,3.369,16475,3.369,16476,3.369,16477,3.369,16478,3.369,16479,8.029,16480,3.369,16481,6.959,16482,5.495,16483,5.495,16484,3.369,16485,3.369,16486,3.369,16487,3.369,16488,3.369,16489,3.369,16490,3.369,16491,3.369,16492,3.369,16493,3.369,16494,5.495,16495,3.369,16496,3.369,16497,3.369,16498,3.369,16499,3.369,16500,3.369,16501,5.495,16502,3.369,16503,5.495,16504,3.369,16505,3.369,16506,3.369,16507,3.369,16508,3.369,16509,3.369,16510,3.369,16511,3.369,16512,3.369,16513,5.495,16514,3.369,16515,3.369,16516,3.369,16517,3.369,16518,3.369,16519,3.369]],["title/injectables/OidcProvisioningStrategy.html",[539,0.901,16520,5.958]],["body/injectables/OidcProvisioningStrategy.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.113,8,1.188,9,5.852,27,0.487,29,0.868,30,0.001,31,0.625,32,0.152,33,0.535,35,1.34,36,2.373,95,0.162,99,1.238,100,2.493,101,0.012,103,0.001,104,0.001,177,1.358,180,1.775,182,2.414,226,1.061,236,1.207,239,1.703,262,2.443,284,2.292,349,0.767,379,0.928,382,3.364,437,0.96,539,1.311,541,1.776,556,1.869,608,2.743,654,2.946,932,4.084,1905,5.547,2020,3.248,2021,3.633,2022,3.503,2029,4.793,2161,4.233,2294,5.013,3881,4.156,7142,5.236,8523,4.934,11012,8.736,11727,6.153,12345,8.021,12347,4.861,13100,7.551,13102,8.005,13103,8.319,13107,5.997,13108,7.368,13112,7.551,13113,6.492,13145,6.492,15553,8.005,16345,6.492,16414,6.492,16419,10.306,16520,8.666,16521,7.421,16522,7.421,16523,7.421,16524,7.421,16525,7.421,16526,7.421,16527,6.492,16528,7.421,16529,11.001,16530,7.421,16531,7.421,16532,7.421,16533,6.861,16534,7.421,16535,9.906,16536,7.421,16537,7.421]],["title/interfaces/Options.html",[105,0.735,490,2.415]],["body/interfaces/Options.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.099,30,0.001,32,0.142,33,0.604,36,2.217,47,0.735,95,0.132,101,0.019,103,0.001,104,0.001,105,0.702,107,1.562,112,0.719,119,2.496,142,4.407,143,1.449,145,3.128,153,2.916,219,2.536,262,2.283,284,2.01,345,2.072,349,1.076,437,1.659,490,4.46,510,4.903,556,2.625,603,1.307,608,2.597,1657,5.822,1762,6.759,2029,7.918,2771,3.863,3232,3.949,3250,5.697,3443,5.694,3446,6.023,3449,5.26,3455,8.811,3456,7.085,3457,3.863,3459,5.099,3460,5.934,4324,6.835,5601,5.26,5603,5.694,6259,3.389,7858,5.452,7859,6.018,7862,5.26,7863,8.163,7865,6.018,7866,9.854,7867,7.589,7869,6.018,7870,7.285,7872,8.163,7873,7.75,7874,4.203,7875,4.961,7877,5.694,7878,5.452,7879,10.949,7880,8.587,7881,8.375,7882,5.694,7883,8.375,7884,8.375,7885,6.018,7886,6.018,7887,6.018,7888,9.437,7889,8.375,7890,9.633,7891,4.47,7892,7.925,7893,6.018,7894,6.018,7895,5.694]],["title/classes/Page.html",[0,0.231,821,3.273]],["body/classes/Page.html",[0,0.327,2,1.08,3,0.023,4,0.023,5,0.011,7,0.146,27,0.516,29,0.751,30,0.001,31,0.54,32,0.172,33,0.463,55,2.89,101,0.016,103,0.001,104,0.001,112,0.93,284,4.149,379,1.206,479,5.031,815,7.479,816,6.678,821,5.626,833,5.353,16538,9.644,16539,11.708,16540,9.644,16541,8.917]],["title/classes/PageContentDto.html",[0,0.231,16542,5.335]],["body/classes/PageContentDto.html",[0,0.323,2,1.064,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.74,30,0.001,31,0.533,32,0.171,33,0.456,47,0.921,101,0.016,103,0.001,104,0.001,112,0.922,128,5.255,181,3.106,379,1.189,381,3.193,4508,5.828,16542,10.481,16543,13.046,16544,9.508,16545,10.495,16546,10.495,16547,11.606,16548,9.508,16549,8.79,16550,8.79,16551,8.79,16552,8.79]],["title/injectables/PageContentMapper.html",[539,0.901,16553,5.705]],["body/injectables/PageContentMapper.html",[0,0.319,3,0.022,4,0.022,5,0.011,7,0.142,8,1.381,27,0.385,29,0.732,30,0.001,31,0.526,32,0.128,33,0.451,35,1.129,95,0.158,100,3.156,101,0.015,103,0.001,104,0.001,128,4.642,226,1.343,236,1.529,349,0.971,437,1.215,539,1.525,541,2.249,789,4.691,823,4.043,4508,5.148,14951,10.081,14952,10.081,16542,10.179,16545,7.872,16546,7.872,16553,9.653,16554,11.523,16555,9.397,16556,9.397,16557,11.17,16558,9.397,16559,8.688,16560,9.397,16561,9.397]],["title/classes/PageContentQueryParams.html",[0,0.231,16562,5.958]],["body/classes/PageContentQueryParams.html",[0,0.371,2,0.964,3,0.02,4,0.028,5,0.01,7,0.131,27,0.491,30,0.001,32,0.184,47,0.889,95,0.152,101,0.014,103,0.001,104,0.001,112,0.867,128,5.074,138,2.179,148,2.733,150,1.962,153,2.723,245,3.303,807,4.889,820,5.498,821,5.245,851,4.114,2680,4.927,3075,4.981,4508,5.628,7109,8.319,10112,6.406,16562,9.548,16563,12.597,16564,8.612,16565,10.482,16566,9.682,16567,9.682,16568,11.02,16569,8.612,16570,8.612,16571,10.914,16572,8.612,16573,8.612,16574,7.534,16575,8.612]],["title/classes/PageContentResponse.html",[0,0.231,16557,5.705]],["body/classes/PageContentResponse.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.498,29,0.693,30,0.001,31,0.498,32,0.166,33,0.427,47,0.9,95,0.113,101,0.015,103,0.001,104,0.001,112,0.885,128,5.134,138,2.026,150,2.027,153,2.532,181,2.982,245,3.189,379,1.113,381,2.989,820,5.112,1198,4.382,4508,5.694,16545,10.189,16546,10.189,16549,8.227,16550,8.227,16551,8.227,16552,8.227,16557,10.995,16576,12.747,16577,8.898,16578,11.14,16579,11.14,16580,11.785,16581,11.14,16582,8.898]],["title/classes/PaginationParams.html",[0,0.231,835,4.761]],["body/classes/PaginationParams.html",[0,0.375,2,0.981,3,0.02,4,0.02,5,0.01,7,0.133,27,0.452,30,0.001,32,0.151,33,0.608,55,2.87,56,6.318,70,6.03,95,0.14,101,0.014,103,0.001,104,0.001,112,0.876,138,2.007,148,2.781,149,4.594,150,1.996,153,2.508,480,3.063,486,3.319,696,4.352,708,4.584,710,8.706,821,5.302,827,7.227,835,7.714,841,8.101,842,7.714,843,9.243,844,8.411,845,10.201,847,8.101,848,6.072,849,9.243,3435,6.244,3440,6.373,3491,7.081,5538,9.759,16583,8.762,16584,8.762,16585,8.762,16586,8.762,16587,8.762]],["title/classes/PaginationResponse.html",[0,0.231,814,4.18]],["body/classes/PaginationResponse.html",[0,0.262,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,9,5.705,27,0.514,29,0.601,30,0.001,31,0.432,32,0.188,33,0.603,55,3.069,56,6.358,59,3.16,70,6.565,95,0.098,101,0.013,103,0.001,104,0.001,112,0.807,138,2.198,150,1.759,153,2.747,245,3.293,284,3.512,379,0.965,479,3.809,814,6.241,815,7.116,820,5.546,821,5.808,822,5.695,823,3.568,825,7.805,826,7.426,827,6.661,828,5.416,4649,6.984,16541,7.138,16588,7.72,16589,10.169,16590,7.72,16591,7.72,16592,7.72,16593,7.72,16594,7.72,16595,7.72,16596,7.72]],["title/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.231,1871,5.958]],["body/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,8,1.317,27,0.45,29,0.678,30,0.001,31,0.488,32,0.182,33,0.418,35,1.046,47,0.85,95,0.139,101,0.014,103,0.001,104,0.001,177,1.594,180,1.969,182,2.832,226,1.245,284,2.689,345,2.771,349,0.899,363,4.875,379,1.089,564,2.673,1025,3.405,1275,5.525,1276,6.179,1278,2.754,1280,3.435,1281,6.232,1589,6.743,1871,9.613,2489,2.886,3196,7.671,8369,6.223,8370,6.464,8820,5.475,8827,5.062,8828,5.282,8836,7.035,8837,7.035,13158,7.293,16597,12.041,16598,12.041,16599,8.705,16600,12.041,16601,8.705,16602,8.705,16603,8.705]],["title/classes/PatchGroupParams.html",[0,0.231,7444,5.958]],["body/classes/PatchGroupParams.html",[0,0.39,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.383,30,0.001,31,0.644,32,0.128,47,0.811,95,0.158,100,3.859,101,0.015,103,0.001,104,0.001,112,0.912,138,1.701,148,2.968,150,2.131,153,2.612,245,3.013,247,4.094,248,4.795,974,6.273,1207,4.252,1883,5.365,6896,8.91,7117,7.558,7119,8.759,7444,10.052,16604,10.052,16605,9.353,16606,10.052,16607,9.353]],["title/classes/PatchMyAccountParams.html",[0,0.231,328,5.958]],["body/classes/PatchMyAccountParams.html",[0,0.319,2,0.768,3,0.016,4,0.016,5,0.008,7,0.104,27,0.494,30,0.001,31,0.646,32,0.165,33,0.623,47,0.941,87,6.067,95,0.146,101,0.011,103,0.001,104,0.001,112,0.746,138,2.195,142,5.216,143,2.969,144,4.393,145,3.702,148,2.178,150,1.564,153,2.744,236,2.114,239,3.059,245,3.268,246,7.594,247,3.004,248,5.037,249,4.883,250,4.636,251,8.688,252,5.75,253,3.361,254,5.75,257,5.105,328,8.221,359,5.638,651,5.119,652,5.119,653,6.239,1612,5.171,2899,5.638,4649,9.158,5514,7.362,7054,8.221,16608,11.523,16609,6.864,16610,10.715,16611,10.715,16612,6.864,16613,7.872,16614,6.864,16615,6.864,16616,6.864,16617,6.864,16618,6.864,16619,8.221,16620,6.864]],["title/classes/PatchMyPasswordParams.html",[0,0.231,299,5.958]],["body/classes/PatchMyPasswordParams.html",[0,0.37,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.446,30,0.001,32,0.149,47,0.888,87,6.972,95,0.159,101,0.014,103,0.001,104,0.001,112,0.864,138,1.98,142,4.92,143,2.8,144,4.143,145,3.492,148,2.721,150,1.954,153,2.474,236,2.046,239,2.886,245,3.135,246,9.663,247,3.754,248,4.99,250,5.792,252,7.184,253,4.199,254,9.118,299,9.522,361,6.15,12056,8.096,16608,11.055,16621,8.576,16622,11.957,16623,10.884,16624,10.884,16625,8.576,16626,8.576]],["title/classes/PatchOrderParams.html",[0,0.231,16627,5.958]],["body/classes/PatchOrderParams.html",[0,0.389,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.381,30,0.001,32,0.127,47,0.809,95,0.145,100,3.848,101,0.015,103,0.001,104,0.001,112,0.91,138,1.693,143,2.073,148,2.954,150,2.121,153,2.604,236,1.864,245,3.004,565,6.801,807,4.676,848,7.318,1672,5.965,1885,4.781,2034,7.319,2347,5.31,3855,7.869,4059,7.523,5537,7.3,16604,10.024,16606,10.024,16627,10.024,16628,9.31,16629,9.31,16630,10.593,16631,9.31]],["title/classes/PatchVisibilityParams.html",[0,0.231,16632,5.958]],["body/classes/PatchVisibilityParams.html",[0,0.394,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.388,30,0.001,32,0.13,95,0.147,100,3.893,101,0.016,103,0.001,104,0.001,112,0.92,119,2.359,138,1.725,143,2.58,145,3.218,147,6.222,148,3.01,150,2.161,153,2.634,245,3.039,1883,5.391,1885,4.837,4084,11.696,4919,7.289,4920,7.485,7126,8.298,16604,10.139,16606,10.139,16632,10.139,16633,9.485,16634,9.485]],["title/injectables/PermissionService.html",[216,5.705,539,0.901]],["body/injectables/PermissionService.html",[0,0.233,3,0.016,4,0.016,5,0.008,7,0.104,8,1.285,27,0.439,29,0.834,30,0.001,31,0.6,32,0.146,33,0.514,35,1.384,47,0.917,95,0.136,101,0.011,102,4.723,103,0.001,104,0.001,119,1.913,145,1.906,216,8.977,226,0.981,236,1.529,239,3.154,276,5.299,333,2.904,349,1.19,353,6.454,355,5.91,358,4.134,437,1.49,529,1.942,539,1.244,541,1.643,560,2.826,591,5.31,603,2.152,696,4.226,826,3.952,1613,6.577,1659,6.346,1661,6.346,1662,6.346,1663,6.414,1666,2.904,1668,6.156,1673,6.346,1674,6.346,1698,4.967,1773,3.746,2336,5.52,3081,5.753,4060,6.294,4690,6.248,5522,6.57,7866,7.362,9426,7.362,9692,8.688,10402,8.688,12174,7.594,12176,5.547,12183,5.547,16635,6.864,16636,9.397,16637,9.397,16638,9.397,16639,6.864,16640,9.397,16641,6.864,16642,9.397,16643,9.397,16644,8.688,16645,9.397,16646,6.864,16647,6.864,16648,6.864,16649,6.864,16650,6.864,16651,6.864,16652,9.397,16653,6.864,16654,9.397,16655,6.864,16656,6.864]],["title/interfaces/PlainTextMailContent.html",[105,0.735,1306,5.065]],["body/interfaces/PlainTextMailContent.html",[3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,31,0.49,32,0.151,33,0.529,47,1.012,77,5.571,101,0.014,103,0.001,104,0.001,105,1.46,107,2.098,112,0.875,180,2.34,1294,8.195,1295,6.665,1296,8.974,1297,8.399,1298,6.665,1299,4.896,1300,8.195,1301,6.359,1302,6.665,1303,6.359,1304,9.421,1305,6.665,1306,8.974,1307,9.953,1308,9.953,1309,8.195,1310,6.685,1311,6.503,1312,6.503,1313,6.665,1314,6.665]],["title/classes/PreviewActionsLoggable.html",[0,0.231,16657,5.503]],["body/classes/PreviewActionsLoggable.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,8,1.337,27,0.457,29,0.694,30,0.001,31,0.5,32,0.122,33,0.428,35,1.071,47,0.859,95,0.141,101,0.015,103,0.001,104,0.001,105,0.962,177,2.042,284,2.754,345,2.839,348,4.452,349,0.921,379,1.115,437,1.153,603,1.791,1025,4.762,1275,5.586,1276,6.248,1278,2.821,1280,3.487,1281,6.286,1555,6.817,1631,6.986,3871,6.798,6316,5.682,10860,8.298,10861,8.114,16657,9.015,16658,8.362,16659,12.174,16660,8.918,16661,9.279,16662,8.918,16663,8.918,16664,6.633,16665,7.206,16666,8.918,16667,8.918]],["title/classes/PreviewBuilder.html",[0,0.231,16668,5.958]],["body/classes/PreviewBuilder.html",[0,0.252,2,0.832,3,0.017,4,0.017,5,0.009,7,0.113,8,1.189,27,0.406,29,0.772,30,0.001,31,0.556,32,0.136,33,0.476,34,1.901,35,1.192,47,0.788,95,0.157,101,0.012,103,0.001,104,0.001,105,0.802,154,1.589,271,3.88,348,5.945,349,1.024,413,3.93,437,1.712,506,3.929,556,2.811,662,3.119,789,3.712,1299,5.554,1555,5.554,2985,4.163,4209,2.522,6237,5.179,6255,7.94,6312,8.624,6316,4.737,10671,6.228,10814,9.077,10858,10.694,10859,9.764,10860,8.856,10861,8.661,16661,8.118,16664,5.53,16668,8.677,16669,7.435,16670,11.161,16671,9.918,16672,7.435,16673,7.435,16674,9.918,16675,7.435,16676,7.435,16677,7.435,16678,7.435,16679,7.435,16680,7.435,16681,7.435,16682,7.435,16683,7.435,16684,7.435]],["title/interfaces/PreviewConfig.html",[105,0.735,16685,5.705]],["body/interfaces/PreviewConfig.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,47,0.697,55,2.126,95,0.125,101,0.02,103,0.001,104,0.001,105,1.282,107,2.371,112,0.943,3542,4.032,6335,8.421,9882,6.57,11590,6.674,11984,7.985,11986,7.985,12261,9.078,14582,7.187,16658,6.787,16685,9.953,16686,9.136,16687,11.073,16688,11.073]],["title/interfaces/PreviewFileOptions.html",[105,0.735,16661,4.953]],["body/interfaces/PreviewFileOptions.html",[3,0.023,4,0.023,5,0.011,7,0.146,30,0.001,32,0.172,47,0.984,55,2.075,101,0.021,103,0.001,104,0.001,105,1.36,107,2.314,112,0.93,119,1.963,347,3.532,348,4.815,6316,6.145,10860,9.751,10861,9.77,16658,6.624,16661,8.516,16664,10.372,16689,8.437,16690,7.556]],["title/interfaces/PreviewFileParams.html",[105,0.735,10858,5.503]],["body/interfaces/PreviewFileParams.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,31,0.479,32,0.186,33,0.522,47,1.012,55,1.841,95,0.151,101,0.018,103,0.001,104,0.001,105,1.173,107,2.053,112,0.863,154,1.829,284,2.643,348,6.274,789,4.272,1151,6.836,1153,5.605,6237,3.971,6255,8.179,6312,8.685,6342,6.365,6343,6.098,6344,6.365,6345,6.365,10321,6.523,10814,9.58,10857,7.912,10858,8.784,10859,10.995,10860,9.347,10861,9.141]],["title/modules/PreviewGeneratorAMQPModule.html",[201,1.804,16691,5.958]],["body/modules/PreviewGeneratorAMQPModule.html",[0,0.325,3,0.022,4,0.022,5,0.011,30,0.001,95,0.159,101,0.016,103,0.001,104,0.001,201,3.329,203,3.444,204,3.701,205,3.808,206,3.792,207,3.777,208,3.507,209,3.601,218,4.636,219,3.731,220,3.643,225,4.598,226,1.369,506,5.061,1168,7.299,6237,4.443,6259,4.986,6317,6.101,6335,7.427,10500,8.853,10671,8.022,10679,8.377,11983,10.777,12261,6.577,16687,8.022,16691,11.926,16692,9.576,16693,9.576,16694,11.23,16695,9.576]],["title/classes/PreviewGeneratorBuilder.html",[0,0.231,16696,5.958]],["body/classes/PreviewGeneratorBuilder.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.016,7,0.139,8,1.36,27,0.375,29,0.713,30,0.001,31,0.513,32,0.125,33,0.44,35,1.101,95,0.156,101,0.015,103,0.001,104,0.001,105,0.989,284,2.83,348,5.664,349,0.946,413,3.795,437,1.467,662,2.881,1153,6.001,1299,5.13,3542,3.739,5611,10.489,6317,7.228,6700,10.789,9882,6.091,16658,7.792,16664,10.274,16696,9.925,16697,9.167,16698,9.161,16699,11.345,16700,9.161]],["title/injectables/PreviewGeneratorConsumer.html",[539,0.901,16701,5.958]],["body/injectables/PreviewGeneratorConsumer.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.428,29,0.813,30,0.001,31,0.585,32,0.143,33,0.501,35,0.966,95,0.168,101,0.013,103,0.001,104,0.001,105,0.868,138,1.463,177,1.473,226,1.15,262,2.542,345,2.56,349,0.831,379,1.006,437,1.04,539,1.383,541,1.926,556,2.631,603,1.616,608,1.854,662,3.648,823,3.666,1025,3.147,1121,4.996,1123,6.746,1154,3.199,1160,5.624,1161,5.195,1278,2.545,1555,6.496,2253,5.443,6317,5.125,10585,7.437,10587,9.139,10594,7.437,10595,9.658,10602,7.037,16657,6.5,16658,7.968,16661,8.932,16697,9.375,16701,9.139,16702,8.044,16703,9.139,16704,8.044,16705,10.926,16706,8.044,16707,8.044,16708,9.719,16709,8.044,16710,7.437,16711,7.037,16712,7.037,16713,7.037,16714,8.044,16715,10.446,16716,8.044,16717,6.739,16718,8.044,16719,8.044]],["title/modules/PreviewGeneratorConsumerModule.html",[201,1.804,16694,5.705]],["body/modules/PreviewGeneratorConsumerModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,8,0.974,27,0.333,29,0.633,30,0.001,31,0.455,32,0.111,33,0.39,35,0.976,95,0.173,101,0.013,103,0.001,104,0.001,201,3.088,203,2.922,208,3.851,214,4.879,225,3.205,226,1.162,236,1.322,349,0.839,413,3.238,437,1.36,506,5.557,598,4.679,636,4.725,637,5.79,639,3.813,1110,7.751,1278,2.571,1912,5.379,2253,5.233,3542,3.316,6317,6.699,8439,5.402,9882,5.402,10110,6.194,10660,7.492,10667,5.79,10673,6.043,10677,5.79,10678,5.581,10849,6.566,10850,7.821,12261,7.222,14582,5.91,16658,7.222,16685,10.327,16687,6.807,16694,9.765,16697,8.497,16701,9.199,16705,8.808,16713,7.108,16720,8.125,16721,7.108,16722,10.515,16723,8.125,16724,8.125,16725,8.125,16726,8.125,16727,8.125,16728,8.125]],["title/modules/PreviewGeneratorProducerModule.html",[201,1.804,10670,5.705]],["body/modules/PreviewGeneratorProducerModule.html",[0,0.306,3,0.021,4,0.021,5,0.011,30,0.001,95,0.162,101,0.015,103,0.001,104,0.001,201,3.238,203,3.236,204,3.477,205,3.578,206,3.563,207,3.549,208,4.477,209,4.596,214,6.23,218,4.462,219,3.505,220,3.423,225,4.424,226,1.286,506,4.755,1161,5.811,1278,2.846,10660,9.568,10670,11.776,16658,6.18,16697,7.271,16729,8.997,16730,8.997,16731,8.997,16732,8.997,16733,11.831,16734,8.997,16735,8.997]],["title/injectables/PreviewGeneratorService.html",[539,0.901,16705,5.705]],["body/injectables/PreviewGeneratorService.html",[0,0.217,3,0.015,4,0.015,5,0.014,7,0.097,8,1.071,27,0.482,29,0.87,30,0.001,31,0.626,32,0.153,33,0.536,35,1.239,36,2.377,47,0.728,95,0.162,101,0.011,103,0.001,104,0.001,105,0.689,112,0.71,143,1.422,177,1.169,226,0.913,262,2.67,271,4.37,345,2.032,347,2.338,348,3.188,349,1.065,379,0.798,437,1.651,480,1.773,486,1.921,539,1.183,541,1.528,556,1.608,603,2.64,608,2.377,662,3.243,739,3.912,1153,4.182,1278,2.02,2253,5.128,3271,6.369,3542,2.605,6312,7.118,6316,5.695,6317,6.57,6341,8.126,6700,8.639,9882,4.245,10140,6.648,10849,7.223,10850,8.309,10860,4.749,10861,6.501,16657,5.159,16658,8.37,16661,8.126,16664,9.064,16690,5.002,16696,5.586,16697,9.848,16703,7.819,16705,7.488,16711,5.586,16712,5.586,16717,7.488,16736,5.903,16737,11.76,16738,8.938,16739,8.938,16740,5.903,16741,8.938,16742,8.938,16743,6.385,16744,6.385,16745,8.264,16746,6.385,16747,8.938,16748,6.385,16749,10.313,16750,5.903,16751,6.385,16752,6.385,16753,6.385,16754,6.385,16755,6.385,16756,6.385,16757,6.385,16758,6.385,16759,6.385,16760,6.385,16761,6.385,16762,6.385,16763,6.385]],["title/interfaces/PreviewModuleConfig.html",[105,0.735,16688,5.705]],["body/interfaces/PreviewModuleConfig.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,47,0.899,55,2.741,95,0.125,101,0.02,103,0.001,104,0.001,105,1.282,107,2.371,112,0.943,3542,4.032,6335,7.569,9882,6.57,11590,6.674,11984,10.681,11986,10.681,12261,6.787,14582,7.187,16658,6.787,16685,8.278,16686,9.136,16687,8.278,16688,10.672]],["title/interfaces/PreviewOptions.html",[105,0.735,16664,5.065]],["body/interfaces/PreviewOptions.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.161,33,0.566,47,0.967,55,2.727,101,0.021,103,0.001,104,0.001,105,1.368,107,2.342,112,0.936,119,1.987,347,3.575,348,6.572,6316,8.387,10860,7.26,10861,8.578,16658,6.704,16661,7.1,16664,9.791,16689,8.54,16690,7.647]],["title/classes/PreviewParams.html",[0,0.231,6312,4.339]],["body/classes/PreviewParams.html",[0,0.452,2,0.69,3,0.014,4,0.02,5,0.01,7,0.093,26,2.552,27,0.414,30,0.001,32,0.169,33,0.578,39,1.657,47,0.94,95,0.157,99,1.028,101,0.022,103,0,104,0,105,0.665,112,0.692,119,2.058,138,1.84,143,1.94,147,4.679,148,1.955,149,4.183,150,1.403,151,5.795,153,1.4,154,1.317,245,3.62,247,2.696,248,5.027,249,4.448,348,3.075,807,4.916,808,6.598,838,3.171,851,2.942,988,2.657,990,2.083,1079,3.618,1139,5.553,1140,4.035,1141,4.035,1198,2.118,1280,1.925,2680,4.566,2863,5.718,3573,3.016,4209,2.09,5905,6.498,6237,5.102,6250,7.203,6256,6,6285,3.035,6288,4.231,6289,4.307,6290,4.307,6293,7.715,6296,4.307,6297,8.01,6298,8.423,6299,8.423,6300,4.307,6301,4.231,6302,6.831,6303,4.231,6304,4.307,6305,4.161,6306,5.887,6307,4.096,6308,4.161,6309,4.231,6310,4.161,6311,4.161,6312,5.553,6313,4.307,6314,7.071,6315,4.307,6316,6.444,6317,5.553,6318,5.709,6319,5.795,6320,7.071,10754,8.058,10774,5.695,16764,6.16,16765,6.16,16766,6.16,16767,6.16,16768,6.16]],["title/injectables/PreviewProducer.html",[539,0.901,16733,5.705]],["body/injectables/PreviewProducer.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.12,27,0.493,29,0.991,30,0.001,31,0.674,32,0.174,33,0.577,35,1.379,36,1.988,47,0.877,55,1.465,95,0.164,101,0.011,103,0.001,104,0.001,105,0.734,141,4.463,177,1.953,180,1.674,226,0.973,262,2.637,349,0.703,379,1.168,382,3.219,437,1.208,448,5.315,479,3.5,500,5.546,519,2.108,539,1.237,541,1.629,584,8.34,598,3.919,603,1.367,608,1.569,823,3.743,1121,4.227,1123,4.395,1146,5.5,1147,9.247,1154,3.716,1160,4.758,1161,4.395,1278,2.153,1555,7.368,1912,3.14,2253,5.219,3923,7.55,3959,7.935,8439,4.525,10110,5.188,10597,6.949,10698,10.414,10699,8.173,10700,8.173,10708,5.954,10709,6.292,10710,5.954,10711,6.292,10712,5.954,10713,6.292,10715,6.292,13062,6.292,14582,4.95,16657,5.5,16658,7.327,16661,8.352,16688,5.701,16690,5.332,16708,7.827,16710,6.292,16711,5.954,16712,5.954,16717,7.827,16733,7.827,16769,6.806,16770,6.806,16771,9.343,16772,6.806,16773,6.806,16774,6.806,16775,6.806,16776,6.806]],["title/interfaces/PreviewResponseMessage.html",[105,0.735,16690,5.335]],["body/interfaces/PreviewResponseMessage.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.162,47,0.968,55,2.111,101,0.021,103,0.001,104,0.001,105,1.37,107,2.354,112,0.939,119,2.585,347,4.829,348,4.897,6316,6.25,10860,7.296,10861,9.816,16658,6.737,16661,7.135,16664,9.446,16689,8.581,16690,9.266]],["title/injectables/PreviewService.html",[539,0.901,10582,5.705]],["body/injectables/PreviewService.html",[0,0.178,3,0.012,4,0.012,5,0.014,7,0.079,8,0.928,27,0.483,29,0.918,30,0.001,31,0.692,32,0.161,33,0.565,35,1.368,36,2.675,47,0.651,59,1.625,95,0.162,101,0.009,103,0,104,0,105,0.564,154,1.118,177,1.417,226,0.748,236,0.851,262,2.906,271,3.986,349,0.952,379,0.968,437,1.598,500,3.105,506,2.765,519,2.398,529,2.191,539,1.025,541,1.252,579,2.786,603,2.664,604,2.125,608,2.789,631,2.684,639,2.455,662,3.581,789,2.612,823,3.575,990,3.445,994,3.727,1178,2.808,1278,1.655,1555,2.929,2253,3.778,2254,4.6,2298,3.805,2303,4.098,2622,4.124,2985,2.929,3542,2.135,5644,5.726,6237,5.614,6255,7.895,6257,3.727,6259,2.724,6262,6.257,6275,4.227,6281,4.227,6312,7.873,6317,3.333,9882,3.478,10133,3.727,10188,4.098,10224,4.576,10318,4.576,10321,5.902,10388,3.987,10582,6.486,10671,4.382,10679,4.576,10814,8.681,10849,6.257,10850,7.578,10858,10.305,10861,3.805,11982,4.836,16668,4.576,16703,6.774,16733,9.872,16740,4.836,16745,7.158,16777,5.231,16778,7.743,16779,7.743,16780,9.218,16781,7.743,16782,7.743,16783,5.231,16784,7.743,16785,5.231,16786,7.743,16787,5.231,16788,5.231,16789,5.231,16790,5.231,16791,7.743,16792,5.231,16793,7.743,16794,5.231,16795,5.231,16796,5.231,16797,5.231,16798,5.231,16799,5.231,16800,5.231,16801,5.231,16802,5.231,16803,4.836,16804,5.231,16805,5.231,16806,5.231,16807,5.231,16808,7.743,16809,7.743,16810,5.231,16811,5.231,16812,5.231,16813,5.231,16814,5.231,16815,5.231]],["title/classes/PrometheusMetricsConfig.html",[0,0.231,16816,5.958]],["body/classes/PrometheusMetricsConfig.html",[0,0.23,2,0.758,3,0.016,4,0.016,5,0.008,7,0.103,8,1.116,27,0.562,30,0.001,32,0.17,35,0.814,47,0.809,55,2.466,95,0.086,101,0.011,103,0.001,104,0.001,112,0.739,119,2.756,177,2.525,236,1.515,349,1.282,379,1.331,413,3.916,519,2.098,556,1.706,603,2.822,662,2.928,686,4.395,1132,7.439,2020,2.964,2021,3.316,2022,3.197,2023,4.314,5231,6.692,8754,5.162,9656,8.335,16816,10.024,16817,6.772,16818,10.64,16819,10.64,16820,10.64,16821,10.64,16822,10.64,16823,10.64,16824,10.024,16825,10.64,16826,9.837,16827,9.837,16828,6.772,16829,6.772,16830,6.772,16831,6.772,16832,6.772,16833,6.772,16834,6.772,16835,6.772,16836,6.772,16837,6.772,16838,6.772,16839,6.772,16840,6.772,16841,6.772,16842,6.772,16843,6.772,16844,6.772,16845,6.772,16846,6.772,16847,9.31,16848,9.31,16849,9.31,16850,9.31,16851,9.31,16852,6.772,16853,6.772,16854,6.772,16855,6.772,16856,6.772,16857,11.458]],["title/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.231,16858,6.296]],["body/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.227,2,0.748,3,0.016,4,0.016,5,0.008,7,0.101,8,1.106,27,0.378,29,0.52,30,0.001,31,0.374,32,0.091,33,0.321,35,0.803,95,0.144,101,0.019,103,0.001,104,0.001,177,1.223,236,2.011,238,6.084,284,2.064,330,4.589,345,2.127,349,1.091,379,0.836,437,1.599,486,2.01,823,2.345,828,3.559,838,2.095,1025,2.614,1132,4.671,1224,3.742,1241,3.811,1272,5.845,1274,5.845,1275,5.228,1276,5.422,1278,2.114,1279,7.728,1280,2.883,1281,5.614,1459,8.991,1582,3.885,1965,3.677,2253,4.9,2309,4.257,6684,6.339,6780,5.957,6954,5.093,8095,4.97,9656,8.926,11787,6.731,14122,4.97,15565,9.967,16816,5.845,16826,9.768,16827,9.768,16858,10.534,16859,10.565,16860,6.682,16861,6.682,16862,11.393,16863,6.682,16864,6.682,16865,5.845,16866,6.682,16867,6.682,16868,6.682,16869,12.362,16870,13.608,16871,6.682,16872,6.682,16873,6.682,16874,5.234,16875,6.682,16876,6.682,16877,9.225,16878,6.682,16879,6.682,16880,5.399,16881,6.682,16882,9.225,16883,11.955,16884,6.682,16885,6.682,16886,6.682,16887,6.682,16888,6.682,16889,6.682,16890,6.682,16891,6.682,16892,9.225,16893,6.682,16894,6.682,16895,6.682,16896,6.682,16897,6.682]],["title/classes/PropertyData.html",[0,0.231,2550,5.503]],["body/classes/PropertyData.html",[0,0.31,2,1.021,3,0.021,4,0.021,5,0.011,7,0.138,27,0.527,29,0.71,30,0.001,31,0.72,32,0.176,33,0.59,47,0.908,95,0.116,101,0.015,103,0.001,104,0.001,112,0.898,172,2.912,181,3.028,379,1.141,381,3.063,480,3.415,1589,7.403,1985,3.627,2550,10.683,2590,10.759,4285,3.992,7250,7.145,7276,8.304,7290,7.64,7291,7.64,7317,7.64,16898,13.22,16899,8.432,16900,11.313,16901,9.12,16902,9.12]],["title/interfaces/ProviderConsentResponse.html",[105,0.735,15944,5.191]],["body/interfaces/ProviderConsentResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.19,33,0.688,47,1.016,70,6.016,77,7.677,95,0.128,101,0.013,103,0.001,104,0.001,105,0.827,107,1.838,108,5.356,112,0.803,119,2.306,129,10.542,130,10.542,131,4.514,133,3.962,1341,6.418,3542,4.917,4198,8.586,5542,11.141,5543,11.141,5544,10.095,5545,10.095,5546,10.095,5547,9.737,9391,8.963,15944,7.713,16903,7.661,16904,10.095,16905,7.083,16906,7.083,16907,6.702]],["title/interfaces/ProviderConsentSessionResponse.html",[105,0.735,16007,5.335]],["body/interfaces/ProviderConsentSessionResponse.html",[3,0.02,4,0.02,5,0.01,7,0.133,30,0.001,32,0.189,33,0.675,47,0.988,55,2.596,95,0.111,101,0.014,103,0.001,104,0.001,105,0.944,107,2.098,108,6.113,112,0.875,113,11.711,114,11.081,115,11.711,116,9.923,117,9.923,118,8.07,119,2.456,120,4.847,125,7.649,126,7.065,5585,8.084,15944,9.655,16007,8.632,16908,8.743,16909,12.666,16910,8.743]],["title/interfaces/ProviderLoginResponse.html",[105,0.735,16006,5.335]],["body/interfaces/ProviderLoginResponse.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,32,0.188,33,0.603,47,1.01,70,6.279,77,8.013,95,0.138,101,0.014,103,0.001,104,0.001,105,0.925,107,2.058,108,5.995,112,0.864,119,2.434,1341,7.184,3542,5.133,4198,8.962,5544,10.536,5545,10.536,5546,10.536,5547,10.164,9391,9.355,14535,11.628,16006,8.527,16904,10.536,16905,7.929,16906,7.929,16907,7.502,16911,8.576]],["title/interfaces/ProviderOidcContext.html",[105,0.735,16904,5.705]],["body/interfaces/ProviderOidcContext.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.182,33,0.675,47,1.002,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,108,6.57,112,0.915,133,4.358,1611,8.688,9719,9.259,16384,12.013,16385,12.013,16386,12.013,16387,12.013,16904,9.653,16912,9.397]],["title/interfaces/ProviderRedirectResponse.html",[105,0.735,15946,5.065]],["body/interfaces/ProviderRedirectResponse.html",[3,0.025,4,0.025,5,0.013,7,0.16,30,0.001,32,0.144,47,0.925,101,0.017,103,0.001,104,0.001,105,1.139,107,2.533,108,7.38,112,0.981,15946,9.189,16913,10.555,16914,12.487]],["title/classes/ProvisioningDto.html",[0,0.231,13112,5.191]],["body/classes/ProvisioningDto.html",[0,0.342,2,1.128,3,0.024,4,0.024,5,0.012,7,0.153,27,0.492,29,0.785,30,0.001,31,0.565,32,0.164,33,0.484,47,0.849,101,0.017,103,0.001,104,0.001,112,0.955,379,1.261,8523,8.543,8526,8.818,13112,10.516,16915,10.079,16916,12.023,16917,12.023,16918,10.079]],["title/modules/ProvisioningModule.html",[201,1.804,15697,5.335]],["body/modules/ProvisioningModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,30,0.001,95,0.174,101,0.011,103,0.001,104,0.001,201,2.856,203,2.499,204,2.685,205,2.763,206,2.751,207,2.74,208,3.949,209,4.054,213,8.914,214,5.804,218,3.768,219,2.706,220,2.643,225,3.737,226,0.993,654,2.066,963,4,1278,2.198,1359,9.304,1360,8.745,1378,5.82,1904,3.89,3534,7.77,3544,3.516,3672,4.619,3939,6.3,4551,4.692,5381,7.97,8512,5.82,11029,10.108,13097,10.479,15512,10.653,15697,11.253,16409,10.479,16419,10.108,16527,6.077,16919,6.947,16920,6.947,16921,6.947,16922,6.947,16923,10.479,16924,10.479,16925,6.947,16926,6.947,16927,6.947,16928,6.947,16929,6.947,16930,6.947]],["title/injectables/ProvisioningService.html",[539,0.901,15512,5.335]],["body/injectables/ProvisioningService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.005,27,0.511,29,0.921,30,0.001,31,0.663,32,0.167,33,0.568,35,1.365,36,2.593,47,0.931,48,3.979,95,0.155,100,1.958,101,0.01,103,0,104,0,112,0.665,121,7.025,177,1.963,226,0.833,236,1.745,262,2.783,284,2.588,349,1.108,379,1.048,437,1.643,448,4.021,480,1.619,486,1.754,519,1.806,529,1.649,539,1.109,541,1.396,556,1.468,603,2.589,608,2.261,1162,2.785,1379,4.076,1437,7.131,2161,3.325,2588,5.953,3075,4.477,4551,8.578,11292,6.522,11673,8.582,12345,7.987,12347,7.025,12348,3.876,12349,3.876,13097,8.985,13100,6.387,13103,7.943,13108,7.296,13112,7.478,13136,4.711,15512,6.565,15513,8.604,15547,5.1,15818,7.685,16332,4.444,16409,8.985,16923,8.985,16931,5.83,16932,8.38,16933,8.38,16934,8.38,16935,8.38,16936,5.39,16937,9.81,16938,9.81,16939,9.81,16940,5.83,16941,8.38,16942,5.83,16943,8.38,16944,5.83,16945,8.38,16946,5.83,16947,5.83,16948,8.38,16949,5.83,16950,8.38,16951,5.83,16952,5.83,16953,5.1,16954,5.83,16955,5.83,16956,5.83,16957,5.83,16958,5.83,16959,5.83,16960,5.83,16961,5.83,16962,5.83,16963,8.38,16964,5.83,16965,5.83,16966,5.83,16967,5.83,16968,5.83]],["title/classes/ProvisioningStrategy.html",[0,0.231,12345,4.283]],["body/classes/ProvisioningStrategy.html",[0,0.309,2,1.019,3,0.021,4,0.021,5,0.011,7,0.138,8,1.354,9,6.61,27,0.503,29,0.88,30,0.001,31,0.633,32,0.154,33,0.542,35,1.476,36,2.734,95,0.143,100,3.056,101,0.015,103,0.001,104,0.001,284,2.81,2161,5.19,11012,10.066,11727,7.017,12345,7.105,12347,8.048,12348,6.05,12349,6.05,13100,8.611,13102,9.129,13103,8.983,13107,9.129,13108,9.556,13112,6.936,16969,9.099,16970,9.099,16971,9.099,16972,9.099]],["title/classes/ProvisioningSystemDto.html",[0,0.231,15818,5.335]],["body/classes/ProvisioningSystemDto.html",[0,0.31,2,1.021,3,0.021,4,0.021,5,0.011,7,0.138,26,2.605,27,0.527,29,0.71,30,0.001,31,0.511,32,0.176,33,0.59,47,0.798,48,5.84,95,0.143,99,1.521,101,0.015,103,0.001,104,0.001,112,0.898,181,3.028,193,6.633,194,7.145,379,1.141,381,3.063,12345,7.735,12346,8.598,12347,8.056,12348,6.064,12349,6.064,12442,6.952,12443,7.145,12444,6.952,12445,7.145,15818,10.357,16973,13.22,16974,9.12,16975,11.313,16976,9.12,16977,9.12]],["title/classes/ProvisioningSystemInputMapper.html",[0,0.231,16953,5.958]],["body/classes/ProvisioningSystemInputMapper.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,8,1.379,27,0.384,29,0.73,30,0.001,31,0.525,32,0.128,33,0.45,35,1.126,48,4.452,95,0.158,100,3.865,101,0.015,103,0.001,104,0.001,236,1.525,349,0.968,413,3.834,556,2.361,3075,5.251,6478,7.854,11292,8.632,12345,5.896,12346,6.554,12347,6.141,12348,6.233,12349,6.233,15818,9.015,16332,7.146,16953,10.067,16978,11.507,16979,9.375,16980,11.507,16981,11.507,16982,9.375,16983,9.375,16984,9.375,16985,9.375]],["title/classes/Pseudonym.html",[0,0.231,9004,3.921]],["body/classes/Pseudonym.html",[0,0.281,2,0.927,3,0.019,4,0.019,5,0.01,7,0.125,8,1.275,26,2.72,27,0.547,30,0.001,32,0.113,35,0.994,39,3.339,47,0.751,83,3.811,95,0.135,101,0.018,103,0.001,104,0.001,105,0.893,112,0.845,133,2.894,180,2.107,349,1.326,376,5.406,377,5.634,381,3.574,382,3.21,448,4.361,479,3.985,662,3.346,686,5.022,1600,6.187,1604,5.433,1607,7.594,1718,3.486,2442,4.052,2736,5.502,2754,5.502,2757,7.24,2759,7.24,2762,6.483,2763,6.483,7476,6.687,8858,6.773,9004,7.568,16986,7.651,16987,7.651,16988,8.276,16989,8.276,16990,8.276,16991,8.276,16992,8.276,16993,8.276,16994,7.24,16995,7.651,16996,7.651,16997,6.687]],["title/modules/PseudonymApiModule.html",[201,1.804,16998,5.503]],["body/modules/PseudonymApiModule.html",[0,0.299,3,0.021,4,0.021,5,0.01,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,201,3.205,203,3.165,204,3.401,205,3.5,206,3.485,207,3.471,208,4.432,209,3.309,218,4.4,219,3.429,220,3.348,222,5.466,223,4.555,225,4.364,226,1.258,654,2.618,1692,7.287,1904,4.928,2472,3.995,2705,4.154,4615,9.932,5381,8.508,16998,11.379,16999,8.801,17000,8.801,17001,8.801,17002,11.186,17003,8.801,17004,10.587,17005,8.801,17006,8.801]],["title/controllers/PseudonymController.html",[259,2.591,17004,5.958]],["body/controllers/PseudonymController.html",[0,0.268,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.324,29,0.615,30,0.001,31,0.443,32,0.157,33,0.379,35,1.382,36,2.197,95,0.17,99,1.318,100,2.654,101,0.013,103,0.001,104,0.001,138,1.437,150,1.8,153,1.796,177,1.446,223,3.253,226,1.13,239,2.369,259,3.006,261,3.752,262,2.52,270,5.971,271,4.499,292,5.225,294,6.36,333,4.369,335,6.195,337,4.084,338,4.176,343,4.209,345,2.515,346,4.69,349,0.816,437,1.336,608,1.821,1243,6.337,2489,3.424,2705,3.73,2904,4.242,7112,6.579,9004,7.614,9010,5.254,13953,8.344,13956,7.51,16987,10.634,17002,9.635,17004,9.033,17007,7.902,17008,7.902,17009,10.67,17010,7.902,17011,7.902,17012,7.902,17013,7.68,17014,6.913,17015,7.902,17016,10.601,17017,7.902,17018,7.902,17019,7.902,17020,7.902,17021,7.902,17022,7.902,17023,7.902]],["title/entities/PseudonymEntity.html",[154,1.456,17024,5.705]],["body/entities/PseudonymEntity.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.127,26,2.269,27,0.484,30,0.001,32,0.161,34,1.424,39,3.465,47,0.834,49,5.285,95,0.158,96,2.942,97,3.624,99,1.395,101,0.018,103,0.001,104,0.001,105,0.902,112,0.938,138,2.149,154,2.289,155,2.79,168,6.74,172,4.208,173,2.473,174,4.26,178,3.474,180,1.498,181,2.238,182,2.72,191,4.525,192,5.327,404,3.412,405,5.894,593,3.097,4276,5.073,8858,7.029,9004,7.175,9005,7.315,9010,5.56,9011,6.757,9012,7.005,9013,6.082,9014,6.551,17024,8.972,17025,7.731,17026,8.362,17027,8.362,17028,8.362,17029,8.972]],["title/interfaces/PseudonymEntityProps.html",[105,0.735,17029,5.705]],["body/interfaces/PseudonymEntityProps.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.127,26,2.639,30,0.001,32,0.17,33,0.514,34,2.123,39,3.545,47,0.879,49,5.405,95,0.158,96,2.942,97,3.624,99,1.395,101,0.018,103,0.001,104,0.001,105,0.902,107,2.006,112,0.938,154,2.289,168,6.74,172,3.978,173,2.473,174,4.26,178,3.474,180,1.498,181,2.238,182,2.72,191,4.525,192,5.327,404,3.412,405,5.894,593,3.097,4276,5.073,8858,7.191,9004,7.417,9010,5.56,9011,6.757,9012,7.005,9013,6.082,9014,6.551,17024,7.005,17025,7.731,17029,9.899]],["title/classes/PseudonymMapper.html",[0,0.231,17014,5.958]],["body/classes/PseudonymMapper.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,34,1.631,35,1.15,39,2.576,95,0.148,99,1.597,101,0.016,103,0.001,104,0.001,236,1.558,349,0.989,413,3.87,437,1.238,782,6.47,789,4.781,823,4.09,8858,5.225,9004,7.719,17014,10.198,17016,11.23,17030,9.576,17031,11.657,17032,9.576,17033,9.576,17034,9.576,17035,9.576]],["title/modules/PseudonymModule.html",[201,1.804,4615,5.065]],["body/modules/PseudonymModule.html",[0,0.27,3,0.019,4,0.019,5,0.009,30,0.001,95,0.168,101,0.013,103,0.001,104,0.001,201,3.058,203,2.865,204,3.078,205,3.168,206,3.154,207,3.141,208,4.229,209,4.341,218,4.128,219,3.103,220,3.03,225,4.094,226,1.139,560,3.279,1278,2.52,1767,6.901,1768,7.72,1769,6.672,1863,6.436,2254,5.873,2428,4.31,3534,8.08,3544,4.03,4615,10.616,9015,10.897,9713,10.586,9733,9.538,13862,9.269,17036,7.965,17037,7.965,17038,7.965,17039,7.965,17040,10.897,17041,7.965]],["title/classes/PseudonymParams.html",[0,0.231,17009,5.958]],["body/classes/PseudonymParams.html",[0,0.404,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,27,0.406,30,0.001,32,0.135,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,112,0.945,138,1.802,142,4.654,143,2.649,144,3.263,145,3.303,148,3.143,150,2.257,245,3.12,248,4.965,4325,8.298,9004,7.344,11144,9.158,17009,10.409,17042,11.898,17043,9.906]],["title/interfaces/PseudonymProps.html",[105,0.735,16994,5.958]],["body/interfaces/PseudonymProps.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.13,26,2.916,30,0.001,32,0.177,39,3.492,47,0.888,83,4.187,95,0.138,101,0.018,103,0.001,104,0.001,105,0.925,107,2.058,112,0.864,133,2.999,180,2.143,349,1.341,376,5.654,377,5.892,1600,6.953,1604,4.606,1718,3.612,2442,4.199,2762,6.718,2763,6.718,8858,7.084,9004,7.638,16986,7.929,16994,9.522,16995,7.929,16996,7.929,16997,6.93]],["title/classes/PseudonymResponse.html",[0,0.231,17016,5.705]],["body/classes/PseudonymResponse.html",[0,0.31,2,1.023,3,0.021,4,0.021,5,0.011,7,0.139,27,0.527,29,0.712,30,0.001,31,0.512,32,0.176,33,0.439,34,2.097,39,3.312,47,0.951,95,0.116,101,0.015,103,0.001,104,0.001,112,0.9,138,2.239,150,2.083,191,4.947,245,3.583,379,1.143,404,3.73,823,3.207,5999,9.155,6009,6.968,8858,6.718,9013,6.648,17016,11.082,17044,9.141,17045,11.329,17046,9.141,17047,9.141,17048,8.451,17049,9.141]],["title/classes/PseudonymScope.html",[0,0.231,9046,5.958]],["body/classes/PseudonymScope.html",[0,0.242,2,0.797,3,0.017,4,0.017,5,0.008,7,0.108,8,1.155,27,0.537,29,0.952,30,0.001,31,0.685,32,0.179,33,0.587,35,1.157,39,2.937,47,0.937,49,2.808,95,0.138,101,0.012,103,0.001,104,0.001,112,0.765,119,2.222,180,1.726,227,2.931,236,1.567,310,3.085,349,1.128,382,3.688,480,1.977,486,2.142,519,2.205,524,4.06,556,3.346,564,2.186,603,2.531,725,5.295,2291,6.481,2489,2.36,5505,5.397,6059,6.507,6060,6.507,6061,6.507,6066,6.507,6067,6.507,6068,4.889,6069,4.809,6070,4.889,6071,4.889,6080,4.809,6081,6.507,6082,4.889,6083,4.809,6084,4.889,6085,4.809,6086,7.375,8858,5.958,9001,5.073,9004,6.287,9046,8.428,9049,6.228,17050,7.119,17051,9.633,17052,8.907,17053,9.633,17054,9.633,17055,7.119,17056,8.907,17057,7.119,17058,9.633,17059,7.119,17060,7.119]],["title/interfaces/PseudonymSearchQuery.html",[105,0.735,9037,5.705]],["body/interfaces/PseudonymSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.174,33,0.659,39,3.559,47,0.996,101,0.016,103,0.001,104,0.001,105,1.069,107,2.377,112,0.945,812,7.058,8858,7.219,9004,7.617,9037,9.967,9356,8.666,17061,9.906]],["title/injectables/PseudonymService.html",[539,0.901,9733,4.677]],["body/injectables/PseudonymService.html",[0,0.137,3,0.009,4,0.009,5,0.005,7,0.061,8,0.762,11,5.328,13,4.626,27,0.506,29,0.961,30,0.001,31,0.692,32,0.169,33,0.592,34,1.651,35,1.462,36,2.862,37,5.328,39,3.086,42,4.626,47,0.953,49,1.595,83,1.953,95,0.141,96,1.111,97,1.752,99,0.674,101,0.007,103,0,104,0,177,1.164,226,0.578,236,1.814,239,1.459,262,2.996,310,1.752,349,1.275,376,1.761,377,1.835,379,0.795,437,1.549,490,3.161,528,4.093,529,2.522,539,0.842,541,0.968,556,1.602,570,2.481,593,2.355,603,2.584,604,1.643,608,2.372,662,3.827,739,3.902,821,3.056,932,3.5,935,5.679,1162,1.931,1718,1.703,1842,1.992,2020,1.77,2021,1.98,2022,1.909,2428,2.188,2489,3.893,2568,5.9,3881,2.264,4129,2.648,4445,8.241,6970,5.408,7142,5.69,7251,8.21,7341,2.511,8620,8.119,8858,2.206,9004,7.009,9010,5.926,9015,9.837,9019,5.564,9022,5.88,9023,5.328,9029,5.564,9036,5.88,9037,7.467,9039,4.848,9733,4.368,9998,2.827,12667,5.88,12835,5.88,15411,5.88,17040,9.019,17062,4.043,17063,6.36,17064,6.36,17065,6.36,17066,6.36,17067,6.36,17068,6.36,17069,6.36,17070,4.043,17071,4.043,17072,6.36,17073,4.043,17074,6.36,17075,4.043,17076,4.043,17077,4.043,17078,4.043,17079,6.36,17080,4.043,17081,6.36,17082,4.043,17083,4.043,17084,4.043,17085,6.36,17086,4.043,17087,6.36,17088,4.043,17089,6.36,17090,4.043,17091,10.291,17092,4.043,17093,8.913,17094,4.043,17095,4.043,17096,6.36,17097,2.881,17098,4.043,17099,4.043,17100,4.043,17101,6.36,17102,6.36,17103,4.043,17104,4.043,17105,4.043,17106,8.913,17107,4.043,17108,4.043,17109,4.043,17110,4.043,17111,4.043,17112,4.043,17113,4.043]],["title/injectables/PseudonymUc.html",[539,0.901,17002,5.705]],["body/injectables/PseudonymUc.html",[0,0.263,3,0.018,4,0.018,5,0.009,7,0.117,8,1.222,26,2.564,27,0.418,29,0.794,30,0.001,31,0.571,32,0.139,33,0.489,35,0.931,36,2.169,39,2.085,47,0.854,95,0.164,99,1.293,101,0.013,103,0.001,104,0.001,177,2.086,226,1.108,236,1.261,239,2.777,262,2.496,349,0.8,379,1.275,437,1.626,529,2.193,539,1.349,541,1.855,560,3.191,593,3.776,603,2.288,608,2.79,654,2.305,1615,4.702,1698,6.956,1796,4.702,1900,7.613,1902,7.463,1904,4.34,1905,5.709,2472,3.518,2476,5.418,4482,5.235,4483,5.418,4484,4.6,9004,7.578,9023,8.54,9733,8.867,9805,6.071,9806,6.071,17002,8.54,17114,7.75,17115,7.75,17116,7.75,17117,10.195,17118,7.75,17119,11.393,17120,7.75,17121,7.75,17122,7.75,17123,7.75,17124,10.195,17125,7.75,17126,6.492]],["title/injectables/PseudonymsRepo.html",[539,0.901,17040,5.705]],["body/injectables/PseudonymsRepo.html",[0,0.184,3,0.013,4,0.013,5,0.006,7,0.082,8,0.953,13,5.782,26,2.889,27,0.501,29,0.952,30,0.001,31,0.685,32,0.167,33,0.587,34,1.354,35,1.432,36,2.794,39,3.411,42,5.782,49,2.138,95,0.131,96,1.489,97,2.35,99,0.904,101,0.009,103,0,104,0,154,2.613,155,1.809,177,0.992,226,0.775,236,2.062,262,2.923,345,1.726,349,1.263,376,2.361,377,2.461,379,0.678,437,1.64,448,4.728,539,1.052,541,1.298,556,1.366,593,2.944,608,2.389,725,7.71,1604,4.67,2252,5.969,2276,3.662,2300,4.132,2305,3.79,2319,4.542,2771,4.718,3282,3.79,3287,4.823,3348,4.381,4389,3.454,4403,4.542,4404,4.542,8858,6.918,9004,7.732,9010,5.285,9018,7.349,9019,6.954,9020,7.349,9021,7.349,9024,6.954,9025,7.349,9027,7.349,9029,6.954,9032,7.349,9034,7.349,9041,7.349,9043,7.349,9049,6.954,9050,9.584,9053,4.743,9054,5.012,9056,5.012,9058,4.743,9059,5.012,9060,6.954,9063,5.012,9064,5.012,9065,5.012,9066,5.012,9067,5.012,9068,5.012,17024,10.449,17029,8.684,17040,6.659,17127,5.421,17128,5.421,17129,5.421,17130,5.421,17131,5.421,17132,5.421,17133,5.421,17134,5.421,17135,5.421,17136,5.421,17137,5.421,17138,5.421,17139,5.421,17140,5.421,17141,5.421,17142,5.421]],["title/classes/PublicSystemListResponse.html",[0,0.231,17143,5.705]],["body/classes/PublicSystemListResponse.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.474,29,0.737,30,0.001,31,0.53,32,0.171,33,0.454,95,0.147,101,0.016,103,0.001,104,0.001,112,0.919,138,1.721,150,2.156,245,3.034,284,3.861,379,1.183,556,2.384,662,2.976,813,6.616,818,4.756,823,3.321,833,5.253,3075,5.944,5803,9.066,17143,9.695,17144,11.559,17145,11.573,17146,11.124,17147,10.7]],["title/classes/PublicSystemResponse.html",[0,0.231,17146,5.503]],["body/classes/PublicSystemResponse.html",[0,0.235,2,0.774,3,0.016,4,0.016,5,0.008,7,0.105,27,0.512,29,0.538,30,0.001,31,0.602,32,0.184,33,0.613,34,2.061,47,0.919,95,0.12,101,0.011,103,0.001,104,0.001,112,0.75,138,2.201,141,4.51,142,5.223,143,2.973,144,4.399,145,3.707,150,1.575,153,2.75,245,3.275,379,0.864,404,2.82,820,5.552,1912,5.332,2507,3.087,2526,5.585,3075,6.339,5501,6.591,5768,5.48,5788,4.403,9719,6.728,10378,5.335,10775,7.022,11442,6.945,11841,5.14,12342,8.045,12434,5.268,12436,5.268,13792,4.925,15785,10.136,17144,11.82,17146,9.777,17148,4.925,17149,8.729,17150,9.441,17151,6.911,17152,6.911,17153,6.911,17154,6.911,17155,6.39,17156,5.79,17157,5.585,17158,5.79]],["title/modules/RabbitMQWrapperModule.html",[201,1.804,10660,4.853]],["body/modules/RabbitMQWrapperModule.html",[0,0.345,3,0.018,4,0.018,5,0.009,30,0.001,31,0.677,32,0.165,47,0.803,95,0.153,101,0.019,103,0.001,104,0.001,142,3.02,177,1.413,201,3.201,203,3.657,209,3.824,225,4.485,226,1.104,236,1.256,262,1.692,345,2.457,437,0.998,463,4.178,608,1.78,685,3.267,765,5.644,932,4.248,969,5.302,1007,5.397,1121,4.795,1147,8.458,1160,5.397,1161,4.986,1280,2.413,2020,3.379,2021,3.78,2022,3.644,2023,4.919,2336,4.535,2358,4.738,2366,4.919,2372,5.302,3551,5.742,4546,5.615,4694,5.302,5106,6.661,5949,4.489,6221,5.133,6507,8.781,6829,5.615,10586,7.564,10660,7.246,10661,5.397,10684,6.754,13058,6.238,13393,10.574,15007,9.948,16708,8.519,17159,7.138,17160,10.514,17161,11.612,17162,7.138,17163,7.138,17164,6.754,17165,7.138,17166,7.138,17167,6.467,17168,7.138,17169,7.138,17170,7.138,17171,7.138,17172,7.138,17173,6.754,17174,7.138,17175,6.467,17176,7.138,17177,6.754,17178,6.754,17179,7.138,17180,7.138,17181,7.138]],["title/modules/RabbitMQWrapperTestModule.html",[201,1.804,10661,4.761]],["body/modules/RabbitMQWrapperTestModule.html",[0,0.342,3,0.018,4,0.018,5,0.009,8,0.911,27,0.311,30,0.001,31,0.673,32,0.164,35,0.913,47,0.797,95,0.152,101,0.019,103,0.001,104,0.001,142,2.974,177,1.392,201,3.182,203,3.621,209,3.785,225,4.451,226,1.087,236,1.237,262,2.206,345,2.42,437,0.983,463,4.115,608,1.753,685,3.217,765,5.588,932,4.184,969,5.222,1007,5.316,1121,4.723,1147,8.395,1160,5.316,1161,4.91,1280,2.377,2020,3.328,2021,3.723,2022,3.589,2023,4.844,2336,4.466,2358,4.666,2366,4.844,2372,5.222,3551,5.655,4546,5.53,4694,5.222,5106,6.595,5949,4.421,6221,5.055,6507,8.737,6829,5.53,10586,7.488,10660,5.418,10661,7.038,10684,6.652,13058,6.144,13393,10.51,15007,10.933,16708,8.434,17159,7.03,17160,10.435,17161,11.554,17162,7.03,17163,7.03,17164,6.652,17165,7.03,17166,7.03,17167,6.369,17168,7.03,17169,7.03,17170,7.03,17171,7.03,17172,7.03,17173,6.652,17174,7.03,17175,6.369,17176,7.03,17177,6.652,17178,6.652,17179,7.03,17180,7.03,17181,7.03,17182,7.603]],["title/classes/ReadableStreamWithFileTypeImp.html",[0,0.231,17183,6.296]],["body/classes/ReadableStreamWithFileTypeImp.html",[0,0.287,2,0.946,3,0.02,4,0.02,5,0.015,7,0.128,27,0.442,29,0.658,30,0.001,31,0.473,32,0.171,33,0.57,95,0.151,101,0.014,103,0.001,104,0.001,112,0.856,180,1.932,181,2.886,182,2.749,349,0.873,379,1.057,381,2.838,437,1.395,447,4.65,521,3.346,526,5.015,996,4.036,997,3.989,998,3.989,999,4.219,1000,4.611,1151,8.447,1153,8.194,1280,3.37,1935,5.907,8869,7.812,8912,7.812,10111,6.619,13066,7.812,17183,9.969,17184,11.875,17185,8.45,17186,11.875,17187,12.923,17188,12.509,17189,10.782,17190,12.509,17191,8.45,17192,8.45,17193,8.45,17194,8.45,17195,8.45]],["title/classes/RecursiveCopyVisitor.html",[0,0.231,3266,5.958]],["body/classes/RecursiveCopyVisitor.html",[0,0.114,2,0.374,3,0.008,4,0.008,5,0.007,7,0.051,8,0.655,26,0.708,27,0.502,29,0.93,30,0.001,31,0.669,32,0.178,33,0.573,34,1.772,35,1.414,36,2.702,49,1.319,83,3.761,95,0.12,99,0.558,101,0.006,103,0,104,0,112,0.434,131,1.253,177,0.612,236,2.216,262,2.927,345,1.064,347,4.055,349,1.112,376,4.531,377,4.722,379,0.418,437,1.566,480,1.516,486,1.643,521,1.324,524,1.907,529,0.946,556,1.376,608,2.179,654,0.995,739,3.03,848,4.848,993,1.856,1154,1.33,1198,1.15,1207,2.813,1280,1.707,1394,2.62,1866,5.229,2281,2.006,2421,8.099,2453,5.673,2466,4.695,2469,2.383,2588,4.436,2594,6.262,2633,4.621,2735,7.145,2742,3.987,2795,4.978,2802,5.77,2805,5.407,2808,5.77,2811,5.345,2814,5.54,2821,2.432,2823,1.617,2836,4.576,2837,4.576,2838,4.576,2839,4.576,2840,4.576,2841,4.576,2842,4.576,2843,4.576,2844,4.576,2966,3.527,2982,2.62,2983,2.487,2984,2.029,2985,1.873,2998,8.15,3006,2.801,3022,2.383,3086,9.436,3216,2.131,3219,1.985,3221,1.985,3224,1.964,3227,1.728,3230,1.716,3235,1.873,3266,4.778,3269,6.262,3270,2.801,3271,8.241,3272,4.778,4129,6.814,5711,2.801,6256,1.825,6285,1.648,6389,4.778,6399,3.092,6400,8.432,6401,2.702,6402,2.926,6435,2.801,8439,2.223,17196,12.379,17197,3.344,17198,6.923,17199,6.923,17200,5.462,17201,5.462,17202,5.462,17203,3.344,17204,5.462,17205,3.344,17206,5.462,17207,3.344,17208,5.462,17209,3.344,17210,5.462,17211,3.344,17212,5.462,17213,3.344,17214,5.462,17215,3.344,17216,5.462,17217,3.344,17218,5.462,17219,3.344,17220,5.462,17221,3.344,17222,5.462,17223,3.344,17224,5.462,17225,3.344,17226,5.462,17227,3.344,17228,5.462,17229,3.344,17230,5.462,17231,3.344,17232,3.344,17233,3.344,17234,3.344,17235,7.993,17236,7.993,17237,3.344,17238,6.923,17239,10.764,17240,3.344,17241,7.993,17242,10.403,17243,3.344,17244,3.344,17245,3.344,17246,3.344,17247,3.344,17248,3.344,17249,3.344,17250,3.092,17251,3.344,17252,3.092,17253,3.344,17254,3.344,17255,3.344,17256,3.344,17257,3.344,17258,3.344,17259,3.344,17260,3.344,17261,3.344,17262,3.344,17263,3.344,17264,3.344,17265,3.344,17266,3.344,17267,3.344,17268,3.344,17269,3.344,17270,3.344,17271,3.092,17272,5.462,17273,5.462,17274,5.462,17275,3.344,17276,3.344,17277,5.05,17278,5.462,17279,3.344,17280,3.344]],["title/injectables/RecursiveDeleteVisitor.html",[539,0.901,3285,5.705]],["body/injectables/RecursiveDeleteVisitor.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.078,8,0.914,27,0.526,29,1.001,30,0.001,31,0.72,32,0.176,33,0.617,35,1.525,36,2.893,95,0.148,96,1.408,97,2.221,99,0.855,101,0.008,103,0,104,0,177,1.667,226,0.733,262,3.069,379,0.954,437,0.663,519,2.362,539,1.009,541,1.227,564,2.341,603,1.829,608,2.994,1167,3.223,1280,1.602,1604,3.227,1840,3.913,1842,2.525,1866,6.4,2252,5.808,2300,3.906,2453,5.558,2466,5.925,2633,5.656,2742,4.391,2747,3.223,2795,6.093,2802,7.063,2805,6.618,2808,7.063,2811,6.542,2814,6.781,2821,3.727,2824,2.254,2827,6.388,2828,6.388,2829,6.388,2830,6.388,2831,6.388,2832,6.388,2833,6.388,2835,6.388,2836,6.388,2837,6.388,2838,6.388,2839,6.388,2840,6.388,2841,6.388,2842,6.388,2843,6.388,2844,6.388,3112,2.688,3282,3.583,3285,6.388,3287,4.626,3541,2.525,3542,2.091,3543,4.924,5708,7.05,5711,4.293,5755,6.671,5884,7.56,6141,3.145,6153,4.014,6366,8.341,17271,4.738,17281,12.009,17282,5.124,17283,7.625,17284,7.625,17285,5.124,17286,7.625,17287,5.124,17288,5.124,17289,7.625,17290,5.124,17291,5.124,17292,5.124,17293,5.124,17294,5.124,17295,5.124,17296,5.124,17297,5.124,17298,5.124,17299,5.124,17300,5.124,17301,5.124,17302,5.124,17303,5.124,17304,5.124,17305,5.124,17306,5.124,17307,5.124,17308,5.124,17309,5.124,17310,5.124,17311,5.124,17312,5.124,17313,5.124,17314,5.124,17315,5.124,17316,5.124,17317,5.124,17318,5.124,17319,5.124,17320,5.124,17321,5.124]],["title/classes/RecursiveSaveVisitor.html",[0,0.231,3313,5.958]],["body/classes/RecursiveSaveVisitor.html",[0,0.12,2,0.396,3,0.008,4,0.008,5,0.004,7,0.054,8,0.686,18,2.896,26,0.75,27,0.508,29,0.956,30,0.001,31,0.687,32,0.171,33,0.589,34,1.871,35,1.456,36,1.218,39,0.953,55,0.762,59,1.1,95,0.13,96,1.572,97,1.535,99,0.591,101,0.006,103,0,104,0,112,0.454,131,1.327,173,1.047,177,1.047,236,1.912,262,1.578,345,1.127,379,0.443,437,1.681,480,0.983,486,1.065,519,4.07,529,1.002,556,1.441,564,1.087,603,2.434,608,0.816,708,1.471,1198,1.217,1207,2.64,1280,1.789,1604,1.498,1666,1.498,1668,2.32,1840,1.817,1866,5.762,1883,1.465,1885,1.478,2252,4.761,2264,2.32,2366,2.256,2453,6.268,2466,5.702,2484,3.098,2588,4.589,2633,5.092,2738,4.229,2745,6.405,2747,6.425,2771,3.396,2776,3.098,2780,3.098,2785,5.29,2786,5.29,2787,5.29,2788,5.29,2789,5.29,2790,5.29,2791,5.29,2792,5.29,2793,5.29,2794,5.006,2795,5.485,2797,5.006,2799,5.006,2801,5.006,2802,5.945,2804,5.006,2805,5.958,2807,5.006,2808,5.945,2810,5.006,2811,5.89,2813,5.006,2814,6.105,2816,5.006,2821,2.576,2823,1.712,3112,7.08,3136,4.483,3139,4.624,3142,4.362,3145,5.641,3148,4.483,3151,4.483,3154,4.483,3157,4.483,3160,4.483,3162,3.274,3204,3.274,3216,2.256,3219,2.102,3221,2.102,3224,2.08,3227,1.83,3230,1.817,3232,2.149,3282,2.476,3283,8.255,3287,3.472,3306,5.006,3307,6.195,3309,2.862,3311,3.274,3313,5.006,3543,2.287,3595,3.274,4091,3.098,4092,3.098,4093,2.967,4128,3.274,4994,3.274,4995,3.098,5106,2.32,5711,2.967,5720,3.274,5723,3.274,5726,3.274,5728,3.274,5741,3.274,5743,3.274,5746,3.274,5749,3.274,5755,5.006,5757,3.274,5839,2.576,5853,2.287,9058,3.098,17281,11.585,17322,3.541,17323,7.2,17324,5.722,17325,5.722,17326,5.722,17327,5.722,17328,5.722,17329,5.722,17330,3.541,17331,5.722,17332,11.278,17333,3.541,17334,3.541,17335,5.722,17336,3.541,17337,3.541,17338,5.722,17339,3.541,17340,3.541,17341,3.541,17342,3.541,17343,3.541,17344,3.541,17345,3.541,17346,3.541,17347,3.541,17348,3.541,17349,11.533,17350,3.541,17351,3.541,17352,5.722,17353,5.722,17354,5.722,17355,3.541,17356,3.541,17357,3.541,17358,10.982,17359,10.982,17360,3.541,17361,10.216,17362,3.541,17363,3.541,17364,3.541,17365,3.541,17366,3.541,17367,3.541,17368,7.2,17369,3.541,17370,3.541,17371,3.541,17372,3.541,17373,3.541,17374,3.541,17375,3.274,17376,3.274,17377,3.541,17378,3.541,17379,3.541,17380,3.541,17381,3.541,17382,3.541,17383,3.541,17384,3.541,17385,3.541,17386,3.541]],["title/classes/RedirectResponse.html",[0,0.231,15956,5.335]],["body/classes/RedirectResponse.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,27,0.471,29,0.73,30,0.001,31,0.525,32,0.157,33,0.45,47,0.812,95,0.119,101,0.015,103,0.001,104,0.001,112,0.914,135,6.911,138,1.705,150,2.136,153,2.131,239,2.64,245,3.017,379,1.172,820,4.302,1198,3.956,1734,7.331,2060,7.431,3232,6.981,6901,7.147,15956,10.439,16914,11.511,17387,9.375,17388,11.507,17389,9.375,17390,9.375,17391,11.507,17392,9.64,17393,9.375,17394,9.375,17395,9.375]],["title/modules/RedisModule.html",[201,1.804,17396,5.503]],["body/modules/RedisModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,30,0.001,47,0.767,95,0.164,101,0.014,103,0.001,104,0.001,201,3.164,203,3.078,204,3.307,205,3.403,206,3.389,207,3.375,208,3.981,209,4.087,214,6.152,218,4.323,219,3.334,220,3.255,225,4.287,226,1.223,349,1.123,437,1.406,556,2.156,636,4.976,637,6.098,639,4.016,990,2.893,1198,2.942,1278,2.707,2020,3.746,2021,4.19,2022,4.04,2253,3.507,2254,5.393,3542,4.436,3881,4.792,3884,7.912,3895,6.704,3896,9.106,3900,10.049,3901,7.912,3903,7.486,3904,7.912,3905,7.486,3906,7.486,3907,7.912,8009,9.509,17396,10.713,17397,8.557,17398,8.557,17399,8.557,17400,10.45,17401,8.557,17402,8.557]],["title/injectables/ReferenceLoader.html",[539,0.901,1746,5.503]],["body/injectables/ReferenceLoader.html",[0,0.188,3,0.013,4,0.013,5,0.007,7,0.084,8,0.969,26,2.22,27,0.429,29,0.743,30,0.001,31,0.534,32,0.164,33,0.458,35,0.971,36,1.72,49,3.762,95,0.152,99,0.926,101,0.009,103,0,104,0,105,0.599,112,0.642,119,1.129,133,3.896,143,1.8,177,2.364,217,7.203,226,0.793,227,2.284,236,1.552,262,2.09,349,0.835,379,1.011,437,1.046,480,1.54,486,1.669,529,1.57,539,1.07,541,1.328,564,1.704,603,2.722,608,1.864,1366,7.789,1600,4.701,1686,4.701,1687,3.446,1743,9.639,1744,7.465,1745,8.059,1746,6.533,1747,9.151,1748,9.379,1749,8.602,1750,8.45,1771,4.036,1787,8.555,2428,7.247,2459,7.652,2588,5.817,3196,3.535,3543,3.583,4690,5.376,5391,7.991,5794,9.942,6141,3.405,12135,9.169,12136,5.13,12137,7.475,12138,7.708,12139,8.819,12140,5.13,12141,5.13,12142,5.13,12143,5.13,12144,5.13,12145,5.13,12146,5.13,12147,5.13,12148,5.13,12149,5.13,12150,5.13,12151,5.13,12152,5.13,12153,5.13,12154,5.13,12155,5.13,12156,5.13,12157,5.13,12158,5.13,12159,5.13,12160,5.13,12161,5.13,12162,7.475,12163,5.13,12164,5.13,12165,8.819,12166,7.475,12167,5.13,12168,5.13,12169,5.13,12170,7.475,17403,8.085,17404,4.854,17405,8.085,17406,5.548,17407,5.548,17408,5.548]],["title/interfaces/RejectRequestBody.html",[105,0.735,15941,5.503]],["body/interfaces/RejectRequestBody.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.182,33,0.675,47,1.002,55,2.682,101,0.015,103,0.001,104,0.001,105,1.014,107,2.255,108,6.57,111,7.593,112,0.915,990,4.393,1723,10.179,5492,10.885,5493,10.885,5494,10.179,15941,9.312,17409,9.397]],["title/classes/RenameBodyParams.html",[0,0.231,2898,5.503]],["body/classes/RenameBodyParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,47,0.835,95,0.161,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,3.837,143,2.634,144,3.897,145,2.723,148,3.113,150,2.235,245,3.101,247,4.294,248,4.936,1207,4.055,2898,9.558,7119,9.016,17410,9.809,17411,9.809,17412,9.809,17413,9.809]],["title/classes/RenameFileParams.html",[0,0.231,6309,4.677]],["body/classes/RenameFileParams.html",[0,0.457,2,0.735,3,0.015,4,0.021,5,0.011,7,0.099,26,2.604,27,0.269,30,0.001,32,0.162,39,1.765,47,0.958,95,0.16,99,1.095,101,0.022,103,0.001,104,0.001,105,0.708,112,0.723,119,1.854,138,1.193,143,1.461,147,4.891,148,2.082,149,4.301,150,1.495,151,6.057,153,1.492,154,1.402,245,3.648,247,2.872,248,5.13,249,4.573,348,3.276,807,5.016,808,6.783,838,3.281,851,3.134,988,2.83,990,2.218,1079,3.854,1139,5.804,1140,4.298,1141,4.298,1198,2.256,1280,2.051,2680,4.724,2863,5.157,3573,3.213,4209,2.226,5905,6.651,6237,4.227,6250,5.967,6256,6.169,6285,3.233,6288,4.507,6289,4.588,6290,4.588,6293,7.897,6296,4.588,6297,8.173,6298,7.904,6299,7.904,6300,4.588,6301,4.507,6302,8.023,6303,4.507,6304,4.588,6305,4.432,6306,6.153,6307,4.363,6308,4.432,6309,6.257,6310,4.432,6311,4.432,6312,4.181,6313,4.588,6314,4.588,6315,4.588,6316,4.181,6317,4.181,6318,4.298,6319,4.363,6320,4.588,17414,6.562,17415,6.562]],["title/classes/RequestInfo.html",[0,0.231,17416,5.958]],["body/classes/RequestInfo.html",[0,0.313,2,0.747,3,0.016,4,0.016,5,0.008,7,0.101,8,1.105,27,0.506,29,0.717,30,0.001,31,0.591,32,0.169,33,0.442,35,0.801,47,0.911,55,1.983,95,0.134,101,0.017,103,0.001,104,0.001,112,0.732,120,2.935,133,2.333,141,5.902,236,1.717,349,0.952,360,5.16,379,0.834,437,1.638,480,1.852,486,2.007,556,1.68,591,6.752,593,2.47,603,2.12,823,4.335,991,4.506,1011,5.226,1154,2.653,1224,3.735,1507,4.25,1575,4.852,1582,6.621,2136,5.965,2508,6.566,3542,3.76,3931,5.085,5494,7.219,5511,4.961,5521,5.085,6682,7.13,6684,4.002,10338,6.853,16865,5.836,17416,8.061,17417,6.167,17418,9.76,17419,9.76,17420,9.214,17421,8.519,17422,6.671,17423,6.671,17424,6.671,17425,6.671,17426,6.671,17427,8.519,17428,6.671,17429,11.047,17430,5.836,17431,6.167,17432,8.519,17433,5.588,17434,5.836,17435,8.519,17436,8.519,17437,6.167,17438,8.519,17439,6.167,17440,5.836,17441,6.167,17442,6.167,17443,8.519,17444,8.519,17445,8.519,17446,8.519,17447,6.167,17448,6.167,17449,6.167,17450,6.167,17451,6.167,17452,6.167,17453,6.167,17454,6.167,17455,6.167,17456,6.167,17457,6.167,17458,6.167,17459,6.167,17460,6.167,17461,6.167,17462,6.167,17463,6.167,17464,6.167]],["title/injectables/RequestLoggingInterceptor.html",[539,0.901,17465,6.296]],["body/injectables/RequestLoggingInterceptor.html",[0,0.268,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.423,29,0.804,30,0.001,31,0.578,32,0.141,33,0.495,35,0.949,39,2.126,95,0.165,101,0.013,103,0.001,104,0.001,131,2.96,141,5.494,226,1.13,270,5.056,271,3.091,294,3.972,310,3.425,345,2.515,349,1.067,379,0.988,437,1.488,521,4.555,539,1.367,541,1.892,556,1.99,591,4.465,965,5.176,966,6.19,967,6.023,990,2.672,1154,3.143,1179,6.865,1198,2.717,1278,2.5,1280,2.47,2185,8.767,2253,4.232,2254,5.506,2943,5.337,3720,4.642,6505,5.877,6684,4.741,8224,7.306,8226,9.033,8228,9.033,8229,10.67,8230,10.67,8232,9.033,8233,9.547,10338,5.877,12100,9.033,17434,6.913,17465,9.547,17466,11.502,17467,7.902,17468,7.902,17469,9.547,17470,7.902,17471,7.902,17472,7.902,17473,7.902,17474,7.902,17475,7.902,17476,7.902,17477,7.306,17478,10.326,17479,7.306,17480,7.902]],["title/classes/ResolvedGroupDto.html",[0,0.231,11052,5.503]],["body/classes/ResolvedGroupDto.html",[0,0.28,2,0.923,3,0.019,4,0.019,5,0.01,7,0.125,27,0.547,29,0.642,30,0.001,31,0.694,32,0.188,33,0.615,34,1.999,47,0.927,95,0.149,99,1.375,101,0.014,103,0.001,104,0.001,112,0.843,239,1.891,379,1.031,404,3.363,974,5.131,1058,6.283,1718,3.471,1985,3.278,2507,3.682,2971,6.904,3063,5.112,8501,7.62,8507,8.946,8514,6.457,8538,8.867,10999,8.946,11052,10.363,11138,6.904,11184,9.284,11196,7.21,11197,7.21,11198,7.62,11199,7.21,11200,7.62,11201,7.62,11291,9.832,17481,12.508,17482,10.612,17483,8.242,17484,8.242,17485,8.242,17486,8.242,17487,8.242]],["title/classes/ResolvedGroupUser.html",[0,0.231,11291,5.705]],["body/classes/ResolvedGroupUser.html",[0,0.318,2,1.05,3,0.022,4,0.022,5,0.011,7,0.142,27,0.51,29,0.73,30,0.001,31,0.525,32,0.17,33,0.45,95,0.146,99,1.564,101,0.015,103,0.001,104,0.001,112,0.914,181,3.08,239,2.857,276,5.293,379,1.172,381,3.149,974,6.278,2071,6.819,4573,8.872,4584,7.146,7142,6.581,7645,6.554,11291,11.163,11317,8.667,11327,6.819,11328,7.146,17481,12.004,17488,11.507,17489,9.375]],["title/classes/ResolvedUserMapper.html",[0,0.231,17490,5.958]],["body/classes/ResolvedUserMapper.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.351,29,0.668,30,0.001,31,0.61,32,0.117,33,0.411,34,1.461,35,1.03,47,0.844,95,0.138,99,1.43,100,3.656,101,0.014,103,0.001,104,0.001,236,1.395,239,2.978,276,5.347,349,1.124,413,3.682,437,1.109,480,2.381,486,2.58,528,4.465,782,6.041,789,4.281,1663,6.322,3081,5.97,3115,5.702,3116,5.538,4604,6.111,6478,7.184,7132,7.502,7151,6.93,12893,7.929,12896,7.929,15384,7.929,16460,7.929,17490,9.522,17491,10.884,17492,9.522,17493,8.576,17494,10.536,17495,8.576,17496,8.576,17497,8.576,17498,8.576,17499,8.576,17500,8.576,17501,8.576]],["title/classes/ResolvedUserResponse.html",[0,0.231,17494,5.705]],["body/classes/ResolvedUserResponse.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,27,0.552,30,0.001,31,0.451,32,0.186,34,2.093,47,0.982,83,3.773,95,0.102,101,0.017,103,0.001,104,0.001,112,0.831,138,2.449,150,1.836,245,3.72,276,4.937,376,5.058,377,5.271,651,5.547,652,5.547,1663,5.837,3081,5.798,4209,3.939,11330,6.513,17494,8.762,17502,13.612,17503,8.06,17504,8.06,17505,8.06,17506,8.06,17507,8.06,17508,8.06,17509,8.06,17510,8.06]],["title/classes/ResponseInfo.html",[0,0.231,17440,5.958]],["body/classes/ResponseInfo.html",[0,0.329,2,0.804,3,0.017,4,0.017,5,0.009,7,0.109,27,0.397,29,0.559,30,0.001,31,0.543,32,0.132,33,0.345,47,0.829,55,2.36,95,0.139,101,0.018,103,0.001,104,0.001,112,0.77,133,2.512,141,5.609,236,1.784,349,1.001,360,5.427,379,0.898,437,1.67,556,1.809,591,6.198,593,2.66,603,1.443,823,4.608,991,7.409,1011,5.627,1154,2.857,1224,4.022,1507,4.576,1575,5.224,1582,6.828,2136,4.059,2508,6.906,3542,3.955,3931,5.475,5494,7.592,5511,5.342,5521,5.475,6682,7.931,6684,4.309,10338,5.342,16865,6.284,17416,6.284,17417,6.641,17418,6.641,17419,6.641,17421,6.641,17427,6.641,17429,10.856,17430,6.284,17431,6.641,17432,8.96,17433,6.017,17434,6.284,17435,8.96,17436,8.96,17437,6.641,17438,8.96,17439,6.641,17440,8.479,17441,8.96,17442,6.641,17443,8.96,17444,8.96,17445,8.96,17446,8.96,17447,6.641,17448,6.641,17449,6.641,17450,6.641,17451,6.641,17452,6.641,17453,6.641,17454,6.641,17455,6.641,17456,6.641,17457,6.641,17458,6.641,17459,6.641,17460,6.641,17461,6.641,17462,6.641,17463,6.641,17464,6.641,17511,9.691]],["title/injectables/RestartUserLoginMigrationUc.html",[539,0.901,17512,5.705]],["body/injectables/RestartUserLoginMigrationUc.html",[0,0.225,3,0.015,4,0.015,5,0.008,7,0.1,8,1.098,27,0.43,29,0.818,30,0.001,31,0.589,32,0.144,33,0.504,35,1.101,36,2.414,39,2.465,47,0.959,95,0.163,99,1.104,101,0.011,103,0.001,104,0.001,128,5.188,131,3.432,177,2.077,236,1.49,239,2.899,262,2.7,349,0.683,379,1.146,437,1.359,529,2.592,539,1.213,541,1.584,560,2.724,593,2.45,603,2.279,608,2.746,643,2.94,654,3.126,990,2.237,1275,3.036,1278,2.093,1609,4.958,1615,4.014,1698,6.678,1796,4.014,1802,6.528,1900,7.135,1902,6.885,1904,3.705,1905,5.13,2253,5.179,2461,6.814,2472,3.003,2476,4.625,2485,4.921,4209,4.436,4508,5.068,4510,5.346,4513,5.346,4514,8.782,4521,5.917,4523,7.047,4524,4.921,4525,7.177,4526,5.043,4527,5.183,4528,5.542,4530,7.177,4532,5.542,4533,4.921,4540,5.043,4541,5.542,8889,5.183,14124,5.346,17512,7.675,17513,11.345,17514,8.015,17515,6.616,17516,6.616,17517,9.162,17518,6.616,17519,5.542,17520,6.616,17521,6.616,17522,6.117,17523,5.788]],["title/classes/RevokeConsentParams.html",[0,0.231,16001,5.958]],["body/classes/RevokeConsentParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,34,1.997,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,135,6.508,138,1.758,142,4.586,143,2.611,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,248,4.893,257,7.191,3542,5.485,5497,7.68,16001,10.257,17524,11.725,17525,9.668,17526,9.668]],["title/classes/RichText.html",[0,0.231,17527,5.503]],["body/classes/RichText.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.49,29,0.668,30,0.001,31,0.48,32,0.188,33,0.411,47,0.768,95,0.152,101,0.014,103,0.001,104,0.001,112,0.864,138,1.98,150,1.954,153,2.474,245,3.135,348,5.434,379,1.361,773,4.34,820,4.994,838,3.412,1883,5.201,2161,6.82,2196,5.366,2507,3.831,2822,9.355,2823,6.082,3227,6.71,3414,5.263,5710,7.929,12457,7.184,17527,10.49,17528,12.577,17529,8.576,17530,8.576,17531,8.576,17532,8.576,17533,8.576,17534,8.576,17535,8.576]],["title/classes/RichTextContentBody.html",[0,0.231,5715,4.528]],["body/classes/RichTextContentBody.html",[0,0.453,2,0.635,3,0.013,4,0.013,5,0.007,7,0.086,9,2.678,27,0.337,30,0.001,31,0.63,32,0.187,47,0.89,83,1.742,95,0.143,99,0.946,101,0.022,103,0,104,0,112,0.652,138,1.495,143,1.263,148,1.8,149,3.675,150,1.293,153,2.196,172,1.811,180,2.014,245,3.625,248,5.044,249,4.741,284,1.752,305,3.267,480,3.121,806,5.235,807,3.353,838,1.779,851,2.71,1198,1.95,1207,1.811,1582,3.299,1883,4.38,2196,4.547,2442,2.778,2513,4.043,2823,4.671,2824,2.496,2863,2.796,3219,3.368,3221,3.368,3224,3.333,3227,6.057,3230,2.911,3235,3.177,3708,3.524,3729,3.524,3730,6.82,4104,5.598,5622,6.155,5624,6.239,5626,6.155,5628,6.239,5630,6.239,5675,3.716,5712,6.423,5713,6.423,5714,6.423,5715,7.042,5716,6.423,5904,3.568,5905,6.769,7047,3.772,7107,3.615,8239,8.165,8240,6.635,8241,3.897,8244,5.382,8245,6.423,8246,6.423,8247,3.897,8248,6.423,8249,3.482,8250,3.832,8251,6.423,8252,6.423,8253,3.772,8254,3.772,8255,3.772,8256,3.772,8257,3.897,8258,3.897,8259,3.897,8260,3.897,8261,3.897,17536,5.674,17537,5.674,17538,5.674]],["title/classes/RichTextElement.html",[0,0.231,2811,4.132]],["body/classes/RichTextElement.html",[0,0.211,2,0.696,3,0.015,4,0.015,5,0.007,7,0.094,8,1.052,27,0.546,29,0.967,30,0.001,31,0.696,32,0.176,33,0.596,35,1.549,36,1.867,47,0.822,55,1.888,59,1.932,95,0.129,101,0.017,103,0,104,0,105,0.671,112,0.697,119,2.069,137,5.517,145,1.726,180,1.822,262,2.227,349,1.14,381,2.946,382,3.826,448,3.596,474,2.656,479,3.286,480,3.066,517,3.363,519,3.743,604,2.526,608,1.433,662,2.758,686,4.141,1154,2.473,1603,2.338,1604,3.712,1607,6.565,1679,4.003,1885,2.594,2442,3.044,2453,5.738,2727,7.823,2730,6.251,2731,6.251,2732,6.251,2733,7.341,2734,6.251,2736,4.134,2737,5.384,2738,6.486,2740,6.133,2741,5.384,2742,6.358,2744,4.347,2745,4.636,2747,6.393,2748,4.347,2752,4.347,2754,4.134,2781,5.322,2811,6.699,2823,6.235,3227,6.755,3966,5.748,3967,4.522,3968,4.522,3969,4.522,3978,3.91,4754,5.439,8716,4.43,17539,10.765,17540,6.217,17541,6.217,17542,5.748,17543,6.217,17544,5.748,17545,6.217,17546,6.217,17547,6.217,17548,6.217,17549,8.11,17550,5.748,17551,8.11,17552,5.748,17553,5.748,17554,5.748,17555,5.439,17556,5.748]],["title/classes/RichTextElementContent.html",[0,0.231,17557,5.705]],["body/classes/RichTextElementContent.html",[0,0.358,2,0.915,3,0.019,4,0.019,5,0.01,7,0.124,27,0.479,29,0.637,30,0.001,31,0.458,32,0.179,33,0.392,34,1.992,47,0.825,95,0.148,99,1.364,101,0.017,103,0.001,104,0.001,112,0.838,138,1.92,150,1.863,245,3.578,253,4.003,379,1.462,404,3.336,773,4.137,838,2.563,2196,4.729,2507,3.652,2823,6.599,2859,4.354,2860,4.354,2863,4.028,3227,6.981,3402,5.715,3414,5.017,3657,6.939,3661,6.138,3665,5.435,3667,5.435,3713,7.522,4104,6.179,5626,5.208,8732,6.606,9934,7.152,9935,7.558,17557,10.974,17558,11.423,17559,6.848,17560,6.848]],["title/classes/RichTextElementContentBody.html",[0,0.231,8248,4.528]],["body/classes/RichTextElementContentBody.html",[0,0.453,2,0.633,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,806,5.219,807,3.343,818,2.84,838,1.771,851,2.699,1198,1.942,1207,1.804,1582,3.285,1883,3.986,2196,4.884,2442,2.766,2823,2.732,2824,2.485,2863,2.784,3219,3.353,3221,3.353,3224,3.319,3227,4.981,3230,2.899,3235,3.164,3708,3.509,3729,3.509,3730,6.808,4104,5.587,5622,6.14,5624,6.224,5626,6.734,5628,6.224,5630,6.224,5675,3.701,5712,6.408,5713,6.408,5714,6.408,5715,7.028,5716,6.408,5904,3.553,5905,6.76,7047,3.756,7107,3.599,8239,8.513,8240,5.626,8241,3.88,8244,5.366,8245,6.408,8246,6.408,8247,3.88,8248,7.028,8249,3.467,8250,3.816,8251,6.408,8252,6.408,8253,3.756,8254,3.756,8255,3.756,8256,3.756,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8261,3.88,8737,4.426,17561,5.65,17562,5.65]],["title/entities/RichTextElementNode.html",[154,1.456,3154,5.335]],["body/entities/RichTextElementNode.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,27,0.441,30,0.001,32,0.147,47,0.837,95,0.164,96,2.316,101,0.018,103,0.001,104,0.001,105,0.91,112,0.855,138,1.959,154,2.301,155,2.814,172,4.123,173,2.494,180,1.93,181,2.257,349,0.871,403,4.68,437,1.091,1603,3.17,1604,4.556,1883,4.906,2442,4.128,2453,5.113,2506,4.765,2507,3.767,2823,6.491,3112,5.648,3123,6.461,3154,8.436,3190,5.175,3213,9.42,3227,7.025,3358,5.695,3561,6.609,3582,5.237,4067,5.372,4069,5.372,8742,7.377,17559,7.064,17560,7.064,17563,10.968,17564,8.432,17565,9.42,17566,7.796,17567,7.796,17568,7.796]],["title/interfaces/RichTextElementNodeProps.html",[105,0.735,17565,5.958]],["body/interfaces/RichTextElementNodeProps.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.149,47,0.889,95,0.165,96,2.366,101,0.018,103,0.001,104,0.001,105,0.929,107,2.067,112,0.867,154,2.333,172,3.825,173,2.547,180,2.147,181,2.305,349,0.89,403,4.78,437,1.114,1603,3.238,1604,4.618,1883,3.562,2442,4.217,2453,5.182,2506,4.867,2507,3.847,2823,6.421,3112,5.725,3123,6.548,3154,6.747,3190,5.286,3213,9.548,3227,7.175,3358,5.817,3561,7.353,3582,5.349,4067,5.487,4069,5.487,17559,7.215,17560,7.215,17563,7.962,17565,10.482,17566,7.962,17567,7.962,17568,7.962]],["title/interfaces/RichTextElementProps.html",[105,0.735,17555,5.958]],["body/interfaces/RichTextElementProps.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.161,36,1.779,47,0.909,95,0.15,101,0.019,103,0.001,104,0.001,105,0.902,107,2.006,112,0.85,119,1.702,145,2.322,180,2.118,262,1.832,349,1.287,474,3.572,480,2.974,517,4.106,519,2.59,604,3.397,608,1.927,1154,3.326,1603,3.144,1679,4.888,1885,3.489,2442,4.094,2727,6.498,2733,5.56,2737,5.132,2738,6.291,2741,5.132,2742,6.167,2781,7.169,2811,7.169,2823,6.372,3227,7.188,3978,5.259,8716,5.958,17539,7.731,17549,9.902,17550,7.731,17551,9.902,17552,7.731,17553,7.731,17554,7.731,17555,9.37,17556,7.731]],["title/classes/RichTextElementResponse.html",[0,0.231,3713,4.853]],["body/classes/RichTextElementResponse.html",[0,0.345,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,27,0.514,29,0.601,30,0.001,31,0.432,32,0.186,33,0.37,34,2.14,47,0.803,95,0.144,99,1.288,101,0.017,103,0.001,104,0.001,112,0.807,138,2.198,150,1.759,245,3.54,253,3.78,379,1.422,404,3.15,773,3.907,838,2.42,2196,5.081,2507,3.449,2823,6.528,2858,5.057,2859,5.416,2860,5.416,2862,4.738,2863,5.011,3227,6.492,3402,5.397,3414,4.738,3657,7.455,3661,6.613,3665,5.133,3667,5.133,3713,8.95,4104,6.638,5626,6.479,9947,6.754,9948,6.754,9949,6.754,9950,6.754,9951,6.754,17557,10.125,17558,11.924,17559,6.467,17560,6.467]],["title/classes/RichTextElementResponseMapper.html",[0,0.231,5651,5.958]],["body/classes/RichTextElementResponseMapper.html",[0,0.257,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.491,29,0.782,30,0.001,31,0.563,32,0.164,33,0.482,34,1.29,35,1.353,95,0.152,99,1.264,100,2.544,101,0.012,103,0.001,104,0.001,112,0.797,119,2.044,236,1.951,349,1.164,376,3.299,413,3.95,437,0.98,603,2.263,604,3.078,662,2.382,739,4.396,781,4.496,782,5.574,1280,3.139,1883,5.496,1941,4.32,2196,3.064,2444,8.379,2447,7.867,2448,7.867,2450,7.655,2811,8.063,2823,6.328,3227,3.915,3657,4.496,3661,5.84,3670,6.627,3678,5.397,3713,8.548,4104,4.003,4908,7.003,5231,7.085,5626,4.826,5647,5.934,5651,11.449,8754,9.144,8758,6.121,8759,6.121,8760,6.121,17557,8.413,17569,12.482,17570,7.575,17571,7.575,17572,7.575,17573,7.575,17574,7.003,17575,11.265,17576,7.575]],["title/classes/RocketChatError.html",[0,0.231,989,5.503]],["body/classes/RocketChatError.html",[0,0.191,2,0.388,3,0.008,4,0.008,5,0.004,7,0.052,27,0.334,29,0.27,30,0.001,31,0.502,32,0.138,33,0.166,34,1.528,36,2.771,39,3.414,47,0.992,51,3.97,55,1.756,72,2.55,83,1.725,87,3.564,95,0.103,101,0.013,103,0,104,0,105,0.765,112,0.446,119,1.955,124,4.509,133,1.211,143,0.771,177,1.028,180,1.007,226,0.495,236,1.459,239,1.627,262,2.854,316,3.806,324,4.129,347,2.058,349,1.359,379,0.703,437,1.364,479,1.297,490,1.228,509,1.889,517,2.718,519,1.072,521,4.434,529,2.538,539,0.744,603,2.549,608,2.214,639,1.625,653,1.789,662,3.922,676,4.003,761,4.644,823,3.371,842,2.42,959,8.178,960,7.249,961,2.9,962,4.957,963,1.994,964,6.219,965,2.268,966,2.712,967,2.639,968,4.401,969,3.859,970,4.401,971,4.401,972,4.401,973,4.54,974,1.674,975,3.092,976,2.9,977,2.9,978,2.9,979,2.9,980,2.9,981,2.9,982,2.518,983,2.9,984,2.9,985,2.9,986,2.236,987,8.048,988,1.493,989,4.54,990,2.397,991,4.789,992,2.42,993,1.922,994,5.052,995,4.707,996,5.349,997,5.285,998,5.285,999,5.59,1000,6.251,1001,7.868,1002,6.489,1003,5.94,1004,2.639,1005,2.9,1006,2.9,1007,2.42,1008,2.9,1009,2.9,1010,2.9,1011,2.712,1012,2.9,1013,5.554,1014,2.798,1015,2.9,1016,2.9,1017,2.9,1018,2.798,1019,2.9,1020,2.9,1021,2.9,1022,8.478,1023,2.9,1024,2.9,1025,1.354,1026,2.9,1027,2.9,1028,2.9,1029,2.9,1030,2.9,1031,2.9,1032,2.9,1033,2.9,1034,8.048,1035,8.048,1036,2.9,1037,2.9,1038,2.9,1039,2.9,1040,2.9,1041,2.9,1042,2.378,1043,2.9,1044,2.9,1045,2.9,1046,2.9,1047,2.9,1048,2.9,1049,2.9,1050,2.9,1051,2.9,1052,2.9,1053,2.9,1054,2.9,1055,2.9,1056,2.9,1057,4.283,1058,4.283,1059,2.9,1060,2.9,1061,2.9,1062,2.9,1063,2.9,1064,2.338,1065,2.9,1066,2.9,1067,2.9,1068,4.707,1069,2.9,1070,4.707,1071,4.707,1072,2.9,1073,2.9,1074,2.639,1075,5.94,1076,4.714,1077,4.352,1078,2.9,1079,3.3,1080,5.198,1081,4.283,1082,5.554,1083,5.94,1084,5.94,1085,5.94,1086,2.712,1087,2.9,1088,2.9,1089,2.9,1090,7.514,1091,5.94,1092,5.94,1093,5.94,1094,2.9,1095,4.707,1096,4.707,1097,2.9,1098,2.9,1099,2.9,1100,2.9,1101,2.9,1102,4.707,1103,4.401,2259,1.994,17577,5.618,17578,3.462,17579,3.462]],["title/interfaces/RocketChatGroupModel.html",[105,0.735,973,5.503]],["body/interfaces/RocketChatGroupModel.html",[0,0.194,3,0.008,4,0.008,5,0.004,7,0.054,30,0.001,31,0.463,32,0.14,34,1.547,36,2.782,39,3.429,47,0.992,51,4.025,55,1.55,72,2.599,83,1.758,87,3.621,95,0.105,101,0.014,103,0,104,0,105,0.777,107,0.85,112,0.455,119,2.165,120,2.519,124,4.563,133,1.239,143,0.789,177,1.048,180,0.635,226,0.507,236,1.477,239,1.653,262,2.865,316,3.868,324,4.186,347,2.097,349,1.364,379,0.443,437,1.376,479,1.328,490,1.257,509,1.934,517,2.762,519,1.098,521,4.468,529,2.569,539,0.758,603,2.4,608,2.239,639,1.663,653,1.832,662,3.941,676,4.08,761,4.719,823,2.903,842,2.478,959,8.258,960,2.864,961,2.969,962,5.037,963,2.041,964,6.306,965,2.322,966,2.777,967,2.702,968,4.486,969,3.933,970,4.486,971,4.486,972,4.486,973,5.822,974,4,975,3.151,976,2.969,977,2.969,978,2.969,979,2.969,980,2.969,981,2.969,982,2.578,983,2.969,984,2.969,985,2.969,986,5.342,987,7.606,988,1.529,989,2.864,990,1.936,991,2.394,992,2.478,993,1.967,994,2.526,995,2.969,996,5.389,997,5.326,998,5.326,999,5.632,1000,6.295,1001,7.923,1002,6.559,1003,6.035,1004,2.702,1005,2.969,1006,2.969,1007,2.478,1008,2.969,1009,2.969,1010,2.969,1011,2.777,1012,2.969,1013,5.644,1014,2.864,1015,2.969,1016,2.969,1017,2.969,1018,2.864,1019,2.969,1020,2.969,1021,2.969,1022,8.561,1023,2.969,1024,2.969,1025,1.387,1026,2.969,1027,2.969,1028,2.969,1029,2.969,1030,2.969,1031,2.969,1032,2.969,1033,2.969,1034,8.135,1035,8.135,1036,2.969,1037,2.969,1038,2.969,1039,2.969,1040,2.969,1041,2.969,1042,2.434,1043,2.969,1044,2.969,1045,2.969,1046,2.969,1047,2.969,1048,2.969,1049,2.969,1050,2.969,1051,2.969,1052,2.969,1053,2.969,1054,2.969,1055,2.969,1056,2.969,1057,4.365,1058,4.365,1059,2.969,1060,2.969,1061,2.969,1062,2.969,1063,2.969,1064,2.394,1065,2.969,1066,2.969,1067,2.969,1068,4.797,1069,2.969,1070,4.797,1071,4.797,1072,2.969,1073,2.969,1074,2.702,1075,6.035,1076,4.79,1077,4.422,1078,2.969,1079,3.364,1080,5.27,1081,4.365,1082,5.644,1083,6.035,1084,6.035,1085,6.035,1086,2.777,1087,2.969,1088,2.969,1089,2.969,1090,7.606,1091,6.035,1092,6.035,1093,6.035,1094,2.969,1095,4.797,1096,4.797,1097,2.969,1098,2.969,1099,2.969,1100,2.969,1101,2.969,1102,4.797,1103,4.486]],["title/modules/RocketChatModule.html",[201,1.804,17580,5.503]],["body/modules/RocketChatModule.html",[0,0.317,3,0.022,4,0.022,5,0.011,8,1.119,27,0.382,29,0.727,30,0.001,31,0.523,32,0.128,33,0.448,35,1.121,95,0.158,101,0.015,103,0.001,104,0.001,201,3.291,203,3.356,208,3.418,209,3.509,225,3.68,226,1.334,349,0.964,413,3.533,490,4.069,636,5.426,960,9.272,963,5.373,968,10.155,1018,10.04,1106,6.787,1107,7.881,1110,8.261,1116,6.649,3939,7.629,17580,10.04,17581,9.331,17582,9.331,17583,8.163,17584,9.331,17585,9.331]],["title/interfaces/RocketChatOptions.html",[105,0.735,968,5.335]],["body/interfaces/RocketChatOptions.html",[0,0.19,3,0.008,4,0.008,5,0.004,7,0.052,30,0.001,31,0.457,32,0.144,33,0.537,34,1.527,36,2.771,39,3.412,47,1,51,3.966,55,1.524,72,2.547,83,1.723,87,3.559,95,0.103,101,0.013,103,0,104,0,105,0.764,107,0.829,112,0.445,119,1.954,124,4.505,133,1.209,143,0.77,177,1.027,180,0.619,226,0.494,236,1.458,239,1.625,262,2.853,316,3.802,324,4.125,347,2.055,349,1.359,379,0.432,437,1.363,479,1.295,490,1.226,509,1.886,517,2.715,519,1.071,521,4.432,529,2.536,539,0.743,603,2.385,608,2.213,639,1.622,653,1.786,662,3.92,676,6.386,761,4.639,823,2.86,842,2.416,959,8.172,960,2.793,961,2.895,962,4.951,963,1.99,964,6.213,965,2.264,966,2.708,967,2.635,968,5.548,969,6.155,970,7.021,971,7.021,972,7.021,973,4.534,974,1.671,975,3.087,976,2.895,977,2.895,978,2.895,979,2.895,980,2.895,981,2.895,982,2.514,983,2.895,984,2.895,985,2.895,986,2.232,987,7.508,988,1.491,989,2.793,990,1.897,991,2.334,992,2.416,993,1.918,994,2.463,995,2.895,996,5.346,997,5.283,998,5.283,999,5.587,1000,6.248,1001,7.864,1002,6.484,1003,5.933,1004,2.635,1005,2.895,1006,2.895,1007,2.416,1008,2.895,1009,2.895,1010,2.895,1011,2.708,1012,2.895,1013,5.548,1014,2.793,1015,2.895,1016,2.895,1017,2.895,1018,2.793,1019,2.895,1020,2.895,1021,2.895,1022,8.472,1023,2.895,1024,2.895,1025,1.352,1026,2.895,1027,2.895,1028,2.895,1029,2.895,1030,2.895,1031,2.895,1032,2.895,1033,2.895,1034,8.042,1035,8.042,1036,2.895,1037,2.895,1038,2.895,1039,2.895,1040,2.895,1041,2.895,1042,2.374,1043,2.895,1044,2.895,1045,2.895,1046,2.895,1047,2.895,1048,2.895,1049,2.895,1050,2.895,1051,2.895,1052,2.895,1053,2.895,1054,2.895,1055,2.895,1056,2.895,1057,4.277,1058,4.277,1059,2.895,1060,2.895,1061,2.895,1062,2.895,1063,2.895,1064,2.334,1065,2.895,1066,2.895,1067,2.895,1068,4.7,1069,2.895,1070,4.7,1071,4.7,1072,2.895,1073,2.895,1074,2.635,1075,5.933,1076,4.709,1077,4.346,1078,2.895,1079,3.296,1080,5.193,1081,4.277,1082,5.548,1083,5.933,1084,5.933,1085,5.933,1086,2.708,1087,2.895,1088,2.895,1089,2.895,1090,7.508,1091,5.933,1092,5.933,1093,5.933,1094,2.895,1095,4.7,1096,4.7,1097,2.895,1098,2.895,1099,2.895,1100,2.895,1101,2.895,1102,4.7,1103,4.395]],["title/entities/Role.html",[154,1.456,276,2.895]],["body/entities/Role.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,27,0.468,30,0.001,31,0.679,32,0.14,47,0.721,95,0.145,96,2.137,101,0.017,103,0.001,104,0.001,105,1.103,112,0.812,138,2.076,154,2.44,155,2.596,168,5.829,172,3.87,173,2.301,174,4.065,175,3.44,178,3.232,180,1.394,181,2.082,182,2.531,236,1.972,276,5.353,349,0.804,437,1.476,480,2.838,486,3.075,529,2.201,643,5.388,662,2.446,826,4.48,1657,3.694,1663,6.621,1985,3.094,2614,5.577,2618,5.577,3081,6.286,4060,4.57,4285,3.405,4603,6.615,7219,6.287,9005,6.806,10019,7.602,10049,8.007,12171,8.942,12172,7.193,12173,6.517,12174,6.287,12175,6.517,12176,6.287,12177,7.193,12178,6.517,12179,7.193,12180,9.45,12181,7.193,12182,8.562,12183,6.287,17586,7.78,17587,7.78,17588,7.78,17589,7.78]],["title/classes/RoleDto.html",[0,0.231,4573,4.853]],["body/classes/RoleDto.html",[0,0.315,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,26,2.624,27,0.53,29,0.722,30,0.001,31,0.724,32,0.177,33,0.637,34,2.11,95,0.117,99,1.546,101,0.015,103,0.001,104,0.001,112,0.907,181,3.058,379,1.159,381,3.113,404,3.782,405,5.1,643,5.505,1663,6.226,1985,3.686,4285,4.056,4573,9.464,4603,6.759,10019,6.893,10049,7.26,17590,9.267,17591,11.425,17592,9.267,17593,9.267]],["title/classes/RoleMapper.html",[0,0.231,17594,5.958]],["body/classes/RoleMapper.html",[0,0.308,2,1.016,3,0.021,4,0.021,5,0.011,7,0.138,8,1.352,27,0.462,29,0.878,30,0.001,31,0.688,32,0.154,33,0.541,34,1.547,35,1.355,95,0.143,99,1.514,101,0.015,103,0.001,104,0.001,154,1.94,236,1.477,276,5.801,349,1.165,413,4.144,1663,4.563,4389,5.784,4390,7.112,4573,9.589,4584,6.92,17594,9.869,17595,9.079,17596,9.869,17597,9.45,17598,11.281,17599,9.079,17600,9.079,17601,9.45,17602,9.079,17603,9.079,17604,9.079,17605,7.942]],["title/modules/RoleModule.html",[201,1.804,1359,5.065]],["body/modules/RoleModule.html",[0,0.299,3,0.021,4,0.021,5,0.01,30,0.001,95,0.161,101,0.015,103,0.001,104,0.001,201,3.205,203,3.165,204,3.401,205,3.5,206,3.485,207,3.471,208,4.432,209,4.55,218,4.4,219,3.429,220,3.348,226,1.258,227,3.623,1359,10.518,4683,10.734,4705,7.373,17606,8.801,17607,8.801,17608,8.801,17609,11.796,17610,12.319,17611,8.801,17612,8.801]],["title/classes/RoleNameMapper.html",[0,0.231,12876,5.958]],["body/classes/RoleNameMapper.html",[0,0.286,2,0.944,3,0.02,4,0.02,5,0.01,7,0.128,8,1.291,27,0.441,29,0.838,30,0.001,31,0.7,32,0.147,33,0.517,35,1.294,95,0.137,99,1.407,101,0.014,103,0.001,104,0.001,276,4.578,310,3.654,349,1.364,413,4.067,529,3.046,782,5.977,789,4.21,1718,3.551,4508,5.3,4603,7.49,9803,7.159,9804,7.159,10758,11.556,12024,10.347,12025,8.208,12850,9.043,12876,9.42,12927,8.436,17613,11.863,17614,8.432,17615,9.955,17616,10.768,17617,8.432,17618,10.768,17619,8.432,17620,7.796,17621,7.796,17622,7.796,17623,8.432,17624,8.432,17625,8.432]],["title/classes/RoleReference.html",[0,0.231,7148,4.6]],["body/classes/RoleReference.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,26,2.648,27,0.512,29,0.737,30,0.001,31,0.73,32,0.171,33,0.454,34,2.13,95,0.147,101,0.016,103,0.001,104,0.001,105,1.021,112,0.919,181,3.097,379,1.183,381,3.178,404,3.862,405,5.207,1603,3.558,1985,3.764,3415,8.279,4285,4.142,4603,6.822,7148,9.024,17626,13.025,17627,11.573,17628,9.463]],["title/injectables/RoleRepo.html",[539,0.901,17609,5.705]],["body/injectables/RoleRepo.html",[0,0.211,3,0.015,4,0.015,5,0.007,7,0.094,8,1.052,10,3.564,12,4.025,18,4.439,26,2.339,27,0.528,29,0.967,30,0.001,31,0.732,32,0.173,33,0.596,34,1.732,35,1.492,36,2.98,40,4.242,47,0.717,55,1.338,95,0.129,99,1.037,101,0.01,103,0,104,0,112,0.697,154,1.329,155,2.927,180,1.572,226,0.889,262,3.002,276,3.729,349,1.203,382,3.331,437,1.428,479,4.951,480,1.726,486,1.87,539,1.161,541,1.488,565,5.207,679,7.295,685,3.712,686,4.141,687,5.144,711,3.816,712,5.449,713,3.816,714,3.862,716,3.816,717,3.862,718,3.451,3277,7.349,3294,7.674,3638,4.27,3894,8.65,4603,6.776,5072,5.589,9078,7.349,9086,7.349,17609,7.349,17629,6.217,17630,9.398,17631,7.674,17632,6.217,17633,6.217,17634,7.674,17635,6.217,17636,8.11,17637,6.217,17638,6.217,17639,8.772,17640,10.208,17641,8.772]],["title/injectables/RoleService.html",[539,0.901,4683,5.191]],["body/injectables/RoleService.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.111,8,1.175,12,4.496,26,2.747,27,0.505,29,0.92,30,0.001,31,0.662,32,0.162,33,0.567,34,1.244,35,1.42,36,2.804,40,4.737,95,0.156,99,1.218,101,0.012,103,0.001,104,0.001,154,1.56,155,2.436,177,1.336,226,1.044,227,3.005,262,3.003,276,5.025,345,2.324,349,1.221,379,0.913,437,1.677,539,1.297,541,1.747,565,4.333,608,2.725,3081,3.645,3277,8.208,3294,8.571,4573,9.24,4603,6.45,4683,7.468,5072,4.651,9803,4.854,17594,6.386,17609,10.633,17631,8.571,17634,8.571,17642,7.3,17643,11.82,17644,7.3,17645,7.3,17646,7.3,17647,7.3,17648,7.3,17649,7.3,17650,7.3,17651,7.3,17652,12.693,17653,7.3,17654,7.3,17655,7.3,17656,7.3,17657,7.3,17658,7.3,17659,7.3]],["title/injectables/RoleUc.html",[539,0.901,17610,5.958]],["body/injectables/RoleUc.html",[0,0.31,3,0.021,4,0.021,5,0.011,7,0.139,8,1.358,27,0.464,29,0.882,30,0.001,31,0.635,32,0.155,33,0.544,35,1.098,36,2.815,95,0.163,99,1.525,101,0.015,103,0.001,104,0.001,177,1.673,226,1.307,262,2.698,345,2.909,349,0.944,379,1.143,437,1.182,539,1.499,541,2.188,4573,6.513,4584,6.968,4603,7.022,4683,10.275,4705,7.657,5072,5.824,17610,9.911,17631,9.911,17634,9.911,17660,9.141,17661,9.141,17662,9.141,17663,9.141,17664,9.141]],["title/injectables/RoomBoardDTOFactory.html",[539,0.901,8218,5.503]],["body/injectables/RoomBoardDTOFactory.html",[0,0.241,3,0.011,4,0.011,5,0.006,7,0.071,8,0.85,27,0.291,29,0.552,30,0.001,31,0.481,32,0.164,33,0.34,34,1.208,35,0.559,95,0.138,99,0.777,100,3.228,101,0.008,103,0.001,104,0,119,1.444,120,3.121,143,1.58,145,1.97,177,1.299,226,0.666,236,1.154,239,2.848,347,3.992,349,1.316,376,3.09,377,3.22,379,1.075,437,1.751,539,0.939,541,1.115,603,2.493,604,1.892,643,2.069,739,4.961,848,3.904,1042,3.198,1207,2.265,1612,3.904,1613,2.858,1628,3.05,1698,5.761,1867,3.559,1883,1.925,1885,5.372,1889,3.198,2020,2.038,2021,2.28,2022,2.198,2196,4.409,2472,2.113,2625,4.542,2627,4.621,2629,7.767,2632,5.408,2634,6.124,2637,2.185,2645,8.666,2713,3.549,2714,3.05,2975,3.549,3011,9.05,3012,5.943,3016,5.943,3019,3.9,3038,4.073,3407,3.9,3417,2.928,3420,3.9,3738,2.892,3756,5.714,3881,2.607,4487,5.049,5098,3.9,6433,5.714,6984,3.9,7491,8.43,7645,3.255,7785,4.073,8123,6.206,8124,7.946,8125,4.305,8126,9.915,8127,10.084,8131,4.305,8132,4.305,8142,4.305,8143,10.077,8145,8.666,8146,4.305,8148,4.305,8153,4.305,8155,4.305,8157,4.305,8159,4.305,8161,3.387,8162,6.206,8163,6.206,8164,4.305,8165,4.305,8166,4.073,8167,6.559,8168,4.305,8169,6.559,8170,6.559,8171,4.305,8172,4.305,8173,4.305,8174,4.305,8175,4.305,8176,4.305,8177,4.305,8178,4.305,8179,4.305,8180,4.305,8181,6.559,8182,4.073,8183,4.305,8184,4.305,8185,4.305,8186,4.305,8187,7.946,8188,4.305,8189,4.305,8190,4.305,8191,4.073,8192,4.073,8193,6.559,8194,4.305,8195,4.305,8196,4.073,8197,4.073,8198,3.9,8199,4.073,8200,4.073,8201,4.305,8202,4.305,8203,4.305,8204,4.305,8205,4.305,8206,4.305,8207,4.073,8208,4.305,8209,4.305,8210,4.305,8211,4.305,8212,4.305,8213,4.305,8214,4.305,8215,4.305,8216,3.9,8217,4.305,8218,5.733,8219,7.946,8220,4.305,8221,4.305,17665,4.656,17666,4.656,17667,4.656,17668,4.656]],["title/injectables/RoomBoardResponseMapper.html",[539,0.901,13865,5.705]],["body/injectables/RoomBoardResponseMapper.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.978,27,0.459,29,0.437,30,0.001,31,0.538,32,0.144,33,0.27,34,1.636,35,0.675,95,0.148,99,0.937,101,0.009,103,0,104,0,112,0.648,226,0.803,236,1.96,347,2.988,349,1.157,376,4.184,377,4.36,437,1.709,480,2.927,486,3.172,539,1.08,541,1.345,603,2.63,781,3.335,782,4.529,789,2.805,848,5.801,1042,3.859,1207,2.605,1603,2.112,1867,3.022,1885,5.252,1889,3.859,2196,3.886,2627,2.51,2633,4.28,2637,2.637,2709,6.835,2711,4.401,2713,4.282,2714,3.68,3401,11.24,3404,6.835,3405,6.835,3407,4.706,3411,5.194,3417,3.533,3418,5.194,3419,5.194,3420,4.706,3669,7.543,3673,4.915,3738,3.49,3752,4.915,4487,4.793,5098,4.706,8145,9.38,8161,6.988,8162,8.404,8163,8.404,8192,7.138,8196,7.138,8197,4.915,8198,4.706,8199,4.915,8200,4.915,8207,7.138,8216,4.706,13865,6.835,17669,11.68,17670,9.607,17671,9.607,17672,9.607,17673,9.607,17674,5.618,17675,8.832,17676,5.194,17677,5.618,17678,5.618,17679,5.618,17680,5.618,17681,5.618,17682,5.618,17683,5.618,17684,5.618,17685,5.618,17686,5.618,17687,9.607,17688,5.618,17689,5.618,17690,5.618,17691,7.543,17692,5.618,17693,5.618,17694,5.618,17695,8.159,17696,5.618,17697,8.159,17698,5.618,17699,5.618,17700,5.618,17701,5.618,17702,5.618,17703,5.618,17704,5.618,17705,5.618,17706,5.618,17707,5.618,17708,5.618,17709,5.618,17710,5.618,17711,5.618,17712,5.618,17713,5.618,17714,8.159,17715,5.618,17716,5.618,17717,5.618,17718,5.618,17719,5.618,17720,8.159,17721,5.618,17722,5.618,17723,5.618,17724,5.618,17725,5.618,17726,5.618]],["title/classes/RoomElementUrlParams.html",[0,0.231,17727,5.958]],["body/classes/RoomElementUrlParams.html",[0,0.382,2,1.012,3,0.021,4,0.021,5,0.011,7,0.137,27,0.461,30,0.001,32,0.154,34,2.183,47,0.905,95,0.143,101,0.015,103,0.001,104,0.001,112,0.893,138,2.046,142,5.014,143,2.854,144,4.223,145,3.559,148,2.868,150,2.059,153,2.557,245,3.212,807,4.998,1042,8.413,1858,9.596,1883,4.652,3817,6.608,3855,7.726,5761,8.356,5763,8.356,7491,9.534,17727,9.842,17728,12.249,17729,9.038]],["title/classes/RoomUrlParams.html",[0,0.231,17730,5.958]],["body/classes/RoomUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,1042,8.722,3817,5.762,7491,8.798,17730,10.348,17731,9.809,17732,9.809]],["title/injectables/RoomsAuthorisationService.html",[539,0.901,8127,5.335]],["body/injectables/RoomsAuthorisationService.html",[0,0.237,3,0.016,4,0.016,5,0.008,7,0.106,8,1.14,27,0.475,29,0.904,30,0.001,31,0.65,32,0.159,33,0.557,35,1.394,95,0.121,99,1.165,101,0.016,103,0.001,104,0.001,119,2.655,145,2.64,226,0.998,236,1.136,239,3.215,349,1.199,437,1.501,529,1.976,539,1.258,541,1.672,838,2.189,1618,4.237,1619,4.643,1675,7.601,1867,5.074,2346,4.796,2625,6.135,2627,5.727,2637,5.074,3196,4.449,5092,3.946,5104,4.021,8127,7.449,8198,5.85,11915,4.976,17733,6.983,17734,9.508,17735,9.508,17736,9.508,17737,9.508,17738,9.508,17739,6.983,17740,9.508,17741,6.983,17742,9.508,17743,6.983,17744,9.508,17745,6.983,17746,6.983,17747,9.508,17748,9.508,17749,6.983,17750,8.318,17751,6.983,17752,12.062,17753,6.983,17754,6.983,17755,6.983,17756,9.996,17757,9.508,17758,9.508,17759,8.791]],["title/controllers/RoomsController.html",[259,2.591,13868,5.958]],["body/controllers/RoomsController.html",[0,0.187,3,0.013,4,0.013,5,0.007,7,0.083,8,0.962,27,0.455,29,0.864,30,0.001,31,0.622,32,0.152,33,0.532,35,1.333,36,2.706,95,0.163,100,3.728,101,0.009,103,0,104,0,138,2.019,150,1.252,177,1.91,223,2.262,226,0.786,259,2.09,261,2.609,262,2.93,270,6.588,271,4.896,294,6.868,324,5.28,333,4.904,334,3.549,337,2.84,338,2.904,340,2.641,343,2.927,349,0.98,379,0.687,437,1.499,602,4.441,603,2.096,608,2.558,631,2.82,1885,3.35,2882,8.539,2903,3.105,2904,2.95,2938,7.947,2966,5.185,2984,3.334,2985,3.077,3672,3.654,3720,6.519,4487,4.716,6216,4.305,6454,4.441,6459,8.74,6688,5.081,6710,7.947,6763,7.947,7495,5.081,12261,3.774,13864,7.947,13865,6.726,13866,7.947,13868,7.024,13874,5.081,14155,8.173,14162,5.081,16627,9.127,16632,9.127,17675,4.604,17727,9.127,17730,11.127,17760,5.495,17761,9.486,17762,9.486,17763,9.486,17764,5.495,17765,5.495,17766,5.495,17767,5.495,17768,5.495,17769,5.495,17770,5.495,17771,8.028,17772,5.495,17773,5.495,17774,8.028,17775,5.495,17776,5.495,17777,8.028,17778,5.495,17779,4.604,17780,7.423,17781,5.495,17782,5.495,17783,5.495,17784,5.495,17785,5.495,17786,5.495,17787,5.495,17788,8.028,17789,5.495,17790,5.495,17791,5.495,17792,5.495,17793,5.495,17794,7.024,17795,5.495,17796,7.024,17797,5.495,17798,5.495,17799,5.495]],["title/injectables/RoomsService.html",[539,0.901,6715,5.503]],["body/injectables/RoomsService.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.112,26,2.814,27,0.435,29,0.826,30,0.001,31,0.594,32,0.156,33,0.509,34,1.148,35,1.115,36,2.433,39,2.855,95,0.161,99,1.124,101,0.011,103,0.001,104,0.001,119,1.371,143,1.5,177,2.195,226,0.963,227,2.774,262,2.716,349,0.958,379,1.16,437,1.642,539,1.228,541,1.613,603,2.598,608,2.927,696,2.657,1042,8.512,1745,8.318,1771,4.901,1854,9.679,1865,4.71,1866,3.999,1885,5.299,1888,5.136,2020,2.949,2021,3.299,2022,3.18,2633,3.534,2634,6.611,2944,9.445,2989,5.445,3881,3.773,4826,6.229,4923,10.637,4932,6.229,5053,9.447,5105,6.229,6715,7.497,8182,5.894,17800,6.738,17801,9.278,17802,9.278,17803,6.738,17804,6.738,17805,9.278,17806,6.738,17807,9.278,17808,6.738,17809,6.738,17810,9.278,17811,6.738,17812,9.278,17813,11.991,17814,6.738,17815,6.738,17816,6.738,17817,6.229,17818,6.738,17819,6.738,17820,6.738,17821,6.738,17822,6.738]],["title/injectables/RoomsUc.html",[539,0.901,13866,5.705]],["body/injectables/RoomsUc.html",[0,0.201,3,0.014,4,0.014,5,0.007,7,0.09,8,1.016,26,2.975,27,0.443,29,0.841,30,0.001,31,0.605,32,0.148,33,0.518,35,1.189,36,2.531,39,3.589,95,0.155,99,0.988,101,0.01,103,0,104,0,119,2.015,143,1.319,177,2.177,217,7.347,226,0.847,227,2.439,236,1.379,239,2.479,262,2.794,349,0.612,379,1.06,437,1.693,463,5.357,529,2.398,539,1.122,541,1.418,603,2.389,608,3.049,1042,7.852,1603,2.228,1744,7.215,1832,7.754,1858,7.754,1867,4.405,1883,2.45,1885,4.771,2471,3.516,2944,9.108,3983,5.143,4084,9.452,6714,4.963,6715,9.895,6930,6.461,7491,6.305,8126,8.659,8127,8.464,8145,8.292,8166,5.183,8218,8.731,13866,7.101,17817,7.837,17823,5.924,17824,8.477,17825,8.477,17826,9.898,17827,5.924,17828,8.477,17829,5.924,17830,8.477,17831,9.898,17832,5.924,17833,5.924,17834,5.924,17835,5.924,17836,5.924,17837,9.898,17838,5.924,17839,5.924,17840,5.924,17841,8.477,17842,7.837,17843,8.477,17844,5.924,17845,5.924,17846,5.924,17847,5.924]],["title/interfaces/RpcMessage.html",[105,0.735,10597,5.065]],["body/interfaces/RpcMessage.html",[3,0.023,4,0.023,5,0.012,7,0.151,30,0.001,32,0.163,33,0.573,47,0.704,55,2.147,101,0.02,103,0.001,104,0.001,105,1.29,107,2.395,112,0.949,180,1.788,347,3.655,479,4.792,990,4.584,1025,5.304,8436,10.716,10597,8.889,11972,8.73,11973,9.226]],["title/classes/RpcMessageProducer.html",[0,0.231,10698,5.705]],["body/classes/RpcMessageProducer.html",[0,0.238,2,0.785,3,0.016,4,0.016,5,0.008,7,0.106,8,1.143,9,3.308,27,0.476,29,0.977,30,0.001,31,0.651,32,0.171,33,0.558,35,1.301,47,0.954,55,2.501,80,6.13,95,0.137,101,0.012,103,0.001,104,0.001,141,4.553,177,1.983,262,2.373,349,0.984,379,1.192,437,1.401,448,5.581,479,3.57,519,2.171,529,1.983,608,1.615,765,3.89,823,3.8,990,3.222,1025,4.906,1121,7.551,1123,6.155,1146,5.663,1147,9.328,1154,4.623,1160,4.899,1161,4.525,1555,7.413,1779,5.663,3923,8.752,3959,9.043,6955,5.097,8432,6.13,8434,6.479,10597,8.645,10698,7.984,10699,8.338,10700,8.338,10708,8.338,10710,8.338,10712,8.338,11972,10.636,17848,7.007,17849,7.007,17850,7.007,17851,7.007,17852,7.007,17853,7.007,17854,7.007,17855,7.007,17856,7.007,17857,7.007,17858,7.007,17859,7.007,17860,9.531,17861,7.007,17862,7.007,17863,6.479]],["title/interfaces/Rule.html",[105,0.735,1820,4.23]],["body/interfaces/Rule.html",[3,0.021,4,0.021,5,0.011,7,0.134,8,1.328,27,0.454,29,0.863,30,0.001,31,0.621,32,0.151,33,0.532,35,1.331,59,2.74,95,0.161,99,1.471,101,0.015,103,0.001,104,0.001,105,0.952,107,2.116,119,2.586,131,5.005,133,4.742,239,3.174,479,5.005,1600,5.129,1609,7.339,1634,5.478,1675,6.722,1686,5.129,1687,5.478,1688,6.285,1689,6.723,1816,7.155,1820,6.882,3352,7.366,3356,7.257,16907,7.716,17864,8.82,17865,8.82,17866,8.82]],["title/injectables/RuleManager.html",[539,0.901,1708,5.705]],["body/injectables/RuleManager.html",[0,0.204,3,0.014,4,0.014,5,0.007,7,0.091,8,1.026,27,0.445,29,0.776,30,0.001,31,0.559,32,0.163,33,0.478,35,1.028,95,0.151,99,1.001,101,0.01,103,0,104,0,112,0.68,131,4.072,133,4.018,177,2.495,226,0.858,236,1.392,239,2.636,349,0.884,379,1.07,437,1.107,529,2.421,539,1.133,541,1.437,603,2.775,662,3.136,696,2.368,708,2.494,1162,2.868,1600,6.321,1609,5.883,1686,6.321,1687,3.729,1688,4.278,1689,4.576,1700,10.298,1701,10.298,1702,9.934,1703,8.885,1705,10.298,1706,9.106,1707,9.934,1708,7.169,1709,10.298,1710,10.298,1711,9.934,1712,10.298,1713,10.298,1714,10.298,1720,9.002,1820,8.058,3196,5.452,17867,11.491,17868,6.004,17869,8.558,17870,8.558,17871,6.004,17872,9.972,17873,8.558,17874,8.558,17875,6.004,17876,8.558,17877,6.004,17878,6.004,17879,6.004,17880,6.004,17881,6.004,17882,6.004,17883,6.004,17884,6.004,17885,6.004,17886,6.004,17887,6.004,17888,6.004,17889,6.004,17890,6.004,17891,6.004,17892,6.004,17893,6.004,17894,6.004,17895,6.004,17896,8.558,17897,6.004,17898,6.004]],["title/injectables/S3ClientAdapter.html",[539,0.901,10850,5.065]],["body/injectables/S3ClientAdapter.html",[0,0.105,3,0.007,4,0.007,5,0.012,7,0.047,8,0.614,10,3.095,27,0.453,29,0.814,30,0.001,31,0.586,32,0.147,33,0.502,34,0.526,35,1.256,36,2.145,47,0.917,59,0.96,72,1.402,95,0.128,101,0.005,103,0,104,0,105,0.333,112,0.406,131,2.854,133,1.08,177,0.937,226,0.442,236,1.931,261,1.467,262,2.815,271,3.943,284,2.608,316,3.517,324,1.564,349,1.167,360,6.552,379,0.64,437,1.662,480,0.858,486,0.93,519,0.957,521,3.344,529,2.958,539,0.677,541,0.74,565,1.834,579,6.017,603,1.935,604,1.255,608,2.697,639,1.45,662,4.063,685,3.224,696,1.219,739,4.412,990,1.045,996,3.639,997,3.596,998,3.596,999,3.803,1000,4.157,1001,5.232,1002,4.425,1004,2.355,1074,3.901,1151,5.31,1153,4.99,1154,2.035,1162,3.129,1163,2.202,1164,2.421,1178,5.786,1179,6.952,1180,8.819,1278,0.978,1384,2.703,1575,2.247,1612,5.302,1764,3.647,1912,3.023,1925,4.569,2029,3.305,2253,2.685,2254,3.439,2271,5.132,2281,1.854,2421,3.848,2622,1.646,2662,4.732,2771,3.038,3022,2.202,3541,1.523,3542,2.673,3835,2.122,4692,2.685,5387,4.477,6259,3.966,6330,5.968,6331,8.851,6333,4.136,6334,4.136,6335,4.854,6338,8.181,6341,2.247,6342,2.298,6343,3.647,6344,2.298,6345,2.298,6808,2.298,7891,3.515,7997,7.549,8021,6.665,8031,4.287,8032,2.703,8033,4.136,9689,3.261,9884,2.703,9885,2.857,10338,7.167,10388,7.345,10814,5.807,10821,2.857,10850,3.807,12121,2.497,16803,4.732,17899,10.445,17900,3.09,17901,6.551,17902,5.118,17903,7.618,17904,6.551,17905,5.118,17906,5.731,17907,3.09,17908,5.118,17909,5.118,17910,3.09,17911,5.118,17912,3.09,17913,5.118,17914,3.09,17915,3.09,17916,5.118,17917,3.09,17918,5.118,17919,3.09,17920,3.09,17921,5.118,17922,3.09,17923,5.118,17924,3.09,17925,7.618,17926,5.118,17927,3.09,17928,5.118,17929,5.118,17930,5.118,17931,5.118,17932,3.09,17933,6.057,17934,2.857,17935,3.09,17936,3.09,17937,3.09,17938,3.09,17939,3.09,17940,2.703,17941,11.701,17942,8.443,17943,3.09,17944,3.09,17945,3.09,17946,3.09,17947,3.09,17948,3.09,17949,3.09,17950,3.09,17951,5.118,17952,5.118,17953,5.118,17954,3.09,17955,3.09,17956,5.118,17957,3.09,17958,3.09,17959,3.09,17960,3.09,17961,3.09,17962,5.118,17963,5.118,17964,5.118,17965,5.118,17966,5.118,17967,3.09,17968,3.09,17969,3.09,17970,5.118,17971,3.09,17972,3.09,17973,3.09,17974,3.09,17975,3.09,17976,3.09,17977,3.09,17978,3.09,17979,3.09,17980,3.09,17981,3.09,17982,3.09,17983,6.551,17984,3.09,17985,5.118,17986,3.09,17987,3.09,17988,3.09,17989,3.09,17990,3.09,17991,3.09,17992,6.551,17993,3.09,17994,5.118,17995,3.09,17996,3.09,17997,3.09,17998,3.09,17999,3.09,18000,3.09]],["title/modules/S3ClientModule.html",[201,1.804,10673,5.065]],["body/modules/S3ClientModule.html",[0,0.275,3,0.019,4,0.019,5,0.01,8,0.972,27,0.332,29,0.631,30,0.001,31,0.454,32,0.111,33,0.389,35,0.974,95,0.162,101,0.013,103,0.001,104,0.001,105,0.875,143,2.338,201,3.085,203,2.916,208,4.265,209,3.049,214,4.872,225,3.198,226,1.159,236,1.708,349,1.085,413,3.234,437,1.593,636,4.715,637,5.778,639,3.806,1110,7.743,1278,2.565,1912,5.373,2035,6.604,2253,4.304,2254,5.901,6331,8.226,6335,8.129,6337,7.341,6339,7.341,6340,7.341,8021,10.188,8031,6.793,8032,7.094,8033,8.486,8062,7.497,8064,7.497,8065,6.031,10574,7.497,10673,8.662,10850,6.031,13462,7.497,16721,7.094,17899,9.709,18001,10.501,18002,8.109,18003,8.109,18004,8.109,18005,8.109,18006,8.109,18007,8.109,18008,8.109]],["title/interfaces/S3Config.html",[105,0.735,6335,4.339]],["body/interfaces/S3Config.html",[3,0.022,4,0.022,5,0.011,7,0.146,30,0.001,32,0.183,47,1.014,101,0.016,103,0.001,104,0.001,105,1.038,107,2.309,112,0.928,2035,8.238,6335,7.448,6337,9.158,6338,9.158,6339,9.158,6340,9.158,10796,7.537,10797,7.537,18009,9.621]],["title/interfaces/S3Config-1.html",[105,0.611,708,2.352,6335,3.607]],["body/interfaces/S3Config-1.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.182,47,1.021,55,1.865,95,0.11,101,0.021,103,0.001,104,0.001,105,1.363,107,2.08,112,0.87,284,3.385,1151,7.558,1153,5.678,1299,4.854,2035,7.941,6330,6.791,6331,6.791,6332,7.261,6333,7.004,6334,7.004,6335,6.982,6336,9.892,6337,8.828,6338,8.828,6339,8.828,6340,8.828,6341,6.305,6342,6.447,6343,6.177,6344,6.447,6345,6.447]],["title/classes/SSOLoginQuery.html",[0,0.231,16212,5.958]],["body/classes/SSOLoginQuery.html",[0,0.395,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,27,0.477,30,0.001,32,0.159,33,0.627,47,0.822,52,5.997,95,0.148,101,0.016,103,0.001,104,0.001,112,0.924,119,2.369,138,2.117,147,6.249,148,3.031,150,2.177,245,3.292,248,4.858,249,5.079,15526,10.145,16212,10.183,18010,12.554,18011,9.553,18012,9.553,18013,9.553,18014,9.553,18015,9.553]],["title/interfaces/SanisGruppeResponse.html",[105,0.735,18016,5.958]],["body/interfaces/SanisGruppeResponse.html",[3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.185,34,2.206,47,0.986,95,0.145,101,0.015,103,0.001,104,0.001,105,1.005,107,2.234,112,0.91,823,3.267,974,4.502,13162,11.331,17148,6.634,18016,10.024,18017,6.771,18018,8.607,18019,12.952,18020,12.295,18021,12.952,18022,11.331,18023,11.975,18024,8.164]],["title/interfaces/SanisGruppenResponse.html",[105,0.735,18025,5.705]],["body/interfaces/SanisGruppenResponse.html",[3,0.022,4,0.022,5,0.011,7,0.144,30,0.001,32,0.171,33,0.556,95,0.159,101,0.016,103,0.001,104,0.001,105,1.024,107,2.276,112,0.92,823,4.392,11244,10.534,17148,6.759,18016,11.404,18017,6.899,18018,12.361,18024,8.918,18025,9.709,18026,8.77,18027,12.361,18028,13.036,18029,11.404,18030,8.77,18031,8.77]],["title/interfaces/SanisGruppenzugehoerigkeitResponse.html",[105,0.735,18029,5.958]],["body/interfaces/SanisGruppenzugehoerigkeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.157,30,0.001,32,0.141,95,0.131,101,0.017,103,0.001,104,0.001,105,1.116,107,2.481,112,0.969,276,4.395,974,4.999,17148,7.367,18017,7.52,18024,7.367,18027,9.558,18029,10.677,18032,11.737,18033,11.737]],["title/interfaces/SanisLaufzeitResponse.html",[105,0.735,18022,5.958]],["body/interfaces/SanisLaufzeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.166,83,4.255,101,0.017,103,0.001,104,0.001,105,1.11,107,2.468,112,0.966,17148,7.329,18017,7.481,18020,9.509,18022,10.645,18034,13.394,18035,13.394]],["title/interfaces/SanisNameResponse.html",[105,0.735,18036,5.958]],["body/interfaces/SanisNameResponse.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,31,0.576,32,0.166,47,0.978,101,0.017,103,0.001,104,0.001,105,1.11,107,2.468,112,0.966,17148,7.329,18017,7.481,18036,10.645,18037,13.394,18038,13.394]],["title/interfaces/SanisOrganisationResponse.html",[105,0.735,18039,5.958]],["body/interfaces/SanisOrganisationResponse.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.739,32,0.18,34,2.248,47,1.008,101,0.016,103,0.001,104,0.001,105,1.061,107,2.359,112,0.941,13162,11.545,17148,7.007,18017,7.152,18039,10.363,18040,9.091,18041,13.196]],["title/interfaces/SanisPersonResponse.html",[105,0.735,18042,5.958]],["body/interfaces/SanisPersonResponse.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,31,0.753,32,0.179,47,0.992,95,0.123,101,0.016,103,0.001,104,0.001,105,1.043,107,2.32,112,0.931,823,3.392,17148,6.889,18017,7.032,18024,6.889,18036,11.479,18042,10.257,18043,8.458,18044,13.121,18045,13.121,18046,13.121]],["title/interfaces/SanisPersonenkontextResponse.html",[105,0.735,18047,5.958]],["body/interfaces/SanisPersonenkontextResponse.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.181,33,0.544,34,2.192,47,0.951,95,0.156,101,0.015,103,0.001,104,0.001,105,0.986,107,2.193,112,0.9,276,3.886,823,3.975,17148,6.513,18017,6.648,18024,8.772,18025,10.781,18026,12.231,18039,11.258,18040,12.231,18047,9.911,18048,8.451,18049,12.869,18050,12.869,18051,11.898]],["title/injectables/SanisProvisioningStrategy.html",[539,0.901,16923,5.705]],["body/injectables/SanisProvisioningStrategy.html",[0,0.21,3,0.014,4,0.014,5,0.007,7,0.094,8,1.048,27,0.476,29,0.858,30,0.001,31,0.617,32,0.151,33,0.529,34,1.054,35,1.324,36,2.157,95,0.169,99,1.032,100,2.079,101,0.01,103,0,104,0,137,3.892,177,1.856,180,1.567,226,0.885,236,1.422,262,2.547,284,1.911,349,0.903,379,1.093,382,3.059,437,1.503,448,2.536,519,2.709,529,1.751,539,1.157,541,1.481,556,1.559,603,2.335,608,1.426,823,2.171,935,3.943,962,8.67,963,3.563,965,4.054,1079,3.635,1162,4.177,1198,2.127,1445,5.184,1634,3.844,1911,7.225,1923,4.326,2020,2.709,2021,3.03,2022,2.921,2029,3.996,2161,3.53,2186,7.325,3075,3.99,3672,4.115,3881,3.465,3950,7.066,4603,3.377,8499,6.665,8530,6.503,9620,8.454,10362,5.414,11012,8.632,11249,4.501,11460,7.325,11727,5.431,12345,6.377,12347,6.642,12348,4.115,12349,4.115,13100,6.665,13102,5.001,13103,8.126,13107,7.066,13108,8.196,13123,5.721,13132,8.193,13134,7.325,13136,7.066,13137,5.414,15814,8.87,16414,5.414,16419,10.022,16458,5.721,16520,8.87,16527,5.414,16533,5.721,16923,7.325,16924,9.231,18024,6.231,18052,6.188,18053,8.744,18054,6.188,18055,6.188,18056,8.084,18057,8.744,18058,6.188,18059,6.188,18060,6.188,18061,6.188,18062,6.188,18063,5.184,18064,6.188,18065,6.188,18066,6.188,18067,6.188,18068,6.188,18069,6.188,18070,6.188,18071,6.188,18072,6.188,18073,6.188,18074,6.188,18075,6.188]],["title/interfaces/SanisResponse.html",[105,0.735,18063,5.705]],["body/interfaces/SanisResponse.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.173,47,0.894,95,0.15,101,0.016,103,0.001,104,0.001,105,1.053,107,2.342,112,0.936,823,4.138,18024,8.404,18042,11.516,18043,11.79,18047,11.516,18048,9.025,18063,9.88,18076,9.761,18077,13.164,18078,13.164]],["title/injectables/SanisResponseMapper.html",[539,0.901,16924,5.705]],["body/injectables/SanisResponseMapper.html",[0,0.179,3,0.012,4,0.025,5,0.006,7,0.08,8,0.932,27,0.483,29,0.888,30,0.001,31,0.679,32,0.161,33,0.547,35,1.309,47,0.371,95,0.15,99,0.877,100,1.766,101,0.009,103,0,104,0,112,0.617,177,0.963,226,0.752,236,1.662,239,1.783,345,1.674,349,1.278,379,0.658,437,1.703,480,1.46,484,4.047,486,1.582,539,1.029,541,1.259,556,2.745,593,4.488,603,2.292,651,2.512,652,2.512,655,4.647,781,3.121,823,1.845,974,3.758,988,2.268,1275,2.413,1278,1.664,2253,4.676,2943,3.552,3063,2.29,3081,2.625,4487,7.118,4603,5.574,6029,4.862,6541,5.431,8249,3.227,8499,8.697,8502,6.8,8507,5.925,8510,9.247,8512,4.405,8523,3.496,8530,7.597,8532,4.888,8889,4.119,9620,7.43,9803,5.168,9804,5.168,11095,4.6,11240,4.6,11244,8.808,11246,4.862,12025,5.925,12850,7.048,13083,7.186,13084,7.186,13725,4.862,14636,4.862,16924,6.511,18023,4.862,18025,6.511,18032,4.6,18033,4.6,18051,4.862,18063,10.936,18079,12.118,18080,9.246,18081,7.773,18082,7.773,18083,7.773,18084,7.773,18085,7.773,18086,5.258,18087,7.773,18088,5.258,18089,7.773,18090,5.258,18091,7.773,18092,7.773,18093,5.258,18094,7.773,18095,5.258,18096,5.258,18097,5.258,18098,5.258,18099,5.258,18100,5.258,18101,5.258,18102,5.258,18103,5.258,18104,5.258,18105,5.258,18106,5.258,18107,5.258,18108,5.258,18109,5.258,18110,5.258,18111,5.258,18112,5.258,18113,5.258,18114,5.258,18115,9.246,18116,5.258,18117,7.773,18118,4.862,18119,5.258,18120,5.258,18121,5.258,18122,5.258,18123,5.258,18124,7.773,18125,5.258,18126,5.258,18127,5.258,18128,5.258,18129,5.258,18130,5.258,18131,5.258,18132,5.258,18133,5.258,18134,5.258,18135,5.258]],["title/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[105,0.735,11244,5.503]],["body/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[3,0.024,4,0.024,5,0.012,7,0.153,30,0.001,32,0.164,47,0.907,95,0.128,101,0.017,103,0.001,104,0.001,105,1.088,107,2.419,112,0.955,276,4.285,974,4.874,11244,9.715,17148,7.182,18017,7.331,18024,7.182,18030,9.319,18031,9.319,18032,11.64,18033,11.64,18118,12.301]],["title/interfaces/ScanResult.html",[105,0.735,1139,4.339]],["body/interfaces/ScanResult.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.169,33,0.649,47,1.004,55,1.994,101,0.02,103,0.001,104,0.001,105,1.337,107,2.224,112,0.907,119,2.703,990,4.372,1108,7.488,1117,6.932,1119,9.232,1121,7.097,1123,7.378,1132,6.479,1136,8.107,1137,7.763,1138,7.488,1139,7.279,1140,8.47,1141,8.47]],["title/classes/ScanResultDto.html",[0,0.231,10217,5.705]],["body/classes/ScanResultDto.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,27,0.513,29,0.739,30,0.001,31,0.531,32,0.171,33,0.455,47,0.818,95,0.12,101,0.016,103,0.001,104,0.001,112,0.92,154,2.027,181,3.102,347,4.584,379,1.186,381,3.186,1927,5.572,1928,6.632,6237,6.049,6258,8.198,10124,8.453,10127,7.055,10128,7.055,10217,11.2,18136,13.036,18137,9.485,18138,11.59,18139,9.485]],["title/classes/ScanResultParams.html",[0,0.231,6307,4.528]],["body/classes/ScanResultParams.html",[0,0.453,2,0.698,3,0.015,4,0.021,5,0.01,7,0.095,26,2.562,27,0.417,30,0.001,32,0.17,33,0.58,39,1.678,47,0.956,95,0.158,99,1.04,101,0.022,103,0,104,0,105,0.673,112,0.698,119,2.072,138,1.852,143,1.389,147,4.72,148,1.979,149,4.206,150,1.421,151,5.845,153,1.418,154,1.333,245,3.626,247,2.73,248,5.048,249,4.473,348,3.114,807,4.936,808,6.634,838,3.192,851,2.979,988,2.69,990,3.443,1079,3.663,1139,6.487,1140,6.67,1141,6.67,1198,2.144,1280,2.748,2680,4.597,2863,5.017,3573,3.053,4209,2.115,5905,6.528,6237,5.13,6250,7.243,6256,6.033,6285,3.073,6288,4.283,6289,4.36,6290,4.36,6293,7.751,6296,4.36,6297,8.042,6298,7.73,6299,7.73,6300,4.36,6301,4.283,6302,6.878,6303,4.283,6304,4.36,6305,4.212,6306,5.938,6307,5.845,6308,4.212,6309,4.283,6310,4.212,6311,4.212,6312,3.973,6313,4.36,6314,4.36,6315,4.36,6316,3.973,6317,3.973,6318,4.085,6319,4.146,6320,4.36,18140,10.182,18141,6.236,18142,6.236,18143,6.236]],["title/entities/SchoolEntity.html",[154,1.456,644,3.108]],["body/entities/SchoolEntity.html",[0,0.291,3,0.011,4,0.011,5,0.006,7,0.13,27,0.515,30,0.001,31,0.537,32,0.169,33,0.636,47,0.898,83,2.633,95,0.138,96,1.275,101,0.017,102,2.332,103,0,104,0,105,0.501,112,0.681,119,2.102,128,1.869,133,2.474,138,2.288,143,3.056,144,4.37,145,2.664,154,1.512,155,1.548,160,6.208,172,4.064,173,1.372,175,2.052,178,1.927,180,0.831,181,1.242,182,1.509,236,1.151,261,3.36,480,1.288,486,1.396,556,1.782,593,1.718,644,3.229,655,5.191,838,1.455,975,2.553,992,3.244,1657,2.203,1663,4.311,1985,1.845,2292,4.779,2503,4.433,2611,5.803,2614,3.861,2618,3.861,2619,5.543,3076,4.508,3077,3.998,4269,3.306,4275,3.861,4285,2.031,4335,6.379,4352,3.537,4353,5.543,4523,6.761,5040,3.935,6532,7.094,6540,6.379,6547,4.29,6554,4.569,6605,4.343,6624,5.393,6625,3.451,6819,4.779,6939,2.754,6940,4.343,8532,6.033,8536,3.451,8537,5.718,8549,4.641,8550,3.451,9872,7.13,10116,2.918,10378,6.397,10836,6.67,11584,5.543,12192,5.543,12193,3.887,12194,7.313,12195,6.978,12196,6.589,12197,6.836,12198,8.096,12199,3.749,12200,3.749,12201,3.887,12202,3.749,12203,3.887,12204,3.887,12205,5.927,12206,3.887,12207,3.887,12208,3.887,12209,3.887,12210,3.887,12211,3.887,12212,3.887,12213,3.887,12214,6.93,12215,3.887,12216,3.887,12217,7.752,12218,5.927,12219,5.927,12220,5.927,12221,4.947,12222,5.543,12223,3.451,12224,3.749,12225,3.887,12226,5.927,12227,3.537,12228,3.887,12229,3.887,12230,5.718,12231,3.749,12232,3.306,12233,3.887,18144,4.64,18145,4.64,18146,4.64,18147,4.64,18148,4.64,18149,4.64,18150,4.64,18151,4.64,18152,4.64,18153,4.64,18154,4.64,18155,4.29,18156,4.64]],["title/classes/SchoolExternalTool.html",[0,0.231,1839,3.627]],["body/classes/SchoolExternalTool.html",[0,0.238,2,0.785,3,0.016,4,0.016,5,0.008,7,0.106,8,1.143,27,0.542,29,0.947,30,0.001,31,0.681,32,0.178,33,0.616,34,1.845,35,0.842,47,0.954,55,2.616,95,0.147,101,0.016,103,0.001,104,0.001,105,0.756,112,0.757,180,1.708,181,2.551,347,4.257,349,0.724,379,0.876,381,2.354,382,2.114,564,4.304,1280,2.979,1686,6.759,1839,5.076,1870,3.409,1927,4.116,1928,4.899,1985,2.787,2583,7.614,4209,3.943,4285,3.067,4286,4.159,4287,5.212,5398,8.283,5400,7.537,5766,5.49,5770,8.86,5778,5.097,5780,5.49,5781,4.659,5782,4.993,5783,5.342,5790,4.659,5791,5.097,5792,6.791,5793,5.212,7322,8.223,8858,6.343,9013,5.097,9014,5.49,18157,11.582,18158,9.737,18159,9.531,18160,7.007,18161,7.007,18162,7.007,18163,7.007,18164,7.007,18165,7.007]],["title/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.231,18166,5.705]],["body/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,27,0.465,29,0.713,30,0.001,31,0.513,32,0.168,33,0.44,95,0.144,101,0.015,103,0.001,104,0.001,112,0.901,138,1.666,150,2.087,245,2.975,284,4.088,379,1.146,556,2.308,564,3.954,654,2.725,813,6.405,816,6.47,818,4.605,833,5.085,1077,7.564,2020,5.637,2487,5.594,2489,4.27,5803,8.887,5804,8.47,18166,9.504,18167,11.394,18168,11.048]],["title/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.231,18168,5.503]],["body/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.26,2,0.858,3,0.018,4,0.018,5,0.009,7,0.116,26,2.4,27,0.527,29,0.938,30,0.001,31,0.675,32,0.179,33,0.544,47,0.851,55,2.177,95,0.144,99,1.278,101,0.013,103,0.001,104,0.001,112,0.803,138,2.279,149,4.31,150,1.746,245,3.493,379,0.958,556,1.93,564,4.03,818,3.851,1241,4.37,1985,3.047,2020,5.831,2487,5.957,2489,4.351,5057,6.131,5790,5.094,5805,7.083,5806,7.92,5807,6.402,5809,9.355,5811,7.083,5812,7.083,5813,7.083,5814,9.44,5815,9.355,5816,7.083,5817,6.702,5818,6.418,5819,7.083,5822,7.083,5823,5.018,5824,7.083,5825,7.083,5826,6.002,5827,7.083,18167,12.134,18168,10.124]],["title/entities/SchoolExternalToolEntity.html",[154,1.456,5849,4.953]],["body/entities/SchoolExternalToolEntity.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.116,27,0.493,30,0.001,32,0.164,55,2.433,95,0.159,96,2.097,101,0.017,103,0.001,104,0.001,105,0.824,112,0.801,138,2.188,143,2.679,154,2.157,155,2.547,172,3.61,173,2.257,174,4.014,178,3.171,180,1.368,181,2.043,182,2.483,564,4.209,644,5.71,654,3.579,1672,5.255,2489,3.989,4269,5.438,4275,5.507,4276,4.63,5040,5.521,5400,7.068,5792,5.438,5793,5.677,5841,6.167,5847,9.538,5849,7.341,5852,6.394,5853,4.929,6611,4.741,6612,4.579,6819,5.155,7322,7.772,8762,8.574,11136,5.336,12043,8.156,12184,8.455,12185,11.569,12186,10.526,12187,7.056,12188,7.056,12189,7.056,12190,7.056,12191,7.056,18169,7.632,18170,7.632,18171,7.632,18172,7.632]],["title/classes/SchoolExternalToolFactory.html",[0,0.231,18173,6.296]],["body/classes/SchoolExternalToolFactory.html",[0,0.166,2,0.547,3,0.011,4,0.011,5,0.006,7,0.074,8,0.882,27,0.532,29,1.028,30,0.001,31,0.728,32,0.182,33,0.602,34,1.253,35,1.457,47,0.745,55,2.479,59,3.282,95,0.125,101,0.008,103,0,104,0,112,0.584,120,3.235,133,2.571,140,2.734,153,2.011,154,1.891,155,2.454,177,1.346,180,1.318,236,0.794,271,4.911,319,3.32,347,1.788,349,0.76,379,0.611,382,3.881,413,2.264,437,0.951,447,7.079,448,4.55,449,5.564,452,4.155,453,5.564,454,5.629,455,4.155,456,4.155,457,4.155,458,4.082,459,4.54,460,4.999,461,6.675,462,5.862,463,7.031,464,2.784,469,2.759,470,4.155,471,2.784,472,5.204,473,5.373,474,4.206,475,5.053,476,4.118,477,2.759,478,2.6,479,4.158,480,3.432,481,2.686,482,2.642,483,2.759,484,5.126,485,2.784,486,3.567,487,4.91,488,2.759,489,7.188,490,4.204,491,6.699,492,2.784,493,3.647,494,2.759,495,2.784,496,2.759,497,2.784,498,2.759,501,2.759,502,6.161,503,2.784,504,2.759,505,4.155,506,3.887,507,4.155,508,2.784,509,2.664,510,2.642,511,2.181,512,2.759,513,2.759,514,2.759,515,2.784,516,2.784,517,1.872,518,2.759,519,1.512,520,2.784,521,2.912,522,2.759,523,2.784,525,2.839,526,2.898,527,2.929,564,2.716,708,2.028,1839,2.6,1842,2.406,2583,4.817,4209,3.34,4317,6.304,4319,3.551,5398,3.479,5400,2.868,5406,4.09,5864,3.945,5869,3.825,5944,3.479,8858,4.013,18158,4.09,18173,8.179,18174,7.353,18175,7.353,18176,7.353,18177,4.882,18178,4.882,18179,4.882]],["title/classes/SchoolExternalToolIdParams.html",[0,0.231,18180,5.335]],["body/classes/SchoolExternalToolIdParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,47,0.83,95,0.149,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,142,4.6,143,2.618,144,3.2,145,3.265,148,3.083,150,2.213,245,3.083,256,6.922,564,4.035,807,4.799,2489,3.899,5808,9.198,5873,8.138,5874,8.499,7322,7.304,18180,9.212,18181,9.502]],["title/classes/SchoolExternalToolIdParams-1.html",[0,0.192,708,2.352,18180,4.435]],["body/classes/SchoolExternalToolIdParams-1.html",[0,0.402,2,1.101,3,0.023,4,0.023,5,0.012,7,0.149,26,2.693,27,0.403,30,0.001,32,0.134,95,0.161,99,1.64,101,0.016,103,0.001,104,0.001,112,0.941,138,1.789,148,3.12,150,2.24,245,3.106,256,7.007,564,3.637,807,4.834,2487,5.377,2489,3.927,5808,9.247,5876,7.152,5877,7.946,18180,9.28,18182,10.952]],["title/modules/SchoolExternalToolModule.html",[201,1.804,5883,5.335]],["body/modules/SchoolExternalToolModule.html",[0,0.293,3,0.02,4,0.02,5,0.01,30,0.001,95,0.16,101,0.014,103,0.001,104,0.001,201,3.177,203,3.104,204,3.335,205,3.433,206,3.418,207,3.404,208,4.393,209,4.51,218,4.346,219,3.362,220,3.283,225,4.31,226,1.234,560,3.553,564,3.682,2489,2.862,5080,4.97,5376,9.664,5386,6.974,5882,10.128,5883,11.093,6125,9.338,7322,5.361,18183,8.631,18184,8.631,18185,8.631,18186,8.631,18187,11.766,18188,8.631]],["title/classes/SchoolExternalToolPostParams.html",[0,0.231,18189,5.705]],["body/classes/SchoolExternalToolPostParams.html",[0,0.394,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,27,0.503,29,0.904,30,0.001,32,0.182,33,0.502,47,0.867,55,2.251,95,0.156,101,0.013,103,0.001,104,0.001,112,0.831,138,2.235,143,1.795,148,2.558,149,3.979,150,1.836,245,3.222,248,4.846,249,4.231,363,4.514,564,4.216,807,4.739,1241,4.597,2347,4.597,2489,4.222,3434,7.453,4209,3.939,5057,6.285,5537,6.664,5889,7.452,5896,9.707,5897,6.752,5898,6.752,5899,6.752,5901,7.452,5902,7.452,5904,5.069,5905,5.857,7322,7.91,8858,6.337,18181,10.291,18189,8.762,18190,8.06,18191,9.671,18192,8.06,18193,8.06,18194,8.06]],["title/interfaces/SchoolExternalToolProps.html",[105,0.735,18158,5.705]],["body/interfaces/SchoolExternalToolProps.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.119,29,0.982,30,0.001,31,0.707,32,0.18,33,0.621,34,2.07,47,0.992,55,2.715,95,0.154,101,0.017,103,0.001,104,0.001,105,0.844,107,1.878,112,0.815,180,1.402,181,2.094,347,4.62,349,0.808,564,3.15,1280,2.446,1686,5.966,1839,4.168,1870,3.807,1927,4.597,1928,5.471,1985,3.112,2583,8.263,4209,4.279,4285,3.425,4286,4.645,4287,5.82,5398,8.989,5400,7.749,5766,6.13,5770,5.965,5780,6.13,5781,5.203,5782,5.576,5783,5.965,5790,5.203,5791,5.692,5792,7.311,5793,5.82,7322,4.86,8858,6.884,9013,5.692,9014,6.13,18157,6.846,18158,9.589]],["title/classes/SchoolExternalToolRefDO.html",[0,0.231,5776,5.503]],["body/classes/SchoolExternalToolRefDO.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,27,0.508,29,0.723,30,0.001,31,0.52,32,0.169,33,0.595,47,0.913,101,0.015,103,0.001,104,0.001,112,0.909,181,3.062,379,1.162,381,3.12,564,4.252,2489,4.291,4209,4.206,4286,5.513,4287,6.908,5776,10.739,5868,9.019,6010,8.587,7322,8.038,18157,11.322,18195,9.288,18196,11.441,18197,9.288,18198,9.288]],["title/injectables/SchoolExternalToolRepo.html",[539,0.901,1747,5.065]],["body/injectables/SchoolExternalToolRepo.html",[0,0.132,3,0.009,4,0.009,5,0.005,7,0.059,8,0.74,10,2.507,12,2.831,18,3.122,26,2.331,27,0.534,29,1.016,30,0.001,31,0.726,32,0.177,33,0.622,34,1.486,35,1.546,36,2.693,40,1.881,47,0.8,95,0.153,96,1.695,97,1.686,99,0.649,101,0.006,103,0,104,0,112,0.309,133,2.157,154,1.865,155,2.558,173,1.151,177,1.129,180,1.106,236,1.247,262,2.92,310,2.674,349,1.224,379,0.487,381,1.307,382,3.691,437,1.532,448,3.142,519,1.205,539,0.817,541,0.931,564,3.756,603,2.38,608,1.767,644,1.775,654,2.28,680,4.313,686,2.912,687,4.814,718,2.16,740,6.422,1278,1.231,1604,4.489,1747,4.589,1839,6.6,1842,1.917,1941,2.219,2240,8.693,2242,4.396,2243,4.396,2244,4.396,2245,4.396,2246,4.313,2247,4.313,2248,4.396,2249,4.313,2250,4.396,2251,2.83,2252,5.024,2253,3.576,2254,3.939,2256,4.487,2257,2.772,2259,5.024,2260,2.772,2262,2.772,2264,6.231,2265,4.313,2266,2.772,2268,2.772,2270,4.396,2274,4.396,2276,4.167,2277,4.313,2279,2.772,2281,2.334,2282,2.388,2283,2.772,2285,2.772,2287,2.72,2288,2.772,2294,2.628,2305,5.36,2306,5.702,2328,5.168,2341,3.404,2489,2.542,2568,1.917,4209,2.601,4389,2.479,4524,2.894,4692,3.236,5400,3.624,5505,3.115,5849,8.898,5853,3.984,5908,3.404,5909,5.704,5914,5.704,5922,5.168,5931,2.83,5932,2.83,5933,2.83,5934,2.83,5935,2.83,5936,2.83,5937,2.83,5938,2.83,5939,2.83,5943,2.772,5944,5.463,5945,3.144,5946,3.404,5947,2.966,5949,3.588,5950,3.597,5951,2.72,5958,3.597,5964,3.597,5971,3.597,5972,3.597,7341,2.417,8762,2.772,8858,5.191,9090,3.597,9091,2.966,9092,3.597,12184,8.48,12186,3.404,14721,3.259,18199,10.174,18200,6.17,18201,6.17,18202,5.704,18203,9.808,18204,3.891,18205,8.856,18206,6.17,18207,3.891,18208,3.891,18209,3.891,18210,6.17,18211,3.891,18212,5.704,18213,3.891,18214,3.891,18215,3.891,18216,3.891,18217,3.891,18218,3.891,18219,3.891,18220,3.891,18221,3.144,18222,3.891,18223,3.404,18224,3.404,18225,3.891,18226,3.891]],["title/injectables/SchoolExternalToolRequestMapper.html",[539,0.901,18227,5.705]],["body/injectables/SchoolExternalToolRequestMapper.html",[0,0.283,3,0.019,4,0.019,5,0.01,7,0.126,8,1.281,27,0.438,29,0.918,30,0.001,31,0.661,32,0.146,33,0.513,35,1.283,95,0.158,101,0.014,103,0.001,104,0.001,141,3.978,226,1.191,349,1.218,480,2.312,539,1.414,541,1.993,564,4.11,603,2.369,789,4.157,2489,3.91,2583,7.725,4209,2.825,5400,4.891,5781,5.537,5896,9.807,5943,5.934,5978,6.729,5980,10.318,5984,7.285,5986,8.949,5993,7.699,5994,7.285,5995,6.976,5996,7.285,7322,7.325,8858,4.544,18189,10.422,18227,8.949,18228,10.904,18229,10.682,18230,8.327,18231,10.682,18232,8.327,18233,10.318,18234,7.285,18235,8.327,18236,8.327,18237,8.327]],["title/classes/SchoolExternalToolResponse.html",[0,0.231,18238,5.503]],["body/classes/SchoolExternalToolResponse.html",[0,0.233,2,0.767,3,0.016,4,0.016,5,0.008,7,0.104,27,0.54,29,0.897,30,0.001,31,0.645,32,0.182,33,0.514,34,1.824,47,0.941,55,2.02,95,0.136,101,0.011,103,0.001,104,0.001,112,0.745,131,2.567,138,2.362,149,4.073,150,1.561,245,3.582,347,3.921,363,3.837,379,0.857,404,2.796,556,1.726,564,4.331,818,3.444,823,2.404,838,2.148,1241,3.908,1927,4.025,1985,2.725,2020,2.999,2862,4.206,3751,5.368,4209,3.632,4286,4.067,5400,6.289,5790,4.556,5792,4.883,5807,6.05,5823,4.489,5998,5.995,5999,7.585,6000,8.212,6001,5.995,6002,5.995,6003,5.995,6004,5.995,6005,9.021,6006,5.995,6007,5.995,6008,5.995,6009,5.223,6015,5.995,6016,6.335,6017,5.995,7322,8.279,8858,5.842,9013,4.984,9296,5.995,17048,6.335,18181,10.772,18238,9.748,18239,10.105,18240,5.995,18241,6.852,18242,6.852,18243,6.852]],["title/injectables/SchoolExternalToolResponseMapper.html",[539,0.901,18244,5.705]],["body/injectables/SchoolExternalToolResponseMapper.html",[0,0.251,3,0.017,4,0.017,5,0.009,7,0.112,8,1.183,27,0.455,29,0.924,30,0.001,31,0.693,32,0.152,33,0.534,34,1.257,35,1.336,95,0.161,101,0.012,103,0.001,104,0.001,131,2.764,226,1.055,236,1.606,347,3.615,349,1.149,437,0.955,480,2.049,539,1.306,541,1.767,564,4.108,603,2.234,781,4.381,789,3.685,1718,3.108,1839,7.127,1896,6.457,2489,3.936,2583,8.341,3672,4.907,4209,2.503,5400,4.335,5486,5.964,5781,4.907,5906,5.626,6005,9.301,6023,6.457,6031,6.183,6032,6.823,7322,7.374,8603,5.964,8626,6.183,8630,6.457,8858,4.027,9127,6.823,9186,6.823,9187,6.823,9188,6.823,11347,5.368,18228,10.976,18238,9.594,18239,6.183,18244,8.268,18245,9.87,18246,9.87,18247,9.87,18248,9.87,18249,7.38,18250,9.87,18251,9.87,18252,6.823,18253,9.316,18254,7.38,18255,7.38,18256,7.38,18257,7.38,18258,7.38,18259,7.38,18260,7.38,18261,7.38,18262,6.823]],["title/injectables/SchoolExternalToolRule.html",[539,0.901,1709,5.705]],["body/injectables/SchoolExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.17,27,0.452,29,0.859,30,0.001,31,0.618,32,0.161,33,0.529,35,1.173,95,0.161,101,0.012,103,0.001,104,0.001,119,2.579,131,4.131,154,2.85,177,1.329,226,1.038,239,3.092,345,2.311,349,1.008,379,0.908,437,0.939,539,1.292,541,1.738,564,3.891,604,4.481,662,3.985,1280,2.269,1609,6.383,1637,7.872,1658,4.356,1675,7.856,1709,8.178,1816,4.689,1820,6.063,1827,6.491,1839,7.012,1842,3.578,3352,6.491,3353,4.904,3356,6.395,3359,4.904,3360,6.594,3361,7.261,5849,9.7,5853,4.689,5944,6.956,6051,6.712,6052,6.712,6053,6.712,6054,6.712,6055,6.956,18221,5.867,18263,11.794,18264,6.712]],["title/classes/SchoolExternalToolScope.html",[0,0.231,18205,5.958]],["body/classes/SchoolExternalToolScope.html",[0,0.252,2,0.829,3,0.017,4,0.017,5,0.009,7,0.112,8,1.186,26,2.757,27,0.533,29,0.926,30,0.001,31,0.666,32,0.178,33,0.57,35,1.189,95,0.141,99,1.236,101,0.012,103,0.001,104,0.001,112,0.786,119,2.267,180,1.773,310,3.21,349,1.022,382,3.738,480,2.057,486,2.228,519,2.295,556,3.331,564,3.651,603,2.56,654,2.203,2291,6.613,2489,2.456,4209,3.779,5505,5.44,5849,5.388,5853,4.784,5944,5.278,6058,6.48,6059,6.683,6060,6.683,6061,6.683,6066,6.683,6067,6.683,6068,5.087,6069,5.003,6070,5.087,6071,5.087,6080,5.003,6081,6.683,6082,5.087,6083,5.003,6084,5.087,6085,5.003,6086,6.683,8858,6.079,9347,6.848,10297,8.656,10306,8.656,17052,9.147,17056,9.147,18199,10.3,18205,8.656,18265,7.407,18266,7.407]],["title/classes/SchoolExternalToolSearchListResponse.html",[0,0.231,18253,5.705]],["body/classes/SchoolExternalToolSearchListResponse.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,27,0.466,29,0.717,30,0.001,31,0.516,32,0.169,33,0.442,95,0.144,101,0.015,103,0.001,104,0.001,112,0.903,138,1.674,150,2.097,245,2.983,284,4.094,379,1.151,556,2.318,564,4.202,654,2.737,812,8.799,813,6.434,816,6.489,818,4.626,833,5.108,2489,4.094,5803,8.913,6088,8.051,7322,7.67,18181,9.979,18238,11.059,18253,9.531]],["title/classes/SchoolExternalToolSearchParams.html",[0,0.231,18267,5.958]],["body/classes/SchoolExternalToolSearchParams.html",[0,0.403,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.404,30,0.001,32,0.135,47,0.837,95,0.15,101,0.016,103,0.001,104,0.001,112,0.942,138,1.793,148,3.128,150,2.246,245,3.11,248,4.951,564,4.055,807,4.841,2489,3.933,4209,4.317,7322,7.369,9351,8.623,9354,8.623,18181,9.586,18191,9.113,18267,10.378]],["title/injectables/SchoolExternalToolService.html",[539,0.901,6125,4.528]],["body/injectables/SchoolExternalToolService.html",[0,0.187,3,0.013,4,0.013,5,0.007,7,0.084,8,0.964,12,3.691,26,2.458,27,0.503,29,0.956,30,0.001,31,0.702,32,0.168,33,0.589,35,1.439,36,2.775,95,0.156,99,0.919,101,0.009,103,0,104,0,177,1.473,226,0.788,227,2.269,236,0.896,262,2.966,310,2.388,347,2.946,349,1.148,379,1.006,437,1.437,539,1.065,541,1.319,564,4.23,603,2.591,608,2.831,932,3.032,1718,2.321,1747,8.629,1839,7.427,1842,2.715,1870,2.681,2489,3.464,2568,6.271,4209,1.869,5393,4.453,5398,7.444,5808,5.851,5943,3.927,6102,5.095,6104,5.095,6125,5.349,6132,3.511,6141,3.382,6167,7.352,7322,7.779,8608,6.77,8693,4.821,8962,4.2,9326,4.821,18203,9.658,18234,4.821,18268,11.579,18269,8.044,18270,8.044,18271,8.044,18272,8.044,18273,7.437,18274,8.044,18275,5.51,18276,5.51,18277,5.51,18278,8.044,18279,5.51,18280,8.044,18281,5.51,18282,8.044,18283,5.51,18284,8.044,18285,8.044,18286,5.51,18287,8.044,18288,5.51,18289,5.51,18290,5.51,18291,5.095,18292,5.51,18293,8.044,18294,5.51,18295,5.51,18296,5.51,18297,5.51,18298,8.784,18299,5.51,18300,5.51]],["title/injectables/SchoolExternalToolUc.html",[539,0.901,18301,5.705]],["body/injectables/SchoolExternalToolUc.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.874,26,2.912,27,0.47,29,0.893,30,0.001,31,0.643,32,0.157,33,0.55,34,0.822,35,1.327,36,2.699,39,3.252,47,0.62,95,0.15,99,0.805,101,0.008,103,0,104,0,131,4.897,177,1.791,226,0.69,236,1.429,262,2.924,305,2.777,310,3.806,349,1.011,379,0.911,437,1.641,539,0.964,541,1.155,560,1.986,564,4.098,603,2.304,608,2.988,643,3.239,932,4.01,1609,6.543,1615,2.926,1718,2.031,1839,7.273,2472,2.189,2489,2.416,2985,2.701,4209,1.636,5808,8.962,5884,7.409,5943,3.437,6117,4.22,6124,8.533,6125,7.347,6126,4.459,6132,7.309,6140,3.779,6141,2.96,7322,7.336,8643,7.683,8653,4.22,8668,3.677,8669,9.714,8670,4.459,8688,6.375,8689,9.714,8693,4.22,9499,6.737,18187,9.611,18233,11.526,18273,6.737,18291,6.737,18298,6.737,18301,6.104,18302,11.811,18303,8.119,18304,6.737,18305,6.737,18306,8.119,18307,4.459,18308,4.823,18309,4.823,18310,4.823,18311,7.287,18312,4.823,18313,4.823,18314,7.287,18315,9.786,18316,7.287,18317,4.823,18318,4.823,18319,4.823,18320,4.823,18321,7.287,18322,4.823,18323,4.823,18324,4.823,18325,4.823]],["title/injectables/SchoolExternalToolValidationService.html",[539,0.901,18187,5.705]],["body/injectables/SchoolExternalToolValidationService.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.199,27,0.46,29,0.875,30,0.001,31,0.629,32,0.154,33,0.539,35,1.202,36,2.129,55,2.756,95,0.162,101,0.012,103,0.001,104,0.001,177,1.831,226,1.077,236,1.225,262,2.462,274,4.519,283,6.14,340,3.62,361,4.256,379,1.251,437,0.974,519,3.099,529,2.131,539,1.324,541,1.803,564,4.166,603,2.503,608,1.736,1718,3.172,1839,6.961,1842,3.712,2489,3.968,2568,5.536,5057,5.415,5383,10.239,5410,5.901,5423,6.589,6141,4.623,6165,6.554,6167,7.861,6172,5.901,6177,6.964,7322,7.435,8648,5.901,8690,5.479,18187,8.381,18268,11.066,18326,10.005,18327,7.532,18328,10.005,18329,12.459,18330,7.532,18331,11.234,18332,10.005,18333,7.532,18334,7.532,18335,7.532,18336,7.532,18337,7.532]],["title/classes/SchoolForGroupNotFoundLoggable.html",[0,0.231,16441,5.958]],["body/classes/SchoolForGroupNotFoundLoggable.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.343,27,0.459,29,0.699,30,0.001,31,0.503,32,0.123,33,0.431,35,1.079,95,0.142,100,3.015,101,0.015,103,0.001,104,0.001,177,1.643,284,2.773,292,4.543,345,2.858,349,0.927,379,1.123,654,2.67,974,6.489,1025,3.512,1275,5.603,1276,6.267,1278,2.84,1280,3.501,1281,6.301,3024,6.397,8369,6.312,8370,6.556,8499,9.747,8502,7.854,11184,7.854,16441,9.8,18338,12.211,18339,8.3,18340,8.3,18341,8.3,18342,8.3,18343,7.854,18344,8.977,18345,8.977,18346,8.977]],["title/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.231,18347,6.296]],["body/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.282,2,0.928,3,0.019,4,0.019,5,0.01,7,0.126,8,1.277,26,2.631,27,0.436,29,0.646,30,0.001,31,0.465,32,0.113,33,0.398,34,2.24,35,0.996,47,0.928,59,2.577,95,0.135,99,1.383,101,0.014,103,0.001,104,0.001,177,2.155,239,2.948,284,2.561,349,0.857,361,7.019,379,1.332,603,2.364,654,3.911,1025,3.244,1275,5.401,1276,6.04,1278,2.624,1280,3.33,1281,6.121,4209,4.214,4286,4.922,4508,5.258,8369,6.084,8370,6.319,11776,6.947,12861,6.701,18347,9.85,18348,10.298,18349,8.293,18350,8.293,18351,11.771,18352,8.293,18353,11.771,18354,8.293,18355,8.293,18356,8.293]],["title/classes/SchoolIdParams.html",[0,0.231,18357,5.335]],["body/classes/SchoolIdParams.html",[0,0.403,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,26,2.699,27,0.405,30,0.001,32,0.135,95,0.162,99,1.648,101,0.016,103,0.001,104,0.001,112,0.943,128,4.786,138,1.797,148,3.136,150,2.251,245,3.115,256,7.041,807,4.848,4209,4.322,4508,5.308,5877,7.985,5890,7.985,18357,9.307,18358,11.881]],["title/classes/SchoolIdParams-1.html",[0,0.192,708,2.352,18357,4.435]],["body/classes/SchoolIdParams-1.html",[0,0.405,2,1.112,3,0.023,4,0.023,5,0.012,7,0.151,26,2.704,27,0.407,30,0.001,32,0.136,95,0.162,99,1.656,101,0.016,103,0.001,104,0.001,112,0.946,138,1.806,148,3.151,150,2.262,245,3.124,256,7.076,807,4.863,2487,5.408,4209,4.331,5876,7.223,5877,8.024,18182,11.017,18357,9.335]],["title/classes/SchoolInMigrationError.html",[0,0.231,15626,5.958]],["body/classes/SchoolInMigrationError.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.539,29,0.602,30,0.001,31,0.433,32,0.186,33,0.546,35,0.929,47,0.803,52,4.864,55,1.664,59,2.403,95,0.129,101,0.013,103,0.001,104,0.001,112,0.809,128,4.101,138,2.286,177,2.495,180,1.825,182,2.516,226,1.106,239,1.775,340,3.717,347,2.833,379,0.967,382,3.893,595,6.404,654,2.301,820,5.55,823,2.714,950,5.281,988,5.217,990,4.089,1025,4.453,1205,8.289,1206,7.168,1207,3.862,1208,7.252,1212,4.995,1213,4.293,1214,4.995,1215,4.995,1216,4.995,1217,4.995,1218,4.995,1219,4.641,1220,4.412,1226,4.865,1636,7.151,2434,5.067,3467,5.753,7095,4.804,13737,5.753,13772,8.53,15626,8.908,18359,10.182,18360,6.767,18361,7.735]],["title/classes/SchoolInUserMigrationEndLoggable.html",[0,0.231,18362,6.296]],["body/classes/SchoolInUserMigrationEndLoggable.html",[0,0.308,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.35,27,0.461,29,0.705,30,0.001,31,0.507,32,0.124,33,0.435,35,1.088,47,0.865,52,6.128,95,0.115,101,0.015,103,0.001,104,0.001,177,1.658,239,2.813,284,2.798,345,2.883,349,0.936,379,1.133,654,2.694,1025,3.543,1275,5.626,1276,6.292,1278,2.866,1280,3.521,1281,6.321,3232,5.496,4508,5.477,8369,6.337,8370,6.582,12403,9.12,18348,10.726,18362,10.415,18363,9.058,18364,9.058,18365,9.058,18366,9.058,18367,8.375]],["title/classes/SchoolInUserMigrationStartLoggable.html",[0,0.231,18368,6.296]],["body/classes/SchoolInUserMigrationStartLoggable.html",[0,0.289,2,0.952,3,0.02,4,0.02,5,0.01,7,0.129,8,1.298,26,2.656,27,0.443,29,0.662,30,0.001,31,0.476,32,0.116,33,0.408,35,1.022,39,2.912,47,0.841,52,5.989,95,0.137,99,1.418,101,0.014,103,0.001,104,0.001,119,2.424,177,2.18,191,4.602,239,2.733,284,2.626,321,6.185,349,0.878,379,1.354,603,2.392,654,3.22,1025,3.326,1275,5.465,1276,6.112,1278,2.69,1280,3.384,1281,6.178,1289,5.491,4508,5.321,4702,5.743,8369,6.156,8370,6.394,10780,6.871,12403,9.326,12780,11.011,18348,10.42,18367,7.862,18368,10.009,18369,7.862,18370,7.862,18371,8.503,18372,8.503,18373,8.503]],["title/classes/SchoolInfoMapper.html",[0,0.231,15151,5.958]],["body/classes/SchoolInfoMapper.html",[0,0.326,2,1.075,3,0.022,4,0.022,5,0.011,7,0.146,8,1.399,27,0.393,29,0.747,30,0.001,31,0.654,32,0.131,33,0.461,34,1.635,35,1.153,95,0.148,99,1.601,100,3.921,101,0.016,103,0.001,104,0.001,236,1.561,349,0.991,413,3.874,437,1.241,644,5.973,782,6.48,789,4.792,15123,10.577,15151,10.213,18374,11.674,18375,8.397,18376,11.674,18377,8.397,18378,9.598,18379,9.598,18380,9.598]],["title/classes/SchoolInfoResponse.html",[0,0.231,15123,5.503]],["body/classes/SchoolInfoResponse.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.498,29,0.693,30,0.001,31,0.769,32,0.166,33,0.427,34,2.314,47,0.9,95,0.113,101,0.015,103,0.001,104,0.001,112,0.885,138,2.026,150,2.027,153,2.765,154,2.724,245,3.189,253,4.357,379,1.393,404,3.631,654,3.791,773,4.503,820,4.083,1985,3.539,2103,6.971,2858,5.829,2859,5.934,2860,5.934,4367,7.784,15123,10.606,18381,12.747,18382,7.784,18383,8.227]],["title/classes/SchoolMigrationError.html",[0,0.231,18384,5.958]],["body/classes/SchoolMigrationError.html",[0,0.259,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,8,1.208,27,0.537,29,0.593,30,0.001,31,0.427,32,0.186,33,0.542,35,0.915,47,0.797,52,4.815,55,1.639,59,3.132,95,0.128,101,0.013,103,0.001,104,0.001,112,0.8,128,4.06,138,2.275,177,2.489,180,1.806,182,2.478,226,1.089,239,1.748,340,3.661,347,2.79,379,0.953,382,3.877,595,4.791,654,2.998,820,5.517,823,2.673,950,5.242,988,5.185,990,4.065,1025,4.419,1154,3.03,1205,8.264,1206,7.132,1207,3.839,1208,7.198,1212,4.92,1213,4.228,1214,4.92,1215,4.92,1216,4.92,1217,4.92,1218,4.92,1219,4.571,1220,4.345,1226,4.791,3859,9.419,4508,4.503,6901,4.732,7095,4.732,8826,6.382,11656,5.428,13737,5.666,13772,8.444,18360,6.664,18384,8.818,18385,9.319,18386,7.618]],["title/interfaces/SchoolMigrationFlags.html",[105,0.735,18387,6.296]],["body/interfaces/SchoolMigrationFlags.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,32,0.166,52,4.888,101,0.017,103,0.001,104,0.001,105,1.104,107,2.455,112,0.963,119,2.818,128,4.122,4508,4.572,18387,11.216,18388,10.233,18389,10.233,18390,13.371,18391,13.371]],["title/injectables/SchoolMigrationService.html",[539,0.901,4515,5.065]],["body/injectables/SchoolMigrationService.html",[0,0.122,3,0.008,4,0.008,5,0.004,7,0.054,8,0.692,27,0.474,29,0.901,30,0.001,31,0.648,32,0.158,33,0.555,35,1.36,36,2.509,47,0.973,52,4.361,55,2.298,59,1.113,95,0.14,99,0.598,101,0.006,103,0,104,0,119,1.477,128,4.75,143,1.286,145,2.311,177,1.524,226,0.512,227,1.475,236,1.67,262,2.837,283,2.199,292,1.813,340,1.722,349,1.06,379,0.722,437,1.591,519,2.248,529,2.761,539,0.764,541,0.858,556,2.097,579,1.908,593,3.614,603,2.499,608,2.836,654,3.279,655,4.905,696,1.413,821,4,935,2.282,990,2.453,1025,1.401,1154,1.425,1178,1.923,1278,1.133,1899,2.895,1900,5.235,1902,3.783,1904,2.006,1905,7.034,2107,7.695,2117,7.695,2148,2.173,2253,2.974,2254,3.758,2259,3.326,2680,3.276,3063,2.515,3075,3.311,3544,1.813,4209,3.925,4508,5.268,4515,4.296,4521,6.629,4523,6.848,4530,5.685,4533,4.296,4536,5.053,4540,2.731,4541,3.001,4642,2.895,4649,2.46,4692,1.879,4702,3.901,4768,6.029,5644,2.225,7095,2.225,7142,5.158,7997,2.806,8532,6.455,12599,2.664,13087,7.377,13091,5.34,13092,5.34,13665,3.001,13747,6.054,14138,4.838,14934,8.041,15456,6.726,16113,2.731,16346,6.348,16443,9.873,16449,3.312,18392,11.791,18393,5.776,18394,5.34,18395,5.776,18396,5.776,18397,5.776,18398,5.34,18399,5.776,18400,5.776,18401,3.312,18402,5.776,18403,9.129,18404,3.582,18405,5.776,18406,7.943,18407,3.582,18408,5.776,18409,8.323,18410,3.582,18411,5.776,18412,5.776,18413,3.582,18414,5.776,18415,3.582,18416,5.776,18417,3.582,18418,5.776,18419,3.582,18420,5.776,18421,3.582,18422,3.582,18423,5.776,18424,3.582,18425,5.776,18426,3.582,18427,3.134,18428,3.582,18429,3.582,18430,3.001,18431,3.001,18432,3.312,18433,3.134,18434,2.731,18435,3.582,18436,3.582,18437,3.582,18438,3.582,18439,3.582,18440,3.582,18441,3.582,18442,3.582,18443,5.776,18444,3.582,18445,3.582,18446,8.323,18447,6.709,18448,5.34,18449,3.582,18450,7.256,18451,3.312,18452,3.582,18453,3.582,18454,5.34,18455,3.582,18456,3.582,18457,5.776,18458,5.776,18459,3.582,18460,3.582,18461,3.582,18462,3.582,18463,5.776,18464,3.582,18465,3.582,18466,3.312,18467,3.582,18468,3.582,18469,3.582,18470,3.582,18471,3.582]],["title/entities/SchoolNews.html",[154,1.456,6950,5.191]],["body/entities/SchoolNews.html",[0,0.344,3,0.012,4,0.021,5,0.006,7,0.172,9,3.624,26,2.146,27,0.212,30,0.001,31,0.43,32,0.138,34,0.881,47,0.87,83,2.357,95,0.153,96,2.515,101,0.018,103,0,104,0,105,0.558,112,0.859,138,0.94,143,2.525,144,3.736,154,2.313,155,1.725,172,3.748,173,1.529,174,3.053,175,2.286,180,1.815,181,2.711,182,1.682,236,1.489,239,2.483,349,0.534,355,5.758,358,4.028,381,1.737,403,5.082,413,1.592,459,4.698,521,3.626,563,4.556,643,2.298,644,5.358,654,3.219,655,3.858,838,2.407,996,4.373,997,4.782,998,4.322,999,4.571,1000,4.996,1207,2.923,1225,4.711,1603,1.944,1657,3.645,1663,2.599,1679,3.503,1755,3.387,1773,2.821,1867,2.843,2196,3.704,2506,5.173,2611,4.224,2624,3.037,2680,5.813,2725,2.653,3393,3.551,3395,3.294,3396,3.615,3398,3.684,3399,3.615,3400,3.846,3414,3.173,3547,3.492,3572,3.294,4209,1.754,4301,3.941,4302,3.761,4443,3.761,5040,4.201,5120,3.761,5688,6.659,6284,2.87,6502,3.615,6589,3.173,6591,2.895,6612,3.102,6819,3.492,6825,3.212,6912,3.846,6913,4.178,6915,4.657,6916,4.178,6917,6.809,6918,5.912,6919,4.178,6920,8.884,6921,5.104,6922,4.955,6923,5.709,6924,5.709,6925,6.731,6926,7.548,6927,4.178,6928,5.47,6929,4.178,6930,3.941,6931,3.941,6932,4.957,6933,4.178,6934,3.941,6935,3.941,6936,4.178,6937,3.846,6938,4.178,6939,3.069,6940,3.173,6941,3.941,6942,4.178,6943,4.178,6944,7.172,6945,4.178,6946,7.398,6947,4.178,6948,4.178,6949,5.851,6950,5.851,6951,6.401,6952,4.051,6953,5.028,6954,3.941,6955,3.761,6956,3.941,6957,4.178,18472,5.17]],["title/classes/SchoolNumberDuplicateLoggableException.html",[0,0.231,18473,5.958]],["body/classes/SchoolNumberDuplicateLoggableException.html",[0,0.294,2,0.968,3,0.02,4,0.02,5,0.01,7,0.131,8,1.312,18,4.377,27,0.448,29,0.673,30,0.001,31,0.484,32,0.15,33,0.415,35,1.039,47,0.847,55,2.715,95,0.139,101,0.014,103,0.001,104,0.001,177,1.583,180,1.961,182,2.814,226,1.237,284,2.671,345,2.753,349,0.893,379,1.082,590,5.308,654,3.571,1025,3.383,1275,5.509,1276,6.161,1278,2.736,1280,3.421,1281,6.217,1395,5.666,3024,6.163,5644,7.457,8369,6.205,8370,6.445,8532,7.55,8536,6.433,8820,5.44,8827,5.03,8828,5.248,8836,6.989,8837,6.989,9862,7.864,13747,6.291,18473,9.574,18474,12.005,18475,12.005,18476,8.649,18477,8.649]],["title/classes/SchoolNumberMissingLoggableException.html",[0,0.231,18478,5.705]],["body/classes/SchoolNumberMissingLoggableException.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,26,2.664,27,0.446,29,0.668,30,0.001,31,0.48,32,0.149,33,0.411,35,1.03,55,2.706,95,0.152,99,1.43,101,0.014,103,0.001,104,0.001,128,4.816,177,1.57,180,1.95,182,2.79,226,1.226,284,2.649,345,2.73,349,0.886,379,1.072,654,3.237,935,5.464,1025,3.355,1275,5.487,1276,6.136,1278,2.713,1280,3.402,1281,6.198,4209,4.056,4286,5.09,4508,5.342,5644,7.427,8369,6.18,8370,6.419,8820,5.393,8822,6.111,8827,4.987,8828,5.203,13747,6.237,18385,11.055,18478,9.118,18479,11.957,18480,7.929,18481,6.93,18482,8.576]],["title/classes/SchoolParams.html",[0,0.231,13942,5.958]],["body/classes/SchoolParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,654,3.508,807,4.813,3817,5.734,4209,4.299,9862,7.725,13942,10.318,18483,9.761,18484,9.761]],["title/classes/SchoolRolePermission.html",[0,0.231,12214,5.503]],["body/classes/SchoolRolePermission.html",[0,0.325,2,0.626,3,0.013,4,0.013,5,0.007,7,0.145,27,0.333,30,0.001,31,0.456,32,0.111,33,0.505,47,0.887,83,2.497,95,0.148,96,1.537,101,0.018,102,2.812,103,0,104,0,105,0.604,112,0.761,119,2.374,128,2.254,133,1.956,138,1.479,143,3.021,144,4.386,145,2.258,154,1.739,160,4.639,172,4.177,173,1.655,175,2.474,178,2.324,180,1.003,181,1.497,182,1.82,236,0.91,261,2.657,556,1.409,593,2.072,644,2.553,655,4.817,838,1.754,975,3.079,992,3.911,1657,2.657,1663,2.812,1985,2.225,2292,5.494,2503,4.954,2611,5.553,2614,3.053,2618,4.439,2619,6.372,3076,5.182,3077,4.596,4275,4.439,4285,2.449,4335,5.408,4352,4.265,4353,6.372,4523,5.953,5040,4.398,6532,7.226,6540,5.408,6554,3.613,6605,4.992,6624,6.2,6625,4.161,6939,3.321,6940,4.992,8532,5.115,8536,4.161,8537,6.573,8549,5.187,8550,4.161,9872,6.278,10116,3.519,10378,5.946,10836,6.795,11584,6.372,12192,6.372,12193,4.687,12194,6.2,12195,5.916,12196,5.587,12197,6.829,12198,8.314,12199,4.521,12200,4.521,12201,4.687,12202,4.521,12203,4.687,12204,4.687,12205,6.814,12206,4.687,12207,4.687,12208,4.687,12209,4.687,12210,4.687,12211,4.687,12212,4.687,12213,4.687,12214,8.502,12215,8.029,12216,8.029,12217,7.745,12218,4.687,12219,4.687,12220,4.687,12221,3.911,12222,6.372,12223,4.161,12224,4.521,12225,4.687,12226,6.814,12227,4.265,12228,4.687,12229,4.687,12230,6.573,12231,4.521,12232,3.987,12233,4.687,18485,5.595,18486,5.595]],["title/classes/SchoolRoles.html",[0,0.231,12217,5.503]],["body/classes/SchoolRoles.html",[0,0.324,2,0.623,3,0.013,4,0.013,5,0.007,7,0.145,27,0.332,30,0.001,31,0.454,32,0.111,33,0.504,47,0.886,83,2.487,95,0.148,96,1.528,101,0.018,102,2.796,103,0,104,0,105,0.6,112,0.759,119,2.136,128,2.241,133,1.946,138,1.473,143,3.018,144,4.382,145,2.249,154,1.732,160,4.621,172,4.172,173,1.645,175,2.46,178,2.311,180,0.997,181,1.489,182,1.81,236,0.905,261,2.642,556,1.401,593,2.061,644,2.539,655,4.802,838,1.744,975,3.062,992,3.89,1657,2.642,1663,2.796,1985,2.213,2292,5.472,2503,4.938,2611,5.793,2614,3.036,2618,4.421,2619,6.347,3076,7.106,3077,6.302,4275,4.421,4285,2.435,4335,5.386,4352,4.241,4353,6.347,4523,5.934,5040,4.384,6532,7.208,6540,5.386,6554,3.593,6605,4.972,6624,6.175,6625,4.138,6939,3.302,6940,4.972,8532,5.095,8536,4.138,8537,6.546,8549,5.17,8550,4.138,9872,6.258,10116,3.499,10378,5.93,10836,6.777,11584,6.347,12192,6.347,12193,4.661,12194,6.175,12195,5.892,12196,5.564,12197,6.808,12198,8.296,12199,4.496,12200,4.496,12201,4.661,12202,4.496,12203,4.661,12204,4.661,12205,6.787,12206,4.661,12207,4.661,12208,4.661,12209,4.661,12210,4.661,12211,4.661,12212,4.661,12213,4.661,12214,9.013,12215,4.661,12216,4.661,12217,8.48,12218,4.661,12219,4.661,12220,4.661,12221,3.89,12222,6.347,12223,4.138,12224,4.496,12225,4.661,12226,6.787,12227,4.241,12228,4.661,12229,4.661,12230,6.546,12231,4.496,12232,3.965,12233,4.661,18487,5.564,18488,5.564]],["title/interfaces/SchoolSpecificFileCopyService.html",[105,0.735,3269,5.335]],["body/interfaces/SchoolSpecificFileCopyService.html",[3,0.021,4,0.021,5,0.015,7,0.138,8,1.354,26,2.852,27,0.373,29,0.709,30,0.001,31,0.51,32,0.168,33,0.437,35,1.093,36,2.404,39,2.448,95,0.156,99,1.518,101,0.02,103,0.001,104,0.001,105,0.982,107,2.183,271,3.559,993,6.27,1167,7.105,2421,6.636,3086,8.611,3269,8.85,3541,4.484,4784,8.413,4786,8.413,6236,6.936,6256,6.164,6285,4.484,10202,7.96,10513,9.129,17250,8.413,17252,8.413,18489,9.883,18490,9.099,18491,10.444,18492,11.879,18493,9.099,18494,8.413,18495,7.96]],["title/injectables/SchoolSpecificFileCopyServiceFactory.html",[539,0.901,3539,5.705]],["body/injectables/SchoolSpecificFileCopyServiceFactory.html",[0,0.296,3,0.02,4,0.02,5,0.016,7,0.132,8,1.319,27,0.451,29,0.857,30,0.001,31,0.616,32,0.15,33,0.528,35,1.048,95,0.16,101,0.014,103,0.001,104,0.001,177,1.597,226,1.247,236,1.419,345,2.777,349,0.901,379,1.091,381,3.696,454,5.225,539,1.456,541,2.088,654,3.273,993,7.243,1167,5.487,2421,7.827,2981,7.309,3086,9.188,3269,9.442,3270,7.309,3539,9.218,3541,4.299,3542,3.56,6366,9.494,18489,10.544,18495,11.072,18496,8.724,18497,8.066,18498,8.724,18499,11.003,18500,8.724,18501,7.632,18502,8.724]],["title/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.231,18501,5.958]],["body/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.278,2,0.917,3,0.019,4,0.025,5,0.015,7,0.124,8,1.267,27,0.433,29,0.823,30,0.001,31,0.592,32,0.144,33,0.507,35,0.984,36,2.249,39,2.204,95,0.148,101,0.013,103,0.001,104,0.001,177,1.935,262,2.564,271,3.204,349,0.846,379,1.322,381,3.931,603,2.123,654,2.436,662,3.68,993,6.863,1167,6.647,1280,3.304,2421,6.874,2680,3.698,2934,6.417,3086,8.92,3269,9.168,3270,6.862,3541,5.208,3542,3.343,3573,5.175,4209,3.585,6236,6.244,6285,5.208,6366,9.339,6716,7.573,10513,8.541,16997,6.619,18489,10.238,18491,9.772,18492,11.432,18494,7.573,18495,10.817,18497,7.573,18501,9.247,18503,8.192,18504,8.192,18505,8.192,18506,10.57,18507,8.192,18508,8.192,18509,8.192]],["title/injectables/SchoolValidationService.html",[539,0.901,14024,5.705]],["body/injectables/SchoolValidationService.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.252,27,0.475,29,0.903,30,0.001,31,0.65,32,0.159,33,0.557,35,1.255,36,2.613,47,0.568,95,0.156,99,1.342,101,0.013,103,0.001,104,0.001,143,1.791,177,1.473,226,1.15,227,3.312,236,1.309,262,2.858,345,2.56,349,1.079,379,1.006,437,1.04,529,2.276,539,1.383,541,1.926,593,3.869,603,2.33,608,2.408,654,3.107,662,3.648,990,2.72,1366,8.585,1905,7.538,1907,6.5,5410,6.302,6165,6.843,8938,7.037,8958,7.437,9862,8.044,12138,8.441,14024,8.751,14083,7.437,14939,6.5,18473,7.037,18510,12.28,18511,10.446,18512,8.044,18513,10.446,18514,10.446,18515,8.044,18516,8.044,18517,10.446,18518,8.044,18519,8.044]],["title/entities/SchoolYearEntity.html",[154,1.456,10836,4.398]],["body/entities/SchoolYearEntity.html",[0,0.3,3,0.021,4,0.021,5,0.011,7,0.134,27,0.497,30,0.001,31,0.712,32,0.166,47,0.856,83,4.105,95,0.141,96,2.428,101,0.018,103,0.001,104,0.001,105,0.954,112,0.881,138,2.205,154,2.371,155,2.95,172,4.332,173,2.614,175,3.908,178,3.672,180,1.584,181,2.366,182,2.875,1280,2.763,1985,3.515,2292,7.494,4285,3.869,6543,9.061,6620,7.143,6621,6.738,10836,7.165,12234,10.608,12235,8.172,12236,10.653,12237,7.405,12238,8.172,12239,8.172,18520,8.839,18521,8.839,18522,8.839]],["title/injectables/SchoolYearRepo.html",[539,0.901,14025,5.705]],["body/injectables/SchoolYearRepo.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.113,8,1.188,10,4.025,12,4.546,18,5.013,26,2.098,27,0.522,29,0.926,30,0.001,31,0.667,32,0.163,33,0.571,34,1.264,35,1.489,36,2.638,40,3.588,49,3.907,83,2.279,95,0.141,99,1.238,101,0.012,103,0.001,104,0.001,154,1.586,155,3.306,180,1.775,226,1.061,236,1.207,262,2.935,349,1.023,382,3.59,437,1.281,479,5.111,539,1.311,541,1.776,593,2.748,608,1.711,679,7.649,685,4.192,686,4.676,687,5.643,711,4.555,712,4.609,713,4.555,714,4.609,715,5.288,716,4.555,717,4.609,718,4.119,723,5.657,3600,5.997,4212,7.205,6543,5.288,6990,5.997,9862,7.304,10836,7.201,12236,6.217,14025,8.299,18523,7.421,18524,11.899,18525,7.421,18526,7.421,18527,11.151,18528,7.421]],["title/injectables/SchoolYearService.html",[539,0.901,14023,5.705]],["body/injectables/SchoolYearService.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,8,1.289,12,4.934,26,2.646,27,0.485,29,0.837,30,0.001,31,0.602,32,0.147,33,0.516,34,1.433,35,1.292,36,2.658,40,5.2,95,0.15,99,1.404,101,0.014,103,0.001,104,0.001,177,1.54,226,1.203,262,2.892,345,2.678,349,1.111,379,1.052,437,1.391,539,1.423,541,2.014,608,2.479,685,3.56,1666,3.56,1718,3.544,1775,5.996,2428,4.554,3835,5.779,4212,7.822,4335,5.595,4649,7.386,9862,8.181,9870,7.049,9871,6.414,9872,5.512,10836,7.654,14023,9.008,14025,11.058,18529,12.489,18530,8.414,18531,12.489,18532,8.414,18533,8.414,18534,8.414,18535,8.414,18536,8.414,18537,8.414]],["title/classes/Scope.html",[0,0.231,5505,2.767]],["body/classes/Scope.html",[0,0.247,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,8,1.172,27,0.531,29,0.86,30,0.001,31,0.618,32,0.18,33,0.53,35,1.174,95,0.124,96,1.998,101,0.012,103,0.001,104,0.001,112,0.776,119,2.506,145,2.019,173,2.151,310,5.496,349,1.219,379,0.91,437,0.941,480,2.019,486,2.188,519,3.028,603,2.68,686,4.614,696,2.869,708,3.022,767,8.551,1507,4.634,2291,8.002,5505,4.795,6059,7.456,6060,7.456,6061,7.456,6066,6.602,6067,6.602,6069,8.565,6080,6.602,6081,7.972,6083,6.602,6085,6.602,15253,10.206,18538,7.273,18539,9.774,18540,9.774,18541,7.273,18542,7.273,18543,7.273,18544,7.273,18545,7.273,18546,7.273,18547,7.273,18548,7.273,18549,9.774,18550,11.039,18551,9.774,18552,7.273,18553,7.273,18554,7.273]],["title/classes/ScopeRef.html",[0,0.231,18555,5.191]],["body/classes/ScopeRef.html",[0,0.317,2,1.045,3,0.022,4,0.022,5,0.011,7,0.141,26,2.87,27,0.509,29,0.727,30,0.001,31,0.523,32,0.17,33,0.448,34,2.267,95,0.118,99,1.557,101,0.015,103,0.001,104,0.001,112,0.911,379,1.167,404,3.808,1939,6.7,2238,8.989,5505,5.577,6190,8.627,6191,10.608,6192,8.627,7292,6.303,12241,11.984,18555,8.746,18556,10.614]],["title/classes/ServerConsole.html",[0,0.231,18557,5.958]],["body/classes/ServerConsole.html",[0,0.274,2,0.902,3,0.019,4,0.019,5,0.01,7,0.122,8,1.254,27,0.476,29,0.814,30,0.001,31,0.586,32,0.143,33,0.502,35,1.257,47,0.82,95,0.133,101,0.013,103,0.001,104,0.001,138,1.903,153,2.895,220,3.979,345,2.566,349,1.08,379,1.008,519,3.807,591,6.944,933,7.994,1224,4.514,1965,6.39,2161,7.009,3445,6.752,3446,8.171,3449,8.452,3451,8.452,3454,5.536,3455,8.963,3456,8.469,3457,4.784,9842,9.097,10968,9.931,18557,9.151,18558,8.06,18559,11.362,18560,10.46,18561,8.06,18562,8.06,18563,10.46,18564,9.151,18565,8.06,18566,9.671,18567,8.06,18568,8.06]],["title/modules/ServerConsoleModule.html",[201,1.804,18569,5.958]],["body/modules/ServerConsoleModule.html",[0,0.244,3,0.017,4,0.017,5,0.009,30,0.001,32,0.098,47,0.508,87,3.617,95,0.177,96,2.666,99,1.2,101,0.012,103,0.001,104,0.001,119,1.464,143,1.602,155,2.401,173,2.128,201,3.113,203,2.588,204,2.781,205,2.862,206,2.85,207,2.838,208,4.021,209,2.706,218,3.859,219,2.803,220,2.737,225,3.827,226,1.029,236,1.17,239,1.651,292,3.641,573,4.86,598,4.143,599,5.234,687,4.91,1167,6.102,1458,4.066,1548,6.295,1666,3.045,1965,3.96,2020,3.15,2021,3.523,2022,3.397,2622,3.833,3456,6.102,3457,4.271,3531,9.635,3881,4.029,4902,4.942,5571,4.86,5601,5.814,6255,5.822,7877,6.295,8023,7.396,9707,4.86,10202,6.295,10440,10.589,10662,7.217,10663,7.217,10664,5.234,10666,5.127,10667,5.127,10668,7.217,10674,7.058,10675,7.058,10676,7.058,10677,5.127,10678,4.942,10690,5.352,10691,5.352,10692,5.234,11797,5.352,12258,6.028,12261,4.942,12672,7.841,14779,9.902,14791,6.028,14799,6.295,15017,6.652,18557,8.489,18569,11.771,18570,7.195,18571,7.195,18572,7.195,18573,7.195,18574,7.195,18575,7.195,18576,7.195,18577,9.703,18578,7.195,18579,7.195]],["title/controllers/ServerController.html",[259,2.591,18580,5.705]],["body/controllers/ServerController.html",[0,0.336,3,0.023,4,0.023,5,0.012,7,0.15,8,1.424,27,0.405,30,0.001,35,1.187,47,0.839,95,0.125,101,0.016,103,0.001,104,0.001,138,1.797,223,4.068,226,1.413,259,4.519,316,6.378,349,1.021,486,3.574,662,3.736,933,7.052,1224,5.533,1965,5.438,9656,9.307,11539,8.278,18559,12.22,18580,9.953,18581,9.881,18582,9.881]],["title/modules/ServerModule.html",[201,1.804,18583,5.705]],["body/modules/ServerModule.html",[0,0.182,3,0.008,4,0.008,5,0.004,8,0.392,27,0.22,29,0.255,30,0.001,31,0.3,32,0.073,33,0.157,35,0.393,47,0.776,52,1.562,55,1.154,72,3.58,87,1.644,95,0.174,96,1.473,99,0.546,101,0.011,103,0,104,0,118,4.344,119,1.605,122,2.209,128,2.16,143,0.728,145,1.489,153,0.743,155,1.091,173,0.967,177,1.444,201,2.732,202,7.559,203,2.837,204,1.264,205,1.301,206,1.295,207,1.29,208,1.198,209,1.23,214,4.584,218,2.133,219,1.274,220,1.244,223,3.247,225,3.111,226,0.468,236,0.873,239,0.75,292,1.655,349,0.338,358,2.36,379,0.671,413,1.007,437,1.126,454,1.553,490,2.418,493,1.622,511,1.461,519,1.013,521,1.295,556,2.488,564,1.004,573,3.623,598,1.883,603,1.584,639,1.535,654,0.973,676,2.331,687,2.714,761,2.142,969,2.246,970,2.562,971,2.562,972,2.562,992,2.287,996,1.562,997,1.544,998,1.544,999,1.633,1076,2.175,1077,2.007,1107,2.246,1110,3.566,1121,2.032,1123,2.112,1161,2.112,1167,2.057,1241,1.865,1278,1.035,1280,1.676,1310,1.984,1315,7.328,1414,2.287,1430,1.902,1458,3.031,1575,2.379,1666,2.885,1762,1.962,1904,1.832,1965,3.752,2020,1.432,2021,1.601,2022,1.544,2023,2.084,2148,1.984,2253,2.794,2254,3.561,2337,3.059,2622,1.742,2689,7.559,3460,2.142,3533,6.957,3541,2.643,3542,2.189,3544,2.714,3883,5.197,3895,4.202,3896,8.945,4148,2.142,4576,2.433,4620,1.691,4662,7.559,4902,2.246,5520,2.175,5571,2.209,6490,6.219,6684,1.962,8082,1.832,8439,2.175,10010,2.331,10501,2.287,10660,6.665,10661,4.767,10662,3.989,10663,3.989,10664,2.379,10665,4.089,10666,2.331,10667,2.331,10668,3.989,10674,3.901,10675,3.901,10676,3.901,10677,2.331,10678,2.246,10689,6.012,10690,2.433,10691,2.433,10692,2.379,10693,2.643,10694,2.433,10695,2.493,10730,2.287,10732,3.989,10734,2.379,10736,2.379,10738,10.209,10739,3.989,10873,2.379,11025,7.559,11385,2.331,11543,2.74,11629,2.246,11648,4.959,11650,2.379,11727,2.032,12261,2.246,12932,7.559,13051,2.643,13183,2.643,13435,2.493,13652,2.643,13858,7.559,13923,7.559,13930,2.74,14142,7.559,14582,4.959,14765,2.562,14791,2.74,14821,7.559,14825,7.328,15182,7.559,15693,7.559,15875,7.559,16057,4.493,16077,2.74,16286,2.861,16288,2.861,16290,2.861,16291,2.861,16292,2.861,16998,7.559,17175,2.74,17396,7.983,17400,2.861,17580,2.643,18580,7.293,18583,11.801,18584,3.271,18585,3.271,18586,7.328,18587,7.559,18588,7.559,18589,7.559,18590,7.559,18591,7.559,18592,7.559,18593,7.559,18594,3.024,18595,6.303,18596,8.648,18597,3.271,18598,3.024,18599,3.024,18600,3.024,18601,3.024,18602,3.024,18603,3.024,18604,3.024,18605,3.024,18606,3.024,18607,3.024,18608,3.024,18609,3.024,18610,3.024,18611,3.024,18612,3.024,18613,2.74,18614,3.024,18615,2.643,18616,2.643,18617,6.303,18618,3.024,18619,3.024,18620,3.024,18621,3.024,18622,3.024,18623,7.292,18624,3.024,18625,3.024,18626,3.024,18627,3.024,18628,3.024,18629,3.024,18630,3.024,18631,3.024,18632,3.024,18633,6.303,18634,3.024,18635,4.959,18636,6.303,18637,3.024,18638,3.024,18639,3.024,18640,3.024,18641,3.024,18642,3.024,18643,3.024,18644,3.024,18645,3.024,18646,3.024,18647,3.024,18648,2.861,18649,3.024,18650,3.024,18651,3.024,18652,3.024,18653,3.024,18654,3.024,18655,3.024,18656,4.959,18657,3.024,18658,4.959,18659,3.024,18660,4.959,18661,3.024,18662,3.024,18663,3.024,18664,4.493,18665,3.024]],["title/modules/ServerTestModule.html",[201,1.804,18664,5.705]],["body/modules/ServerTestModule.html",[0,0.176,3,0.007,4,0.007,5,0.004,8,0.377,27,0.272,29,0.404,30,0.001,31,0.371,32,0.091,33,0.249,35,0.624,47,0.765,52,1.501,55,1.117,59,0.977,72,3.494,87,1.58,95,0.174,96,1.426,99,0.524,101,0.011,103,0,104,0,118,4.224,119,1.567,122,2.123,128,2.091,143,0.7,145,1.441,153,0.714,155,1.049,173,0.93,177,1.409,201,2.689,202,7.415,203,3.492,204,1.215,205,1.25,206,1.245,207,1.24,208,1.151,209,1.182,214,4.505,218,2.064,219,1.224,220,1.196,223,3.169,225,3.036,226,0.449,236,0.844,239,0.721,292,1.591,349,0.325,358,2.917,379,0.649,413,1.598,437,1.102,454,1.492,490,2.73,493,1.559,511,1.404,519,0.974,521,1.245,556,2.446,564,1.594,573,3.506,598,1.81,603,1.546,639,1.475,654,0.935,676,2.24,687,2.627,761,2.059,969,2.159,970,2.462,971,2.462,972,2.462,992,3.629,996,1.501,997,1.484,998,1.484,999,1.569,1076,2.09,1077,1.929,1106,2.286,1107,3.565,1110,4.409,1121,1.952,1123,2.03,1161,3.352,1167,1.977,1241,2.96,1278,0.994,1280,1.622,1310,3.149,1315,7.189,1414,2.197,1430,1.828,1458,3.747,1575,2.286,1666,3.606,1762,3.114,1904,1.76,1965,3.649,2020,1.376,2021,1.539,2022,1.484,2023,2.002,2148,3.149,2253,2.718,2254,3.476,2337,4.391,2622,1.674,2689,7.415,3460,2.059,3533,6.825,3541,2.558,3542,2.118,3544,2.627,3883,5.054,3895,4.066,3896,8.815,4148,3.4,4576,2.338,4620,1.624,4662,7.415,4902,2.159,5520,2.09,5571,2.123,6490,6.101,6684,1.886,8082,1.76,8439,2.09,10010,2.24,10501,2.197,10660,3.699,10661,6.788,10662,3.861,10663,3.861,10664,2.286,10665,3.957,10666,2.24,10667,2.24,10668,3.861,10674,3.775,10675,3.775,10676,3.775,10677,2.24,10678,2.159,10689,5.868,10690,2.338,10691,2.338,10692,2.286,10693,2.54,10694,2.338,10695,2.396,10730,5.958,10732,5.726,10734,2.286,10736,3.775,10738,10.114,10739,3.861,10873,2.286,11025,7.415,11385,3.699,11543,2.633,11629,3.565,11648,3.775,11650,2.286,11727,1.952,12261,2.159,12932,7.415,13051,2.54,13183,2.54,13435,2.396,13652,2.54,13858,7.415,13923,7.415,13930,2.633,14142,7.415,14582,4.823,14765,2.462,14791,2.633,14821,7.415,14825,7.189,15182,7.415,15693,7.415,15875,7.415,16057,4.348,16077,2.633,16286,2.75,16288,2.75,16290,2.75,16291,2.75,16292,2.75,16998,7.415,17175,2.633,17396,7.845,17400,2.75,17580,2.54,18580,7.139,18583,7.139,18586,7.189,18587,7.415,18588,7.415,18589,7.415,18590,7.415,18591,7.415,18592,7.415,18593,7.415,18594,2.906,18595,6.13,18596,8.484,18598,2.906,18599,2.906,18600,2.906,18601,2.906,18602,2.906,18603,2.906,18604,2.906,18605,2.906,18606,2.906,18607,2.906,18608,2.906,18609,2.906,18610,2.906,18611,2.906,18612,2.906,18613,2.633,18614,2.906,18615,2.54,18616,2.54,18617,6.13,18618,2.906,18619,2.906,18620,2.906,18621,2.906,18622,2.906,18623,7.117,18624,2.906,18625,2.906,18626,2.906,18627,2.906,18628,2.906,18629,2.906,18630,2.906,18631,2.906,18632,2.906,18633,6.13,18634,2.906,18635,4.799,18636,6.13,18637,2.906,18638,2.906,18639,2.906,18640,2.906,18641,2.906,18642,2.906,18643,2.906,18644,2.906,18645,2.906,18646,2.906,18647,2.906,18648,2.75,18649,2.906,18650,2.906,18651,2.906,18652,2.906,18653,2.906,18654,2.906,18655,2.906,18656,4.799,18657,2.906,18658,4.799,18659,2.906,18660,4.799,18661,4.799,18662,4.799,18663,4.799,18664,11.778,18665,2.906,18666,3.143,18667,3.143,18668,3.143,18669,3.143]],["title/classes/SetHeightBodyParams.html",[0,0.231,4016,5.958]],["body/classes/SetHeightBodyParams.html",[0,0.404,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,27,0.406,30,0.001,32,0.135,55,2.56,95,0.151,101,0.016,103,0.001,104,0.001,112,0.945,138,1.802,142,3.875,143,2.649,144,3.92,145,3.303,148,3.143,150,2.257,245,3.12,3216,8.125,4016,10.409,18670,11.898,18671,9.906,18672,9.906,18673,9.906,18674,11]],["title/entities/ShareToken.html",[154,1.456,6542,4.677]],["body/entities/ShareToken.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.161,26,2.543,27,0.508,30,0.001,32,0.17,33,0.595,34,1.152,49,5.013,83,3.264,95,0.152,96,2.555,97,2.93,101,0.015,103,0.001,104,0.001,105,0.73,112,0.738,124,5.755,131,3.483,138,2.257,143,2.762,144,3.772,154,1.988,155,2.256,159,7.734,172,3.961,173,1.999,174,3.698,178,2.808,180,1.211,181,1.809,182,2.199,187,5.153,188,5.663,197,5.296,198,5.663,236,1.513,349,0.961,490,2.397,556,2.342,696,2.666,838,3.59,2611,4.291,3307,4.643,3333,8.59,3573,4.553,4276,4.101,4802,7.089,4804,6.87,4810,5.663,5831,5.849,5859,5.663,5860,5.463,5861,5.663,6276,4.495,6285,5.642,6542,6.387,6559,5.663,9892,5.028,9960,7.575,9965,5.663,10041,4.917,10042,4.917,10099,6.25,10100,6.25,10139,5.153,10141,5.153,12262,7.79,12263,11.75,12264,6.25,12265,9.252,12266,7.864,12267,8.97,12268,6.25,12269,4.495,12270,4.428,12271,6.25,12272,6.25,18675,6.76,18676,6.76,18677,6.76,18678,6.76,18679,6.76,18680,6.76]],["title/classes/ShareTokenBodyParams.html",[0,0.231,18681,5.958]],["body/classes/ShareTokenBodyParams.html",[0,0.333,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.54,30,0.001,32,0.173,33,0.567,34,1.669,47,0.692,55,2.543,95,0.14,101,0.012,103,0.001,104,0.001,112,0.778,119,1.994,133,4.133,138,2.15,142,5.156,143,2.935,144,4.342,145,3.659,147,5.26,148,2.316,150,1.663,153,2.687,245,3.233,249,4.474,274,5.879,654,2.914,708,4.07,807,3.998,838,3.072,843,8.208,851,3.487,1057,7.468,2401,9.01,3063,4.267,3573,5.415,3817,4.288,5499,6.115,5538,7.917,6285,5.45,6542,8.118,7992,8.208,12266,8.468,12269,4.854,12270,4.782,18674,9.058,18681,8.571,18682,9.659,18683,7.3,18684,9.675,18685,9.675,18686,7.3,18687,9.798,18688,7.3,18689,9.26,18690,7.3,18691,7.3,18692,7.3,18693,9.798,18694,8.208,18695,7.3,18696,7.3]],["title/classes/ShareTokenContextTypeMapper.html",[0,0.231,18697,5.958]],["body/classes/ShareTokenContextTypeMapper.html",[0,0.315,2,1.04,3,0.022,4,0.022,5,0.011,7,0.141,8,1.372,27,0.38,29,0.723,30,0.001,31,0.52,32,0.156,33,0.446,35,1.116,95,0.157,101,0.015,103,0.001,104,0.001,226,1.328,236,1.861,349,0.959,413,3.818,437,1.48,529,2.628,1603,3.493,1787,8.836,2588,6.351,3196,7.29,3801,6.756,6682,8.375,10620,10.009,10625,10.009,10640,8.587,10647,7.781,12265,10.458,12269,6.176,12270,6.084,14919,8.126,14922,8.126,18697,10.009,18698,11.441,18699,9.288]],["title/controllers/ShareTokenController.html",[259,2.591,18700,5.705]],["body/controllers/ShareTokenController.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.92,27,0.375,29,0.713,30,0.001,31,0.513,32,0.191,33,0.439,35,1.1,36,2.413,95,0.163,100,1.737,101,0.009,103,0,104,0,124,5.092,138,1.665,150,1.178,177,0.946,223,2.129,226,0.739,259,1.967,261,2.455,262,2.699,270,6.138,278,5.272,282,4.768,285,3.387,287,7.428,290,7.369,294,6.301,324,6.234,333,3.874,335,6.079,336,8.156,337,2.672,338,2.733,340,2.485,343,2.754,345,1.646,346,5.434,347,4.766,349,0.946,437,1.467,602,4.178,608,2.11,631,2.653,685,3.248,823,3.798,1162,4.839,1202,5.185,1545,4.178,1546,3.846,1547,4.523,1555,2.895,2471,6.013,2622,4.876,2705,2.441,2874,6.659,2876,7.723,2878,3.941,2879,6.979,2882,7.428,2903,4.338,2904,2.776,2966,3.339,2984,3.137,2985,2.895,3196,4.891,3573,2.532,3720,4.509,6216,6.014,6285,2.548,6454,4.178,6542,5.272,8443,8.644,12261,3.551,13156,6.203,14122,5.709,14837,4.78,17779,4.331,17794,4.523,17796,4.523,18681,8.863,18684,4.523,18685,4.523,18700,6.431,18701,10.131,18702,5.17,18703,8.464,18704,8.464,18705,8.464,18706,5.17,18707,8.644,18708,7.676,18709,5.17,18710,5.17,18711,5.17,18712,10.271,18713,8.863,18714,5.17,18715,5.17,18716,7.676,18717,5.17,18718,7.676,18719,5.17,18720,5.17,18721,5.17,18722,5.17,18723,5.17,18724,5.17,18725,4.523,18726,4.523,18727,7.398,18728,6.431,18729,6.431,18730,5.17,18731,5.17,18732,5.17,18733,5.17,18734,5.17,18735,5.17,18736,5.17,18737,5.17,18738,5.17,18739,5.17,18740,4.523,18741,5.17,18742,7.676,18743,5.17,18744,5.17,18745,5.17,18746,5.17,18747,5.17]],["title/classes/ShareTokenDO.html",[0,0.231,18748,5.191]],["body/classes/ShareTokenDO.html",[0,0.264,2,0.869,3,0.018,4,0.018,5,0.009,7,0.118,26,2.416,27,0.529,29,0.605,30,0.001,31,0.435,32,0.185,33,0.632,34,1.739,47,0.72,83,3.134,95,0.129,101,0.021,103,0.001,104,0.001,112,0.811,124,5.732,131,4.272,159,7.703,180,1.829,187,5.919,197,6.083,379,0.971,382,2.343,654,2.309,838,3.2,1555,6.386,1604,3.286,1686,7.044,1867,2.876,2442,3.802,2627,3.469,2637,3.644,3358,5.245,3573,3.802,4779,4.31,4804,4.659,5092,4.388,5104,4.471,5778,5.648,5831,4.883,6285,3.826,7252,7.997,7253,6.083,10116,4.883,12265,8.249,12266,7.011,12267,8.934,13919,6.793,16665,6.275,18748,9.592,18749,12.917,18750,7.765,18751,10.208,18752,9.553,18753,7.765,18754,9.215,18755,7.765,18756,7.765,18757,7.179,18758,7.765,18759,7.765,18760,7.179]],["title/classes/ShareTokenFactory.html",[0,0.231,18761,6.296]],["body/classes/ShareTokenFactory.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,8,1.332,26,2.696,27,0.363,29,0.69,30,0.001,31,0.496,32,0.121,33,0.425,34,1.893,35,1.064,49,3.494,59,2.752,95,0.161,99,1.478,101,0.015,103,0.001,104,0.001,124,5.584,180,1.991,236,1.807,349,1.148,437,1.146,461,6.114,463,6.569,521,3.509,524,5.053,525,5.151,1555,4.961,2281,5.315,3022,6.313,3573,4.337,4129,5.803,6285,4.365,7356,7.421,12266,6.084,12270,5.803,18707,6.753,18748,6.753,18761,11.222,18762,11.11,18763,8.859,18764,11.11,18765,11.11,18766,8.859,18767,8.859,18768,8.859,18769,8.859,18770,7.75]],["title/classes/ShareTokenImportBodyParams.html",[0,0.231,18713,5.958]],["body/classes/ShareTokenImportBodyParams.html",[0,0.373,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,27,0.45,30,0.001,31,0.616,32,0.15,33,0.527,34,1.872,47,0.893,95,0.153,101,0.014,103,0.001,104,0.001,112,0.873,124,6.052,133,3.842,138,1.999,142,4.947,143,2.816,144,4.166,145,3.511,148,2.763,150,1.983,153,2.498,236,1.787,245,3.157,247,3.811,248,5.025,249,4.445,1867,4.07,6222,10.534,6728,10.534,7117,7.035,7119,8.376,11776,9.205,11787,7.001,18682,9.433,18713,9.613,18771,8.705,18772,8.705,18773,10.988,18774,8.705,18775,8.705]],["title/interfaces/ShareTokenInfoDto.html",[105,0.735,18776,5.705]],["body/interfaces/ShareTokenInfoDto.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.174,47,0.97,95,0.126,101,0.016,103,0.001,104,0.001,105,1.069,107,2.377,112,0.945,124,6.801,4332,9.158,6285,6.519,12266,9.086,12269,6.586,12270,6.489,18776,9.967,18777,9.906,18778,10.69]],["title/classes/ShareTokenInfoResponse.html",[0,0.231,18728,5.705]],["body/classes/ShareTokenInfoResponse.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.515,29,0.668,30,0.001,31,0.48,32,0.172,33,0.411,47,0.888,95,0.152,101,0.014,103,0.001,104,0.001,112,0.864,124,6.972,138,2.175,150,1.954,187,6.537,245,3.404,247,3.754,379,1.361,773,4.34,838,2.688,2720,6.111,2723,6.845,2862,5.263,6276,5.702,6285,6.397,12266,8.916,12269,5.702,12270,5.617,18682,10.17,18728,10.875,18778,10.49,18779,8.576,18780,8.576,18781,8.576,18782,8.576,18783,8.576,18784,8.576]],["title/classes/ShareTokenInfoResponseMapper.html",[0,0.231,18725,5.958]],["body/classes/ShareTokenInfoResponseMapper.html",[0,0.321,2,1.059,3,0.029,4,0.022,5,0.011,7,0.143,8,1.387,27,0.388,29,0.737,30,0.001,31,0.53,32,0.129,33,0.454,35,1.137,95,0.147,100,3.887,101,0.016,103,0.001,104,0.001,124,6.284,236,1.539,349,0.977,413,3.85,437,1.224,781,5.617,782,6.424,789,4.725,1557,6.616,6285,4.663,14557,8.279,18725,10.125,18728,10.912,18740,8.279,18776,10.912,18778,7.647,18785,10.7,18786,11.573,18787,9.463,18788,9.463,18789,9.463]],["title/classes/ShareTokenParentTypeMapper.html",[0,0.231,18790,5.958]],["body/classes/ShareTokenParentTypeMapper.html",[0,0.312,2,1.03,3,0.021,4,0.021,5,0.011,7,0.14,8,1.364,27,0.377,29,0.717,30,0.001,31,0.516,32,0.155,33,0.442,35,1.106,95,0.157,101,0.015,103,0.001,104,0.001,226,1.316,236,1.851,349,0.951,413,3.803,437,1.471,529,2.604,1603,3.461,1787,8.799,2588,6.315,3196,7.248,3801,6.694,6682,8.341,6775,7.71,10620,9.953,10625,9.953,10635,8.509,10642,8.509,10647,7.71,12266,8.86,12269,6.119,12270,6.029,14919,8.051,14922,8.051,14923,8.509,18790,9.953,18791,11.377,18792,9.203,18793,9.203]],["title/classes/ShareTokenPayloadResponse.html",[0,0.231,18794,5.958]],["body/classes/ShareTokenPayloadResponse.html",[0,0.308,2,1.016,3,0.021,4,0.021,5,0.011,7,0.138,27,0.503,29,0.707,30,0.001,31,0.509,32,0.168,33,0.436,47,0.796,95,0.143,101,0.015,103,0.001,104,0.001,112,0.896,124,6.453,138,2.052,150,2.068,245,3.366,379,1.135,838,2.846,1555,5.084,2862,5.572,3573,6.009,6270,7.112,6276,6.036,6285,6.048,12266,9.068,12269,6.036,12270,5.947,18682,10.058,18754,10.374,18794,9.869,18795,9.079,18796,11.281,18797,9.079,18798,9.079,18799,9.079,18800,8.394,18801,8.394]],["title/injectables/ShareTokenRepo.html",[539,0.901,18802,5.503]],["body/injectables/ShareTokenRepo.html",[0,0.169,3,0.012,4,0.012,5,0.006,7,0.075,8,0.895,10,3.032,12,3.424,18,3.776,26,2.526,27,0.539,29,1.015,30,0.001,31,0.73,32,0.178,33,0.626,34,1.525,35,1.566,36,2.595,40,2.407,95,0.135,96,1.368,101,0.008,103,0,104,0,112,0.711,124,4.998,131,2.795,133,2.61,154,2.277,159,5.041,173,1.472,180,1.337,226,0.712,236,1.214,262,2.881,349,1.1,381,1.672,382,3.897,437,1.446,448,4.888,519,1.542,539,0.988,541,1.192,556,1.88,603,2.395,608,1.148,680,5.217,686,3.523,687,5.39,718,2.763,1555,4.179,1604,4.732,1941,2.84,2240,9.097,2242,5.318,2243,5.318,2244,5.318,2245,5.318,2246,5.217,2247,5.217,2248,5.318,2249,5.217,2250,5.318,2257,3.548,2259,5.726,2260,3.548,2262,3.548,2264,3.261,2265,5.217,2266,3.548,2268,3.548,2270,5.318,2276,3.363,2277,5.217,2279,3.548,2281,2.987,2282,3.056,2283,3.548,2285,3.548,2287,3.481,2288,3.548,2306,3.703,3573,3.654,4804,4.478,5831,4.693,5931,3.621,5932,3.621,5933,3.621,5934,3.621,5935,3.621,5936,3.621,5937,3.621,5938,3.621,5939,3.621,5961,6.9,6285,3.677,6542,8.376,9091,3.795,12262,9.713,12267,7.79,12269,3.31,12270,3.261,14711,4.603,14721,4.171,18748,8.839,18752,6.252,18754,6.03,18757,4.603,18760,4.603,18802,6.03,18803,8.951,18804,4.979,18805,7.463,18806,7.463,18807,4.979,18808,7.463,18809,4.979,18810,4.979,18811,4.979,18812,4.979,18813,4.979,18814,4.979,18815,4.979,18816,4.979,18817,4.979,18818,7.463,18819,4.979,18820,4.979,18821,4.979,18822,4.979,18823,4.979,18824,4.979]],["title/classes/ShareTokenResponse.html",[0,0.231,18729,5.705]],["body/classes/ShareTokenResponse.html",[0,0.298,2,0.981,3,0.02,4,0.02,5,0.01,7,0.133,27,0.519,29,0.682,30,0.001,31,0.491,32,0.173,33,0.579,47,0.779,83,3.388,95,0.14,101,0.014,103,0.001,104,0.001,112,0.876,124,6.704,138,2.197,149,4.594,150,1.996,159,8.825,187,6.679,197,6.864,236,1.425,245,3.426,379,1.38,773,4.434,1555,7.099,16314,8.101,16665,7.081,18682,10.236,18707,6.679,18729,10.945,18794,10.566,18825,8.762,18826,8.762,18827,8.762,18828,8.762,18829,8.762,18830,8.762]],["title/classes/ShareTokenResponseMapper.html",[0,0.231,18726,5.958]],["body/classes/ShareTokenResponseMapper.html",[0,0.322,2,1.062,3,0.022,4,0.022,5,0.011,7,0.144,8,1.389,27,0.388,29,0.739,30,0.001,31,0.531,32,0.13,33,0.455,35,1.14,95,0.147,100,3.893,101,0.016,103,0.001,104,0.001,124,6.29,159,6.407,236,1.543,349,0.98,413,3.854,437,1.227,781,5.63,782,6.433,789,4.736,1555,5.312,6542,6.515,12269,6.307,12270,6.213,14557,8.298,18726,10.139,18729,10.92,18748,9.937,18785,10.715,18831,11.59,18832,9.485,18833,9.485,18834,8.77]],["title/injectables/ShareTokenService.html",[539,0.901,18835,5.503]],["body/injectables/ShareTokenService.html",[0,0.209,3,0.014,4,0.014,5,0.007,7,0.094,8,1.046,27,0.476,29,0.904,30,0.001,31,0.65,32,0.169,33,0.557,35,1.322,36,2.565,59,1.917,83,1.894,95,0.157,101,0.01,103,0,104,0,120,3.838,124,5.835,131,3.268,159,5.893,177,2.125,226,0.882,236,1.004,262,2.82,349,1.046,379,1.091,437,1.423,486,1.856,490,3.589,519,1.911,539,1.155,541,1.477,593,2.285,603,2.542,608,2.778,1246,5.829,1555,5.668,1852,8.369,1872,3.88,2988,4.985,2989,4.985,5052,9.707,5053,9.445,5257,6.73,6542,8.51,9760,4.703,12266,4.237,12267,9.707,12269,4.102,12270,4.041,12635,5.704,16713,5.397,18748,8.85,18752,7.309,18754,8.892,18770,5.397,18778,9.382,18802,10.013,18834,8.066,18835,7.05,18836,12.053,18837,8.725,18838,10.122,18839,8.725,18840,8.725,18841,6.169,18842,9.74,18843,6.169,18844,8.725,18845,6.169,18846,6.169,18847,6.169,18848,8.725,18849,6.169,18850,8.725,18851,6.169,18852,5.397,18853,5.397,18854,6.169,18855,6.169,18856,6.169,18857,6.169,18858,6.169,18859,6.169,18860,6.169,18861,5.704,18862,6.169,18863,5.704,18864,6.169,18865,5.704,18866,6.169]],["title/injectables/ShareTokenUC.html",[539,0.901,18727,5.503]],["body/injectables/ShareTokenUC.html",[0,0.101,3,0.007,4,0.007,5,0.004,7,0.045,8,0.595,26,2.669,27,0.457,29,0.87,30,0.001,31,0.626,32,0.161,33,0.536,34,0.845,35,1.312,36,2.377,39,3.278,47,0.96,55,1.602,59,2.313,83,2.286,95,0.149,99,0.497,100,1,101,0.005,102,3.208,103,0,104,0,119,1.515,120,2.183,124,5.182,131,2.789,142,1.942,159,2.011,177,1.817,226,0.426,236,1.615,239,2.05,262,2.842,349,0.979,379,0.621,437,1.541,486,2.24,490,2.64,519,0.922,521,1.966,529,2.681,539,0.657,541,0.713,556,1.25,560,1.226,603,2.659,608,2.861,631,1.528,643,2.836,739,3.621,996,2.371,997,2.343,998,2.343,1117,3.872,1162,1.422,1246,6.67,1278,0.942,1454,2.122,1555,5.56,1609,4.03,1612,3.512,1613,6.328,1615,1.807,1618,3.872,1698,5.009,1742,7.424,1796,4.517,1852,6.401,1861,5.081,1863,2.406,1867,2.364,1872,4.683,1881,3.692,2020,1.303,2021,1.458,2022,1.406,2253,2.616,2254,3.361,2421,2.916,2472,1.352,2621,1.715,2627,2.217,2637,2.329,2938,4.158,2939,5.157,2945,7.424,2946,7.939,2954,5.833,2966,3.205,2984,1.807,2985,1.668,2988,2.406,2989,2.406,3030,2.605,3031,2.605,3033,2.605,3034,6.237,3196,1.897,3307,1.487,3612,4.462,3801,2.166,3806,4.642,3881,1.668,4804,1.787,5067,4.517,5257,7.073,5831,1.873,6055,2.122,6222,8.291,6285,4.67,6542,5.114,6708,7.658,6710,4.158,6727,8.023,6728,9.554,6766,4.158,6770,4.589,6776,2.753,6780,4.808,7992,4.158,9503,2.495,9760,2.27,11628,2.122,12256,5.9,12265,2.406,12266,6.509,12269,1.98,12270,1.951,13158,4.158,14176,4.589,17126,2.495,18684,2.605,18685,2.605,18697,2.605,18703,6.884,18704,6.884,18705,5.9,18727,4.011,18740,4.342,18748,2.27,18752,6.93,18754,7.658,18770,6.514,18776,4.158,18778,4.011,18790,2.605,18800,2.753,18801,2.753,18835,7.22,18861,6.884,18863,6.884,18865,6.884,18867,11.388,18868,2.978,18869,4.963,18870,4.963,18871,4.963,18872,4.963,18873,2.978,18874,2.978,18875,4.963,18876,2.978,18877,4.963,18878,2.978,18879,4.963,18880,2.978,18881,4.963,18882,2.978,18883,2.978,18884,2.978,18885,2.753,18886,2.978,18887,2.978,18888,2.978,18889,2.978,18890,2.978,18891,4.963,18892,2.978,18893,4.963,18894,2.978,18895,2.978,18896,2.978,18897,2.978,18898,4.963,18899,2.978,18900,4.963,18901,2.978,18902,6.382,18903,2.978,18904,2.978,18905,2.978,18906,2.978,18907,2.978,18908,4.963,18909,4.963,18910,7.446,18911,2.978,18912,2.978,18913,6.382,18914,4.963,18915,2.978,18916,2.978,18917,2.978,18918,4.963,18919,2.978,18920,4.589,18921,4.963,18922,4.963,18923,2.978,18924,4.963,18925,4.963,18926,2.978,18927,2.978,18928,2.978,18929,2.978,18930,6.382,18931,5.583,18932,2.978,18933,6.382,18934,2.978,18935,2.978,18936,2.978]],["title/classes/ShareTokenUrlParams.html",[0,0.231,18712,5.958]],["body/classes/ShareTokenUrlParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,124,6.756,133,4.1,138,1.758,142,4.586,143,2.611,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,248,4.893,257,7.191,18682,9.185,18689,9.185,18712,10.257,18937,9.668,18938,11.725,18939,9.668]],["title/modules/SharingApiModule.html",[201,1.804,18586,5.335]],["body/modules/SharingApiModule.html",[0,0.338,3,0.017,4,0.017,5,0.009,30,0.001,95,0.173,101,0.016,103,0.001,104,0.001,201,3.159,203,2.684,204,2.884,205,2.968,206,2.955,207,2.943,208,4.368,209,3.739,214,6.05,218,3.954,219,2.907,220,2.839,223,4.604,225,4.41,226,1.067,560,3.072,1278,2.361,1692,7.115,1737,9.698,2472,3.387,2627,3.334,2637,3.502,2705,3.523,3546,5.846,10509,6.03,10510,6.03,13862,9.291,13863,9.698,13881,9.698,18586,11.115,18700,9.367,18727,10.322,18802,8.035,18835,9.036,18842,8.035,18852,6.528,18853,6.528,18940,7.462,18941,7.462,18942,7.462,18943,10.701,18944,6.899,18945,6.899,18946,6.899]],["title/modules/SharingModule.html",[201,1.804,18943,5.705]],["body/modules/SharingModule.html",[0,0.332,3,0.017,4,0.017,5,0.009,30,0.001,95,0.172,101,0.016,103,0.001,104,0.001,201,3.126,203,2.616,204,2.811,205,2.893,206,2.881,207,2.869,208,4.323,209,4.151,214,6.011,218,3.887,219,2.834,220,2.767,223,4.024,225,4.354,226,1.04,560,2.994,1278,2.301,1692,7.069,1737,9.636,2472,3.301,2627,3.249,2637,3.414,2705,3.433,3546,5.698,10509,5.878,10510,5.878,13862,9.231,13863,9.636,13881,9.636,18586,5.698,18700,8.188,18727,7.898,18802,10.246,18835,11.069,18842,10.246,18852,6.363,18853,6.363,18943,11.955,18944,6.725,18945,6.725,18946,6.725,18947,7.273,18948,7.273,18949,7.273,18950,7.273]],["title/classes/SingleColumnBoardResponse.html",[0,0.231,17675,5.705]],["body/classes/SingleColumnBoardResponse.html",[0,0.24,2,0.791,3,0.017,4,0.017,5,0.008,7,0.107,27,0.515,29,0.55,30,0.001,31,0.396,32,0.181,33,0.339,34,1.633,47,0.888,95,0.138,101,0.012,103,0.001,104,0.001,112,0.761,119,2.374,138,2.218,150,1.611,153,2.858,172,3.061,245,3.297,247,3.094,253,4.694,379,1.199,556,1.781,773,3.577,818,3.553,820,4.992,848,6.71,993,5.322,1042,8.375,1207,4.106,1666,2.991,1672,4.992,1885,5.647,2633,6.746,2710,10.075,2723,6.03,2725,3.628,2859,5.107,2860,5.107,3401,9.773,3738,7.574,4086,6.184,5092,5.418,5104,5.521,5563,10.206,6537,6.375,6895,5.538,6899,7.511,7451,5.388,7491,8.677,7665,6.184,8216,10.215,17574,6.536,17675,10.215,18951,7.069,18952,7.069,18953,7.069,18954,7.069,18955,7.069,18956,7.069,18957,7.069,18958,5.388,18959,7.069,18960,7.069]],["title/classes/SingleFileParams.html",[0,0.231,6308,4.6]],["body/classes/SingleFileParams.html",[0,0.457,2,0.735,3,0.015,4,0.021,5,0.011,7,0.099,26,2.671,27,0.269,30,0.001,32,0.162,39,1.765,47,0.951,95,0.16,99,1.095,101,0.022,103,0.001,104,0.001,105,0.708,112,0.723,119,1.854,138,1.193,143,1.461,147,4.891,148,2.082,149,4.301,150,1.495,151,6.057,153,1.492,154,1.402,245,3.648,247,2.872,248,5.13,249,4.573,348,3.276,807,5.016,808,6.783,838,3.281,851,3.134,988,2.83,990,2.218,1079,3.854,1139,5.804,1140,4.298,1141,4.298,1198,2.256,1280,2.051,2680,4.724,2863,5.157,3573,3.213,4209,2.226,5890,5.302,5905,6.651,6237,4.227,6250,5.967,6256,6.169,6285,3.233,6288,4.507,6289,4.588,6290,4.588,6293,7.897,6296,4.588,6297,8.173,6298,7.904,6299,7.904,6300,4.588,6301,4.507,6302,7.068,6303,4.507,6304,4.588,6305,4.432,6306,7.636,6307,4.363,6308,6.153,6309,4.507,6310,4.432,6311,4.432,6312,4.181,6313,4.588,6314,4.588,6315,4.588,6316,4.181,6317,4.181,6318,4.298,6319,4.363,6320,4.588,18961,6.562]],["title/classes/SortExternalToolParams.html",[0,0.231,9229,5.705]],["body/classes/SortExternalToolParams.html",[0,0.381,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.46,30,0.001,31,0.629,32,0.154,33,0.539,34,1.914,95,0.155,101,0.019,103,0.001,104,0.001,112,0.892,138,2.043,148,2.862,149,4.273,150,2.055,180,2.013,247,3.947,249,4.544,382,3.389,480,2.504,486,2.713,721,8.055,742,6.091,838,3.522,851,4.308,2487,4.093,2489,2.99,2990,9.327,4453,10.648,4457,7.554,4458,7.889,8697,7.287,9229,9.411,18962,9.018,18963,13.177,18964,9.018,18965,8.337,18966,9.018]],["title/classes/SortHelper.html",[0,0.231,18967,6.296]],["body/classes/SortHelper.html",[0,0.282,2,0.928,3,0.019,4,0.019,5,0.01,7,0.126,8,1.277,27,0.34,29,0.83,30,0.001,31,0.465,32,0.146,33,0.398,35,0.996,47,0.752,55,2.765,95,0.105,99,1.383,101,0.014,103,0.001,104,0.001,349,0.857,413,3.625,479,5.009,556,3.129,662,2.608,696,3.271,708,4.426,721,8.519,1507,8.63,2034,7.655,2664,10.075,7042,6.497,18967,9.85,18968,10.654,18969,7.255,18970,10.654,18971,10.654,18972,8.293,18973,8.293]],["title/classes/SortImportUserParams.html",[0,0.231,12763,5.705]],["body/classes/SortImportUserParams.html",[0,0.381,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.46,30,0.001,32,0.154,33,0.539,95,0.162,101,0.019,103,0.001,104,0.001,112,0.892,138,2.043,148,2.862,149,4.273,150,2.055,180,2.013,247,3.947,249,4.544,382,3.389,480,2.504,486,2.713,651,5.366,652,5.366,721,8.055,742,6.091,838,3.522,851,4.308,2990,9.327,4453,10.648,4457,7.554,4458,7.889,4508,4.029,10742,7.554,12763,9.411,12874,12.182,18965,8.337,18974,9.018,18975,9.018,18976,9.018]],["title/classes/SortingParams.html",[0,0.231,4453,5.503]],["body/classes/SortingParams.html",[0,0.381,2,1.37,3,0.021,4,0.021,5,0.011,7,0.137,9,6.046,27,0.46,30,0.001,32,0.175,33,0.539,95,0.142,101,0.015,103,0.001,104,0.001,112,0.892,138,2.226,148,2.862,149,4.273,150,2.055,249,4.544,479,4.208,480,2.504,486,2.713,517,4.307,721,8.661,742,7.588,838,3.522,851,4.308,2990,9.327,3617,9.411,4453,9.078,4457,7.554,10460,9.078,18977,9.018,18978,9.018,18979,11.234,18980,9.018,18981,9.018]],["title/injectables/StartUserLoginMigrationUc.html",[539,0.901,18982,5.705]],["body/injectables/StartUserLoginMigrationUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.101,8,1.102,27,0.432,29,0.821,30,0.001,31,0.59,32,0.144,33,0.506,35,1.104,36,2.419,39,2.473,47,0.966,95,0.163,99,1.109,101,0.011,103,0.001,104,0.001,128,5.194,131,3.444,177,2.081,236,1.495,239,2.903,262,2.705,349,0.687,379,1.15,437,1.363,529,2.601,539,1.217,541,1.592,560,2.737,593,2.462,603,2.284,608,2.751,643,2.955,654,3.134,990,2.248,1275,3.051,1278,2.103,1609,4.975,1615,4.034,1698,6.687,1796,4.034,1900,7.15,1902,6.903,1904,3.723,1905,5.148,1907,5.373,2253,5.186,2472,3.018,2476,4.648,4209,4.374,4508,5.079,4510,5.373,4513,5.373,4514,8.795,4517,6.147,4521,5.937,4523,7.062,4524,4.945,4527,5.208,4532,7.701,4533,6.838,8889,5.208,14124,5.373,17519,5.57,17522,6.147,17523,5.816,18478,5.57,18982,7.701,18983,11.369,18984,9.193,18985,8.043,18986,9.193,18987,6.648,18988,9.193,18989,6.648,18990,7.429,18991,6.648,18992,6.648,18993,6.648,18994,6.648]],["title/classes/StatelessAuthorizationParams.html",[0,0.231,16216,5.958]],["body/classes/StatelessAuthorizationParams.html",[0,0.376,2,0.985,3,0.021,4,0.021,5,0.01,7,0.133,27,0.52,30,0.001,32,0.174,33,0.658,47,0.942,95,0.14,101,0.015,103,0.001,104,0.001,112,0.879,138,2.309,148,2.793,248,5.298,249,5.292,388,9.268,808,6.638,851,4.204,950,5.615,990,4.091,1723,9.48,1724,11.188,1725,8.137,1727,11.188,1728,8.137,1733,8.137,1734,5.607,1735,8.137,1736,8.137,16216,9.679,18995,13.082,18996,8.801,18997,8.801,18998,8.801,18999,8.801,19000,8.801]],["title/classes/StorageProviderEncryptedStringType.html",[0,0.231,12276,5.705]],["body/classes/StorageProviderEncryptedStringType.html",[0,0.235,2,0.774,3,0.016,4,0.016,5,0.008,7,0.105,8,1.132,27,0.473,29,0.837,30,0.001,31,0.602,32,0.18,33,0.516,35,1.134,47,0.996,59,2.147,95,0.136,96,1.899,101,0.011,103,0.001,104,0.001,112,0.75,153,1.571,173,2.044,180,1.692,182,2.248,349,1.29,379,0.864,437,1.221,480,3.468,556,3.146,560,2.845,572,8.424,593,3.497,603,2.16,696,3.724,1154,3.755,1393,8.235,1550,5.027,1666,2.924,1671,8.197,1762,5.665,1925,5.82,2020,3.025,2021,3.384,2022,3.262,2023,4.403,6596,4.925,7206,6.867,8326,8.69,11775,6.867,11962,8.26,11963,9.009,12276,7.909,14578,5.79,19001,6.911,19002,8.729,19003,9.441,19004,9.441,19005,9.441,19006,9.441,19007,9.441,19008,10.754,19009,9.441,19010,6.911,19011,9.441,19012,6.911,19013,6.911,19014,6.911,19015,9.441,19016,8.729,19017,9.441,19018,6.911,19019,6.39,19020,9.441,19021,6.911,19022,6.39]],["title/entities/StorageProviderEntity.html",[154,1.456,8018,5.065]],["body/entities/StorageProviderEntity.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,27,0.507,30,0.001,32,0.179,33,0.508,47,0.984,95,0.149,96,2.255,101,0.017,103,0.001,104,0.001,105,0.886,112,0.84,138,2.251,143,2.356,144,2.704,154,2.262,155,2.739,160,4.682,172,4.26,173,2.428,174,4.209,175,3.629,178,3.41,180,1.471,181,2.197,182,2.67,2611,3.787,4802,6.257,6337,8.651,6339,8.651,6340,9.168,8018,7.872,11688,7.181,12273,9.259,12274,7.589,12275,11.441,12276,9.813,12277,7.589,12278,7.589,12279,7.589,12280,7.589,12281,7.589,12282,7.589,12283,7.589,12284,7.589,12285,7.589,19023,8.208,19024,8.208,19025,8.208,19026,8.208]],["title/injectables/StorageProviderRepo.html",[539,0.901,8015,5.705]],["body/injectables/StorageProviderRepo.html",[0,0.253,3,0.017,4,0.017,5,0.009,7,0.113,8,1.191,10,4.035,12,4.557,18,5.025,26,2.104,27,0.534,29,0.967,30,0.001,31,0.695,32,0.17,33,0.596,34,1.269,35,1.491,36,2.641,40,3.602,49,3.917,95,0.151,96,2.046,97,3.228,99,1.242,101,0.012,103,0.001,104,0.001,154,1.592,155,3.314,177,1.363,180,1.78,208,3.637,226,1.065,262,2.937,349,1.026,379,0.932,382,3.595,437,0.963,479,5.114,539,1.314,541,1.783,679,7.656,685,4.202,686,4.688,687,5.653,711,4.571,712,4.626,713,4.571,714,4.626,715,5.308,716,4.571,717,4.626,718,4.134,2251,5.418,2252,6.862,2256,7.223,2294,5.031,3638,5.116,5947,5.678,8015,8.319,8018,7.386,15068,9.335,19027,7.448,19028,7.448,19029,7.448,19030,7.448,19031,7.448]],["title/classes/StringValidator.html",[0,0.231,12873,5.335]],["body/classes/StringValidator.html",[0,0.291,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.305,27,0.446,29,0.848,30,0.001,31,0.61,32,0.149,33,0.522,35,1.308,47,0.972,59,3.382,101,0.014,103,0.001,104,0.001,119,2.215,143,2.423,145,3.492,248,4.542,349,1.299,413,4.085,437,1.408,480,3.683,486,2.58,593,3.176,696,4.293,739,5.505,1507,5.464,12873,8.527,13034,11.003,19016,7.929,19032,8.576,19033,10.884,19034,10.884,19035,8.576,19036,10.884,19037,8.576,19038,8.576,19039,8.576]],["title/entities/Submission.html",[154,1.456,2824,2.996]],["body/entities/Submission.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.156,26,2.186,27,0.499,30,0.001,32,0.172,33,0.56,34,0.789,47,0.798,55,1.843,62,2.719,72,2.101,95,0.148,96,1.272,101,0.012,103,0,104,0,105,0.5,112,0.761,119,2.523,138,2.217,143,2.596,144,3.399,145,1.961,154,1.51,155,1.545,160,4.884,168,4.028,172,3.723,173,1.369,174,2.809,175,2.047,178,1.923,180,0.83,181,1.239,182,1.506,226,0.662,236,1.559,239,2.676,349,1.205,437,1.678,480,1.285,486,1.393,528,2.41,529,1.31,556,2.414,603,1.419,644,4.709,654,2.85,662,3.42,765,2.569,914,3.236,937,2.666,950,2.148,1162,3.374,1603,1.741,1657,2.198,1756,3.179,1758,3.179,1764,3.299,1773,2.526,2611,5.625,2614,3.854,2618,2.526,2627,5.446,2628,2.875,2824,3.767,3077,6.145,3395,2.949,3396,3.236,3683,2.616,3760,6.472,3765,6.472,3773,5.917,3775,5.917,4209,1.57,5040,3.241,6284,3.92,6586,6.85,6587,3.078,6589,2.841,6591,2.592,6607,5.033,6611,2.875,6612,2.777,6819,3.127,6820,4.28,6932,4.561,7112,2.949,8976,7.304,11895,4.938,11896,4.938,11901,4.938,11902,3.236,12118,6.97,12286,5.917,12287,4.28,12288,8.859,12289,9.475,12290,6.179,12291,4.28,12292,6.53,12293,4.28,12294,4.28,12295,4.28,12296,4.28,12297,3.741,12298,4.28,12299,4.28,12300,4.28,12301,3.878,12302,4.28,12303,4.28,12304,4.28,12305,4.28,12306,4.28,12307,4.28,12308,9.54,12309,4.28,12310,4.28,12311,4.28,12312,4.28,12313,4.28,12314,4.28,12315,8.859,12316,4.28,12317,6.37,12318,3.741,12319,10.054,12320,6.53,12321,3.878,12322,6.53,12323,4.05,12324,3.367,12325,3.627,12326,4.28,12327,4.28,12328,4.28,12329,4.28,12330,6.53,12331,6.53,12332,4.28,12333,4.28,12334,4.28,12335,4.28,12336,6.37,12337,3.741,12338,3.878,12339,6.53,19040,4.629,19041,4.629,19042,4.629,19043,4.629,19044,4.629,19045,4.629,19046,4.629,19047,4.629,19048,4.629,19049,4.629,19050,4.629]],["title/classes/SubmissionContainerContentBody.html",[0,0.231,5716,4.528]],["body/classes/SubmissionContainerContentBody.html",[0,0.454,2,0.64,3,0.013,4,0.013,5,0.007,7,0.087,9,2.697,27,0.234,30,0.001,31,0.631,32,0.186,33,0.396,47,0.875,83,2.536,95,0.143,99,0.953,101,0.022,103,0,104,0,112,0.656,138,1.039,143,1.272,148,1.813,149,3.69,150,1.302,153,2.205,172,1.824,180,2.02,245,3.628,248,5.055,249,4.753,284,1.765,305,3.29,480,3.13,806,5.262,807,3.37,838,1.791,851,2.729,1198,1.964,1207,1.824,1582,4.803,1883,4.011,2196,4.56,2442,2.798,2823,2.763,2824,3.633,2863,2.816,3219,3.392,3221,3.392,3224,3.356,3227,5.013,3230,4.977,3235,3.2,3708,3.549,3729,3.549,3730,6.839,4104,5.616,5622,6.18,5624,6.264,5626,6.18,5628,6.264,5630,6.264,5675,3.743,5712,6.449,5713,6.449,5714,6.449,5715,6.449,5716,7.065,5904,3.593,5905,6.783,7047,3.799,7106,4.787,7107,5.262,8239,8.182,8240,5.673,8241,3.924,8244,5.41,8245,6.449,8246,6.449,8247,3.924,8248,6.449,8249,5.069,8250,5.579,8251,6.449,8252,6.449,8253,3.799,8254,3.799,8255,3.799,8256,3.799,8257,3.924,8258,3.924,8259,3.924,8260,3.924,8261,3.924,19051,5.714]],["title/classes/SubmissionContainerElement.html",[0,0.231,2814,4.283]],["body/classes/SubmissionContainerElement.html",[0,0.215,2,0.709,3,0.015,4,0.015,5,0.008,7,0.096,8,1.066,27,0.537,29,0.972,30,0.001,31,0.699,32,0.177,33,0.599,35,1.531,36,1.891,55,1.913,59,1.968,83,3.6,95,0.13,101,0.017,103,0.001,104,0.001,105,0.684,112,0.706,119,2.09,137,5.59,180,1.84,262,2.25,349,1.061,381,2.986,382,3.844,437,0.819,448,3.643,474,2.706,479,3.33,480,2.468,517,2.429,519,3.632,593,4.343,604,3.611,608,1.46,662,2.795,686,4.196,1154,2.519,1603,2.382,1604,4.711,1607,6.632,1679,4.056,1885,2.643,2453,6.23,2466,5.221,2727,7.857,2730,6.334,2731,6.334,2732,6.334,2733,5.91,2734,6.334,2736,4.212,2737,5.455,2738,6.54,2740,6.214,2741,5.455,2742,6.411,2744,4.429,2745,4.698,2747,6.458,2748,4.429,2750,6.334,2752,4.429,2754,4.212,2781,5.393,2814,7.002,2824,2.787,2825,6.161,2826,5.119,3230,5.713,3967,6.465,3968,4.607,3969,4.607,3978,3.984,3983,5.393,4742,5.857,4743,5.857,8716,4.514,17542,5.857,17544,5.857,19052,8.298,19053,6.334,19054,6.334,19055,8.218,19056,5.857,19057,5.857,19058,5.857,19059,5.542,19060,5.857]],["title/classes/SubmissionContainerElementContent.html",[0,0.231,19061,5.705]],["body/classes/SubmissionContainerElementContent.html",[0,0.355,2,0.901,3,0.019,4,0.019,5,0.01,7,0.122,27,0.428,29,0.626,30,0.001,31,0.451,32,0.178,33,0.386,34,1.976,47,0.819,83,4.005,95,0.147,99,1.342,101,0.017,103,0.001,104,0.001,112,0.829,138,1.463,150,1.833,153,2.375,245,3.42,253,3.939,379,1.451,404,3.283,517,4.005,593,4.548,773,4.071,818,4.043,838,2.522,2196,4.693,2433,6.268,2507,3.594,2825,6.961,2859,4.285,2860,4.285,2863,3.964,3230,6.814,3402,5.624,3414,4.937,3657,6.886,3661,6.075,3665,5.348,3667,5.348,4025,7.963,4104,6.132,5628,5.195,8732,6.5,9934,7.037,12475,6.132,19061,10.926,19062,10.726,19063,9.139,19064,9.658,19065,9.658]],["title/classes/SubmissionContainerElementContentBody.html",[0,0.231,8251,4.528]],["body/classes/SubmissionContainerElementContentBody.html",[0,0.453,2,0.633,3,0.013,4,0.013,5,0.007,7,0.086,9,2.667,27,0.336,30,0.001,31,0.629,32,0.188,47,0.873,83,1.735,95,0.142,99,0.942,101,0.022,103,0,104,0,112,0.65,138,1.49,143,1.258,148,1.793,149,3.666,150,1.287,153,2.191,172,1.804,180,2.097,245,3.623,248,5.038,249,4.734,284,1.745,305,3.253,382,1.705,480,3.116,556,1.423,806,5.219,807,3.343,818,2.84,838,1.771,851,2.699,1198,1.942,1207,1.804,1582,3.285,1883,3.986,2196,4.884,2442,2.766,2823,2.732,2824,2.485,2863,2.784,3219,3.353,3221,3.353,3224,3.319,3227,4.981,3230,2.899,3235,3.164,3708,3.509,3729,3.509,3730,6.808,4104,5.587,5622,6.14,5624,6.224,5626,6.14,5628,6.826,5630,6.224,5675,3.701,5712,6.408,5713,6.408,5714,6.408,5715,6.408,5716,7.028,5904,3.553,5905,6.76,7047,3.756,7107,3.599,8239,8.513,8240,5.626,8241,3.88,8244,5.366,8245,6.408,8246,6.408,8247,3.88,8248,6.408,8249,3.467,8250,3.816,8251,7.028,8252,6.408,8253,3.756,8254,3.756,8255,3.756,8256,3.756,8257,3.88,8258,3.88,8259,3.88,8260,3.88,8261,3.88,8737,4.426,19066,5.65,19067,5.65]],["title/entities/SubmissionContainerElementNode.html",[154,1.456,3157,5.335]],["body/entities/SubmissionContainerElementNode.html",[0,0.296,3,0.02,4,0.02,5,0.01,7,0.132,27,0.357,30,0.001,32,0.119,83,3.701,95,0.16,96,2.397,101,0.018,103,0.001,104,0.001,105,0.941,112,0.874,138,1.587,143,2.45,144,2.874,154,2.352,155,2.911,160,4.976,172,3.513,173,2.58,180,1.972,181,2.335,349,0.901,403,4.843,437,1.128,593,4.464,1603,3.28,1604,5.1,1883,4.55,2453,5.225,2506,4.93,2507,3.898,2825,6.602,3112,5.772,3123,6.602,3157,8.62,3190,5.355,3214,9.626,3230,6.495,3561,6.753,3582,5.419,4067,5.558,4069,5.558,9942,7.632,12475,6.65,12476,7.05,19068,9.218,19069,9.626,19070,8.066]],["title/interfaces/SubmissionContainerElementProps.html",[105,0.735,19059,5.958]],["body/interfaces/SubmissionContainerElementProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.147,36,1.794,83,3.965,95,0.15,101,0.02,103,0.001,104,0.001,105,0.91,107,2.023,112,0.855,119,1.716,180,2.126,262,1.848,349,1.225,437,1.091,474,3.602,480,2.341,517,3.233,519,2.612,593,4.783,604,4.375,608,1.944,1154,3.353,1603,3.17,1604,3.568,1679,4.914,1885,3.519,2453,5.113,2466,6.325,2727,6.533,2737,5.175,2738,6.325,2741,5.175,2742,6.2,2750,6.008,2781,7.198,2814,7.461,2824,3.709,2825,5.059,2826,6.814,3230,6.627,3978,5.303,3983,6.533,8716,6.008,19052,6.814,19055,9.955,19056,7.796,19057,7.796,19058,7.796,19059,9.42,19060,7.796]],["title/classes/SubmissionContainerElementResponse.html",[0,0.231,4025,5.191]],["body/classes/SubmissionContainerElementResponse.html",[0,0.342,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,27,0.512,29,0.593,30,0.001,31,0.427,32,0.187,33,0.366,34,2.13,47,0.797,83,3.469,95,0.143,99,1.271,101,0.017,103,0.001,104,0.001,112,0.8,138,2.187,150,1.736,153,1.732,245,3.489,253,3.73,379,1.413,404,3.109,517,2.921,593,3.733,773,3.855,838,2.388,2196,5.059,2433,4.571,2507,3.403,2825,7.709,2858,4.99,2859,5.369,2860,5.369,2862,4.675,2863,4.967,3230,6.17,3402,5.326,3414,4.675,3657,7.423,3661,6.569,3665,5.065,3667,5.065,4025,9.532,4104,6.609,5628,6.51,9947,6.664,9948,6.664,9949,6.664,9950,6.664,9951,6.664,12475,5.807,19061,10.072,19062,11.879,19063,6.664,19064,7.043,19065,7.043]],["title/classes/SubmissionContainerElementResponseMapper.html",[0,0.231,5652,5.958]],["body/classes/SubmissionContainerElementResponseMapper.html",[0,0.256,2,0.845,3,0.018,4,0.018,5,0.009,7,0.114,8,1.201,27,0.491,29,0.78,30,0.001,31,0.561,32,0.164,33,0.481,34,1.285,35,1.351,95,0.143,99,1.259,100,2.535,101,0.012,103,0.001,104,0.001,112,0.795,119,2.039,236,2.028,349,1.161,376,3.287,413,3.946,437,0.976,603,2.259,604,3.066,662,2.373,739,4.385,781,4.479,782,5.56,785,5.912,787,5.613,1280,3.131,1883,5.491,1941,4.304,2196,3.053,2444,8.363,2447,7.848,2448,7.848,2450,7.636,2814,8.351,2825,7.48,3230,5.141,3657,4.479,3661,5.825,3678,5.377,4025,9.131,4104,3.988,5231,7.072,5628,4.873,5647,5.912,5652,11.439,8754,9.131,8756,5.912,8758,6.098,8759,6.098,8760,6.098,19061,9.42,19071,11.526,19072,7.546,19073,11.244,19074,11.244,19075,7.546]],["title/interfaces/SubmissionContainerNodeProps.html",[105,0.735,19069,5.958]],["body/interfaces/SubmissionContainerNodeProps.html",[0,0.298,3,0.021,4,0.021,5,0.01,7,0.133,30,0.001,32,0.12,83,3.895,95,0.161,96,2.412,101,0.018,103,0.001,104,0.001,105,0.948,107,2.107,112,0.877,143,1.955,144,2.893,154,2.362,172,3.528,173,2.597,180,2.166,181,2.35,349,0.907,403,4.874,437,1.136,593,4.699,1603,3.302,1604,5.115,1883,3.632,2453,5.246,2506,4.962,2507,3.923,2825,5.269,3112,5.795,3123,6.629,3157,6.879,3190,5.39,3214,9.666,3230,6.709,3561,7.42,3582,5.454,4067,5.595,4069,5.595,12475,6.694,12476,7.096,19068,7.356,19069,10.576,19070,8.119]],["title/classes/SubmissionContainerUrlParams.html",[0,0.231,3697,5.958]],["body/classes/SubmissionContainerUrlParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,34,1.997,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,1.758,142,4.586,143,2.611,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,807,4.785,2824,5.158,2825,7.035,3697,10.257,3817,5.679,7123,9.185,19076,10.257,19077,9.668,19078,11.668,19079,9.668]],["title/controllers/SubmissionController.html",[259,2.591,19080,5.958]],["body/controllers/SubmissionController.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,8,1.224,10,4.633,27,0.418,29,0.795,30,0.001,31,0.572,32,0.14,33,0.49,35,1.226,36,2.578,95,0.164,100,2.608,101,0.013,103,0.001,104,0.001,138,1.857,150,1.769,177,1.421,223,3.197,226,1.11,236,1.263,259,2.954,261,3.687,262,2.83,270,6.447,271,4.461,294,6.715,333,4.319,337,4.013,338,4.104,343,4.136,345,2.472,349,1.054,437,1.567,608,2.353,631,3.985,739,4.468,2705,3.665,2882,6.687,2904,4.169,3683,5.768,14154,6.505,14160,6.505,19080,8.93,19081,7.765,19082,11.404,19083,10.597,19084,10.208,19085,7.765,19086,7.765,19087,10.148,19088,10.208,19089,7.765,19090,6.793,19091,9.553,19092,6.505,19093,7.765,19094,7.765,19095,7.765,19096,7.765,19097,7.765,19098,7.179,19099,7.765,19100,10.208,19101,7.765,19102,7.765,19103,7.765]],["title/classes/SubmissionFactory.html",[0,0.231,19104,6.296]],["body/classes/SubmissionFactory.html",[0,0.155,2,0.512,3,0.011,4,0.011,5,0.005,7,0.069,8,0.839,27,0.538,29,1.008,30,0.001,31,0.692,32,0.18,33,0.593,34,1.448,35,1.43,47,0.494,55,2.615,59,3.188,95,0.137,99,0.763,101,0.008,103,0,104,0,112,0.555,120,3.077,133,2.446,140,2.56,143,1.558,153,1.932,154,2.193,155,2.334,177,1.281,180,1.254,271,5.017,319,3.158,349,1.06,379,0.572,382,3.829,413,2.154,437,1.4,447,7.182,448,4.435,449,5.379,452,3.953,453,5.379,454,5.654,455,3.953,456,3.953,457,3.953,458,3.883,459,4.361,460,4.802,461,6.392,462,5.695,463,7.006,464,2.607,469,2.583,470,3.953,471,2.607,472,5.031,473,5.195,474,4.066,475,4.885,476,3.917,477,2.583,478,2.435,479,4.053,480,3.225,481,2.516,482,2.474,483,2.583,484,4.956,485,2.607,486,3.494,487,4.717,488,2.583,489,7.315,490,4.119,491,6.564,492,2.607,493,4.215,494,2.583,495,2.607,496,2.583,497,2.607,498,2.583,499,2.912,500,2.713,501,2.583,502,6.006,503,2.607,504,2.583,505,3.953,506,3.697,507,3.953,508,2.607,509,2.494,510,2.474,511,2.042,512,2.583,513,2.583,514,2.583,515,2.607,516,2.607,517,1.753,518,2.583,519,1.416,520,2.607,521,2.771,522,2.583,523,2.607,525,2.658,526,2.713,527,5.712,648,3.257,649,3.485,654,1.36,2627,2.042,2824,3.077,3077,3.953,3760,6.93,3765,6.93,6804,3.581,6805,3.694,6814,3.581,8976,5.332,12286,3.829,12289,5.86,19104,7.856,19105,4.571,19106,9.52,19107,6.996,19108,4.571,19109,4.571,19110,4.571,19111,6.996,19112,4.571,19113,4.571,19114,3.999,19115,4.571,19116,3.999,19117,4.571,19118,4.571,19119,4.571,19120,4.226]],["title/classes/SubmissionItem.html",[0,0.231,2466,4]],["body/classes/SubmissionItem.html",[0,0.202,2,0.666,3,0.014,4,0.014,5,0.007,7,0.09,8,1.019,26,2.523,27,0.542,29,0.976,30,0.001,31,0.702,32,0.177,33,0.602,35,1.533,36,1.809,39,2.912,55,1.83,59,1.849,95,0.126,99,0.993,101,0.018,103,0,104,0,105,0.642,112,0.675,119,2.552,137,5.348,180,1.778,262,2.174,349,1.118,381,2.856,382,3.783,437,1.1,448,3.485,474,2.542,479,3.185,480,3.006,517,3.26,519,3.69,604,2.418,608,1.372,662,2.674,686,4.014,1154,2.367,1603,2.237,1604,3.598,1607,6.408,1679,3.881,1883,3.517,1885,2.483,2453,6.222,2466,6.359,2727,7.743,2730,6.059,2731,6.059,2732,6.059,2733,5.654,2734,6.059,2736,3.956,2737,5.219,2738,6.359,2740,5.945,2741,5.219,2742,6.234,2744,4.16,2745,4.494,2747,6.809,2748,4.16,2752,4.16,2754,3.956,2781,5.159,2805,5.219,2811,5.159,3232,6.568,3967,4.328,3968,4.328,3969,4.328,3978,3.742,3983,5.159,4754,5.206,7476,4.808,16997,6.872,19052,9.254,19121,5.501,19122,5.95,19123,5.95,19124,7.862,19125,5.95,19126,5.95,19127,5.95,19128,5.95,19129,5.95,19130,5.95,19131,5.95,19132,5.206,19133,5.206,19134,7.862,19135,5.501,19136,5.501,19137,5.501,19138,5.501,19139,5.501,19140,5.501,19141,5.206,19142,5.501,19143,5.206,19144,5.206,19145,5.206]],["title/injectables/SubmissionItemFactory.html",[539,0.901,19146,6.296]],["body/injectables/SubmissionItemFactory.html",[0,0.325,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,30,0.001,34,1.631,35,1.15,39,2.576,49,3.777,83,3.579,95,0.159,101,0.016,103,0.001,104,0.001,145,2.659,226,1.369,236,2.181,349,0.989,376,4.171,377,4.346,454,6.21,524,5.461,539,1.543,541,2.292,2466,7.682,2824,4.213,2826,7.738,3232,5.81,4129,7.636,19052,9.42,19146,10.777,19147,9.576,19148,9.576]],["title/entities/SubmissionItemNode.html",[154,1.456,3160,5.335]],["body/entities/SubmissionItemNode.html",[0,0.272,3,0.019,4,0.019,5,0.01,7,0.158,26,2.595,27,0.426,30,0.001,32,0.142,39,3.296,95,0.161,96,2.197,99,1.334,101,0.017,103,0.001,104,0.001,105,0.863,112,0.826,119,2.354,138,1.893,154,2.224,155,2.668,172,3.912,173,2.365,180,1.865,181,2.14,191,4.328,192,5.094,239,2.387,349,0.826,403,4.438,437,1.034,595,5.029,600,4.967,685,3.384,768,7.147,990,2.703,1117,4.851,1603,3.007,1604,4.895,1666,3.384,2366,5.094,2453,4.941,2506,4.518,2507,3.572,2824,4.578,3077,5.88,3112,5.458,3123,6.243,3160,8.152,3163,7.37,3190,4.908,3229,9.103,3232,7.433,3561,6.386,3582,4.967,4067,5.094,4068,7.393,4069,5.094,5525,7.932,7873,5.947,8742,6.995,8976,6.095,11622,5.816,19068,9.691,19149,7.996,19150,9.621,19151,9.621,19152,7.393,19153,9.103,19154,6.995,19155,7.393,19156,7.393]],["title/interfaces/SubmissionItemNodeProps.html",[105,0.735,19153,5.958]],["body/interfaces/SubmissionItemNodeProps.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.161,26,2.716,30,0.001,32,0.145,39,3.45,95,0.163,96,2.264,99,1.375,101,0.017,103,0.001,104,0.001,105,0.889,107,1.978,112,0.843,119,2.522,154,2.268,172,3.747,173,2.437,180,2.103,181,2.206,191,4.46,192,5.251,239,1.891,349,0.851,403,4.575,437,1.066,595,5.183,600,5.119,685,3.487,768,5.661,990,2.787,1117,5,1603,3.099,1604,4.966,1666,3.487,2366,5.251,2453,5.039,2506,4.657,2507,3.682,2824,3.626,3077,4.657,3112,5.566,3123,6.367,3160,6.457,3163,5.251,3190,5.058,3229,9.284,3232,7.78,3561,7.203,3582,5.119,4067,5.251,4069,5.251,5525,6.283,7873,6.13,8976,6.283,11622,5.995,19068,6.904,19150,7.62,19151,7.62,19152,7.62,19153,10.268,19154,7.21,19155,7.62,19156,7.62]],["title/interfaces/SubmissionItemProps.html",[105,0.735,19141,5.958]],["body/interfaces/SubmissionItemProps.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,26,2.754,30,0.001,32,0.158,36,1.691,39,3.411,95,0.146,99,1.326,101,0.02,103,0.001,104,0.001,105,0.858,107,1.907,112,0.823,119,2.646,180,2.067,262,1.742,349,1.263,437,1.341,474,3.395,480,2.878,517,3.974,519,2.462,604,3.23,608,1.832,1154,3.161,1603,2.989,1679,4.73,1883,4.287,1885,3.317,2453,5.477,2466,6.776,2727,6.289,2737,4.879,2738,6.089,2741,4.879,2742,5.969,2781,6.998,2805,6.362,2811,6.289,3232,7.692,3978,4.999,3983,6.289,16997,8.376,19052,6.423,19121,7.349,19124,7.349,19132,6.954,19133,6.954,19134,9.583,19135,7.349,19136,7.349,19137,7.349,19138,7.349,19139,7.349,19140,7.349,19141,9.068,19142,7.349,19143,6.954,19144,6.954,19145,6.954]],["title/classes/SubmissionItemResponse.html",[0,0.231,8284,5.503]],["body/classes/SubmissionItemResponse.html",[0,0.253,2,0.834,3,0.017,4,0.017,5,0.009,7,0.113,27,0.523,29,0.58,30,0.001,31,0.417,32,0.178,33,0.357,34,2.114,39,3.339,47,0.841,95,0.142,101,0.012,103,0.001,104,0.001,112,0.789,119,2.021,138,2.258,150,1.697,191,4.031,245,3.471,253,4.862,379,1.242,404,3.04,556,1.876,773,3.769,818,3.744,826,5.718,848,6.831,1672,5.17,1883,3.08,2858,6.505,2859,6.347,2860,6.347,3232,7.531,3657,7.368,3661,6.496,3665,4.952,3667,4.952,3707,5.678,3708,4.626,3712,7.961,3713,8.491,3729,4.626,3730,6.025,3731,6.019,3732,6.019,4086,6.516,7123,10.21,8284,10.03,19076,11.402,19154,6.516,19157,7.448,19158,7.448,19159,7.448,19160,7.448,19161,7.448,19162,7.448,19163,7.448,19164,7.448]],["title/classes/SubmissionItemResponseMapper.html",[0,0.231,3715,5.705]],["body/classes/SubmissionItemResponseMapper.html",[0,0.228,2,0.752,3,0.016,4,0.016,5,0.008,7,0.102,8,1.11,27,0.491,29,0.825,30,0.001,31,0.593,32,0.156,33,0.508,34,1.144,35,1.372,39,2.49,95,0.134,99,1.12,100,2.255,101,0.011,103,0.001,104,0.001,112,0.735,236,1.948,239,1.541,349,1.179,376,2.925,413,3.813,437,1.601,603,2.487,651,3.208,652,3.208,662,3.989,739,4.998,781,3.986,782,5.138,785,5.261,787,4.995,823,3.248,848,3.695,1883,2.777,2196,2.717,2466,7.593,2484,5.875,2735,4.612,2805,5.681,2811,5.616,3063,4.614,3080,9.671,3115,4.465,3116,4.337,3163,7.888,3232,4.074,3657,3.986,3661,5.383,3678,4.785,3709,8.874,3714,5.119,3715,10.628,3718,5.875,3735,6.208,4090,6.208,5231,6.662,6648,4.884,8284,9.678,8754,8.703,8755,5.625,8756,5.261,11023,5.625,17375,6.208,17376,6.208,19071,11.447,19143,5.875,19165,9.257,19166,9.257,19167,9.257,19168,9.257,19169,9.257,19170,6.715,19171,8.874,19172,10.593,19173,6.208,19174,6.715,19175,6.715,19176,9.257,19177,6.715,19178,6.715,19179,6.715,19180,6.715,19181,6.715,19182,6.715]],["title/injectables/SubmissionItemService.html",[539,0.901,3537,5.503]],["body/injectables/SubmissionItemService.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.103,8,1.117,12,4.277,26,2.695,27,0.47,29,0.893,30,0.001,31,0.642,32,0.17,33,0.55,34,1.814,35,1.279,36,2.643,39,2.865,40,4.507,49,2.675,83,3.27,95,0.157,99,1.131,101,0.011,103,0.001,104,0.001,119,2.334,120,4.101,177,1.706,226,0.97,236,2.069,262,2.881,283,4.163,340,3.26,345,2.159,349,0.963,376,2.954,377,3.079,379,0.848,437,1.483,524,3.869,529,2.637,539,1.234,541,1.624,603,1.362,604,2.756,608,2.455,685,4.506,1555,5.963,1758,4.659,1883,4.404,1885,2.831,2428,3.671,2466,7.723,2622,3.613,2814,7.211,2899,5.593,3090,5.045,3091,8.682,3099,6.271,3232,7.292,3319,5.934,3368,9.462,3537,7.532,4122,5.481,4129,4.443,5644,5.79,5657,5.934,8312,5.934,15270,6.271,19183,12.019,19184,6.783,19185,6.783,19186,11.466,19187,6.783,19188,6.783,19189,9.321,19190,6.783,19191,6.783,19192,6.783,19193,6.783,19194,6.783,19195,6.783,19196,6.783,19197,9.321]],["title/injectables/SubmissionItemUc.html",[539,0.901,2697,5.705]],["body/injectables/SubmissionItemUc.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.079,8,0.924,26,2.936,27,0.482,29,0.916,30,0.001,31,0.659,32,0.178,33,0.564,34,0.885,35,1.365,36,2.57,39,3.377,59,1.615,95,0.138,99,0.867,101,0.009,103,0,104,0,119,1.869,177,1.859,180,1.381,226,0.743,236,1.494,262,2.903,349,0.949,379,0.964,382,2.771,437,1.469,448,5.145,529,2.598,539,1.02,541,1.244,560,2.14,608,2.893,639,2.439,1612,5.969,1628,3.404,1698,6.215,1767,3.456,1802,5.491,1853,7.387,1883,3.187,2453,5.395,2454,8.66,2456,6.037,2457,7.957,2458,3.78,2459,8.295,2461,3.866,2462,5.605,2463,6.543,2465,4.072,2466,7.373,2468,4.072,2469,5.491,2472,2.359,2483,4.354,2485,3.866,2621,4.437,2622,2.768,2697,6.455,2805,3.19,2811,3.153,2814,5.775,2824,2.286,2825,3.118,3063,4,3080,3.962,3098,3.866,3232,6.162,3537,9.503,3684,7.693,3686,8.49,3718,8.034,3798,4.2,3799,4.2,3800,4.2,3803,4.2,3804,4.2,4104,5.368,4158,8.034,4160,4.805,4692,2.726,5622,3.311,5626,3.311,5644,4.786,8312,4.547,8313,4.805,8322,7.124,8324,4.805,8333,4.805,8692,4.547,19078,8.49,19132,4.547,19133,4.547,19144,4.547,19145,4.547,19198,10.847,19199,5.197,19200,9.183,19201,5.197,19202,10.504,19203,5.197,19204,5.197,19205,5.197,19206,5.197,19207,5.197,19208,5.197,19209,5.197,19210,5.197,19211,5.197,19212,5.197,19213,5.197,19214,5.197,19215,5.197,19216,7.706,19217,5.197,19218,5.197]],["title/classes/SubmissionItemUrlParams.html",[0,0.231,3688,5.958]],["body/classes/SubmissionItemUrlParams.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.396,30,0.001,32,0.132,34,1.997,47,0.828,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,1.758,142,4.586,143,2.611,144,3.863,145,3.255,148,3.068,150,2.203,153,2.198,245,3.074,807,4.785,2824,5.158,3163,7.47,3688,10.257,3817,5.679,7123,9.185,19076,10.257,19202,11.668,19219,9.668,19220,9.668]],["title/classes/SubmissionMapper.html",[0,0.231,19090,5.958]],["body/classes/SubmissionMapper.html",[0,0.321,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,8,1.387,27,0.388,29,0.737,30,0.001,31,0.53,32,0.129,33,0.454,34,1.612,35,1.137,95,0.147,99,1.579,100,3.887,101,0.016,103,0.001,104,0.001,236,1.539,349,0.977,413,3.85,437,1.224,789,4.725,2824,5.878,12118,6.883,12317,7.038,12336,7.038,12519,7.647,12523,7.927,12531,7.927,19090,10.125,19221,9.463,19222,11.573,19223,11.573,19224,9.463,19225,10.912,19226,9.463,19227,8.279,19228,9.463,19229,8.279,19230,9.463]],["title/injectables/SubmissionRepo.html",[539,0.901,1748,5.191]],["body/injectables/SubmissionRepo.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.011,10,3.426,12,3.869,18,4.267,26,2.736,27,0.521,29,0.973,30,0.001,31,0.7,32,0.171,33,0.6,34,1.002,35,1.502,36,2.81,39,3.067,40,4.077,47,0.696,95,0.137,96,1.616,98,3.491,99,0.981,101,0.01,103,0,104,0,154,1.257,155,2.814,173,1.739,180,1.511,226,0.841,262,3.02,310,3.655,349,1.177,382,3.249,437,1.474,479,4.897,539,1.116,541,1.408,603,2.383,608,2.881,679,7.177,685,3.568,686,3.98,687,4.989,711,3.609,712,3.653,713,3.609,714,3.653,716,3.609,717,3.653,718,3.264,739,3.691,1458,3.323,1666,2.488,1748,6.428,2291,3.491,2627,2.627,2824,5.375,2985,3.293,3077,3.323,3638,4.039,3683,5.57,4431,6.606,4437,6.814,5505,2.389,5949,4.903,6544,3.698,6586,5.791,6850,4.483,12289,4.927,17756,5.437,19231,5.881,19232,8.432,19233,8.432,19234,8.432,19235,8.432,19236,5.881,19237,8.432,19238,5.881,19239,8.432,19240,5.881,19241,5.437,19242,8.432,19243,5.881,19244,5.881,19245,5.881,19246,8.432,19247,5.881,19248,5.881,19249,8.432,19250,5.881,19251,5.881,19252,5.881,19253,5.881]],["title/injectables/SubmissionRule.html",[539,0.901,1710,5.705]],["body/injectables/SubmissionRule.html",[0,0.181,3,0.012,4,0.012,5,0.006,7,0.081,8,0.941,27,0.498,29,0.947,30,0.001,31,0.681,32,0.17,33,0.584,35,1.424,95,0.139,101,0.009,103,0,104,0,119,2.413,131,3.851,145,2.179,154,2.197,177,1.437,226,0.762,236,0.867,239,3.218,345,1.696,349,1.224,379,0.666,437,1.483,529,1.507,539,1.039,541,1.275,603,2.69,604,2.165,662,3.605,739,3.435,1280,1.665,1454,3.797,1609,5.563,1612,7.201,1613,6.309,1627,5.39,1628,5.141,1637,7.12,1658,3.197,1675,4.762,1710,6.575,1711,9.579,1816,5.069,1820,4.875,1827,3.543,2824,6.311,3196,3.395,3352,5.218,3353,3.599,3356,5.141,3359,3.599,3360,5.301,12519,4.305,14272,4.926,19254,5.328,19255,11.464,19256,10.28,19257,10.28,19258,11.464,19259,10.28,19260,5.328,19261,7.848,19262,5.328,19263,7.848,19264,5.328,19265,7.848,19266,5.328,19267,5.328,19268,7.848,19269,5.328,19270,7.848,19271,5.328,19272,5.328,19273,5.328,19274,5.328,19275,7.848,19276,5.328,19277,7.848,19278,5.328,19279,5.328,19280,5.328,19281,7.848,19282,7.848]],["title/injectables/SubmissionService.html",[539,0.901,19283,5.503]],["body/injectables/SubmissionService.html",[0,0.269,3,0.019,4,0.019,5,0.009,7,0.12,8,1.241,10,4.206,12,4.75,26,2.804,27,0.5,29,0.951,30,0.001,31,0.684,32,0.167,33,0.586,35,1.384,36,2.765,95,0.155,98,4.709,99,1.323,101,0.013,103,0.001,104,0.001,177,1.895,226,1.134,227,3.266,262,2.974,349,1.069,379,1.295,437,1.026,539,1.37,541,1.899,603,2.079,608,2.386,1167,4.989,1748,9.905,2824,5.574,3541,3.909,3542,3.237,3683,5.85,6366,9.431,19283,8.365,19284,7.933,19285,9.571,19286,7.933,19287,7.933,19288,10.352,19289,7.933,19290,10.352,19291,7.933,19292,6.215,19293,10.352,19294,7.933,19295,6.94,19296,7.933,19297,7.933,19298,7.933,19299,7.933]],["title/classes/SubmissionStatusListResponse.html",[0,0.231,19092,5.705]],["body/classes/SubmissionStatusListResponse.html",[0,0.372,2,0.968,3,0.02,4,0.02,5,0.01,7,0.131,27,0.448,29,0.673,30,0.001,31,0.484,32,0.164,33,0.415,34,2.045,47,0.847,55,1.861,95,0.11,101,0.018,103,0.001,104,0.001,112,0.869,119,2.227,138,1.573,149,4.567,150,1.971,245,3.486,284,4.02,379,1.369,404,3.53,556,2.179,816,6.242,818,4.347,833,4.801,12118,8.732,12301,7.246,12317,8.929,12321,7.246,12336,8.929,12338,7.246,19092,9.168,19225,11.444,19227,10.502,19229,10.502,19300,7.997,19301,8.649,19302,8.649,19303,7.997,19304,7.997]],["title/classes/SubmissionStatusResponse.html",[0,0.231,19225,5.705]],["body/classes/SubmissionStatusResponse.html",[0,0.347,2,0.871,3,0.018,4,0.018,5,0.009,7,0.118,27,0.54,29,0.606,30,0.001,31,0.436,32,0.183,33,0.604,34,2.145,47,0.912,55,2.199,95,0.099,101,0.017,103,0.001,104,0.001,112,0.812,119,2.467,138,2.351,149,4.79,150,1.773,245,3.578,284,3.157,379,1.278,404,3.175,773,3.937,816,4.437,833,4.318,12118,9.158,12301,6.517,12317,9.365,12321,6.517,12336,9.365,12338,6.517,19092,6.517,19225,11.197,19227,11.015,19229,11.015,19300,7.193,19303,7.193,19304,7.193,19305,7.78,19306,7.78,19307,7.78,19308,7.78,19309,7.78,19310,7.78,19311,7.78]],["title/injectables/SubmissionUc.html",[539,0.901,19091,5.705]],["body/injectables/SubmissionUc.html",[0,0.24,3,0.017,4,0.017,5,0.008,7,0.107,8,1.151,10,3.9,26,2.908,27,0.478,29,0.909,30,0.001,31,0.654,32,0.16,33,0.56,35,1.308,36,2.042,39,2.582,95,0.148,99,1.181,101,0.012,103,0.001,104,0.001,143,1.577,177,1.757,226,1.012,239,3.106,262,2.757,349,1.206,379,1.2,437,1.664,539,1.27,541,1.695,560,2.915,603,2.451,608,2.691,643,3.147,932,3.897,1154,2.816,1615,4.296,1675,5.824,1698,6.8,1796,5.824,1798,5.548,2472,3.214,2824,5.837,3683,5.424,12518,5.932,14317,8.398,19091,8.041,19283,10.166,19285,8.875,19292,8.531,19295,9.527,19312,7.081,19313,9.599,19314,7.081,19315,7.081,19316,7.081,19317,9.599,19318,7.081,19319,9.599,19320,7.081,19321,7.081,19322,11.674,19323,7.081,19324,7.081,19325,7.081,19326,7.081,19327,6.547,19328,9.599,19329,7.081]],["title/classes/SubmissionUrlParams.html",[0,0.231,19083,5.958]],["body/classes/SubmissionUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,2824,5.203,3817,5.762,19083,10.348,19295,11.11,19330,9.809,19331,9.809]],["title/classes/SubmissionsResponse.html",[0,0.231,3709,5.705]],["body/classes/SubmissionsResponse.html",[0,0.301,2,0.992,3,0.021,4,0.021,5,0.011,7,0.134,27,0.497,29,0.69,30,0.001,31,0.496,32,0.179,33,0.425,95,0.154,101,0.015,103,0.001,104,0.001,112,0.882,138,2.021,150,2.018,239,2.033,245,3.182,379,1.108,556,2.798,818,5.584,2824,3.897,3063,5.912,3709,9.307,7123,9.97,8284,10.968,8514,6.94,19171,11.37,19173,12.119,19332,8.859,19333,11.11,19334,8.859,19335,8.859,19336,8.859,19337,8.859,19338,8.859,19339,8.859]],["title/interfaces/SuccessfulRes.html",[105,0.735,11345,5.065]],["body/interfaces/SuccessfulRes.html",[3,0.021,4,0.021,5,0.011,7,0.139,30,0.001,32,0.125,34,1.561,47,0.952,55,2.652,101,0.023,103,0.001,104,0.001,105,1.475,107,2.198,112,0.901,119,2.508,284,2.83,347,3.355,479,3.432,986,8.318,991,6.188,1025,3.584,3063,3.99,4543,6.188,6541,5.382,11337,6.814,11338,6.983,11339,6.814,11340,6.814,11341,6.983,11342,8.616,11343,6.983,11344,6.983,11345,8.438,11346,6.983,11347,6.664,11348,6.814,11349,6.983,11350,6.814]],["title/classes/SuccessfulResponse.html",[0,0.231,19340,5.958]],["body/classes/SuccessfulResponse.html",[0,0.335,2,1.104,3,0.023,4,0.023,5,0.012,7,0.149,27,0.486,29,0.768,30,0.001,31,0.552,32,0.162,33,0.473,95,0.125,101,0.016,103,0.001,104,0.001,112,0.942,119,2.75,138,1.793,150,2.246,245,3.337,379,1.233,13805,11.32,19340,10.378,19341,9.857,19342,11.863,19343,9.857,19344,9.857,19345,9.857]],["title/injectables/SymetricKeyEncryptionService.html",[539,0.901,8343,5.958]],["body/injectables/SymetricKeyEncryptionService.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,8,1.244,27,0.533,29,0.899,30,0.001,31,0.647,32,0.158,33,0.554,35,1.247,47,0.985,59,2.475,95,0.155,101,0.013,103,0.001,104,0.001,226,1.139,284,3.778,345,2.535,349,1.344,379,0.996,539,1.374,541,1.907,603,1.6,662,4.09,768,5.47,1278,2.52,1280,2.489,1550,5.793,1925,7.04,2253,4.254,2254,5.523,2823,5.019,2943,5.38,3836,7.72,6596,5.675,7206,8.398,8342,7.364,8343,9.08,9369,7.549,11962,9.08,11963,8.695,11964,9.596,11966,9.596,12674,7.364,14578,6.672,19019,7.364,19022,7.364,19346,7.965,19347,7.965,19348,7.965,19349,7.965,19350,11.546,19351,11.546,19352,7.965,19353,7.965]],["title/modules/SystemApiModule.html",[201,1.804,18587,5.503]],["body/modules/SystemApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.295,203,3.364,204,3.615,205,3.72,206,3.704,207,3.689,208,4.555,209,3.517,218,4.57,219,3.644,220,3.558,222,5.809,223,4.731,225,4.532,226,1.337,1360,9.477,18587,11.206,19354,9.353,19355,9.353,19356,9.353,19357,11.356,19358,9.353,19359,10.881,19360,9.353,19361,9.353,19362,9.353]],["title/controllers/SystemController.html",[259,2.591,19359,5.958]],["body/controllers/SystemController.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.081,27,0.369,29,0.702,30,0.001,31,0.505,32,0.167,33,0.433,35,1.47,36,2.39,72,5.099,95,0.165,101,0.011,103,0.001,104,0.001,128,4.525,138,1.64,150,1.473,153,2.554,177,1.184,223,2.662,226,0.925,259,2.46,261,3.071,262,2.681,271,3.528,278,7.716,284,3.47,310,2.803,319,4.071,333,2.736,335,6.23,336,6.45,337,3.342,345,2.058,346,5.353,347,3.303,349,0.931,437,1.453,482,6.08,560,2.662,608,2.079,692,9.828,823,2.269,1243,5.535,1395,5.907,2035,7.065,2358,6.895,2434,7.359,3063,3.928,3075,5.392,3672,4.3,4487,6.599,4692,4.73,10378,7.237,11038,8.338,11292,7.469,15276,7.889,16211,8.801,17143,9.411,17146,9.078,19357,8.699,19359,7.889,19363,6.467,19364,9.018,19365,6.467,19366,9.828,19367,6.467,19368,10.386,19369,6.467,19370,6.467,19371,11.234,19372,6.467,19373,6.467,19374,6.467,19375,6.467,19376,6.467,19377,6.467,19378,8.338,19379,5.979,19380,6.467,19381,5.979,19382,5.657,19383,6.467,19384,6.467,19385,6.467,19386,6.467,19387,6.467,19388,6.467,19389,6.467,19390,6.467,19391,6.467,19392,6.467,19393,6.467,19394,6.467,19395,6.467]],["title/classes/SystemDto.html",[0,0.231,11292,4.528]],["body/classes/SystemDto.html",[0,0.259,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,26,2.393,27,0.557,29,0.593,30,0.001,31,0.427,32,0.19,33,0.677,34,1.924,47,0.96,95,0.143,99,1.271,101,0.013,103,0.001,104,0.001,112,0.8,119,2.052,379,0.953,404,3.109,1198,3.884,2507,3.403,3075,3.476,5768,5.757,5788,4.853,6264,4.09,11292,8.315,11442,7.296,11841,5.666,12342,7.511,12345,7.105,12346,7.898,12347,7.4,12348,5.065,12349,5.065,12434,5.807,12436,5.807,12442,5.807,12444,5.807,12690,8.611,13792,5.428,17149,9.319,17156,6.382,17157,6.156,17158,6.382,19396,7.618,19397,10.445,19398,10.08,19399,7.618,19400,7.618,19401,7.618,19402,7.618,19403,7.618,19404,7.618,19405,7.618,19406,7.618,19407,6.664,19408,6.382,19409,7.043,19410,7.043,19411,7.043,19412,7.618,19413,7.043]],["title/entities/SystemEntity.html",[154,1.456,8549,3.686]],["body/entities/SystemEntity.html",[0,0.309,3,0.01,4,0.01,5,0.005,7,0.064,26,1.389,27,0.476,30,0.001,32,0.17,33,0.617,47,1.008,83,2.475,95,0.115,96,1.155,101,0.016,103,0,104,0,105,0.454,112,0.521,119,0.856,133,2.293,138,2.112,143,3.057,144,4.418,145,1.82,153,0.956,154,1.723,155,1.403,160,6.446,172,4.484,173,1.243,174,2.608,175,1.859,177,0.769,178,1.746,180,0.753,181,1.125,182,1.367,276,1.787,511,1.878,570,2.58,578,2.55,838,2.527,949,2.58,1198,3.394,1310,2.55,1393,2.995,1425,2.611,1603,1.581,1962,2.715,1987,3.127,2503,3.389,2507,1.878,4275,3.578,4313,4.672,4347,2.522,4620,3.389,5505,1.708,5590,3.273,5768,4.64,5788,2.678,5789,2.887,6264,3.52,7205,2.644,7292,2.839,7348,3.978,8549,3.548,8887,2.839,9872,2.754,10378,2.375,11442,7.499,11523,3.127,11524,3.127,11525,3.127,11526,3.204,11570,2.887,11573,2.795,11575,2.887,11578,2.887,11581,2.58,11585,2.839,11626,2.754,12048,3.204,12232,2.995,12340,4.998,12341,3.397,12342,6.054,12343,8.637,12344,8.119,12345,5.726,12346,6.366,12347,5.964,12348,2.795,12349,2.795,12350,3.397,12351,4.503,12352,4.877,12353,3.293,12354,4.877,12355,3.204,12356,3.204,12357,3.204,12358,3.204,12359,3.293,12360,3.204,12361,3.204,12362,3.204,12363,3.293,12364,4.877,12365,3.293,12366,3.204,12367,3.293,12368,3.204,12369,3.204,12370,3.204,12371,3.293,12372,4.503,12373,3.397,12374,3.397,12375,3.397,12376,3.397,12377,3.397,12378,3.397,12379,3.397,12380,3.397,12381,3.397,12382,3.397,12383,3.397,12384,3.397,12385,3.293,12386,3.397,12387,3.397,12388,3.397,12389,3.397,12390,3.397,12391,3.397,12392,3.397,12393,3.397,12394,3.397,12395,3.397,12396,3.397,12397,3.397,12398,3.397,12399,3.397,12400,3.397,12401,3.397,12402,3.397,12403,3.127,12404,3.397,12405,3.397,12406,3.397,12407,3.397,12408,3.397,12409,3.397,12410,3.397,12411,3.397,12412,3.397,12413,3.397,12414,3.397,12415,3.397,12416,3.397,12417,3.397,12418,3.204,12419,3.397,12420,3.127,12421,3.293,12422,3.204,12423,3.293,12424,3.204,12425,3.204,12426,3.293,12427,3.204,12428,3.293,12429,3.204,12430,3.057,12431,3.057,12432,3.057,12433,3.127,12434,3.204,12435,3.397,12436,3.204,12437,3.397,12438,3.397,12439,3.397,12440,3.397,12441,3.397,12442,3.204,12443,3.293,12444,3.204,12445,3.293,19414,4.204,19415,4.204,19416,4.204,19417,4.204,19418,4.204,19419,4.204,19420,4.204,19421,4.204,19422,4.204,19423,4.204,19424,4.204]],["title/classes/SystemFactory.html",[0,0.231,12836,5.958]],["body/classes/SystemFactory.html",[0,0.148,2,0.488,3,0.01,4,0.01,5,0.005,7,0.066,8,0.809,27,0.53,29,0.999,30,0.001,31,0.684,32,0.179,33,0.586,34,1.582,35,1.411,47,0.476,55,2.383,59,3.3,95,0.118,99,0.728,101,0.011,103,0,104,0,112,0.536,120,2.969,133,2.36,140,2.443,143,0.971,153,1.876,154,2.147,155,2.252,177,1.235,180,1.209,236,1.343,271,4.914,319,3.047,349,0.959,379,0.546,382,3.79,413,2.078,437,1.201,447,7.122,448,4.353,449,5.249,452,3.814,453,5.249,454,5.577,455,3.814,456,3.814,457,3.814,458,3.746,459,4.236,460,4.664,461,6.296,462,5.576,463,6.943,464,2.489,469,2.465,470,3.814,471,2.489,472,4.91,473,5.069,474,3.968,475,4.767,476,3.779,477,2.465,478,2.324,479,3.979,480,3.177,481,2.401,482,2.361,483,2.465,484,4.836,485,2.489,486,3.442,487,4.581,488,2.465,489,7.313,490,4.057,491,6.466,492,2.489,493,4.094,494,2.465,495,2.489,496,2.465,497,2.489,498,2.465,499,2.78,500,2.59,501,2.465,502,5.895,503,2.489,504,2.465,505,3.814,506,3.567,507,3.814,508,2.489,509,2.381,510,2.361,511,1.949,512,2.465,513,2.465,514,2.465,515,2.489,516,2.489,517,1.673,518,2.465,519,1.352,520,2.489,521,2.673,522,2.465,523,2.489,525,2.537,526,2.59,527,4.952,570,2.678,653,2.255,950,2.024,1198,2.32,1425,2.71,1430,2.537,1962,2.818,3075,3.08,3542,2.754,4620,2.255,5501,3.849,5505,1.773,5590,3.37,5768,2.223,7348,4.095,7350,4.909,8549,2.361,8798,7.506,8887,2.947,11442,5.33,11570,2.997,11573,2.901,11574,3.655,11575,2.997,11578,2.997,11581,2.678,11585,2.947,11626,2.858,12340,3.326,12342,2.901,12343,6.003,12344,5.77,12345,2.744,12346,3.05,12347,2.858,12348,2.901,12349,2.901,12372,6.38,12430,3.174,12431,3.174,12432,3.174,12433,3.245,12836,7.221,13397,3.526,14567,4.034,16416,4.034,19425,4.363,19426,6.24,19427,8.588,19428,8.588,19429,6.749,19430,4.363,19431,6.749,19432,4.363,19433,4.363,19434,4.363,19435,4.363,19436,4.363,19437,4.363,19438,4.363,19439,4.363,19440,4.363,19441,4.363,19442,4.363,19443,4.363,19444,4.363,19445,4.363,19446,4.363,19447,4.363,19448,4.363,19449,4.363,19450,4.363,19451,4.363]],["title/classes/SystemFilterParams.html",[0,0.231,19366,5.958]],["body/classes/SystemFilterParams.html",[0,0.381,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.459,30,0.001,32,0.186,33,0.614,95,0.162,99,1.501,101,0.015,103,0.001,104,0.001,112,0.891,119,2.283,138,2.04,141,5.359,147,6.023,148,2.855,149,4.65,150,2.05,151,7.459,153,2.55,247,3.938,249,4.945,851,4.298,1213,6.227,1912,4.151,3075,4.106,5501,6.398,10378,6.339,10775,8.344,19366,9.814,19452,8.997,19453,11.301,19454,8.997,19455,8.997,19456,9.576,19457,8.997,19458,8.997,19459,8.997]],["title/classes/SystemIdParams.html",[0,0.231,16211,5.335]],["body/classes/SystemIdParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,47,0.832,48,6.018,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,245,3.092,256,6.956,258,9.025,807,4.813,3075,5.382,3817,5.734,16211,9.239,19460,11.794]],["title/classes/SystemIdParams-1.html",[0,0.192,708,2.352,16211,4.435]],["body/classes/SystemIdParams-1.html",[0,0.406,2,1.117,3,0.023,4,0.023,5,0.012,7,0.151,26,2.71,27,0.409,30,0.001,32,0.136,48,6.075,95,0.162,99,1.665,101,0.016,103,0.001,104,0.001,112,0.949,138,1.815,148,3.167,150,2.274,245,3.134,256,7.111,807,4.877,5876,7.259,5877,8.064,16211,9.363,19461,11.951]],["title/classes/SystemMapper.html",[0,0.231,19462,5.958]],["body/classes/SystemMapper.html",[0,0.257,2,0.848,3,0.018,4,0.018,5,0.009,7,0.115,8,1.204,27,0.461,29,0.877,30,0.001,31,0.631,32,0.164,33,0.541,34,1.29,35,1.353,95,0.143,99,1.264,101,0.012,103,0.001,104,0.001,154,1.619,155,2.528,236,1.634,349,1.239,413,4.142,556,3.231,1198,2.604,1425,4.705,2305,5.296,4389,4.826,4620,3.915,5505,3.078,5590,3.782,5768,3.86,5963,7.003,7348,4.596,8549,7.083,8887,5.116,9151,6.627,11292,8.529,11442,8.452,11523,5.634,11524,5.634,11525,5.634,11526,5.774,11570,5.202,11573,5.036,11575,5.202,11578,5.202,11581,4.649,11585,5.116,12342,5.036,12345,4.764,12346,5.296,12353,5.934,12355,5.774,12357,5.774,12359,5.934,12363,5.934,12365,5.934,12367,5.934,12369,5.774,12371,5.934,12372,5.202,12690,9.144,16332,5.774,17596,8.785,17597,8.413,17601,8.413,17605,6.627,19397,7.003,19407,6.627,19408,6.345,19462,8.785,19463,7.575,19464,10.042,19465,9.284,19466,7.575,19467,7.575,19468,10.042,19469,7.575,19470,7.575,19471,10.042,19472,7.575,19473,7.575,19474,7.575,19475,7.575]],["title/modules/SystemModule.html",[201,1.804,1360,4.761]],["body/modules/SystemModule.html",[0,0.292,3,0.02,4,0.02,5,0.01,30,0.001,95,0.165,101,0.014,103,0.001,104,0.001,201,3.17,203,3.091,204,3.321,205,3.418,206,3.404,207,3.389,208,4.384,209,4.501,218,4.335,219,3.348,220,3.269,225,4.299,226,1.229,227,3.538,599,6.251,616,10.398,622,9.654,1360,9.895,12013,6.733,13346,11.759,13390,7.945,14798,7.518,15513,10.21,19476,8.594,19477,8.594,19478,8.594,19479,8.594,19480,8.594,19481,7.945,19482,8.594]],["title/classes/SystemOidcMapper.html",[0,0.231,19483,5.958]],["body/classes/SystemOidcMapper.html",[0,0.267,2,0.881,3,0.018,4,0.018,5,0.009,7,0.119,8,1.235,27,0.47,29,0.894,30,0.001,31,0.643,32,0.157,33,0.551,35,1.379,47,0.81,48,4.89,95,0.131,99,1.313,101,0.013,103,0.001,104,0.001,154,2.454,155,3.437,236,1.28,349,1.258,413,4.173,556,3.067,1962,5.083,5590,3.93,7348,4.775,8549,7.149,12344,9.236,12372,5.406,12418,6,12420,5.854,12422,6,12424,6,12425,6,12427,6,12429,6,12430,5.725,12431,5.725,12432,5.725,12433,5.854,13357,10.616,16365,7.277,17596,9.01,17597,8.628,17601,8.628,17605,6.886,19408,6.594,19465,9.522,19483,9.01,19484,12.178,19485,7.871,19486,10.299,19487,7.871,19488,7.871,19489,10.299,19490,7.871,19491,7.871,19492,10.299,19493,7.871,19494,7.871,19495,7.871,19496,7.871]],["title/injectables/SystemOidcService.html",[539,0.901,13346,5.705]],["body/injectables/SystemOidcService.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.124,8,1.265,12,4.844,26,2.617,27,0.479,29,0.822,30,0.001,31,0.591,32,0.144,33,0.506,34,1.798,35,1.268,36,2.629,40,5.104,95,0.166,99,1.364,100,2.746,101,0.013,103,0.001,104,0.001,177,1.496,226,1.169,227,3.366,236,1.33,262,2.87,291,5.946,340,3.929,345,2.602,349,1.09,379,1.022,437,1.512,529,2.313,539,1.397,541,1.957,608,2.433,622,9.528,3075,4.817,8549,4.424,13346,8.843,13357,6.404,13812,7.152,15068,9.679,19456,6.404,19483,7.152,19497,12.355,19498,8.175,19499,8.175,19500,8.175,19501,8.175,19502,8.175,19503,8.175,19504,7.558,19505,11.691,19506,8.175,19507,7.152,19508,7.558,19509,8.175]],["title/injectables/SystemRepo.html",[539,0.901,622,4.953]],["body/injectables/SystemRepo.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.105,8,1.132,10,3.836,12,4.332,18,4.778,26,2,27,0.524,29,0.942,30,0.001,31,0.678,32,0.18,33,0.581,34,1.177,35,1.5,36,2.72,40,3.342,49,3.724,95,0.147,99,1.153,101,0.011,103,0.001,104,0.001,154,1.477,155,3.151,180,1.692,226,0.988,236,1.536,262,2.977,349,1.111,382,3.487,437,0.894,479,5.049,486,2.079,521,2.737,529,1.955,539,1.25,541,1.654,622,6.867,679,7.51,685,3.995,686,4.457,687,5.442,711,4.242,712,4.293,713,4.242,714,4.293,715,4.925,716,4.242,717,4.293,718,3.836,723,5.268,761,4.527,996,3.301,997,3.262,998,3.262,999,3.45,1076,4.595,1077,4.242,1154,2.749,1246,6.192,1872,4.346,5257,7.15,5505,3.836,5951,4.832,8549,5.11,15068,9.054,19456,9.054,19510,6.911,19511,8.729,19512,6.911,19513,8.729,19514,6.911,19515,6.911,19516,8.26,19517,6.911,19518,6.911,19519,6.911,19520,6.39,19521,6.911,19522,6.911,19523,6.911,19524,6.911,19525,9.441]],["title/classes/SystemResponseMapper.html",[0,0.231,19382,5.958]],["body/classes/SystemResponseMapper.html",[0,0.244,2,0.804,3,0.017,4,0.017,5,0.009,7,0.109,8,1.162,27,0.449,29,0.854,30,0.001,31,0.614,32,0.16,33,0.526,34,1.224,35,1.318,95,0.155,101,0.012,103,0.001,104,0.001,236,1.784,349,1.133,413,4.098,437,1.519,556,1.809,781,4.263,823,2.52,1425,4.461,2526,5.804,3075,5.359,4487,4.219,4620,3.712,5505,2.918,5590,3.586,5768,3.66,7348,4.358,8756,5.627,8887,4.851,9999,5.342,10378,4.059,11207,6.641,11292,8.731,11442,4.639,11570,4.933,11573,4.776,11575,4.933,11578,4.933,11581,4.408,11585,4.851,11841,5.342,12342,4.776,12372,4.933,12690,9.346,13792,5.118,14374,6.284,15772,6.641,15774,6.641,15775,6.641,15776,6.641,15777,6.641,15778,6.641,15779,6.641,15780,6.641,15781,6.641,15782,6.641,15783,6.641,15784,6.641,15785,10.818,16332,5.475,17143,9.837,17146,10.435,17147,6.641,17155,6.641,17156,6.017,17157,5.804,17158,6.017,19378,8.96,19379,6.641,19382,8.479,19407,6.284,19408,6.017,19526,11.742,19527,9.691,19528,9.691,19529,9.691,19530,9.691,19531,9.691,19532,9.691,19533,7.183,19534,7.183,19535,9.691,19536,7.183,19537,9.691,19538,7.183,19539,6.641]],["title/classes/SystemScope.html",[0,0.231,19516,5.958]],["body/classes/SystemScope.html",[0,0.259,2,0.853,3,0.018,4,0.018,5,0.009,7,0.115,8,1.208,27,0.545,29,0.785,30,0.001,31,0.565,32,0.171,33,0.484,35,1.502,95,0.128,99,1.271,101,0.013,103,0.001,104,0.001,112,0.8,119,2.299,180,1.806,310,3.302,349,1.167,382,3.773,480,2.115,486,2.292,519,2.36,593,4.184,603,2.581,2291,6.706,5505,5.524,6059,6.808,6060,6.808,6061,6.808,6066,6.808,6067,6.808,6068,5.232,6069,5.145,6070,5.232,6071,5.232,6080,5.145,6081,6.808,6082,5.232,6083,5.145,6084,5.232,6085,5.145,6086,7.631,8549,4.123,10293,6.156,10311,9.883,11442,4.92,12343,5.541,12344,5.326,14287,7.043,14288,7.043,19426,11.116,19427,11.116,19428,11.116,19516,11.64,19540,12.023,19541,7.618]],["title/injectables/SystemService.html",[539,0.901,15513,4.953]],["body/injectables/SystemService.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.085,8,0.973,12,3.725,18,4.108,26,2.226,27,0.457,29,0.869,30,0.001,31,0.625,32,0.177,33,0.536,34,1.383,35,1.262,36,2.622,40,3.925,59,1.733,95,0.152,99,0.931,101,0.009,103,0,104,0,177,1.486,226,0.798,227,2.297,236,1.557,262,2.865,291,4.058,340,2.681,349,1.242,379,1.015,437,1.238,529,1.578,539,1.074,541,1.336,599,4.058,600,3.465,603,2.243,608,2.981,622,8.475,1198,2.791,3075,5.488,5768,4.136,8549,6.799,10378,6.584,11292,7.424,11442,3.603,11841,7.117,11844,7.505,12013,4.371,12342,5.397,12345,5.105,12346,5.675,12673,8.232,12675,4.674,13792,5.784,13812,4.881,14400,8.847,15513,5.904,16332,4.253,17156,4.674,17157,7.732,17158,8.016,19409,7.505,19410,7.505,19411,7.505,19456,8.232,19462,4.881,19504,5.158,19507,4.881,19508,5.158,19520,7.505,19542,5.579,19543,8.118,19544,8.118,19545,5.579,19546,5.579,19547,8.118,19548,5.579,19549,8.118,19550,5.579,19551,8.118,19552,5.579,19553,5.579,19554,5.579,19555,8.118,19556,7.505,19557,5.579,19558,8.118,19559,5.579,19560,5.579,19561,5.579,19562,5.579,19563,5.579,19564,5.579,19565,8.118,19566,8.118,19567,8.118,19568,8.118,19569,8.118,19570,8.118,19571,8.118,19572,5.579,19573,5.579,19574,5.158,19575,8.118,19576,5.579,19577,9.569,19578,5.579,19579,5.579,19580,5.579,19581,5.579,19582,5.579,19583,5.579]],["title/injectables/SystemUc.html",[539,0.901,19357,5.705]],["body/injectables/SystemUc.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.118,8,1.224,12,4.684,26,2.566,27,0.467,29,0.888,30,0.001,31,0.639,32,0.166,33,0.547,34,1.739,35,1.226,36,2.578,40,4.936,59,2.412,95,0.16,99,1.295,101,0.013,103,0.001,104,0.001,145,3.363,177,1.421,226,1.11,236,1.263,262,2.83,291,5.648,340,3.732,345,2.472,349,1.054,379,0.971,437,1.004,480,2.156,486,2.336,529,2.197,539,1.351,541,1.859,608,2.629,3075,4.658,8549,4.202,10378,7.111,11292,8.054,15513,9.395,16332,5.919,16936,7.179,19357,8.551,19413,9.438,19453,11.199,19456,6.083,19481,7.179,19507,6.793,19511,9.438,19513,9.438,19574,7.179,19584,7.765,19585,7.765,19586,12.113,19587,7.765,19588,7.765,19589,7.179,19590,7.765,19591,7.765]],["title/classes/TargetInfoMapper.html",[0,0.231,15153,5.958]],["body/classes/TargetInfoMapper.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,29,0.746,30,0.001,31,0.653,32,0.131,33,0.459,34,1.631,35,1.15,95,0.148,99,1.597,100,3.915,101,0.016,103,0.001,104,0.001,236,1.558,349,0.989,413,3.87,437,1.238,782,6.47,2680,4.323,4373,8.022,6917,9.727,15124,10.568,15153,10.198,18375,8.377,18377,8.377,19592,11.657,19593,11.657,19594,9.576,19595,9.576,19596,9.576]],["title/classes/TargetInfoResponse.html",[0,0.231,15124,5.503]],["body/classes/TargetInfoResponse.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.498,29,0.693,30,0.001,31,0.769,32,0.166,33,0.427,34,2.314,47,0.9,95,0.113,101,0.015,103,0.001,104,0.001,112,0.885,138,2.026,150,2.027,153,2.765,154,2.724,245,3.189,253,4.357,379,1.393,404,3.631,773,4.503,820,4.083,1985,3.539,2103,6.971,2680,5.755,2858,5.829,2859,5.934,2860,5.934,4367,7.784,15124,10.606,18382,7.784,18383,8.227,19597,12.747]],["title/entities/Task.html",[154,1.456,2627,3.042]],["body/entities/Task.html",[0,0.164,3,0.007,4,0.007,5,0.003,7,0.168,26,1.724,27,0.471,30,0.001,31,0.35,32,0.167,33,0.531,34,0.825,47,0.719,55,1.042,83,2.871,95,0.143,96,0.795,101,0.013,103,0,104,0,105,0.523,112,0.699,119,2.298,138,2.09,143,2.633,144,3.231,145,3.073,153,1.421,154,1.035,155,0.965,160,4.169,172,3.605,173,0.855,174,1.926,175,1.279,178,1.201,180,0.518,181,0.774,182,0.941,226,0.413,236,1.712,239,2.677,347,3.425,349,1.312,437,1.741,474,1.235,480,1.735,486,1.88,517,1.109,519,2.265,528,1.506,529,1.37,556,2.05,578,1.755,593,1.071,603,2.405,604,1.968,644,3.336,654,1.859,662,3.48,696,1.91,708,3.037,739,1.266,765,1.605,826,1.665,914,2.022,1154,1.15,1162,1.382,1280,0.904,1395,1.895,1657,1.373,1666,1.224,1679,2.21,1762,2.906,1861,3.888,1867,3.632,1889,4.292,1927,1.699,1985,1.15,2384,1.843,2611,4.857,2614,3.989,2618,1.578,2623,3.086,2624,1.699,2625,3.303,2626,2.022,2627,4.831,2637,2.933,2641,5.331,2824,3.581,3077,1.634,3227,3.23,3230,3.751,3307,4.396,3395,1.843,3683,5.76,3685,2.423,3737,4.036,3756,5.412,3760,3.272,3761,5.69,3762,4.789,3763,5.767,3764,6.274,3765,3.272,3776,5.907,4060,1.699,4209,1.643,4221,1.819,4266,2.423,4285,1.266,4919,1.819,4920,1.868,5040,2.223,5067,2.939,6537,4.155,6565,2.53,6570,2.674,6576,1.796,6579,2.939,6590,3.046,6591,1.62,6603,2.266,6607,2.061,6609,1.954,6610,1.868,6611,1.796,6612,1.735,6628,1.843,6816,2.53,6825,1.796,6826,1.923,6899,3.795,6922,3.382,6932,1.868,6937,2.151,7709,2.674,8005,5.61,8161,2.104,9689,1.843,11136,2.022,11907,1.986,11927,1.986,12061,2.337,12297,2.337,12317,5.437,12318,2.337,12336,5.437,12337,2.337,12448,4.546,12451,3.452,12452,4.648,12453,4.546,12454,2.53,12456,2.53,12457,2.423,12458,2.53,12459,2.53,12460,2.53,12461,2.53,12462,2.53,12463,5.467,12464,5.05,12465,4.896,12466,2.53,12467,4.238,12468,2.423,12469,4.238,12470,2.53,12471,2.53,12472,2.423,12473,7.703,12474,2.53,12475,2.205,12476,2.337,12477,4.238,12478,6.395,12479,3.914,12480,6.395,12481,2.53,12482,2.53,12483,2.53,12484,4.238,12485,2.53,12486,2.53,12487,2.53,12488,2.53,12489,2.53,12490,2.53,12491,2.53,12492,2.53,12493,2.53,12494,2.53,12495,2.53,12496,2.53,12497,4.238,12498,2.53,12499,2.53,12500,2.205,12501,2.53,12502,2.53,12503,2.53,12504,2.53,12505,2.53,12506,2.53,12507,4.238,12508,2.53,12509,2.53,12510,4.238,12511,2.53,12512,4.238,12513,2.266,12514,2.423,12515,2.53,12516,6.395,12517,5.467,12518,4.058,12519,2.337,12520,5.467,12521,2.53,12522,5.467,12523,2.423,12524,4.238,12525,2.53,12526,2.53,12527,2.53,12528,5.467,12529,2.53,12530,4.238,12531,2.423,12532,2.53,12533,2.53,12534,6.395,12535,2.53,12536,2.53,12537,2.53,12538,2.53,12539,2.53,12540,2.53,12541,2.53,12542,4.238,12543,2.53,12544,2.53,12545,4.238,12546,2.53,12547,2.53,12548,2.53,12549,2.53,12550,2.423,12551,2.53,12552,6.395,12553,2.53,12554,2.53,12555,2.53,12556,2.53,12557,2.53,12558,2.53,12559,2.53,12560,2.53,12561,2.53,12562,2.53,19598,2.892,19599,2.892,19600,2.892,19601,2.892,19602,2.892,19603,2.892,19604,2.892,19605,2.892,19606,2.892,19607,2.892,19608,2.892,19609,2.892,19610,2.892,19611,2.892,19612,2.892]],["title/modules/TaskApiModule.html",[201,1.804,18588,5.503]],["body/modules/TaskApiModule.html",[0,0.268,3,0.018,4,0.018,5,0.009,30,0.001,95,0.168,101,0.013,103,0.001,104,0.001,201,3.044,203,2.836,204,3.048,205,3.137,206,3.123,207,3.11,208,4.209,209,2.965,218,4.101,219,3.072,220,3,222,4.899,223,4.246,225,4.067,226,1.128,227,3.247,259,3,1692,7.079,1744,7.871,1745,8.498,1749,9.07,2472,3.58,2705,3.723,2984,4.785,6406,9.436,6410,7.291,13881,9.649,18588,11.568,19080,10.053,19091,10.868,19613,7.886,19614,7.886,19615,7.886,19616,10.868,19617,10.868,19618,7.886,19619,10.053,19620,7.886,19621,7.886]],["title/entities/TaskBoardElement.html",[154,1.456,2638,5.503]],["body/entities/TaskBoardElement.html",[0,0.305,3,0.021,4,0.021,5,0.011,7,0.136,27,0.368,30,0.001,32,0.123,95,0.155,96,3.355,101,0.015,103,0.001,104,0.001,112,0.89,138,1.633,143,2.494,144,4.023,154,2.394,155,2.996,173,2.655,180,1.609,181,2.403,403,4.983,997,4.238,1225,6.875,1679,4.097,1773,4.899,2506,5.073,2607,8.776,2627,5.713,2628,5.576,2629,7.983,2631,7.521,2638,9.053,2680,5.773,2975,6.843,3012,9.385,3547,6.064,4443,6.53,5040,4.119,5041,7.854,6502,6.276,6952,7.033,6953,7.338,6954,6.843,6955,6.53,12290,9.8,14151,8.3,19622,11.202,19623,8.977]],["title/controllers/TaskController.html",[259,2.591,19619,5.958]],["body/controllers/TaskController.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.069,8,0.838,10,3.45,27,0.476,29,0.904,30,0.001,31,0.65,32,0.159,33,0.557,35,1.395,36,2.777,56,3.38,70,3.49,95,0.161,100,2.852,101,0.008,103,0,104,0,138,2.047,143,1.556,145,2.358,150,1.04,177,1.279,223,1.88,226,0.653,236,0.743,247,1.999,259,1.737,261,2.168,262,2.982,270,6.687,271,3.322,285,2.991,294,6.944,310,4.123,324,3.537,333,3.593,334,2.949,337,2.36,338,2.413,340,2.194,343,2.432,345,1.453,349,1.199,437,1.641,480,1.268,486,1.374,602,3.69,603,1.911,608,2.595,631,2.343,739,4.165,815,3.783,823,3.795,835,8.492,1545,3.69,1546,3.396,1547,3.995,2627,3.794,2882,8.092,2903,2.58,2904,2.451,2939,6.862,2966,2.949,2984,2.77,2985,2.557,3720,4.106,5104,2.629,6216,3.577,6454,3.69,6463,7.97,6469,4.222,6680,7.693,8005,6.062,12261,3.136,14154,3.825,14160,3.825,15068,6.652,15074,4.222,17779,3.825,17780,4.222,17794,3.995,17796,3.995,17906,6.115,19087,10.932,19616,7.114,19617,7.114,19619,6.115,19624,4.566,19625,7.851,19626,8.492,19627,6.989,19628,7.851,19629,4.566,19630,4.566,19631,4.566,19632,6.989,19633,4.566,19634,4.566,19635,4.566,19636,6.989,19637,4.566,19638,4.566,19639,4.566,19640,4.566,19641,6.989,19642,4.566,19643,4.566,19644,6.989,19645,4.566,19646,4.566,19647,6.989,19648,4.566,19649,3.995,19650,4.566,19651,4.566,19652,3.825,19653,3.69,19654,4.566,19655,4.566,19656,4.566,19657,6.989,19658,4.566,19659,4.566,19660,4.566,19661,4.566,19662,4.566,19663,9.514,19664,4.566,19665,4.566,19666,6.989,19667,10.255,19668,4.566,19669,4.566,19670,4.566,19671,4.566,19672,4.566,19673,4.566]],["title/classes/TaskCopyApiParams.html",[0,0.231,6463,5.705]],["body/classes/TaskCopyApiParams.html",[0,0.368,2,0.954,3,0.02,4,0.02,5,0.01,7,0.129,27,0.444,30,0.001,32,0.148,33,0.602,34,2.137,47,0.886,95,0.137,100,3.641,101,0.014,103,0.001,104,0.001,112,0.861,138,1.972,148,2.704,149,4.535,150,1.941,153,2.945,249,4.823,253,5.308,807,4.865,1394,9.83,1861,5.695,1867,4.015,2421,6.368,2627,5.916,2637,5.088,2859,6.683,2860,6.683,3307,6.265,5067,7.233,6224,10.977,6463,9.081,7102,8.492,10769,9.484,14164,7.878,14165,7.878,19674,9.987,19675,8.521]],["title/injectables/TaskCopyService.html",[539,0.901,2945,5.335]],["body/injectables/TaskCopyService.html",[0,0.181,3,0.012,4,0.012,5,0.006,7,0.081,8,0.942,26,1.664,27,0.449,29,0.854,30,0.001,31,0.642,32,0.173,33,0.526,35,1.236,36,1.672,47,0.377,95,0.15,99,0.89,101,0.009,103,0,104,0,153,1.213,177,1.707,226,0.763,227,2.196,236,0.868,239,2.973,262,2.722,271,4.024,347,4.201,349,0.963,379,0.982,437,1.534,528,2.778,539,1.04,541,1.277,556,2.889,603,2.603,608,2.644,654,1.587,848,4.323,1154,2.122,1167,4.941,1207,1.703,1658,3.201,1749,8.018,1867,4.248,2625,5.795,2627,5.944,2637,2.504,2934,4.179,2939,6.348,2945,6.154,2948,8.625,2954,9.29,2964,11.205,2966,7.407,2982,4.179,2983,3.968,2984,3.237,2985,2.988,2997,4.667,2998,4.179,2999,4.469,3034,4.469,3541,3.871,3542,2.177,4772,4.667,5488,3.495,6359,9.934,6360,4.932,6364,7.263,6373,9.51,6382,6.873,6387,10.137,6389,8.158,6400,6.154,6435,4.469,6727,4.311,6745,4.469,6752,4.932,6922,2.887,10575,4.932,12448,3.88,12453,3.88,19676,11.469,19677,9.325,19678,7.856,19679,4.667,19680,5.335,19681,7.856,19682,11.859,19683,5.335,19684,10.964,19685,5.335,19686,7.856,19687,12.421,19688,5.335,19689,7.856,19690,5.335,19691,5.335,19692,5.335,19693,5.335,19694,5.335,19695,5.335,19696,5.335,19697,5.335,19698,5.335,19699,5.335,19700,5.335,19701,5.335,19702,5.335,19703,4.932,19704,5.335,19705,4.932,19706,5.335,19707,5.335,19708,5.335,19709,5.335]],["title/injectables/TaskCopyUC.html",[539,0.901,19616,5.705]],["body/injectables/TaskCopyUC.html",[0,0.143,3,0.01,4,0.01,5,0.005,7,0.064,8,0.788,26,2.518,27,0.476,29,0.881,30,0.001,31,0.634,32,0.159,33,0.543,35,1.359,36,2.327,39,1.134,47,0.855,95,0.143,99,0.703,101,0.007,102,2.119,103,0,104,0,119,0.858,131,3.923,177,1.917,226,0.603,227,1.736,236,1.314,239,2.822,262,2.695,284,1.302,285,2.762,347,2.407,349,1.082,379,0.822,437,1.537,475,2.164,519,3.388,529,2.58,539,0.87,541,1.009,556,3.239,560,1.736,562,2.896,579,2.246,603,2.735,608,2.414,643,1.874,765,2.341,932,4.445,933,2.503,990,1.426,1025,1.65,1117,4.9,1154,1.677,1162,2.014,1178,2.264,1233,2.762,1243,2.588,1458,3.714,1603,1.586,1615,2.558,1618,2.558,1666,1.784,1669,2.652,1698,4.821,1744,6.355,1745,7.165,1749,7.647,1861,3.14,1867,3.662,2020,1.846,2021,2.065,2022,1.991,2023,2.687,2421,2.477,2471,2.503,2472,1.914,2622,2.246,2625,5.226,2627,4.886,2637,1.979,2939,5.311,2945,8.569,2948,7.956,2954,9.485,2964,9.163,2966,2.723,2984,2.558,2985,2.361,3033,3.689,3034,3.533,3035,3.899,3549,6.328,3612,2.948,4022,4.134,4645,3.214,4692,2.212,5067,3.988,6284,2.341,6423,6.766,6465,8.432,6593,3.408,6600,3.136,6714,3.533,6727,5.311,6729,3.899,6765,3.689,6766,7.641,6772,3.689,6778,3.689,6779,3.689,6780,2.723,8692,3.689,12325,3.303,13156,3.408,14113,7.746,14177,7.467,14178,3.899,14180,3.899,14181,3.689,14184,3.899,14200,5.506,17126,3.533,17842,3.899,18885,6.077,18931,3.689,19292,6.328,19616,5.506,19684,10.988,19710,11.885,19711,6.573,19712,6.573,19713,6.573,19714,8.077,19715,6.573,19716,8.077,19717,4.217,19718,6.573,19719,4.217,19720,6.573,19721,4.217,19722,4.217,19723,6.573,19724,4.217,19725,6.573,19726,9.887,19727,4.217,19728,4.217,19729,6.573,19730,4.217,19731,6.573,19732,4.217,19733,3.408,19734,3.899,19735,3.899,19736,4.217,19737,3.689,19738,4.217,19739,4.217,19740,4.217,19741,3.533,19742,3.899,19743,4.217,19744,4.217,19745,4.217,19746,6.573,19747,4.217,19748,4.217,19749,3.899,19750,4.217,19751,4.217,19752,4.217,19753,4.217,19754,4.217,19755,4.217]],["title/classes/TaskCreateParams.html",[0,0.231,19756,5.958]],["body/classes/TaskCreateParams.html",[0,0.317,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,27,0.509,30,0.001,31,0.598,32,0.182,33,0.639,34,1.956,47,0.915,83,4.161,95,0.146,99,1.135,101,0.011,103,0.001,104,0.001,112,0.742,133,4.015,138,2.261,142,4.492,143,2.557,144,3.078,145,2.594,148,2.16,149,4.729,150,1.551,153,3.056,245,2.45,247,2.979,248,5.022,249,5.029,253,5.622,806,6.797,807,4.353,1207,2.983,1280,2.92,1861,5.096,1867,3.46,2627,5.793,2637,4.385,2714,6.12,2859,6.116,2860,6.116,3227,3.518,3230,5.475,3683,5.279,3737,6.89,5067,6.472,7106,7.827,7117,5.5,7119,7.122,8249,5.734,8698,5.5,12450,7.935,15650,6.292,19674,10.666,19756,8.173,19757,6.806,19758,8.638,19759,6.806,19760,6.292,19761,6.806,19762,8.638,19763,6.806,19764,6.806,19765,6.292]],["title/classes/TaskFactory.html",[0,0.231,19114,5.958]],["body/classes/TaskFactory.html",[0,0.15,2,0.494,3,0.01,4,0.01,5,0.005,7,0.067,8,0.817,27,0.535,29,1.001,30,0.001,31,0.697,32,0.179,33,0.588,34,1.417,35,1.416,47,0.481,55,2.394,59,3.138,95,0.135,99,0.737,101,0.007,103,0,104,0,112,0.541,120,2.997,133,2.382,140,2.473,143,1.517,145,2.596,153,1.89,154,2.159,155,2.273,177,1.247,180,1.221,236,1.353,239,2.449,271,4.982,319,3.075,349,1.043,379,0.852,382,3.8,413,2.098,437,1.486,447,7.138,448,4.375,449,5.283,452,3.849,453,5.283,454,5.597,455,3.849,456,3.849,457,3.849,458,3.781,459,4.268,460,4.699,461,6.321,462,5.606,463,6.96,464,2.519,469,2.495,470,3.849,471,2.519,472,4.941,473,5.101,474,3.993,475,4.797,476,3.815,477,2.495,478,2.352,479,3.998,480,3.189,481,2.43,482,2.39,483,2.495,484,4.867,485,2.519,486,3.546,487,4.616,488,2.495,489,7.267,490,4.073,491,6.491,492,2.519,493,4.125,494,2.495,495,2.519,496,2.495,497,2.519,498,2.495,499,2.813,500,2.621,501,2.495,502,5.924,503,2.519,504,2.495,505,3.849,506,3.6,507,3.849,508,2.519,509,2.41,510,2.39,511,1.973,512,2.495,513,2.495,514,2.495,515,2.519,516,2.519,517,1.693,518,2.495,519,1.368,520,2.519,521,2.698,522,2.495,523,2.519,525,2.568,526,2.621,527,5.609,603,2.144,648,3.147,649,3.366,654,2.473,765,2.451,933,2.621,1658,2.649,1765,3.568,2627,3.043,3737,5.371,6804,3.459,6805,3.568,6809,6.515,6814,3.459,6922,3.687,8005,5.298,10203,6.298,10204,4.083,12451,3.147,12500,7.126,12513,7.324,12514,7.831,19114,7.275,19120,4.083,19766,4.416,19767,4.416,19768,6.812,19769,4.416,19770,4.416,19771,4.416,19772,6.812,19773,4.416]],["title/classes/TaskListResponse.html",[0,0.231,19652,5.705]],["body/classes/TaskListResponse.html",[0,0.304,2,0.718,3,0.015,4,0.015,5,0.008,7,0.097,27,0.482,29,0.5,30,0.001,31,0.627,32,0.182,33,0.565,34,1.761,47,0.917,55,2.945,56,5.902,59,2.786,70,6.094,83,3.437,95,0.142,99,1.07,100,2.155,101,0.015,103,0.001,104,0.001,112,0.712,119,1.306,133,2.243,138,2.036,145,1.781,149,4.643,150,1.462,153,2.35,180,1.607,245,3.449,247,2.808,284,3.638,347,3.787,348,3.203,376,4.503,377,4.693,379,1.122,381,2.155,382,3.378,404,2.618,406,4.143,408,4.143,556,1.616,814,7.689,815,6.606,816,5.115,818,3.224,820,4.744,821,3.083,822,3.592,823,2.251,824,4.485,825,5.792,826,5.164,827,4.202,828,3.417,829,4.485,830,4.485,832,4.035,833,3.561,1224,3.592,1603,2.412,1861,4.939,1889,7.101,1927,3.768,1985,2.551,2161,3.659,2196,2.595,2627,4.619,2723,7.041,3230,3.292,3737,4.143,3738,3.985,3751,5.026,6219,5.026,6220,4.406,6221,4.265,12464,5.184,12465,5.026,17527,8.355,19652,7.513,19653,10.329,19774,5.931,19775,6.415,19776,6.415,19777,7.247,19778,5.931,19779,5.931,19780,5.931]],["title/classes/TaskMapper.html",[0,0.231,19649,5.958]],["body/classes/TaskMapper.html",[0,0.231,2,0.763,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,27,0.437,29,0.831,30,0.001,31,0.697,32,0.157,33,0.512,34,1.161,35,1.283,95,0.135,99,1.137,100,4.178,101,0.011,103,0.001,104,0.001,145,1.893,153,2.126,236,1.522,271,3.659,347,3.426,349,1.103,376,2.969,377,3.094,413,4.053,437,1.609,782,5.192,789,3.404,1861,5.1,1889,4.682,2196,2.758,2627,4.179,3227,3.524,3230,4.8,3521,8.183,3737,6.041,5067,5.675,5141,6.303,6488,8.648,6489,8.648,8161,8.358,9289,8.183,12449,8.547,12450,8.547,12465,5.341,12472,5.711,12500,5.197,17527,7.558,17691,8.648,19649,8.183,19653,9.286,19703,8.648,19756,10.053,19781,6.817,19782,9.354,19783,9.354,19784,9.354,19785,6.817,19786,9.354,19787,10.053,19788,6.817,19789,9.354,19790,6.817,19791,5.964,19792,6.817,19793,6.817,19794,6.817,19795,9.354,19796,6.817,19797,6.817,19798,6.817,19799,6.817,19800,6.817,19801,6.817,19802,6.817,19803,6.817,19804,6.817,19805,6.817,19806,6.817,19807,6.817,19808,6.817,19809,6.817,19810,9.354,19811,6.817,19812,6.817,19813,6.817,19814,10.624,19815,9.354,19816,9.354,19817,9.354]],["title/modules/TaskModule.html",[201,1.804,13881,5.065]],["body/modules/TaskModule.html",[0,0.262,3,0.018,4,0.018,5,0.009,30,0.001,95,0.159,101,0.013,103,0.001,104,0.001,201,3.012,203,2.777,204,2.983,205,3.07,206,3.057,207,3.045,208,4.165,209,4.276,218,4.044,219,3.008,220,2.937,225,4.011,226,1.104,227,3.178,560,3.178,1167,4.855,1744,7.825,1745,8.448,1748,9.831,1749,9.016,2945,10.829,2984,4.684,2985,4.323,3533,9.592,3541,3.804,3542,3.15,5053,10.537,6406,9.38,13881,10.681,19283,11.171,19818,7.72,19819,7.72,19820,7.72,19821,7.72,19822,7.72]],["title/injectables/TaskRepo.html",[539,0.901,1749,4.761]],["body/injectables/TaskRepo.html",[0,0.124,3,0.009,4,0.009,5,0.004,7,0.111,8,0.702,10,2.379,12,2.687,18,2.963,26,2.714,27,0.476,29,0.886,30,0.001,31,0.637,32,0.174,33,0.546,34,0.621,35,1.397,36,2.657,39,0.98,40,2.831,53,2.65,56,1.762,58,2.353,59,3.055,72,1.654,83,1.798,95,0.131,96,1.001,98,2.163,101,0.006,103,0,104,0,119,1.494,120,4.728,143,1.872,153,0.828,154,0.779,155,1.954,173,1.078,180,1.049,226,0.521,236,1.927,262,2.905,310,2.538,319,3.795,333,3.106,349,1.068,382,2.536,437,1.657,479,4.356,480,1.012,486,1.096,490,4.427,539,0.775,541,0.872,556,2.117,593,2.169,603,1.975,608,2.477,679,6.071,685,2.478,686,2.764,687,3.715,711,2.236,712,2.263,713,2.236,714,2.263,715,2.597,716,2.236,717,2.263,718,2.023,721,2.292,741,2.503,742,2.461,754,2.387,764,2.387,821,1.751,975,3.222,1395,2.387,1658,2.186,1749,4.094,1861,3.506,1867,2.169,2032,2.71,2034,4.75,2291,4.99,2368,2.387,2442,1.784,2627,5.452,2637,3.945,3076,5.356,3230,3.005,3307,1.819,3576,9.042,3638,2.503,3683,2.059,4690,3.893,4692,3.85,4779,4.666,4780,5.414,4915,2.236,5092,3.309,5104,5.302,5505,3.415,5949,3.405,6284,4.666,6680,5.525,6846,2.778,6850,2.778,6969,7.902,6970,7.302,6999,2.65,7000,2.65,7873,2.71,8005,2.322,9069,3.053,9099,3.369,9103,5.123,11727,2.263,12500,2.778,17759,3.369,18958,4.463,19823,3.644,19824,5.855,19825,7.34,19826,7.34,19827,6.786,19828,5.855,19829,5.855,19830,3.644,19831,3.644,19832,3.644,19833,5.414,19834,7.34,19835,3.644,19836,3.644,19837,3.369,19838,3.644,19839,5.855,19840,3.644,19841,5.855,19842,3.644,19843,3.644,19844,9.402,19845,3.644,19846,3.644,19847,3.644,19848,3.644,19849,3.644,19850,3.369,19851,3.369,19852,3.369,19853,3.369,19854,9.208,19855,3.644,19856,3.644,19857,3.644,19858,3.644,19859,3.644,19860,3.644,19861,3.644,19862,3.644,19863,3.644,19864,3.644,19865,3.644,19866,3.644,19867,3.644,19868,2.945,19869,3.644,19870,3.644,19871,3.644,19872,3.644,19873,3.644,19874,3.644,19875,3.644,19876,3.644,19877,3.644,19878,3.644,19879,3.644,19880,3.644,19881,3.644,19882,3.644,19883,3.644,19884,3.644,19885,3.644,19886,9.834,19887,7.34,19888,3.188,19889,3.188,19890,3.188,19891,3.644,19892,7.34,19893,3.644,19894,3.644,19895,3.644,19896,3.644,19897,3.644,19898,3.644,19899,3.644,19900,3.644,19901,3.644,19902,3.644,19903,5.855,19904,3.644,19905,3.644,19906,3.644,19907,3.644,19908,3.644,19909,3.644,19910,3.188,19911,3.644,19912,5.855,19913,3.644,19914,3.644,19915,3.644,19916,3.188,19917,3.644,19918,3.188,19919,3.644,19920,3.369,19921,2.945,19922,3.644,19923,3.188,19924,3.644,19925,3.644,19926,3.369,19927,3.644,19928,3.369,19929,3.644,19930,3.644]],["title/classes/TaskResponse.html",[0,0.231,19653,5.503]],["body/classes/TaskResponse.html",[0,0.279,2,0.634,3,0.013,4,0.013,5,0.007,7,0.086,27,0.546,29,0.441,30,0.001,31,0.656,32,0.187,33,0.622,34,1.914,47,0.964,55,2.077,56,3.969,70,4.098,83,3.799,95,0.134,99,0.945,100,2.757,101,0.014,103,0,104,0,112,0.652,119,1.671,133,2.87,138,2.407,145,1.573,149,4.872,150,1.291,153,2.747,180,1.015,245,3.544,247,2.48,284,2.535,347,4.115,348,4.098,376,4.893,377,5.099,379,1.027,381,2.757,404,2.312,406,3.659,408,3.659,480,2.279,486,2.47,773,2.867,814,5.038,815,3.066,816,3.231,832,3.563,833,3.145,1213,3.145,1224,4.597,1603,3.087,1861,5.366,1889,7.716,1927,3.328,1985,2.253,2161,4.682,2196,3.321,2627,5.019,2720,5.849,2723,6.656,3230,4.954,3737,6.234,3738,5.996,3751,4.438,6219,6.431,6220,5.638,6221,5.458,12464,7.8,12465,7.562,17527,8.553,19652,4.746,19653,10,19774,5.238,19777,7.8,19778,5.238,19779,5.238,19780,5.238,19931,5.666,19932,5.666,19933,5.666,19934,5.666,19935,5.666,19936,5.666,19937,5.666,19938,5.666,19939,5.666,19940,5.666,19941,5.666,19942,5.666,19943,5.666,19944,5.666,19945,5.666]],["title/injectables/TaskRule.html",[539,0.901,1711,5.503]],["body/injectables/TaskRule.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.096,8,1.064,27,0.456,29,0.866,30,0.001,31,0.623,32,0.16,33,0.534,35,1.233,95,0.154,101,0.01,103,0.001,104,0.001,119,2.473,131,4.389,143,1.408,145,1.756,154,2.86,177,1.878,226,0.904,239,3.095,349,1.255,379,1.11,437,1.647,539,1.175,541,1.514,603,2.441,604,2.57,643,2.811,662,3.821,739,3.886,1280,1.977,1609,6.021,1612,7.365,1613,6.828,1627,4.344,1637,7.547,1658,3.795,1666,2.676,1675,5.387,1703,9.281,1707,10.084,1711,7.175,1816,5.734,1820,5.515,1827,4.205,2627,5.924,3307,3.158,3352,5.903,3353,4.272,3356,5.816,3359,4.272,3360,5.997,6858,5.533,6859,5.533,6860,5.298,6861,7.768,6922,3.423,14269,8.209,17750,7.768,17752,8.209,19946,6.325,19947,10.286,19948,6.325,19949,8.879,19950,6.325,19951,6.325,19952,6.325,19953,6.325,19954,8.879,19955,6.325,19956,6.325,19957,6.325,19958,8.879,19959,6.325]],["title/classes/TaskScope.html",[0,0.231,19844,5.958]],["body/classes/TaskScope.html",[0,0.146,2,0.482,3,0.01,4,0.01,5,0.005,7,0.065,8,0.8,26,2.872,27,0.537,29,0.986,30,0.001,31,0.71,32,0.178,33,0.608,35,1.537,39,2.201,83,3.591,95,0.117,96,1.182,101,0.007,103,0,104,0,112,0.53,119,2.515,143,1.821,173,1.272,180,1.196,236,0.7,310,4.776,349,1.293,382,3.011,437,1.192,480,2.771,486,1.294,519,1.333,593,3.415,603,2.544,1658,2.581,1867,2.473,2291,6.76,2442,2.107,2627,1.922,2637,3.839,3230,4.731,3600,6.611,3737,6.445,3761,5.72,5505,4.856,6059,4.51,6060,4.51,6061,4.51,6066,4.51,6067,4.51,6068,2.955,6069,2.906,6070,2.955,6071,2.955,6080,2.906,6081,4.51,6082,2.955,6083,2.906,6084,2.955,6085,2.906,6086,8.073,6284,6.634,6809,3.371,6846,5.089,6922,5.401,6990,3.477,8005,4.254,10293,3.477,10302,3.764,10305,3.978,10309,3.764,10311,7.157,10312,6.173,14285,6.173,14286,6.173,14289,3.764,19844,11.818,19888,5.841,19889,5.841,19890,8.066,19910,8.066,19960,12.667,19961,6.676,19962,6.676,19963,6.676,19964,6.676,19965,6.676,19966,6.676,19967,6.676,19968,6.676,19969,6.676,19970,6.676,19971,6.676,19972,4.302,19973,6.676,19974,4.302,19975,6.676,19976,6.676,19977,4.302,19978,6.676,19979,6.676,19980,4.302,19981,6.676,19982,4.302,19983,6.676,19984,4.302,19985,6.676,19986,4.302,19987,6.676,19988,4.302,19989,6.676,19990,4.302,19991,4.302,19992,4.302,19993,4.302,19994,4.302,19995,4.302]],["title/injectables/TaskService.html",[539,0.901,5053,5.191]],["body/injectables/TaskService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,10,3.8,12,4.292,26,2.821,27,0.493,29,0.938,30,0.001,31,0.674,32,0.174,33,0.578,35,1.38,36,2.76,59,2.906,95,0.153,98,4.047,99,1.137,101,0.011,103,0.001,104,0.001,119,1.904,120,4.115,177,1.955,226,0.975,227,2.807,262,2.97,349,0.966,379,1.17,437,1.21,490,4.075,539,1.238,541,1.632,603,2.498,608,2.649,1167,4.288,1749,8.696,1861,5.489,2298,4.959,2303,5.341,2627,5.88,3541,3.359,3542,2.782,3683,3.852,5053,7.13,6284,5.192,6366,9.077,6969,8.188,6970,6.972,12500,5.197,19098,6.303,19283,10.294,19292,5.341,19327,6.303,19679,5.964,19737,5.964,19827,9.872,19837,6.303,19910,5.964,19996,6.817,19997,9.354,19998,6.817,19999,9.354,20000,6.817,20001,9.354,20002,6.817,20003,9.354,20004,6.817,20005,6.817,20006,6.817,20007,6.817,20008,6.817,20009,6.817,20010,6.817,20011,6.817]],["title/classes/TaskStatusMapper.html",[0,0.231,19791,5.958]],["body/classes/TaskStatusMapper.html",[0,0.329,2,1.085,3,0.023,4,0.023,5,0.012,7,0.147,8,1.408,27,0.397,29,0.755,30,0.001,31,0.543,32,0.132,33,0.465,35,1.164,95,0.149,99,1.617,100,3.944,101,0.016,103,0.001,104,0.001,236,1.576,347,3.549,349,1.001,413,3.89,437,1.253,782,6.517,3751,7.592,3755,10.272,3756,8.731,19777,10.209,19791,10.272,20012,11.742,20013,9.691,20014,9.691,20015,9.691,20016,9.691]],["title/classes/TaskStatusResponse.html",[0,0.231,19777,5.503]],["body/classes/TaskStatusResponse.html",[0,0.272,2,0.897,3,0.019,4,0.019,5,0.01,7,0.121,27,0.543,29,0.624,30,0.001,31,0.449,32,0.181,33,0.384,55,2.804,95,0.102,101,0.013,103,0.001,104,0.001,112,0.827,119,2.652,138,2.37,150,1.825,245,3.663,379,1.303,773,4.055,3759,7.408,3760,8.585,3761,8.886,3762,8.326,3763,8.326,3764,9.057,3765,8.585,3766,7.408,3773,6.712,3774,7.408,3775,6.712,3776,6.474,3777,7.408,3778,7.408,19674,11.267,19777,10.271,20017,8.012,20018,8.012,20019,8.012,20020,8.012,20021,8.012,20022,8.012]],["title/injectables/TaskUC.html",[539,0.901,19617,5.705]],["body/injectables/TaskUC.html",[0,0.106,3,0.007,4,0.007,5,0.004,7,0.047,8,0.619,10,2.099,26,2.742,27,0.454,29,0.843,30,0.001,31,0.606,32,0.148,33,0.519,35,1.3,36,2.621,39,2.825,59,0.971,83,2.609,95,0.108,98,3.067,99,0.521,101,0.005,103,0,104,0,119,1.729,143,0.696,145,2.13,154,0.668,177,1.555,226,0.447,227,1.287,236,1.708,239,2.937,262,2.864,310,1.355,347,4.23,349,1.212,358,1.375,379,0.646,437,1.768,480,1.435,510,1.692,528,3.995,529,0.884,539,0.684,541,0.748,560,1.287,603,2.518,608,2.984,643,2.297,721,1.966,739,3.358,742,2.111,759,2.383,815,4.953,823,2.692,932,1.72,1246,1.8,1458,1.766,1612,4.222,1615,1.897,1618,3.135,1619,3.436,1627,3.549,1628,4.327,1666,1.323,1688,2.227,1698,5.119,1744,5.876,1745,6.344,1749,6.398,1796,5.155,1798,4.048,1818,3.436,1867,3.147,2034,3.732,2337,1.783,2345,2.89,2384,1.992,2472,1.419,2476,4.618,2625,1.652,2627,4.327,3077,2.92,3230,4.36,3417,3.25,3756,3.436,3762,5.026,4324,1.897,4779,5.622,5053,7.383,5092,3.732,5104,3.803,6165,2.048,6284,3.666,6297,2.078,6680,7.316,6846,5.849,6964,4.521,7042,4.048,8005,3.292,8161,2.274,8191,7.433,9045,8.804,10140,2.325,11787,1.992,14200,6.428,14317,4.521,15068,4.048,17126,2.619,18958,2.383,19292,8.227,19617,4.329,19625,4.777,19628,4.777,19679,2.735,19705,4.777,19737,5.778,19850,4.777,19851,4.777,19852,4.777,19853,4.777,19888,4.521,19889,2.735,19890,4.521,20023,3.126,20024,5.167,20025,5.167,20026,7.673,20027,5.167,20028,5.167,20029,3.126,20030,5.167,20031,3.126,20032,3.126,20033,5.167,20034,3.126,20035,5.167,20036,3.126,20037,5.167,20038,3.126,20039,5.167,20040,3.126,20041,3.126,20042,5.167,20043,8.497,20044,3.126,20045,5.167,20046,3.126,20047,5.167,20048,3.126,20049,3.126,20050,6.605,20051,5.167,20052,6.605,20053,6.605,20054,9.152,20055,5.167,20056,9.152,20057,5.167,20058,5.167,20059,7.673,20060,3.126,20061,9.152,20062,6.605,20063,7.673,20064,6.605,20065,4.777,20066,3.126,20067,3.126,20068,3.126,20069,3.126,20070,3.126,20071,3.126,20072,3.126,20073,3.126,20074,7.673,20075,5.167,20076,3.126,20077,7.673,20078,5.167,20079,5.167,20080,5.167,20081,3.126,20082,5.167,20083,3.126,20084,3.126,20085,7.673,20086,3.126,20087,3.126,20088,3.126,20089,3.126,20090,3.126,20091,3.126,20092,3.126,20093,3.126,20094,3.126,20095,3.126,20096,3.126,20097,5.167,20098,5.167,20099,3.126,20100,3.126,20101,5.167,20102,5.167,20103,3.126,20104,3.126]],["title/classes/TaskUpdateParams.html",[0,0.231,19787,5.958]],["body/classes/TaskUpdateParams.html",[0,0.317,2,0.762,3,0.016,4,0.016,5,0.008,7,0.103,27,0.509,30,0.001,31,0.598,32,0.182,33,0.639,34,1.956,47,0.915,83,4.161,95,0.146,99,1.135,101,0.011,103,0.001,104,0.001,112,0.742,133,4.015,138,2.261,142,4.492,143,2.557,144,3.078,145,2.594,148,2.16,149,4.729,150,1.551,153,3.056,245,2.45,247,2.979,248,5.022,249,5.029,253,5.622,806,6.797,807,4.353,1207,2.983,1280,2.92,1861,5.096,1867,3.46,2627,5.793,2637,4.385,2714,6.12,2859,6.116,2860,6.116,3227,3.518,3230,5.475,3683,5.279,3737,6.89,5067,6.472,7106,7.827,7117,5.5,7119,7.122,8249,5.734,9504,5.701,12449,7.935,19674,10.666,19758,8.638,19760,6.292,19762,8.638,19765,6.292,19787,8.173,20105,6.806,20106,6.806,20107,6.806,20108,6.806,20109,6.806,20110,6.806]],["title/classes/TaskUrlParams.html",[0,0.231,19087,5.705]],["body/classes/TaskUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,2627,5.284,3817,5.762,19087,9.909,19292,9.949,20111,9.809,20112,9.809]],["title/classes/TaskWithStatusVo.html",[0,0.231,8161,4.953]],["body/classes/TaskWithStatusVo.html",[0,0.18,2,0.362,3,0.008,4,0.008,5,0.004,7,0.174,26,1.833,27,0.277,29,0.252,30,0.001,31,0.298,32,0.153,33,0.155,34,0.905,47,0.694,55,1.144,83,2.657,95,0.148,96,0.888,101,0.014,103,0,104,0,105,0.573,112,0.739,119,2.283,143,2.437,144,3.065,145,3.18,153,0.735,154,1.136,172,3.395,173,0.956,174,2.113,175,1.43,178,1.343,180,0.58,181,0.865,182,1.052,226,0.462,236,1.67,239,2.717,347,4.108,349,1.337,379,0.404,437,1.763,474,1.381,517,1.24,519,2.427,528,1.684,529,1.503,556,1.973,578,1.962,593,1.198,603,2.412,604,2.159,644,3.087,654,0.962,662,3.601,696,2.096,708,3.254,739,1.416,765,1.795,826,1.862,914,2.261,1154,1.286,1162,1.545,1280,1.011,1395,2.118,1657,1.536,1666,1.368,1679,2.425,1762,3.188,1861,3.742,1867,3.205,1889,4.646,1927,1.9,1985,1.286,2384,2.06,2611,3.993,2614,2.9,2618,1.765,2623,3.386,2624,1.9,2625,2.809,2626,2.261,2627,5.364,2637,1.518,2641,5.669,2824,3.807,3077,1.827,3227,2.747,3230,2.727,3307,4.645,3395,2.06,3683,5.555,3685,2.709,3737,2.088,3756,6.826,3760,3.589,3761,6.05,3762,5.131,3763,6.094,3764,6.629,3765,3.589,3776,6.33,4060,1.9,4209,1.097,4221,2.034,4285,1.416,4919,2.034,4920,2.088,5040,2.438,5067,1.962,6537,4.498,6576,2.009,6579,3.224,6590,3.342,6591,1.811,6603,2.533,6607,2.304,6609,2.184,6610,2.088,6611,2.009,6612,1.94,6628,2.06,6825,2.009,6826,2.15,6899,2.533,6922,1.75,6932,2.088,6937,2.405,8005,4.991,8161,3.865,9689,2.06,11136,2.261,11907,2.221,11927,2.221,12061,2.613,12297,2.613,12317,5.826,12318,2.613,12336,5.826,12337,2.613,12448,2.352,12451,3.787,12452,2.405,12453,2.352,12454,2.829,12456,2.829,12457,2.709,12458,2.829,12459,2.829,12460,2.829,12461,2.829,12462,4.649,12463,5.918,12464,5.466,12465,5.299,12466,2.829,12467,2.829,12468,2.709,12469,2.829,12470,2.829,12471,2.829,12472,2.709,12473,8.139,12474,2.829,12475,2.465,12476,2.613,12477,4.649,12478,6.853,12479,4.294,12480,6.853,12481,2.829,12482,2.829,12483,2.829,12484,4.649,12485,2.829,12486,2.829,12487,2.829,12488,2.829,12489,2.829,12490,2.829,12491,2.829,12492,2.829,12493,2.829,12494,2.829,12495,2.829,12496,2.829,12497,4.649,12498,2.829,12499,2.829,12500,2.465,12501,2.829,12502,2.829,12503,2.829,12504,2.829,12505,2.829,12506,2.829,12507,4.649,12508,2.829,12509,2.829,12510,4.649,12511,2.829,12512,4.649,12513,2.533,12514,2.709,12515,2.829,12516,6.853,12517,5.918,12518,4.452,12519,2.613,12520,5.918,12521,2.829,12522,5.918,12523,2.709,12524,4.649,12525,2.829,12526,2.829,12527,2.829,12528,5.918,12529,2.829,12530,4.649,12531,2.709,12532,2.829,12533,2.829,12534,6.853,12535,2.829,12536,2.829,12537,2.829,12538,2.829,12539,2.829,12540,2.829,12541,2.829,12542,4.649,12543,2.829,12544,2.829,12545,4.649,12546,2.829,12547,2.829,12548,2.829,12549,2.829,12550,2.709,12551,2.829,12552,6.853,12553,2.829,12554,2.829,12555,2.829,12556,2.829,12557,2.829,12558,2.829,12559,2.829,12560,2.829,12561,2.829,12562,2.829,20113,5.314,20114,3.234]],["title/classes/TeamDto.html",[0,0.231,4563,4.853]],["body/classes/TeamDto.html",[0,0.363,2,0.934,3,0.019,4,0.019,5,0.01,7,0.127,26,2.501,27,0.51,29,0.65,30,0.001,31,0.697,32,0.17,33,0.4,34,2.011,39,2.245,47,0.909,95,0.106,99,1.392,100,3.593,101,0.018,103,0.001,104,0.001,112,0.849,153,1.897,181,3.159,191,4.516,192,5.316,201,2.833,379,1.044,381,2.803,404,3.405,405,4.592,1666,4.526,1985,3.319,2309,6.815,4209,2.831,4285,3.652,4286,4.953,4287,6.206,4563,9.173,4631,9,4697,6.206,11320,7.3,11321,7.3,11949,7.112,12565,8.587,12574,6.537,15371,10.061,16316,9.358,17392,8.96,20115,7.715,20116,9.358,20117,8.96,20118,8.643,20119,10.696,20120,8.344,20121,8.344,20122,7.715]],["title/entities/TeamEntity.html",[154,1.456,6915,4.132]],["body/entities/TeamEntity.html",[0,0.326,3,0.017,4,0.017,5,0.008,7,0.107,27,0.393,30,0.001,31,0.654,32,0.131,39,1.905,47,0.769,62,6.397,72,3.214,95,0.155,96,2.637,101,0.019,103,0.001,104,0.001,105,1.036,112,0.762,138,1.746,143,2.137,154,2.052,155,2.363,172,3.477,173,2.094,174,3.818,175,3.131,178,2.942,180,1.269,181,2.569,182,2.304,191,5.893,236,1.152,239,3.003,276,5.349,349,1.125,480,3.023,517,4.175,603,1.422,644,5.741,654,2.855,1672,4.998,1985,2.816,2071,5.151,2503,5.628,2611,3.267,3547,4.783,4209,2.402,4269,5.046,4275,5.238,4285,3.1,4286,6.464,4289,8.531,5040,5.599,6589,4.346,6591,3.965,6612,4.249,6915,5.824,6953,4.639,10135,5.151,10136,5.151,11327,5.151,11328,5.398,11949,4.708,12563,7.52,12564,5.932,12565,6.982,12566,9.168,12567,5.548,12568,7.757,12569,5.932,12570,5.932,12571,5.932,12572,5.932,12573,5.932,12574,5.548,12575,5.932,12576,5.932,20123,7.081,20124,7.081]],["title/classes/TeamFactory.html",[0,0.231,20125,6.296]],["body/classes/TeamFactory.html",[0,0.162,2,0.534,3,0.011,4,0.011,5,0.006,7,0.072,8,0.866,27,0.534,29,1.024,30,0.001,31,0.717,32,0.182,33,0.607,34,1.485,35,1.448,39,2.345,47,0.738,55,2.459,59,3.247,95,0.123,99,0.795,101,0.008,103,0,104,0,112,0.573,120,3.177,133,2.525,140,2.669,153,1.982,154,2.234,155,2.41,177,1.322,180,1.294,271,4.95,276,4.444,319,3.26,349,0.901,379,0.596,382,3.862,413,2.224,437,1.128,447,7.235,448,4.508,449,5.496,452,4.081,453,5.496,454,5.721,455,4.081,456,4.081,457,4.081,458,4.008,459,4.474,460,4.927,461,6.476,462,5.802,463,7.06,464,2.718,469,2.693,470,4.081,471,2.718,472,5.141,473,5.308,474,4.155,475,4.992,476,4.044,477,2.693,478,2.539,479,4.12,480,3.267,481,2.623,482,2.579,483,2.693,484,5.064,485,2.718,486,3.54,487,4.839,488,2.693,489,7.234,490,4.173,491,6.65,492,2.718,493,4.324,494,2.693,495,2.718,496,2.693,497,2.718,498,2.693,499,3.037,500,2.829,501,2.693,502,6.105,503,2.718,504,2.693,505,4.081,506,3.817,507,4.081,508,2.718,509,2.601,510,2.579,511,2.129,512,2.693,513,2.693,514,2.693,515,2.718,516,2.718,517,1.827,518,2.693,519,1.476,520,2.718,521,2.86,522,2.693,523,2.718,525,2.772,527,4.333,4310,3.993,4565,2.96,6915,2.892,12563,3.734,12565,6.342,12566,6.931,15367,6.05,20125,8.061,20126,4.766,20127,6.677,20128,7.222,20129,6.677,20130,4.766,20131,7.222,20132,4.766,20133,4.17,20134,4.766,20135,4.766,20136,4.766,20137,4.766,20138,4.766]],["title/injectables/TeamMapper.html",[539,0.901,4668,5.705]],["body/injectables/TeamMapper.html",[0,0.295,3,0.02,4,0.02,5,0.01,7,0.132,8,1.316,27,0.356,29,0.676,30,0.001,31,0.615,32,0.119,33,0.417,34,1.48,35,1.044,39,2.337,95,0.153,99,1.449,100,3.686,101,0.014,103,0.001,104,0.001,153,1.975,154,2.701,226,1.242,236,1.785,333,3.676,349,1.133,437,1.124,539,1.452,541,2.079,662,3.782,4209,2.947,4563,9.004,4565,6.816,4596,8.867,4631,7.672,4668,9.193,4697,6.461,6915,8.075,12565,7.982,12566,7.819,15367,7.277,15371,9.72,20139,8.687,20140,10.973,20141,10.973,20142,8.687,20143,10.145,20144,8.687,20145,8.687,20146,8.031,20147,8.687,20148,8.687,20149,8.687,20150,8.687]],["title/entities/TeamNews.html",[154,1.456,6956,5.191]],["body/entities/TeamNews.html",[0,0.344,3,0.012,4,0.021,5,0.006,7,0.172,9,3.624,26,2.146,27,0.212,30,0.001,31,0.43,32,0.138,34,0.881,47,0.87,83,2.357,95,0.153,96,2.515,101,0.018,103,0,104,0,105,0.558,112,0.859,138,0.94,143,2.525,144,3.736,154,2.313,155,1.725,172,3.748,173,1.529,174,3.053,175,2.286,180,1.815,181,2.711,182,1.682,236,1.489,239,2.483,349,0.534,355,5.758,358,4.028,381,1.737,403,5.082,413,1.592,459,4.698,521,3.626,563,4.556,643,2.298,644,5.175,654,3.219,655,3.858,838,2.407,996,4.373,997,4.782,998,4.322,999,4.571,1000,4.996,1207,2.923,1225,4.711,1603,1.944,1657,3.645,1663,2.599,1679,3.503,1755,3.387,1773,2.821,1867,2.843,2196,3.704,2506,5.173,2611,4.224,2624,3.037,2680,5.813,2725,2.653,3393,3.551,3395,3.294,3396,3.615,3398,3.684,3399,3.615,3400,3.846,3414,3.173,3547,3.492,3572,3.294,4209,1.754,4301,3.941,4302,3.761,4443,3.761,5040,4.201,5120,3.761,5688,6.659,6284,2.87,6502,3.615,6589,3.173,6591,2.895,6612,3.102,6825,3.212,6912,3.846,6913,4.178,6915,5.554,6916,4.178,6917,6.809,6918,5.912,6919,4.178,6920,8.884,6921,5.104,6922,4.955,6923,5.709,6924,5.709,6925,6.731,6926,7.548,6927,4.178,6928,5.47,6929,4.178,6930,3.941,6931,3.941,6932,4.957,6933,4.178,6934,3.941,6935,3.941,6936,4.178,6937,3.846,6938,4.178,6939,3.069,6940,3.173,6941,3.941,6942,4.178,6943,4.178,6944,7.172,6945,4.178,6946,7.398,6947,4.178,6948,4.178,6949,5.851,6950,3.941,6951,6.401,6952,4.051,6953,5.028,6954,3.941,6955,3.761,6956,5.851,6957,6.203,20151,5.17]],["title/controllers/TeamNewsController.html",[259,2.591,15189,5.958]],["body/controllers/TeamNewsController.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.207,27,0.311,29,0.592,30,0.001,31,0.426,32,0.104,33,0.365,35,0.913,36,2.142,72,3.451,95,0.166,100,2.554,101,0.013,103,0.001,104,0.001,138,1.383,150,1.732,177,1.392,223,3.13,226,1.087,236,1.237,239,2.31,247,3.328,259,2.892,261,3.61,262,2.473,270,5.882,274,6.772,294,6.281,310,4.892,333,4.26,337,3.93,338,4.019,343,4.05,345,2.42,349,0.785,437,1.46,608,1.753,823,3.533,835,8.399,2705,3.589,2882,6.595,2904,4.082,3720,4.466,4324,4.613,4565,7.762,5505,4.586,5949,5.854,6680,7.208,6926,5.742,10766,9.708,11792,6.144,11949,5.055,12807,6.369,15076,9.308,15085,6.144,15086,6.652,15087,9.12,15089,6.144,15091,7.03,15096,6.652,15097,6.652,15098,7.03,15099,7.03,15100,7.03,15101,7.03,15189,8.807,20152,10.067,20153,7.603,20154,11.287,20155,7.603,20156,10.51,20157,10.067,20158,7.603,20159,7.603,20160,7.03,20161,7.603,20162,7.603,20163,7.603]],["title/classes/TeamPermissionsBody.html",[0,0.231,4639,5.503]],["body/classes/TeamPermissionsBody.html",[0,0.372,2,0.97,3,0.02,4,0.02,5,0.01,7,0.131,10,4.882,27,0.533,30,0.001,32,0.178,95,0.139,101,0.014,103,0.001,104,0.001,112,0.87,119,2.828,138,2.369,147,7.141,148,2.751,150,1.975,245,3.488,685,5.085,1618,7.291,1619,7.99,4631,9.3,4639,8.855,7401,9.927,18707,9.16,20164,12.298,20165,8.668,20166,8.668,20167,8.668,20168,8.668,20169,8.668,20170,8.668]],["title/classes/TeamPermissionsDto.html",[0,0.231,4574,5.335]],["body/classes/TeamPermissionsDto.html",[0,0.29,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,10,4.849,27,0.543,29,0.665,30,0.001,31,0.478,32,0.181,33,0.669,101,0.014,103,0.001,104,0.001,112,0.862,119,2.821,181,2.905,379,1.068,381,2.868,685,5.05,1618,7.24,1619,7.935,4574,10.156,4577,11.778,4631,9.412,10080,7.47,10081,7.47,10082,7.47,10083,7.47,10084,7.47,10085,7.47,10086,7.47,10087,7.47,18707,9.097,20171,7.895,20172,10.855,20173,7.895,20174,7.895,20175,7.895,20176,7.895,20177,8.539,20178,8.539]],["title/injectables/TeamPermissionsMapper.html",[539,0.901,4669,5.705]],["body/injectables/TeamPermissionsMapper.html",[0,0.299,3,0.021,4,0.021,5,0.011,7,0.134,8,1.328,10,3.584,27,0.361,29,0.687,30,0.001,31,0.494,32,0.121,33,0.423,35,1.06,95,0.154,100,3.721,101,0.015,103,0.001,104,0.001,153,2.005,226,1.261,236,1.435,324,6.761,333,3.732,349,1.144,539,1.466,541,2.111,662,3.809,685,3.732,1618,5.351,1619,5.864,4487,6.508,4574,9.954,4578,6.91,4596,8.953,4631,7.746,4639,10.268,4654,7.716,4669,9.281,4672,9.693,4698,11.748,4733,8.154,18707,6.723,20143,10.243,20179,8.82,20180,11.079,20181,11.079,20182,8.82,20183,8.82,20184,8.82,20185,8.82,20186,8.82,20187,8.82,20188,8.82]],["title/classes/TeamRoleDto.html",[0,0.231,4637,5.705]],["body/classes/TeamRoleDto.html",[0,0.398,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.48,30,0.001,32,0.16,47,0.926,95,0.149,101,0.016,103,0.001,104,0.001,112,0.931,138,2.133,148,3.068,150,2.203,245,3.309,807,5.15,3911,8.668,4631,8.823,4637,9.822,4697,9.386,5876,8.528,20164,11.668,20189,9.668,20190,9.668,20191,9.668]],["title/classes/TeamRolePermissionsDto.html",[0,0.231,4598,5.503]],["body/classes/TeamRolePermissionsDto.html",[0,0.301,2,0.994,3,0.021,4,0.021,5,0.011,7,0.135,27,0.537,29,0.691,30,0.001,31,0.497,32,0.179,33,0.426,47,0.945,101,0.015,103,0.001,104,0.001,112,0.883,119,2.264,181,2.977,276,5.69,379,1.11,381,2.982,1663,6.107,3911,8.345,3916,8.208,4543,9.039,4598,10.599,4601,10.629,4603,6.63,8528,8.208,8529,8.208,10019,6.604,10049,6.955,20171,8.208,20173,8.208,20174,10.286,20175,8.208,20176,8.208,20192,13.383,20193,8.878,20194,8.878,20195,8.878]],["title/injectables/TeamRule.html",[539,0.901,1712,5.705]],["body/injectables/TeamRule.html",[0,0.27,3,0.019,4,0.019,5,0.009,7,0.121,8,1.244,27,0.473,29,0.899,30,0.001,31,0.647,32,0.167,33,0.554,35,1.247,95,0.155,101,0.013,103,0.001,104,0.001,119,2.49,131,4.325,145,2.211,154,2.831,177,1.458,226,1.139,239,3.116,345,2.535,349,1.072,379,0.996,437,1.03,528,4.147,539,1.374,541,1.907,604,3.236,662,4.09,1280,2.489,1609,6.621,1637,8.08,1658,4.779,1675,7.697,1712,8.695,1816,6.703,1820,6.447,3352,6.901,3353,5.38,3356,6.799,3359,5.38,3361,5.924,6915,8.15,12566,7.396,20146,7.364,20196,7.965,20197,7.965,20198,7.965,20199,7.965,20200,10.379,20201,7.965,20202,7.965]],["title/injectables/TeamService.html",[539,0.901,20203,5.958]],["body/injectables/TeamService.html",[0,0.281,3,0.019,4,0.019,5,0.01,7,0.125,8,1.275,26,2.832,27,0.482,29,0.916,30,0.001,31,0.659,32,0.161,33,0.564,35,1.278,36,2.641,39,3.163,95,0.149,99,1.38,101,0.014,103,0.001,104,0.001,177,1.515,226,1.183,227,3.407,262,2.88,345,2.634,349,1.099,379,1.035,437,1.376,539,1.408,541,1.981,608,2.711,662,4.133,1750,9.026,6915,5.021,11949,7.819,12654,9.837,20203,9.308,20204,8.276,20205,10.64,20206,10.64,20207,8.276,20208,8.276,20209,10.64,20210,8.276,20211,10.64,20212,8.276,20213,8.276,20214,8.276,20215,8.276,20216,8.276,20217,8.276,20218,8.276]],["title/classes/TeamUrlParams.html",[0,0.231,20156,5.958]],["body/classes/TeamUrlParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,34,2.015,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,138,1.784,142,4.627,143,2.634,144,3.897,145,3.284,148,3.113,150,2.235,153,2.23,245,3.101,807,4.827,3817,5.762,3911,8.722,4565,7.347,20156,10.348,20219,9.809,20220,9.809]],["title/classes/TeamUserDto.html",[0,0.231,15371,5.503]],["body/classes/TeamUserDto.html",[0,0.369,2,0.956,3,0.02,4,0.02,5,0.01,7,0.129,26,2.299,27,0.514,29,0.665,30,0.001,31,0.608,32,0.172,33,0.41,34,1.455,39,3.21,47,0.95,95,0.108,99,1.424,100,2.868,101,0.018,103,0.001,104,0.001,112,0.862,181,3.194,191,4.621,192,5.44,201,2.262,379,1.068,381,2.868,404,3.485,405,4.699,1666,3.613,1985,3.396,2309,5.44,4209,4.048,4285,3.738,4286,5.069,4287,6.351,4563,7.735,4631,9.064,4697,8.876,11320,7.47,11321,7.47,11949,5.678,12565,6.211,12574,6.69,15371,10.708,16316,7.47,17392,7.153,20115,7.895,20116,7.47,20117,7.153,20118,6.9,20122,7.895,20221,10.855,20222,8.539,20223,8.539]],["title/classes/TeamUserEntity.html",[0,0.231,12566,4.853]],["body/classes/TeamUserEntity.html",[0,0.303,2,0.715,3,0.015,4,0.015,5,0.008,7,0.097,27,0.523,29,0.803,30,0.001,31,0.659,32,0.167,33,0.495,35,1.074,39,2.774,47,0.631,62,3.75,72,2.898,95,0.149,96,2.455,101,0.018,103,0.001,104,0.001,105,0.965,112,0.71,138,1.876,143,1.422,154,1.91,172,2.854,173,1.888,174,3.555,175,2.823,178,2.652,180,1.144,181,2.76,182,2.077,191,5.581,236,1.039,239,3.099,276,5.515,349,1.065,379,0.798,381,2.145,480,3.265,517,3.954,519,2.769,603,2.071,644,5.92,654,3.323,686,4.219,1672,3.324,1985,2.539,2071,4.644,2503,5.33,2611,2.946,3547,4.313,4209,3.498,4275,4.877,4285,2.795,4286,6.121,4289,8.079,5040,5.396,6589,3.919,6591,3.575,6612,3.831,6819,6.966,6915,3.874,6953,4.182,9634,5.586,10135,4.644,10136,4.644,11327,4.644,11328,4.867,11949,4.245,12563,7.002,12564,5.349,12565,6.501,12566,8.916,12567,5.002,12568,9.028,12569,5.349,12570,5.349,12571,5.349,12572,5.349,12573,5.349,12574,5.002,12575,5.349,12576,5.349,20224,6.385,20225,6.385,20226,6.385,20227,6.385,20228,6.385,20229,6.385,20230,6.385,20231,6.385,20232,6.385,20233,6.385,20234,6.385]],["title/classes/TeamUserFactory.html",[0,0.231,20133,5.958]],["body/classes/TeamUserFactory.html",[0,0.154,2,0.509,3,0.011,4,0.011,5,0.005,7,0.069,8,0.835,27,0.53,29,1.015,30,0.001,31,0.701,32,0.181,33,0.601,34,1.442,35,1.428,39,2.905,47,0.818,55,2.418,59,3.18,95,0.137,99,0.758,101,0.007,103,0,104,0,112,0.553,120,3.064,133,2.436,140,2.545,153,1.925,154,2.187,155,2.324,177,1.275,180,1.248,236,0.739,239,2.178,271,4.897,276,5.158,319,3.145,349,0.875,379,0.568,382,3.824,413,2.145,437,1.5,447,7.175,448,4.426,449,5.364,452,3.936,453,5.364,454,5.644,455,3.936,456,3.936,457,3.936,458,3.866,459,4.345,460,4.785,461,5.942,462,5.681,463,6.998,464,2.593,469,2.569,470,3.936,471,2.593,472,5.017,473,5.179,474,4.054,475,4.871,476,3.9,477,2.569,478,2.421,479,4.044,480,3.219,481,2.501,482,2.46,483,2.569,484,4.942,485,2.593,486,3.488,487,4.7,488,2.569,489,7.162,490,4.111,491,6.552,492,2.593,493,4.2,494,2.569,495,2.593,496,2.569,497,2.593,498,2.569,499,2.896,500,2.698,501,2.569,502,5.993,503,2.593,504,2.569,505,3.936,506,3.681,507,3.936,508,2.593,509,2.48,510,2.46,511,2.031,512,2.569,513,2.569,514,2.569,515,2.593,516,2.593,517,1.743,518,2.569,519,1.408,520,2.593,521,2.759,522,2.569,523,2.593,525,2.643,527,4.179,648,3.239,654,3.448,2082,6.44,3081,4.228,4310,3.808,6804,3.561,6814,5.457,12566,4.963,19116,7.408,20127,6.44,20129,6.44,20133,7.408,20235,4.545,20236,4.545,20237,6.965,20238,4.545,20239,4.545,20240,4.545,20241,4.203,20242,4.545,20243,4.545,20244,4.545,20245,4.203,20246,4.545]],["title/modules/TeamsApiModule.html",[201,1.804,18589,5.503]],["body/modules/TeamsApiModule.html",[0,0.332,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,201,3.36,203,3.519,204,3.782,205,3.892,206,3.875,207,3.859,208,4.326,209,4.441,218,4.697,219,3.812,220,3.722,222,6.078,223,4.029,225,4.658,226,1.399,18589,11.072,20247,9.785,20248,9.785,20249,11.478,20250,9.785,20251,9.785]],["title/modules/TeamsModule.html",[201,1.804,20249,5.705]],["body/modules/TeamsModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.158,101,0.015,103,0.001,104,0.001,201,3.301,203,3.38,204,3.631,205,3.737,206,3.722,207,3.706,208,4.565,209,4.686,218,4.583,219,3.661,220,3.575,226,1.343,227,3.869,560,3.869,1750,9.321,20203,12.424,20249,11.716,20252,9.397,20253,9.397,20254,9.397,20255,9.397]],["title/injectables/TeamsRepo.html",[539,0.901,1750,4.677]],["body/injectables/TeamsRepo.html",[0,0.205,3,0.014,4,0.014,5,0.007,7,0.092,8,1.03,10,3.492,12,3.944,13,6.251,18,4.349,26,2.609,27,0.516,29,0.932,30,0.001,31,0.67,32,0.168,33,0.574,34,1.464,35,1.438,36,2.764,39,2.692,40,4.156,42,6.251,49,2.382,55,1.3,62,3.548,95,0.138,96,1.659,97,2.618,99,1.007,101,0.01,103,0,104,0,112,0.682,145,2.386,154,1.291,155,2.868,180,1.54,226,0.863,236,0.982,239,1.972,262,2.933,276,5.236,333,2.556,349,1.19,382,3.289,437,1.112,479,4.923,480,2.386,486,2.586,539,1.137,541,1.446,603,2.01,608,2.839,679,7.234,685,3.637,686,4.057,687,5.063,692,7.519,711,3.707,712,3.751,713,3.707,714,3.751,716,3.707,717,3.751,718,3.352,725,4.492,932,4.729,1002,5.805,1672,4.475,1750,5.903,3081,4.291,3638,4.148,3894,4.732,4565,5.338,4690,7.247,6915,6.07,11949,7.958,12566,6.124,15367,5.06,17630,9.25,17636,7.946,17640,5.584,19241,5.584,20256,6.04,20257,7.519,20258,6.04,20259,7.519,20260,6.04,20261,6.04,20262,6.04,20263,6.04,20264,6.04,20265,6.04,20266,6.04,20267,6.04,20268,6.04,20269,6.04,20270,6.04,20271,6.04]],["title/classes/TestApiClient.html",[0,0.231,1449,5.958]],["body/classes/TestApiClient.html",[0,0.123,2,0.406,3,0.008,4,0.008,5,0.004,7,0.055,8,0.699,10,2.37,27,0.511,29,0.936,30,0.001,31,0.673,32,0.169,33,0.577,35,1.421,36,1.241,47,0.987,51,2.839,55,1.575,59,3.049,87,2.932,94,4.47,95,0.106,99,0.605,101,0.006,103,0,104,0,105,0.391,112,0.463,119,1.187,128,2.35,133,3.608,137,3.669,153,0.825,177,2.027,226,0.519,236,1.364,261,1.722,262,1.604,271,1.419,284,3.42,324,5.221,334,3.768,349,1.222,360,6.91,379,0.454,429,2.585,437,1.706,480,2.551,486,2.764,529,1.651,531,5.104,593,1.343,603,2.683,608,0.836,662,3.994,696,2.301,708,1.507,754,3.822,823,3.444,990,1.226,1086,4.57,1154,1.443,1224,7.052,1417,6.124,1434,7.335,1435,11.643,1436,3.354,1437,4.866,1438,9.538,1439,5.104,1440,3.354,1441,3.354,1442,2.638,1443,3.174,1444,3.354,1445,3.039,1446,3.354,1447,3.354,1448,3.174,1449,6.402,1450,3.354,1451,2.311,1452,3.354,1453,5.394,1454,4.157,1455,5.104,1456,4.887,1457,4.714,1458,3.297,1459,7.138,1460,9.538,1461,6.766,1462,5.394,1463,5.394,1464,5.394,1465,3.354,1466,9.073,1467,3.354,1468,5.394,1469,10.507,1470,8.494,1471,10.507,1472,3.354,1473,5.394,1474,8.494,1475,3.354,1476,7.752,1477,5.394,1478,3.354,1479,6.13,1480,5.394,1481,3.354,1482,5.394,1483,5.394,1484,3.354,1485,3.354,1486,3.354,1487,3.354,1488,5.394,1489,3.354,1490,3.174,1491,5.394,1492,5.578,1493,7.752,1494,3.354,1495,5.394,1496,3.354,1497,8.494,1498,5.394,1499,5.394,1500,3.354,1501,5.394,1502,5.394,1503,3.354,1504,3.354,1505,5.394,1506,7.752,1507,2.311,1508,3.354,1509,5.394,1510,3.354,1511,3.354,1512,3.354,1513,3.354,1514,3.354,1515,3.354,1516,3.354,1517,3.354,2903,3.297,4022,3.669,20272,5.834,20273,5.834,20274,5.834,20275,5.834,20276,5.834,20277,3.628,20278,3.628,20279,3.628,20280,3.628,20281,3.628,20282,9.187,20283,3.628,20284,3.628,20285,3.628,20286,3.628,20287,3.628,20288,3.628,20289,3.628,20290,3.628,20291,3.628,20292,3.628]],["title/classes/TestBootstrapConsole.html",[0,0.231,20293,6.296]],["body/classes/TestBootstrapConsole.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,8,1.317,27,0.357,30,0.001,35,1.046,36,2.562,47,0.614,95,0.165,101,0.018,103,0.001,104,0.001,180,1.969,207,3.433,225,3.433,262,1.908,349,1.135,437,1.421,521,3.448,608,2.007,685,5.351,933,5.167,996,4.158,997,4.109,998,4.109,999,4.346,1000,4.75,1894,6.332,1895,6.203,2594,6.82,3446,5.788,3454,5.979,3456,6.911,3457,5.167,3459,6.82,7863,6.82,18564,9.613,20293,10.159,20294,10.988,20295,10.988,20296,8.705,20297,12.041,20298,8.705,20299,8.049,20300,8.705,20301,6.636,20302,8.049,20303,8.705,20304,8.705,20305,10.988,20306,8.049,20307,8.705,20308,8.705,20309,10.988,20310,8.705,20311,7.616,20312,6.475,20313,8.705,20314,8.705]],["title/classes/TestHelper.html",[0,0.231,20315,6.296]],["body/classes/TestHelper.html",[0,0.286,2,0.942,3,0.02,4,0.02,5,0.014,7,0.128,27,0.44,30,0.001,31,0.602,47,0.759,95,0.15,101,0.014,103,0.001,104,0.001,105,0.908,112,0.854,284,2.599,349,1.111,413,4.065,437,1.707,480,2.986,486,3.235,662,3.381,1151,7.454,1153,5.512,2823,4.069,3542,3.434,6237,5.499,6341,7.822,6342,6.258,6343,5.996,6344,6.258,6345,8.815,9882,5.595,10321,8.197,10322,10.926,18969,7.361,20315,9.942,20316,11.852,20317,11.852,20318,11.852,20319,8.414,20320,8.414,20321,8.414,20322,8.414,20323,8.414,20324,8.414,20325,8.414,20326,8.414,20327,8.414]],["title/injectables/TimeoutInterceptor.html",[539,0.901,13061,5.958]],["body/injectables/TimeoutInterceptor.html",[0,0.267,3,0.018,4,0.018,5,0.009,7,0.119,8,1.233,27,0.421,29,0.801,30,0.001,31,0.576,32,0.141,33,0.494,35,0.944,55,2.468,95,0.154,101,0.013,103,0.001,104,0.001,131,2.943,141,4.913,153,1.786,177,1.438,226,1.123,236,1.673,259,3.913,274,6.172,345,2.5,349,1.185,379,0.982,437,1.33,521,4.542,539,1.361,541,1.88,604,3.192,965,5.146,966,6.154,967,5.988,990,2.656,1179,6.839,1280,2.455,2116,7.482,2185,8.742,3959,8.53,6512,8.312,8226,8.999,8228,8.999,8229,10.646,8230,10.646,8232,8.999,8450,5.988,9707,6.948,11670,8.312,11820,9.51,13061,8.999,13424,8.999,17469,10.603,17477,7.263,17479,7.263,17779,8.617,20328,7.856,20329,10.286,20330,9.51,20331,7.856,20332,7.856,20333,7.856,20334,10.286,20335,11.469,20336,10.286,20337,7.856,20338,10.286,20339,7.856,20340,7.856,20341,7.856,20342,7.856]],["title/classes/TimestampsResponse.html",[0,0.231,3661,3.96]],["body/classes/TimestampsResponse.html",[0,0.306,2,1.01,3,0.021,4,0.021,5,0.011,7,0.137,27,0.525,29,0.702,30,0.001,31,0.505,32,0.175,33,0.587,83,4.125,95,0.114,101,0.015,103,0.001,104,0.001,112,0.892,138,2.226,149,4.655,150,2.055,245,3.455,376,5.739,379,1.405,406,5.824,773,4.563,3661,7.662,3678,9.389,9961,10.044,10023,7.287,20343,9.018,20344,9.018,20345,9.018,20346,9.018,20347,9.018,20348,9.018]],["title/injectables/ToggleUserLoginMigrationUc.html",[539,0.901,20349,5.705]],["body/injectables/ToggleUserLoginMigrationUc.html",[0,0.219,3,0.015,4,0.015,5,0.008,7,0.098,8,1.077,27,0.424,29,0.806,30,0.001,31,0.58,32,0.142,33,0.497,35,1.08,36,2.385,39,2.418,47,0.967,95,0.162,99,1.074,101,0.011,103,0.001,104,0.001,119,2.108,128,5.153,131,3.367,177,2.052,226,0.92,236,1.685,239,2.877,262,2.677,349,0.665,379,1.124,437,1.34,529,2.93,539,1.19,541,1.541,560,2.65,593,2.384,603,2.252,608,2.719,643,2.86,654,3.08,990,2.176,1275,2.953,1278,2.036,1609,4.864,1615,3.905,1698,6.628,1796,3.905,1802,6.404,1900,7.05,1902,6.784,1904,3.604,1905,5.033,2253,5.14,2461,6.685,2472,2.921,2476,4.499,2485,4.787,4209,4.339,4508,5.008,4510,5.201,4513,5.201,4514,8.706,4521,5.804,4523,6.963,4525,7.041,4526,4.906,4527,5.042,4528,5.391,4530,7.041,4532,8.676,4533,6.685,4540,4.906,4541,5.391,11856,8.772,14124,5.201,16717,5.391,17523,5.63,18990,7.263,20349,7.529,20350,11.211,20351,7.863,20352,6.436,20353,6.436,20354,8.988,20355,6.436,20356,5.63,20357,6.436,20358,6.436]],["title/injectables/TokenGenerator.html",[539,0.901,18842,5.503]],["body/injectables/TokenGenerator.html",[0,0.335,3,0.023,4,0.023,5,0.012,7,0.149,8,1.422,27,0.404,30,0.001,35,1.184,95,0.161,101,0.016,103,0.001,104,0.001,124,5.963,226,1.409,349,1.018,437,1.275,539,1.57,541,2.36,11519,9.938,12267,9.97,12269,6.554,12270,6.457,16736,9.113,18842,9.586,20359,11.863,20360,13.207,20361,9.857,20362,9.857]],["title/classes/TokenRequestMapper.html",[0,0.231,15541,5.958]],["body/classes/TokenRequestMapper.html",[0,0.283,2,0.932,3,0.019,4,0.019,5,0.01,7,0.126,8,1.281,27,0.438,29,0.832,30,0.001,31,0.598,32,0.146,33,0.513,35,1.283,47,0.986,95,0.15,101,0.014,103,0.001,104,0.001,105,0.899,121,5.455,236,1.738,349,1.103,413,4.054,823,2.922,950,5.773,1326,10.054,1328,6.729,1330,5.934,1331,6.729,1332,7.285,1333,7.285,1337,7.699,1340,7.699,1341,6.976,1342,6.194,1437,5.537,5590,5.888,5978,6.729,11448,9.049,11581,7.636,15541,9.345,15544,10.054,15601,11.502,15607,7.699,16244,6.729,20363,11.794,20364,11.794,20365,10.682,20366,8.327,20367,8.327,20368,10.682,20369,8.327,20370,8.327,20371,8.327,20372,8.327]],["title/classes/TooManyPseudonymsLoggableException.html",[0,0.231,20373,6.296]],["body/classes/TooManyPseudonymsLoggableException.html",[0,0.238,2,0.785,3,0.016,4,0.016,5,0.008,7,0.106,8,1.143,27,0.535,29,0.546,30,0.001,31,0.393,32,0.185,33,0.52,35,1.145,47,0.885,55,1.508,95,0.147,101,0.012,103,0.001,104,0.001,112,0.757,138,2.211,177,2.473,180,1.708,182,2.279,226,1.002,284,2.164,292,5.481,340,3.368,345,2.23,347,2.567,349,0.724,379,0.876,382,3.784,820,5.334,823,2.459,950,5.025,988,3.022,990,3.93,1025,4.547,1205,8.125,1206,6.177,1207,3.711,1208,6.9,1212,4.525,1213,3.89,1214,4.525,1215,4.525,1216,4.525,1217,4.525,1218,4.525,1219,4.204,1220,3.997,1226,4.407,1227,5.49,1275,4.97,1276,5.558,1280,2.979,1281,5.728,8369,5.598,8370,5.815,8820,4.407,8827,4.075,8828,4.251,9004,6.237,9010,7.201,9011,5.663,10783,5.87,10784,5.87,20373,8.812,20374,10.831,20375,10.135,20376,10.831,20377,7.007,20378,7.007,20379,7.007,20380,9.531]],["title/modules/ToolApiModule.html",[201,1.804,18590,5.503]],["body/modules/ToolApiModule.html",[0,0.186,3,0.013,4,0.013,5,0.007,30,0.001,95,0.176,101,0.009,103,0,104,0,131,3.545,201,2.507,203,1.968,204,2.115,205,2.177,206,2.168,207,2.159,208,3.466,209,2.058,214,5.37,218,3.183,219,2.132,220,2.082,222,3.399,223,3.295,225,3.157,226,0.782,227,2.253,564,3.901,643,2.432,654,3.097,1278,1.731,1589,3.065,1692,6.315,1768,8.608,1770,8.608,1885,2.284,1904,3.065,2472,2.484,2489,3.138,2985,3.065,3534,7.189,3544,2.77,3546,4.287,4616,8.418,5080,3.151,5376,8.418,5381,7.374,6115,9.695,6124,8.608,6140,4.287,6141,3.359,8589,9.352,8639,9.695,8918,8.822,8927,4.585,9189,9.695,9302,9.352,9472,9.695,13862,8.247,18227,9.695,18244,9.695,18301,9.695,18590,11.619,20381,5.473,20382,5.473,20383,5.473,20384,9.695,20385,9.695,20386,8.279,20387,8.279,20388,8.279,20389,8.279,20390,8.279,20391,8.279,20392,9.464,20393,4.423,20394,5.473,20395,9.464,20396,8.004,20397,5.06,20398,5.473,20399,5.473,20400,5.473]],["title/modules/ToolConfigModule.html",[201,1.804,8918,5.191]],["body/modules/ToolConfigModule.html",[0,0.347,3,0.024,4,0.024,5,0.012,30,0.001,95,0.154,101,0.017,103,0.001,104,0.001,201,3.213,203,3.68,208,3.748,209,3.848,226,1.463,636,5.951,1116,7.292,1589,5.73,1912,4.722,2489,3.393,8599,9.857,8918,9.247,12581,8.573,20401,10.233,20402,10.233]],["title/classes/ToolConfiguration.html",[0,0.231,12581,5.705]],["body/classes/ToolConfiguration.html",[0,0.303,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.365,30,0.001,32,0.122,47,0.859,55,2.62,95,0.113,101,0.02,103,0.001,104,0.001,105,0.962,112,0.886,119,2.821,413,3.749,437,1.153,480,2.476,486,3.356,1589,6.247,2020,3.903,2021,4.366,2022,4.21,3881,4.994,8597,9.28,8599,9.724,8873,10.651,8906,10.651,11590,6.023,12577,11.256,12578,11.256,12579,11.256,12580,8.245,12581,9.346,12582,10.314,12583,10.314,12584,10.314,12585,10.314,12586,9.346,20403,8.918]],["title/controllers/ToolConfigurationController.html",[259,2.591,20387,5.958]],["body/controllers/ToolConfigurationController.html",[0,0.167,3,0.011,4,0.011,5,0.006,7,0.074,8,0.886,27,0.404,29,0.769,30,0.001,31,0.553,32,0.174,33,0.474,35,1.186,36,2.527,95,0.146,100,1.65,101,0.008,103,0,104,0,131,4.324,138,1.796,150,1.119,153,2.245,177,0.899,223,2.022,226,0.702,259,1.868,261,2.332,262,2.791,270,6.307,271,4.982,274,5.926,294,6.474,319,4.459,333,4.481,335,6.354,337,2.539,338,2.596,343,2.616,345,1.563,346,5.862,349,1.02,437,1.536,564,3.911,608,2.277,654,3.433,662,4.005,1077,7.597,1718,2.069,2020,5.199,2358,7.289,2487,4.807,2489,3.938,2568,4.375,2705,2.319,2904,2.637,3720,5.801,4487,6.977,5800,8.273,5802,7.981,5872,7.528,6132,8.009,6193,8.64,7156,3.744,8604,7.438,8618,6.463,8639,7.438,8644,8.209,8645,8.209,10391,9.131,11787,6.292,13644,4.541,13953,7.175,13955,6.458,13956,6.458,15277,8.64,17013,7.876,18166,8.273,18168,7.981,18180,7.737,18357,7.737,20387,6.463,20393,8.557,20404,8.879,20405,8.879,20406,4.912,20407,7.387,20408,7.387,20409,4.541,20410,4.912,20411,4.912,20412,7.387,20413,4.912,20414,4.912,20415,4.912,20416,6.83,20417,7.387,20418,7.387,20419,7.387,20420,4.912,20421,4.912,20422,7.387,20423,7.387,20424,4.912,20425,4.297,20426,4.912,20427,4.912,20428,3.848,20429,4.541,20430,4.912,20431,4.541,20432,4.912,20433,4.912,20434,4.297,20435,4.297,20436,4.912,20437,4.912,20438,4.541,20439,4.912,20440,4.912,20441,4.115,20442,4.912]],["title/classes/ToolConfigurationMapper.html",[0,0.231,20425,5.958]],["body/classes/ToolConfigurationMapper.html",[0,0.227,2,0.749,3,0.016,4,0.016,5,0.008,7,0.101,8,1.107,27,0.467,29,0.963,30,0.001,31,0.693,32,0.156,33,0.547,35,1.37,95,0.145,101,0.011,103,0.001,104,0.001,236,1.855,349,1.178,413,4.162,437,1.639,564,2.055,789,3.341,1718,2.819,1839,3.565,2487,5.43,2489,3.506,2568,6.538,2705,3.159,3672,4.45,4487,7.587,5057,4.998,5800,8.859,5802,9.667,5806,6.457,5807,5.219,5808,4.868,8603,7.463,8604,10.618,8626,5.607,8636,7.737,8675,7.463,8883,6.581,8962,7.04,9302,5.408,9326,8.08,18166,8.859,18168,9.667,20425,8.08,20443,11.06,20444,6.693,20445,10.575,20446,10.575,20447,10.575,20448,10.575,20449,6.693,20450,6.693,20451,9.235,20452,6.693,20453,6.693,20454,10.575,20455,6.693,20456,6.693,20457,6.693,20458,6.693,20459,9.235,20460,8.539,20461,6.693,20462,6.693,20463,6.693,20464,6.693,20465,6.693,20466,6.693]],["title/controllers/ToolContextController.html",[259,2.591,20389,5.958]],["body/controllers/ToolContextController.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.801,10,1.75,27,0.409,29,0.778,30,0.001,31,0.559,32,0.175,33,0.479,34,1.993,35,1.463,36,2.544,95,0.152,100,1.447,101,0.007,103,0,104,0,131,3.456,138,1.816,141,3.192,150,0.981,153,2.402,177,1.223,223,1.773,226,0.616,236,0.701,239,1.878,259,1.638,261,2.045,262,2.804,270,6.321,271,4.836,273,5.093,274,6.836,280,2.958,282,4.15,283,5.024,284,2.064,285,4.377,294,6.489,301,4.443,305,3.848,319,4.165,324,5.92,330,6.336,333,4.225,335,6.339,336,4.15,337,2.226,338,2.276,340,2.07,343,2.294,345,1.371,346,5.927,347,1.577,348,2.15,349,0.953,437,1.575,564,3.592,603,0.865,608,2.302,631,2.21,823,3.998,1220,2.457,1278,1.363,1718,1.814,1840,6.959,2146,4.761,2253,1.765,2254,3.017,2309,5.216,2489,1.428,2705,2.033,2902,3.069,2903,3.776,2904,2.312,3720,6.475,3806,4.86,4022,2.709,4804,2.584,5764,6.144,5828,7.728,5831,2.709,5872,9.113,5888,9.234,5943,3.069,5976,3.768,5983,7.162,5987,3.768,5997,9.454,6009,3.283,6018,3.608,6087,7.162,6090,7.162,6107,7.858,6115,6.858,6118,7.569,6120,7.569,6121,7.569,6122,7.569,6132,4.257,6151,3.982,6155,3.982,7156,5.093,8825,3.48,13954,5.846,13955,6.71,13956,7.685,17013,7.858,20389,5.846,20393,8.538,20428,3.374,20434,5.846,20435,5.846,20441,7.728,20460,3.982,20467,4.307,20468,4.307,20469,4.307,20470,3.768,20471,4.307,20472,3.768,20473,4.307,20474,4.307,20475,4.307,20476,4.307,20477,4.307,20478,4.307,20479,4.307,20480,4.307,20481,6.682,20482,4.307,20483,4.307,20484,4.307,20485,4.307,20486,4.307,20487,4.307,20488,4.307,20489,4.307,20490,4.307,20491,5.846,20492,6.858,20493,4.307,20494,6.682,20495,4.307,20496,4.307,20497,4.307,20498,4.307,20499,3.768,20500,4.307,20501,4.307,20502,4.307,20503,3.982,20504,4.307,20505,4.307,20506,4.307,20507,4.307,20508,4.307,20509,4.307,20510,4.307,20511,4.307]],["title/controllers/ToolController.html",[259,2.591,20391,5.958]],["body/controllers/ToolController.html",[0,0.127,3,0.009,4,0.009,5,0.004,7,0.057,8,0.715,10,1.515,27,0.407,29,0.774,30,0.001,31,0.557,32,0.173,33,0.477,34,1.846,35,1.377,36,2.642,95,0.157,99,0.622,100,1.252,101,0.006,103,0,104,0,138,1.807,141,4.069,150,0.849,153,2.661,177,1.559,223,1.535,226,0.533,236,0.607,239,2.564,247,1.632,259,1.418,261,1.77,262,2.798,270,6.143,271,4.579,273,4.546,274,3.578,280,2.561,282,5.29,283,5.717,284,2.631,285,5.579,292,3.018,294,6.306,301,3.965,305,4.904,310,4.306,316,3.202,319,2.692,324,3.772,330,6.398,333,3.604,335,6.259,336,4.63,337,1.927,338,1.971,340,1.792,343,1.986,346,5.897,347,2.184,348,2.978,349,0.962,379,0.466,437,1.606,481,3.282,490,2.115,560,1.535,564,2.615,603,1.711,608,2.147,631,1.913,821,2.866,823,3.486,835,5.955,1220,2.126,1278,1.18,1718,1.57,2146,4.25,2253,1.528,2254,2.692,2291,4.424,2309,5.426,2487,4.735,2489,3.705,2568,6.292,2705,1.76,2902,2.657,2903,3.37,2904,2.002,3720,5.472,3806,2.712,3983,3.618,4487,5.836,5177,2.657,5782,2.657,6132,5.935,6680,5.11,6682,6.292,6684,2.237,6970,3.618,7387,6.102,8603,4.819,8649,5.544,8696,7.135,8809,10.59,8810,6.244,8817,3.447,8825,4.819,8861,3.447,9082,4.546,9189,4.996,9203,5.217,9205,7.135,9229,7.135,9231,6.023,9234,7.135,9236,5.217,9291,8.757,9302,3.013,9348,7.135,9358,6.521,9359,6.521,9363,6.521,9472,6.244,9474,6.891,9475,6.891,11061,3.262,11062,3.262,12802,3.262,12807,4.996,13953,4.819,13955,5.421,13956,7.226,17013,6.928,20391,5.217,20428,2.921,20470,3.262,20472,5.217,20491,5.217,20492,4.996,20499,3.262,20512,3.728,20513,3.728,20514,5.964,20515,3.728,20516,9.935,20517,3.728,20518,3.728,20519,3.728,20520,3.728,20521,3.447,20522,6.672,20523,3.728,20524,3.728,20525,3.728,20526,3.728,20527,3.447,20528,3.728,20529,3.728,20530,3.728,20531,3.728,20532,3.728,20533,3.728,20534,3.728,20535,3.728,20536,3.728,20537,3.728,20538,3.728,20539,3.728,20540,3.728,20541,3.728,20542,3.728,20543,3.728,20544,3.728,20545,3.728,20546,3.728,20547,5.964,20548,5.514,20549,3.728,20550,3.728,20551,3.728,20552,3.728,20553,3.728,20554,3.728,20555,3.728,20556,3.728,20557,9.315,20558,3.728,20559,3.728,20560,3.728,20561,3.728,20562,3.728,20563,3.728,20564,3.728,20565,3.728,20566,3.728,20567,3.728,20568,3.728,20569,3.728,20570,3.262,20571,3.728,20572,3.728]],["title/controllers/ToolLaunchController.html",[259,2.591,20386,5.958]],["body/controllers/ToolLaunchController.html",[0,0.257,3,0.018,4,0.018,5,0.009,7,0.115,8,1.202,27,0.31,29,0.589,30,0.001,31,0.424,32,0.154,33,0.363,34,1.288,35,0.908,36,2.134,95,0.166,100,2.539,101,0.012,103,0.001,104,0.001,131,3.757,138,1.375,141,5.726,150,1.723,153,2.725,177,1.384,223,3.113,226,1.081,259,2.876,261,3.59,262,2.466,270,5.869,271,4.403,294,6.025,333,4.244,335,6.018,337,3.908,338,3.996,343,4.027,345,2.406,346,4.488,349,0.781,437,1.297,564,3.08,608,1.743,631,3.88,823,3.519,1589,5.616,1603,2.843,2489,4.251,2580,8.186,2592,7.97,2705,3.569,2904,4.059,3720,4.441,6132,7.171,10792,6.334,13955,7.295,13956,7.295,17013,7.46,20384,9.429,20386,8.774,20397,9.273,20428,5.923,20429,6.99,20441,6.334,20573,7.56,20574,10.406,20575,7.56,20576,10.487,20577,7.56,20578,7.56,20579,7.56,20580,7.56,20581,7.56,20582,8.774,20583,8.774,20584,7.56,20585,9.273,20586,9.429,20587,6.334,20588,7.56,20589,7.56,20590,7.56,20591,7.56]],["title/classes/ToolLaunchData.html",[0,0.231,2570,5.191]],["body/classes/ToolLaunchData.html",[0,0.292,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.532,29,0.671,30,0.001,31,0.482,32,0.188,33,0.413,47,0.77,95,0.138,101,0.014,103,0.001,104,0.001,112,1.032,119,2.221,172,2.75,181,2.921,284,3.371,379,1.077,381,2.893,1589,7.436,2136,6.77,2489,2.855,2498,6.137,2507,3.847,2508,6.137,2550,9.682,2570,9.908,2592,8.968,4347,5.167,7202,7.112,7237,6.021,7238,6.406,16899,7.962,20592,12.278,20593,10.914,20594,8.612,20595,8.612,20596,11.077,20597,8.612,20598,8.612,20599,8.612]],["title/classes/ToolLaunchMapper.html",[0,0.231,20587,5.705]],["body/classes/ToolLaunchMapper.html",[0,0.24,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,8,1.148,27,0.477,29,0.908,30,0.001,31,0.653,32,0.159,33,0.559,35,1.4,95,0.138,101,0.012,103,0.001,104,0.001,236,1.148,349,1.204,413,4.198,437,1.692,591,5.411,789,3.523,823,3.36,988,4.688,1198,3.292,1555,5.362,1589,6.824,1603,2.653,1870,3.433,2494,6.976,2497,6.695,2562,8.15,2580,9.141,2590,9.509,2598,6.524,7202,5.684,7276,4.557,7359,6.468,7363,6.577,7377,5.528,8799,5.911,9244,6.173,20586,9.766,20587,8.022,20596,11.619,20600,12.187,20601,7.057,20602,9.576,20603,9.576,20604,9.576,20605,9.576,20606,9.576,20607,7.057,20608,9.576,20609,7.057,20610,7.057,20611,9.576,20612,7.057,20613,7.057,20614,9.576,20615,7.057,20616,7.057,20617,7.057,20618,7.057,20619,7.057,20620,9.576,20621,9.576,20622,9.576,20623,7.057,20624,9.576,20625,7.057,20626,11.657,20627,7.057,20628,7.057]],["title/modules/ToolLaunchModule.html",[201,1.804,20629,5.705]],["body/modules/ToolLaunchModule.html",[0,0.216,3,0.015,4,0.015,5,0.008,30,0.001,95,0.171,101,0.01,103,0.001,104,0.001,131,2.384,201,2.727,203,2.289,204,2.46,205,2.531,206,2.521,207,2.51,208,3.771,209,3.871,218,3.547,219,2.48,220,2.421,225,3.517,226,0.91,363,3.564,560,2.62,564,3.161,654,2.652,1589,3.564,1767,5.93,1770,9.055,1771,4.629,1833,10.651,1847,10.651,1863,5.143,1893,10.651,1897,10.651,1904,3.564,2367,4.371,2489,3.413,2527,10.199,3073,5.143,3532,9.538,3534,7.562,3544,3.221,4551,6.024,4615,6.633,4624,4.986,5080,3.665,5376,8.855,5381,7.757,5523,4.852,5882,9.28,5883,9.538,13862,8.675,14572,10.651,15453,10.199,19921,5.143,20629,12.063,20630,6.365,20631,6.365,20632,6.365,20633,6.365,20634,11.224,20635,11.256,20636,6.365,20637,6.365,20638,6.365,20639,6.365,20640,6.365]],["title/classes/ToolLaunchParams.html",[0,0.231,20576,5.958]],["body/classes/ToolLaunchParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.131,34,1.991,47,0.825,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,131,4.379,138,1.75,142,4.573,143,2.603,144,3.851,145,3.246,148,3.053,150,2.192,153,2.187,245,3.065,564,3.59,807,4.771,1589,6.547,2489,3.876,3235,7.052,3817,5.652,20576,10.228,20641,10.809,20642,9.621,20643,9.621]],["title/classes/ToolLaunchRequest.html",[0,0.231,2580,4.953]],["body/classes/ToolLaunchRequest.html",[0,0.296,2,0.975,3,0.02,4,0.02,5,0.01,7,0.132,27,0.534,29,0.678,30,0.001,31,0.488,32,0.178,33,0.578,47,0.893,95,0.11,101,0.014,103,0.001,104,0.001,112,0.873,119,2.236,141,4.158,181,2.941,379,1.089,381,2.924,591,7.146,1198,4.139,1555,6.743,1589,7.457,2554,10.087,2580,9.485,2592,8.99,6264,4.674,7202,7.147,7205,5.475,7237,6.086,7238,6.475,16665,7.035,17433,7.293,20592,12.312,20644,8.705,20645,10.988,20646,8.705,20647,8.705,20648,8.705,20649,8.049,20650,8.049]],["title/classes/ToolLaunchRequestResponse.html",[0,0.231,20586,5.705]],["body/classes/ToolLaunchRequestResponse.html",[0,0.242,2,0.797,3,0.017,4,0.017,5,0.008,7,0.108,27,0.501,29,0.554,30,0.001,31,0.399,32,0.167,33,0.618,47,0.826,95,0.122,101,0.012,103,0.001,104,0.001,112,0.765,119,1.961,138,2.128,141,6.019,142,4.577,143,2.145,145,3.248,150,1.622,153,2.659,181,2.578,236,1.567,245,3.205,379,0.89,381,2.391,480,2.675,556,1.793,591,6.907,820,5.368,838,3.02,1198,4.202,1555,6.845,1589,7.056,1603,2.677,1925,5.214,2433,7.863,2489,4.178,2554,10.24,2592,9.186,2606,6.228,2903,5.444,6264,3.822,7128,7.785,7202,6.481,7205,4.477,7237,4.977,7238,5.295,11792,7.785,16665,5.753,17433,5.964,20583,8.428,20586,10.24,20641,11.65,20649,6.582,20650,6.582,20651,7.119,20652,9.633,20653,7.119,20654,8.907,20655,7.119,20656,9.633,20657,7.119]],["title/injectables/ToolLaunchService.html",[539,0.901,20634,5.705]],["body/injectables/ToolLaunchService.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.078,8,0.913,26,2.547,27,0.463,29,0.839,30,0.001,31,0.604,32,0.164,33,0.517,35,1.211,36,2.145,39,2.448,47,0.642,95,0.165,99,0.854,101,0.008,103,0,104,0,112,0.605,131,1.917,177,2.068,226,0.732,236,1.64,262,2.475,284,1.581,347,2.79,349,0.94,379,0.953,437,1.617,519,2.36,529,2.575,539,1.008,541,1.225,556,1.919,564,3.309,603,2.654,608,2.324,631,2.626,654,2.266,990,1.73,1162,2.445,1589,6.552,1603,1.924,1839,6.981,1840,6.828,1842,4.484,1870,2.49,1912,2.361,2489,2.526,2494,5.051,2527,10.072,2568,6.458,2570,8.612,2580,7.332,2588,5.051,2592,5.065,4551,7.279,5382,9.167,5398,5.428,5406,4.287,5808,6.619,6033,4.009,6034,3.578,6125,7.512,6141,4.676,6167,7.181,6172,4.009,7764,7.043,8688,4.477,8690,3.722,11673,7.961,12589,7.961,15453,10.072,18307,4.732,20587,4.287,20634,6.382,20635,11.116,20658,11.701,20659,5.118,20660,7.618,20661,7.618,20662,9.1,20663,9.1,20664,7.618,20665,7.618,20666,5.118,20667,7.618,20668,5.118,20669,5.118,20670,5.118,20671,5.118,20672,5.118,20673,4.477,20674,5.118,20675,5.118,20676,5.118,20677,5.118,20678,5.118,20679,5.118,20680,7.043,20681,5.118,20682,5.118,20683,5.118,20684,5.118,20685,7.618,20686,5.118,20687,4.732,20688,5.118]],["title/injectables/ToolLaunchUc.html",[539,0.901,20384,5.705]],["body/injectables/ToolLaunchUc.html",[0,0.261,3,0.018,4,0.018,5,0.009,7,0.117,8,1.216,26,2.783,27,0.415,29,0.79,30,0.001,31,0.568,32,0.139,33,0.487,35,0.924,36,2.158,39,2.069,95,0.169,99,1.283,101,0.013,103,0.001,104,0.001,131,4.52,177,2.078,226,1.1,262,2.487,349,0.794,379,1.269,437,1.561,539,1.343,541,1.841,560,3.166,564,3.114,603,2.28,608,2.616,643,4.508,1589,6.356,1603,2.892,1609,5.49,1615,4.666,1840,6.437,1842,3.79,2472,3.491,2570,8.652,2580,7.378,2985,4.307,3235,6.758,5884,8.483,6124,9.771,6140,6.025,6141,4.72,6149,6.728,6153,6.025,20384,8.497,20574,9.378,20634,10.792,20680,9.378,20689,11.35,20690,7.691,20691,7.691,20692,7.691,20693,10.143,20694,7.691,20695,7.11,20696,7.691,20697,7.691]],["title/modules/ToolModule.html",[201,1.804,1768,5.065]],["body/modules/ToolModule.html",[0,0.251,3,0.017,4,0.017,5,0.009,30,0.001,95,0.168,101,0.012,103,0.001,104,0.001,131,2.77,201,2.948,203,2.659,204,2.857,205,2.941,206,2.928,207,2.916,208,4.077,209,4.185,218,3.93,219,2.881,220,2.813,225,3.897,226,1.057,493,3.667,560,3.044,564,3.417,654,2.199,1666,3.129,1679,3.374,1683,5.792,1767,6.57,1768,10.567,1773,4.035,2337,4.217,2428,4.001,2489,4.105,2592,4.916,3532,10.759,5080,4.257,5376,7.188,5382,10.759,5882,10.468,5883,10.759,6172,5.792,8918,9.711,8927,6.194,20629,11.505,20698,7.394,20699,7.394,20700,7.394,20701,7.394,20702,7.394]],["title/injectables/ToolPermissionHelper.html",[539,0.901,6124,5.065]],["body/injectables/ToolPermissionHelper.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.089,8,1.008,26,2.585,27,0.403,29,0.766,30,0.001,31,0.551,32,0.134,33,0.472,35,1.01,36,2.287,39,2.891,95,0.164,99,0.977,101,0.01,103,0,104,0,105,0.632,131,4.943,141,2.797,177,2.083,201,1.551,226,0.837,236,0.952,239,2.256,262,2.596,285,3.835,358,2.576,379,1.051,437,1.472,454,2.78,529,1.657,539,1.113,541,1.402,560,3.461,564,2.581,603,2.286,608,2.623,639,2.748,643,4.776,654,3.196,662,3.725,838,1.836,932,3.222,1546,4.355,1609,6.604,1666,2.478,1698,6.45,1753,6.875,1767,3.893,1771,4.259,1787,4.172,1792,4.587,1795,5.122,1796,5.1,1839,6.5,1840,6.407,1842,4.142,1852,8.242,1853,7.817,1863,4.731,1867,3.98,1869,3.682,1873,7.354,1874,4.172,1877,5.122,1885,3.508,1900,6.759,1902,6.442,1904,3.279,1905,4.707,1906,5.413,2384,3.73,2458,4.259,2459,7.381,2472,2.658,2473,6.114,2476,4.094,2629,4.172,2705,5.073,3098,4.355,3801,4.259,4148,3.835,4804,3.513,5522,4.094,6124,6.252,6146,5.413,8642,9.092,8643,8.603,8651,5.413,8653,5.122,11787,3.73,14113,4.587,18969,5.122,19921,4.731,20703,10.747,20704,9.834,20705,9.834,20706,5.855,20707,5.855,20708,5.855,20709,6.585,20710,9.092,20711,9.092,20712,5.855,20713,5.855,20714,9.834,20715,8.406,20716,7.772,20717,5.855,20718,5.855,20719,5.855]],["title/classes/ToolReference.html",[0,0.231,6025,5.191]],["body/classes/ToolReference.html",[0,0.288,2,0.948,3,0.02,4,0.02,5,0.01,7,0.128,27,0.542,29,0.659,30,0.001,31,0.474,32,0.181,33,0.57,47,0.933,95,0.107,101,0.014,103,0.001,104,0.001,112,0.857,119,2.197,347,4.354,379,1.059,564,4.126,1870,4.12,1927,4.974,3415,7.408,5398,8.47,5764,7.814,5768,6.057,5788,5.395,5807,6.717,5823,5.546,6025,10.078,6043,9.605,6044,7.828,6045,7.828,6046,7.408,6047,9.958,6048,7.828,20720,13.437,20721,10.797,20722,10.797,20723,8.467,20724,8.467,20725,8.467,20726,8.467,20727,7.828,20728,7.828,20729,8.467]],["title/controllers/ToolReferenceController.html",[259,2.591,20390,5.958]],["body/controllers/ToolReferenceController.html",[0,0.211,3,0.015,4,0.015,5,0.007,7,0.094,8,1.052,27,0.359,29,0.683,30,0.001,31,0.491,32,0.165,33,0.421,35,1.054,36,2.349,95,0.157,100,2.088,101,0.01,103,0,104,0,131,3.808,138,1.596,150,1.416,153,2.747,177,1.138,223,2.56,226,0.889,236,1.011,239,2.91,259,2.365,261,2.952,262,2.648,270,6.08,271,4.727,274,6.625,294,6.242,316,5.928,330,7.583,333,4.301,335,6.099,337,3.213,338,3.286,343,3.311,345,1.979,346,5.207,349,0.906,437,1.506,564,3.813,608,2.022,631,3.19,1679,5.039,1718,2.618,2489,3.861,2568,5.441,2609,7.599,2705,2.935,2904,3.338,3720,5.153,3983,6.699,5177,6.251,5764,5.911,5828,9.25,5872,8.417,6018,5.208,6025,8.417,6027,9.764,6030,5.748,6040,5.748,8825,8.922,13955,7.394,13956,7.394,17013,7.561,20385,8.515,20390,7.674,20393,8.214,20409,5.748,20416,8.11,20428,4.87,20434,5.439,20435,5.439,20441,5.208,20521,8.11,20522,8.65,20730,6.217,20731,6.217,20732,8.893,20733,9.398,20734,6.217,20735,6.217,20736,6.217,20737,6.217,20738,6.217,20739,6.217,20740,6.217,20741,6.217,20742,6.217,20743,9.66,20744,6.217,20745,6.217,20746,6.217,20747,6.217,20748,6.217,20749,6.217,20750,6.217,20751,6.217]],["title/classes/ToolReferenceListResponse.html",[0,0.231,20743,5.958]],["body/classes/ToolReferenceListResponse.html",[0,0.318,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.471,29,0.728,30,0.001,31,0.524,32,0.17,33,0.449,95,0.146,101,0.015,103,0.001,104,0.001,112,0.912,138,1.701,150,2.131,245,3.013,284,4.113,379,1.17,556,2.356,564,3.819,813,6.539,816,6.554,818,4.701,833,5.191,1679,5.676,2489,3.101,5764,7.233,5803,9.002,6027,11.097,18240,10.881,20743,10.052,20752,9.353]],["title/classes/ToolReferenceMapper.html",[0,0.231,20753,5.958]],["body/classes/ToolReferenceMapper.html",[0,0.301,2,0.994,3,0.021,4,0.021,5,0.011,7,0.135,8,1.334,27,0.364,29,0.691,30,0.001,31,0.497,32,0.121,33,0.426,35,1.067,95,0.154,101,0.015,103,0.001,104,0.001,236,1.444,347,4.665,349,0.917,413,3.742,437,1.148,564,3.731,1718,3.739,1840,6.969,1842,4.375,1870,4.32,2568,6.595,5398,9.076,5764,6.469,5768,4.524,5807,5.017,6025,10.201,6033,6.955,6035,7.767,6043,7.174,6047,7.438,8675,7.174,8962,6.768,9325,8.208,20443,10.286,20753,9.733,20754,8.878,20755,12.15,20756,8.878,20757,8.878]],["title/classes/ToolReferenceResponse.html",[0,0.231,6027,5.503]],["body/classes/ToolReferenceResponse.html",[0,0.23,2,0.757,3,0.016,4,0.016,5,0.008,7,0.102,27,0.508,29,0.526,30,0.001,31,0.595,32,0.17,33,0.51,34,1.584,47,0.876,95,0.118,101,0.011,103,0.001,104,0.001,112,0.738,119,1.893,131,3.483,138,2.184,142,5.2,143,2.883,144,4.087,145,3.758,149,3.538,150,1.54,153,3.022,236,1.513,245,3.148,347,4.397,379,0.845,564,3.902,574,6.917,838,2.119,1198,3.197,1927,3.971,2020,2.959,2489,4.356,2862,4.149,2863,4.582,3751,5.296,5764,7.391,5768,5.417,5788,4.307,5807,6.007,5823,4.428,5832,9.3,6027,10.025,6043,8.59,6047,8.905,7128,7.515,7387,6.092,9719,6.627,11792,7.515,18239,10.647,18240,11.119,20727,6.25,20728,6.25,20758,6.76,20759,9.299,20760,9.299,20761,6.76,20762,6.76,20763,6.76,20764,9.299,20765,6.76,20766,8.598,20767,6.76,20768,6.76,20769,6.76,20770,6.76,20771,6.76,20772,6.76]],["title/injectables/ToolReferenceService.html",[539,0.901,5886,5.705]],["body/injectables/ToolReferenceService.html",[0,0.24,3,0.016,4,0.016,5,0.008,7,0.107,8,1.148,26,2.469,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,35,0.848,36,2.038,95,0.172,99,1.177,101,0.012,103,0.001,104,0.001,131,2.643,177,2.231,226,1.009,262,2.382,347,3.507,349,0.729,379,1.198,437,1.576,539,1.267,541,1.689,564,4.016,603,2.448,608,2.506,631,3.621,654,2.848,1718,2.972,1778,6.524,1839,6.209,1840,6.254,1842,4.719,1870,3.433,2568,6.193,3235,5.362,5382,10.07,5398,6.824,5764,6.321,5884,8.302,5886,8.022,6025,8.886,6034,4.933,6046,6.173,6125,8.547,6141,5.877,6144,5.133,6153,5.528,6167,7.713,6172,5.528,6173,5.702,8648,5.528,8649,9.561,8676,6.524,8677,6.524,8678,6.524,8690,5.133,20687,6.524,20732,8.378,20753,6.173,20773,10.87,20774,7.057,20775,9.576,20776,7.057,20777,7.057]],["title/injectables/ToolReferenceUc.html",[539,0.901,20385,5.705]],["body/injectables/ToolReferenceUc.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.085,8,0.973,26,2.9,27,0.457,29,0.869,30,0.001,31,0.625,32,0.159,33,0.536,34,0.95,35,1.262,36,2.782,39,3.235,47,0.573,95,0.152,99,0.931,101,0.009,103,0,104,0,131,3.041,177,1.752,226,0.798,236,0.908,262,2.892,349,1.153,379,1.015,437,1.651,539,1.074,541,1.336,560,2.297,564,3.578,579,2.972,593,3.892,603,2.524,608,2.772,643,3.608,1154,2.219,1178,2.995,1609,4.393,1615,3.385,1718,2.35,1840,7.104,1869,6.609,1870,2.714,2259,3.213,2472,2.532,2985,3.124,3235,5.884,4804,6.305,5764,6.776,5767,6.883,5831,6.609,5884,7.525,5886,10.074,6025,10.144,6033,6.359,6107,4.15,6124,8.945,6140,4.371,6153,4.371,6158,4.253,6166,5.158,20385,6.8,20503,5.158,20695,5.158,20732,7.102,20733,8.847,20778,11.652,20779,5.579,20780,8.118,20781,9.569,20782,5.579,20783,8.118,20784,5.579,20785,8.118,20786,5.579,20787,5.579,20788,5.579,20789,5.579,20790,5.579,20791,5.579,20792,5.579,20793,5.579,20794,5.579,20795,8.118,20796,5.579,20797,8.118,20798,8.118,20799,5.579]],["title/controllers/ToolSchoolController.html",[259,2.591,20388,5.958]],["body/controllers/ToolSchoolController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.807,10,1.767,27,0.411,29,0.781,30,0.001,31,0.562,32,0.173,33,0.481,34,1.947,35,1.41,36,2.551,95,0.155,100,1.461,101,0.007,103,0,104,0,138,1.824,141,4.429,150,0.991,153,2.515,177,1.697,223,1.79,226,0.622,239,1.89,259,1.654,261,2.065,262,2.809,270,6.333,271,4.59,273,5.132,274,5.564,280,2.987,282,4.182,283,6.156,284,2.864,285,6.074,292,4.168,294,6.501,301,4.476,305,5.34,310,2.918,319,3.039,324,5.938,330,6.369,333,3.924,335,6.364,336,4.182,337,2.248,338,2.299,340,2.09,343,2.316,346,5.954,347,1.593,348,3.361,349,0.958,379,0.544,437,1.55,564,3.681,603,1.863,608,2.312,631,2.232,654,2.002,823,3.254,1220,2.48,1278,1.376,1718,1.832,1839,6.889,2146,4.797,2253,1.783,2254,3.039,2309,5.248,2489,2.232,2705,2.053,2902,3.099,2903,3.804,2904,2.335,3720,6.231,3806,3.163,4022,2.735,4209,1.475,4487,5.447,5906,3.315,5943,3.099,6009,3.315,6132,4.289,7322,6.589,8608,6.608,9348,5.64,13938,4.021,13953,5.44,13955,4.897,13956,7.715,17013,7.89,18056,4.021,18180,9.391,18189,9.267,18227,5.64,18233,9.678,18234,3.805,18238,8.572,18244,5.64,18253,5.64,18267,8.112,18301,6.9,18303,7.615,18304,7.615,18305,7.615,18306,7.615,20388,5.89,20393,8.572,20428,3.407,20438,8.573,20470,3.805,20472,5.89,20491,5.89,20492,5.64,20499,3.805,20527,4.021,20548,4.021,20585,6.224,20800,4.349,20801,8.237,20802,4.349,20803,4.349,20804,4.349,20805,4.349,20806,4.349,20807,4.349,20808,4.349,20809,4.349,20810,4.349,20811,4.349,20812,4.349,20813,8.237,20814,4.349,20815,4.349,20816,4.349,20817,4.349,20818,4.349,20819,4.349,20820,4.349,20821,4.349,20822,4.349,20823,4.349,20824,4.349,20825,4.349,20826,4.349,20827,4.349,20828,4.349,20829,6.732,20830,4.349,20831,4.349,20832,6.732,20833,4.349,20834,4.349,20835,4.349,20836,4.349,20837,4.349]],["title/classes/ToolStatusOutdatedLoggableException.html",[0,0.231,20673,5.958]],["body/classes/ToolStatusOutdatedLoggableException.html",[0,0.287,2,0.946,3,0.02,4,0.02,5,0.01,7,0.128,8,1.293,26,2.845,27,0.442,29,0.658,30,0.001,31,0.473,32,0.147,33,0.405,35,1.015,39,3.195,95,0.151,99,1.409,101,0.014,103,0.001,104,0.001,177,1.974,180,1.932,182,2.749,191,4.573,226,1.208,239,1.939,284,2.61,345,2.689,347,4.581,349,0.873,379,1.057,603,1.697,1025,3.305,1275,5.449,1276,6.094,1278,2.673,1280,3.37,1281,6.164,1589,6.65,2489,2.801,2621,6.838,8369,6.138,8370,6.375,8820,5.314,8822,6.021,8827,4.913,8828,5.126,8858,6.826,9013,6.146,10780,6.828,18481,6.828,20582,7.392,20583,7.392,20673,9.433,20838,11.875,20839,11.875,20840,8.45]],["title/classes/ToolStatusResponseMapper.html",[0,0.231,6031,5.705]],["body/classes/ToolStatusResponseMapper.html",[0,0.321,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,8,1.385,27,0.387,29,0.735,30,0.001,31,0.529,32,0.129,33,0.453,35,1.134,95,0.147,101,0.019,103,0.001,104,0.001,131,3.536,347,4.574,349,0.975,413,3.846,437,1.221,564,2.899,781,5.604,782,6.414,838,2.96,988,4.072,3755,10.11,5398,9.274,5406,7.909,5407,8.728,5906,7.196,6031,9.681,18239,10.463,18262,8.728,20841,11.556,20842,9.441,20843,9.441,20844,9.441,20845,9.441,20846,9.441,20847,9.441]],["title/interfaces/ToolVersion.html",[105,0.735,5400,4]],["body/interfaces/ToolVersion.html",[3,0.025,4,0.025,5,0.013,7,0.159,8,1.477,27,0.43,30,0.001,35,1.261,55,2.65,101,0.017,103,0.001,104,0.001,105,1.133,107,2.52,5400,7.235,5770,10.278,20848,12.317,20849,10.5,20850,10.5]],["title/classes/UnauthorizedLoggableException.html",[0,0.231,1553,5.705]],["body/classes/UnauthorizedLoggableException.html",[0,0.299,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,8,1.328,27,0.454,29,0.687,30,0.001,31,0.494,32,0.151,33,0.423,35,1.06,47,0.943,48,6.034,51,5.894,59,2.74,95,0.154,101,0.015,103,0.001,104,0.001,177,2.028,180,1.985,182,2.869,183,7.127,193,6.415,226,1.261,284,2.724,345,2.807,349,0.911,379,1.103,437,1.141,603,1.772,1025,4.334,1275,5.558,1280,3.463,1281,6.261,1553,9.281,1818,8.054,8369,6.568,8820,5.547,8822,6.285,8827,5.129,8828,5.351,10783,7.389,10784,7.389,18481,7.127,20851,12.113,20852,8.82,20853,8.154]],["title/classes/UnknownQueryTypeLoggableException.html",[0,0.231,20854,6.296]],["body/classes/UnknownQueryTypeLoggableException.html",[0,0.373,2,0.973,3,0.02,4,0.02,5,0.01,7,0.132,8,1.316,27,0.449,29,0.676,30,0.001,31,0.487,32,0.182,33,0.417,35,1.044,47,0.849,95,0.139,101,0.014,103,0.001,104,0.001,177,1.59,180,1.966,182,2.826,226,1.242,284,2.683,310,5.477,345,2.765,349,0.897,379,1.086,1025,3.398,1154,3.455,1162,5.746,1275,6.107,1276,6.173,1278,2.748,1280,3.43,1281,6.227,3024,6.19,6901,5.396,8369,6.217,8370,6.458,8820,5.463,8827,5.051,8828,5.27,8836,7.02,8837,7.02,12237,7.277,20854,10.145,20855,12.029,20856,8.687,20857,12.029,20858,8.687,20859,8.687]],["title/classes/UpdateElementContentBodyParams.html",[0,0.231,8253,4.528]],["body/classes/UpdateElementContentBodyParams.html",[0,0.453,2,0.634,3,0.013,4,0.013,5,0.007,7,0.086,9,2.674,27,0.232,30,0.001,31,0.629,32,0.186,47,0.873,83,1.74,95,0.142,99,0.945,101,0.022,103,0,104,0,112,0.652,138,1.03,143,1.261,148,1.798,149,3.672,150,1.291,153,2.194,172,1.809,180,2.013,245,3.624,248,5.042,249,4.739,284,2.981,305,3.262,480,3.119,556,2.068,806,5.23,807,3.35,838,1.776,851,2.706,1198,1.948,1207,1.809,1582,3.295,1883,3.992,2196,4.545,2442,2.774,2823,2.739,2824,2.492,2863,2.792,3219,3.363,3221,3.363,3224,3.328,3227,4.989,3230,2.907,3235,3.173,3708,3.519,3729,3.519,3730,6.816,4104,5.594,5622,6.15,5624,6.234,5626,6.15,5628,6.234,5630,6.234,5675,3.711,5712,6.418,5713,6.418,5714,6.418,5715,6.418,5716,6.418,5904,3.563,5905,6.766,7047,3.767,7107,3.61,8239,8.161,8240,5.638,8241,3.891,8244,5.377,8245,7.037,8246,7.037,8247,3.891,8248,7.037,8249,3.477,8250,3.827,8251,7.037,8252,7.037,8253,5.458,8254,5.458,8255,3.767,8256,5.458,8257,3.891,8258,3.891,8259,3.891,8260,3.891,8261,3.891,8701,4.956,20860,5.666,20861,5.666]],["title/classes/UpdateFlagParams.html",[0,0.231,12784,5.958]],["body/classes/UpdateFlagParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,95,0.167,101,0.016,103,0.001,104,0.001,112,0.939,119,2.407,138,1.784,147,6.35,148,3.113,150,2.235,153,2.23,239,2.251,245,3.101,301,7.864,820,4.501,4508,5.284,10743,8.879,10775,8.798,12784,10.348,20862,10.936,20863,9.809,20864,9.809,20865,9.809]],["title/classes/UpdateMatchParams.html",[0,0.231,12776,5.958]],["body/classes/UpdateMatchParams.html",[0,0.399,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.398,30,0.001,32,0.133,39,3.402,47,0.83,95,0.167,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,148,3.083,150,2.213,153,2.208,239,2.902,245,3.083,301,7.819,807,4.799,820,4.457,1451,7.492,1679,5.366,4508,5.253,12776,10.287,20862,10.872,20866,9.714,20867,9.714,20868,9.714]],["title/classes/UpdateNewsParams.html",[0,0.231,15082,5.705]],["body/classes/UpdateNewsParams.html",[0,0.415,2,0.89,3,0.019,4,0.019,5,0.009,7,0.121,27,0.472,30,0.001,32,0.158,33,0.497,47,0.863,83,3.183,95,0.155,99,1.326,100,3.482,101,0.013,103,0.001,104,0.001,112,0.971,138,2.098,148,2.522,149,4.65,150,1.811,153,2.779,154,2.779,247,3.479,248,4.814,249,4.945,472,5.479,758,8.12,806,6.604,1207,4.048,1582,6.028,2196,5.129,2282,6.362,2771,6.153,3227,4.108,6220,7.119,6921,7.669,6926,7.658,7101,6.954,7107,6.604,7108,8.683,7109,7.901,7119,7.901,7120,7.349,15082,8.683,20869,12.224,20870,10.366,20871,10.366,20872,9.068,20873,7.949,20874,7.949,20875,7.949,20876,7.949,20877,7.949,20878,7.949]],["title/classes/UpdateSubmissionItemBodyParams.html",[0,0.231,3703,5.958]],["body/classes/UpdateSubmissionItemBodyParams.html",[0,0.397,2,1.077,3,0.022,4,0.022,5,0.011,7,0.146,27,0.394,30,0.001,32,0.131,95,0.148,101,0.016,103,0.001,104,0.001,112,0.928,119,2.666,138,1.75,142,4.573,143,2.603,147,6.276,148,3.053,150,2.192,153,2.187,245,3.065,2824,5.763,3232,8.144,3703,10.228,7123,9.159,7125,8.895,7126,8.417,7127,10.228,7128,9.447,7129,8.895,20879,11.691]],["title/entities/User.html",[154,1.456,239,1.562]],["body/entities/User.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.191,27,0.538,30,0.001,32,0.178,33,0.654,34,0.745,47,0.968,83,3.608,95,0.127,96,1.201,101,0.014,103,0,104,0,105,0.73,112,0.88,119,1.682,138,2.39,143,3.002,144,4.14,154,1.988,155,1.459,160,7.168,168,2.494,170,3.426,172,4.221,173,1.293,174,2.689,175,1.933,178,1.816,180,0.784,181,1.17,182,1.422,236,1.513,239,1.551,276,3.954,349,0.452,437,1.069,480,1.214,486,1.315,529,1.237,644,4.589,651,4.803,652,4.803,653,5.197,654,3.297,655,5.054,662,1.375,826,2.518,838,1.371,988,3.565,1280,1.367,1657,2.076,1663,4.154,1664,3.825,2611,4.639,2614,3.689,2618,3.689,3063,1.904,3081,5.717,4060,2.569,4202,6.502,4203,7.089,4209,2.293,4214,6.324,4266,6.924,4297,3.426,4298,3.252,5040,3.102,6565,3.825,6579,4.102,6589,2.684,6611,2.716,6612,2.624,6939,2.595,6940,2.684,7369,5.153,9624,2.907,9625,3.18,9626,2.907,9627,3.18,9628,3.333,9629,3.533,9961,7.089,10023,3.533,10027,3.663,11814,6.679,11815,6.679,11816,6.679,12053,5.663,12173,3.663,12174,3.533,12175,3.663,12176,3.533,12178,3.663,12182,5.663,12183,3.533,12196,6.387,12222,3.426,12223,3.252,12567,3.426,12595,5.463,12596,4.043,12597,7.285,12598,7.089,12599,6.917,12600,7.285,12601,6.25,12602,6.25,12603,6.25,12604,6.924,12605,3.663,12606,4.043,12607,3.663,12608,4.043,12609,3.663,12610,4.043,12611,3.663,12612,4.043,12613,3.663,12614,4.043,12615,4.043,12616,6.25,20880,4.373,20881,4.373,20882,4.373,20883,4.373,20884,4.373,20885,4.373,20886,4.373,20887,4.373,20888,4.373,20889,4.373,20890,4.373,20891,4.373,20892,4.373,20893,4.373,20894,4.373,20895,4.373,20896,4.373,20897,4.373,20898,4.373]],["title/classes/UserAlreadyAssignedToImportUserError.html",[0,0.231,20899,6.296]],["body/classes/UserAlreadyAssignedToImportUserError.html",[0,0.268,2,0.885,3,0.018,4,0.018,5,0.009,7,0.12,8,1.238,27,0.542,30,0.001,32,0.185,33,0.495,35,0.949,47,0.812,55,1.7,95,0.155,101,0.013,103,0.001,104,0.001,112,0.82,138,2.302,177,2.505,180,1.85,182,2.57,239,2.369,347,2.894,379,1.438,382,3.916,590,7.059,820,5.596,823,2.773,950,5.337,988,3.408,990,4.123,1025,4.499,1205,8.323,1206,6.56,1207,3.894,1208,7.328,1212,5.103,1213,4.386,1214,5.103,1215,5.103,1216,5.103,1217,5.103,1218,5.103,1219,4.741,1221,6.19,1226,4.97,1679,3.606,3393,5.427,3463,8.65,3983,4.794,4148,5.176,9689,5.034,13831,6.913,20899,9.547,20900,10.326,20901,10.326,20902,7.902,20903,7.902,20904,10.326]],["title/interfaces/UserAndAccountParams.html",[105,0.735,656,5.705]],["body/interfaces/UserAndAccountParams.html",[0,0.233,3,0.016,4,0.016,5,0.008,26,1.993,30,0.001,47,0.852,48,4.467,49,3.711,51,4.578,94,6.65,95,0.153,99,1.147,101,0.016,103,0.001,104,0.001,105,1.157,107,1.65,180,1.686,239,3.09,271,4.994,349,1.247,413,3.719,437,1.705,445,5.556,524,3.922,603,1.89,640,9.661,641,6.015,642,6.015,643,5.125,644,4.293,645,5.001,646,4.899,647,6.015,648,8.217,649,5.241,650,10.077,651,4.494,652,4.494,653,4.863,654,2.798,655,4.729,656,10.695,657,5.76,658,6.015,659,8.231,660,6.015,661,6.015,662,3.372,663,6.015,664,8.985,665,8.231,666,8.231,667,5.76,668,9.383,669,9.383,670,6.015,671,8.231,672,8.231,673,5.76,674,6.015,675,8.231,676,6.704,677,5.76]],["title/classes/UserAndAccountTestFactory.html",[0,0.231,657,5.705]],["body/classes/UserAndAccountTestFactory.html",[0,0.19,2,0.627,3,0.013,4,0.013,5,0.007,7,0.085,8,0.976,26,1.725,27,0.458,29,0.871,30,0.001,31,0.626,32,0.169,33,0.537,35,1.344,47,0.789,48,3.866,49,3.211,51,3.962,94,6.479,95,0.142,99,0.935,101,0.013,103,0,104,0,105,1.035,120,4.22,180,1.004,239,3.055,271,5.167,349,1.155,413,4.13,437,1.627,445,4.527,480,2.923,486,3.168,524,3.195,603,2.344,640,8.035,641,10.208,642,4.901,643,5.678,644,3.716,645,4.075,646,3.992,647,4.901,648,7.502,649,4.271,650,9.429,651,3.889,652,3.889,653,4.208,654,2.422,655,4.092,656,11.305,657,6.821,658,7.123,659,7.123,660,7.123,661,4.901,662,3.016,663,8.391,664,10.536,665,7.123,666,7.123,667,4.693,668,8.391,669,8.391,670,8.391,671,7.123,672,7.123,673,4.693,674,8.391,675,7.123,676,5.802,677,4.693,20905,8.142,20906,8.142,20907,5.602,20908,5.602,20909,5.602,20910,5.602,20911,5.602,20912,5.602,20913,5.602,20914,5.602]],["title/modules/UserApiModule.html",[201,1.804,18591,5.503]],["body/modules/UserApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,201,3.295,203,3.364,204,3.615,205,3.72,206,3.704,207,3.689,208,4.555,209,3.517,218,4.57,219,3.644,220,3.558,222,5.809,223,4.731,225,4.532,226,1.337,259,3.558,2705,4.415,3534,8.42,12801,10.954,18591,11.206,20915,9.353,20916,9.353,20917,9.353,20918,9.353,20919,10.881,20920,9.353]],["title/interfaces/UserBoardRoles.html",[105,0.735,3080,5.191]],["body/interfaces/UserBoardRoles.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.119,26,2.674,30,0.001,32,0.173,33,0.583,34,1.336,39,3.271,47,0.914,95,0.13,101,0.021,102,3.941,103,0.001,104,0.001,105,1.109,107,1.881,112,0.816,133,2.742,180,1.841,302,6.336,349,1.061,517,3.006,556,2.588,643,3.485,651,5.808,652,5.808,838,3.221,1600,5.974,1604,4.347,1669,4.931,1687,4.87,1756,5.385,2442,3.839,2462,7.472,2463,9.873,2473,5.703,2782,6.142,3062,6.859,3063,4.474,3070,9.826,3071,8.301,3072,8.987,3073,6.336,3074,6.859,3075,3.578,3076,7.3,3077,5.805,3078,6.859,3079,6.859,3080,9.269,3081,6.071,3082,6.568,3083,6.336,3084,8.987,3085,6.859]],["title/controllers/UserController.html",[259,2.591,20919,5.958]],["body/controllers/UserController.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.119,8,1.23,27,0.42,29,0.799,30,0.001,31,0.575,32,0.14,33,0.492,35,1.233,36,2.585,95,0.164,100,2.628,101,0.013,103,0.001,104,0.001,138,1.866,150,1.783,177,1.432,223,3.222,226,1.119,236,1.273,239,2.626,259,2.977,261,3.716,262,2.837,270,6.459,271,4.478,294,6.63,324,5.192,334,5.054,337,4.045,338,4.136,343,4.168,345,2.491,349,1.06,437,1.571,608,2.365,631,4.016,739,3.425,1663,5.157,2367,5.374,2705,3.694,2714,5.126,2904,4.201,3081,3.907,4200,10.178,12801,9.25,17490,6.846,17494,6.555,19340,10.014,20919,8.976,20921,7.825,20922,11.447,20923,7.825,20924,10.26,20925,7.825,20926,7.825,20927,10.26,20928,7.825,20929,7.825,20930,6.846,20931,7.825,20932,7.825,20933,9.486,20934,7.825,20935,7.825,20936,7.825,20937,7.825]],["title/classes/UserDO.html",[0,0.231,7142,3.599]],["body/classes/UserDO.html",[0,0.201,2,0.662,3,0.014,4,0.014,5,0.007,7,0.09,26,2.095,27,0.569,29,0.461,30,0.001,31,0.331,32,0.19,33,0.681,34,1.442,47,0.98,83,3.844,95,0.137,101,0.01,103,0,104,0,112,0.672,119,1.723,180,1.517,276,2.515,376,4.308,377,4.489,379,0.74,382,1.785,406,3.82,408,3.82,651,4.724,652,4.724,653,5.112,655,4.971,988,3.652,1604,2.503,1658,3.549,1679,2.7,1686,6.279,2442,2.896,3081,4.938,4202,6.915,4203,7.539,4209,3.355,4214,6.22,4286,3.511,4298,4.4,4414,5.469,5778,4.303,6939,3.511,7142,6.039,7148,6.68,7218,4.634,7249,4.509,7252,6.634,7253,4.634,7261,5.175,9624,3.933,9626,3.933,9628,4.509,11814,7.992,11815,7.992,11816,7.992,12196,6.793,12223,4.4,12597,7.748,12598,7.539,12599,7.356,12600,7.748,12604,8.285,12605,4.955,12607,4.955,12609,4.955,12611,4.955,12613,4.955,20938,5.915,20939,8.468,20940,5.915,20941,5.915,20942,5.915,20943,5.915,20944,5.915,20945,5.915,20946,5.915,20947,5.915,20948,5.915,20949,5.915,20950,5.915,20951,5.915,20952,5.915,20953,5.915,20954,5.915,20955,5.915,20956,5.915,20957,5.915,20958,5.915,20959,5.915,20960,5.915,20961,5.915,20962,5.915,20963,5.915,20964,5.915,20965,5.915,20966,5.915,20967,5.915,20968,5.915,20969,5.915,20970,5.915,20971,5.915,20972,5.915,20973,5.915,20974,5.915,20975,5.915,20976,5.915,20977,5.915,20978,5.915]],["title/injectables/UserDORepo.html",[539,0.901,20979,5.705]],["body/injectables/UserDORepo.html",[0,0.117,3,0.008,4,0.008,5,0.004,7,0.052,8,0.669,10,2.864,12,2.56,18,2.823,26,2.365,27,0.519,29,0.978,30,0.001,31,0.71,32,0.172,33,0.603,34,1.63,35,1.509,36,2.559,40,2.698,47,0.822,48,4.99,55,0.739,56,1.66,58,2.217,59,1.066,95,0.142,96,0.943,99,0.573,101,0.006,103,0,104,0,112,0.273,119,1.136,133,1.951,145,1.549,154,1.735,155,1.145,173,1.015,180,1,226,0.491,227,1.413,236,1.557,239,2.759,262,2.879,276,3.797,291,2.497,310,1.488,340,1.65,349,1.153,376,1.495,377,1.558,381,1.153,382,3.575,437,1.555,448,2.287,480,0.953,486,1.033,490,2.499,519,1.063,529,0.971,539,0.738,541,0.822,556,1.405,593,2.611,603,2.416,608,2.206,644,1.566,651,2.665,652,2.665,653,2.884,654,1.021,655,4.489,680,3.901,686,2.634,687,4.519,696,1.354,718,1.905,721,2.159,741,2.358,742,2.319,815,3.02,821,3.901,975,1.889,1154,1.365,1604,2.983,1941,1.958,2034,3.153,2240,8.463,2242,3.976,2243,3.976,2244,3.976,2245,3.976,2246,3.901,2247,3.901,2248,3.976,2249,3.901,2250,3.976,2257,2.446,2259,4.674,2260,2.446,2262,2.446,2264,2.248,2265,3.901,2266,2.446,2268,2.446,2270,3.976,2274,3.976,2276,3.769,2277,3.901,2279,2.446,2281,2.06,2282,2.107,2283,2.446,2285,2.446,2287,3.901,2288,2.446,2291,3.312,2305,2.4,2306,2.553,2315,3.003,3081,4.053,3275,3.174,3358,2.319,4202,3.901,4209,1.164,4214,3.509,4389,2.187,4399,3.003,4403,2.876,4404,2.876,4452,2.774,4604,2.446,4690,5.938,4692,2.927,5505,2.864,5922,4.674,5931,2.497,5932,2.497,5933,2.497,5934,2.497,5935,2.497,5936,2.497,5937,2.497,5938,2.497,5939,2.497,5951,2.4,6680,2.06,6745,2.876,6970,4.925,6980,7.5,6999,2.497,7000,2.497,7142,6.513,7148,5.483,7149,2.774,7151,2.774,7154,3.003,8549,3.02,8665,3.174,9045,4.253,9069,2.876,9073,3.003,9075,3.003,9089,3.174,9103,4.881,9232,6.359,9466,3.174,9468,3.174,9469,3.174,9470,5.158,9471,3.174,10378,3.153,11120,2.876,11814,2.774,11815,2.774,11816,2.774,12196,3.832,12595,7.732,12597,4.371,12598,4.253,12599,4.15,12600,4.371,12604,2.876,13792,2.446,13828,4.674,14029,4.881,14033,4.881,14051,3.174,14058,3.174,14062,3.174,14733,3.174,16469,3.174,18221,2.774,18223,3.003,18224,3.003,20257,4.881,20259,4.881,20979,4.674,20980,10.084,20981,5.579,20982,5.158,20983,5.579,20984,3.433,20985,3.433,20986,7.505,20987,3.433,20988,3.433,20989,5.158,20990,3.433,20991,3.433,20992,3.433,20993,3.433,20994,3.433,20995,3.433,20996,3.174,20997,4.881,20998,3.433,20999,3.433,21000,3.433,21001,3.433,21002,3.433,21003,3.433,21004,3.174,21005,3.433,21006,3.433,21007,3.433,21008,3.174,21009,6.517,21010,3.433,21011,3.174,21012,3.433,21013,5.579,21014,3.433,21015,3.433,21016,3.433,21017,3.174,21018,3.433,21019,3.174,21020,3.174,21021,3.174,21022,3.174,21023,3.433,21024,3.433,21025,3.433,21026,3.433,21027,3.174,21028,3.174,21029,3.174,21030,3.174,21031,3.174,21032,3.433,21033,3.433,21034,3.433,21035,3.433,21036,3.433,21037,3.433,21038,3.433,21039,3.433,21040,3.433,21041,3.433,21042,3.433,21043,3.433,21044,3.433,21045,3.433]],["title/interfaces/UserData.html",[105,0.735,9753,5.335]],["body/interfaces/UserData.html",[0,0.134,3,0.009,4,0.009,5,0.005,7,0.06,26,1.862,30,0.001,31,0.349,32,0.139,34,1.062,36,2.48,47,0.938,51,5.189,55,0.849,72,1.79,95,0.156,99,0.658,101,0.006,103,0,104,0,105,1.033,107,0.946,112,0.495,119,0.803,177,1.864,203,1.418,226,0.564,236,1.656,239,0.905,262,2.554,284,3.415,349,1.228,358,1.735,379,0.493,437,1.747,475,2.024,528,2.053,529,2.487,539,0.825,560,2.568,564,2.699,593,2.31,603,2.524,608,3.077,696,2.46,932,5.27,974,4.251,1719,2.393,1839,4.683,1840,4.512,1842,3.812,1852,5.225,1861,2.979,1867,4.216,1869,2.48,1874,4.444,1881,2.933,1882,2.933,2100,8.354,2173,2.209,2336,2.317,2365,2.366,2568,6.309,3543,4.028,3544,1.996,4209,1.338,4360,4.928,4482,2.664,4483,2.757,4484,2.341,4603,4.221,4604,2.81,4768,4.544,4779,4.88,5257,2.622,5522,2.757,5767,5.067,5806,4.36,5870,2.664,5884,4.996,5944,4.444,6034,2.757,6107,5.753,6125,5.143,6141,4.747,6144,2.869,6158,4.754,6167,4.747,6541,3.663,6544,4.865,6545,2.757,6648,2.869,6697,3.09,7142,5.061,7148,4.212,7341,3.874,7874,2.547,8608,2.81,8668,3.006,8690,2.869,8858,4.797,8883,6.265,9001,2.81,9004,6.965,9010,5.143,9039,3.006,9713,3.006,9714,3.187,9715,3.187,9716,3.187,9717,3.187,9718,3.187,9719,2.81,9720,3.187,9733,5.313,9735,3.187,9738,3.187,9740,3.187,9742,3.187,9743,7.104,9745,3.187,9747,3.187,9749,3.187,9751,3.187,9753,8.662,9754,3.187,9756,3.187,9758,3.187,9760,3.006,9761,3.187,9762,4.886,9763,6.888,9764,4.886,9765,5.04,9766,5.04,9767,7.739,9768,5.04,9769,3.187,9770,5.04,9771,3.187,9772,3.187,9773,5.04,9774,3.187,9775,3.187,9776,5.04,9777,3.187,9778,3.187,9779,3.187,9780,3.187,9781,3.187,9782,3.187,9783,3.187,9784,3.187,9785,3.187,9786,3.187,9787,6.251,9788,3.187,9789,3.187,9790,3.187,9791,3.187,9792,3.187,9793,3.187,9794,3.187,9795,3.187,9796,3.187,9797,3.187,9798,3.187,9799,5.04,9800,3.187,9801,3.09,9802,3.187,9803,4.147,9804,2.622,9805,3.09,9806,3.09,9807,3.187,9808,5.04,9809,3.187,9810,5.04,9811,3.187,9812,3.09,9813,3.187,9814,3.187,9815,3.187,9816,3.187,9817,3.187,9818,3.187,9819,3.187,9820,3.09,9821,3.09]],["title/classes/UserDataResponse.html",[0,0.231,19171,5.705]],["body/classes/UserDataResponse.html",[0,0.305,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.524,29,0.699,30,0.001,31,0.503,32,0.175,33,0.431,39,3.54,47,0.947,95,0.114,101,0.015,103,0.001,104,0.001,112,0.89,138,2.221,150,2.045,191,4.859,245,3.569,379,1.401,651,6.286,652,6.286,773,4.543,9624,5.969,9626,5.969,19171,11.024,21046,13.159,21047,8.977,21048,8.977,21049,8.977,21050,8.977,21051,8.977]],["title/classes/UserDoFactory.html",[0,0.231,21052,6.296]],["body/classes/UserDoFactory.html",[0,0.166,2,0.548,3,0.011,4,0.011,5,0.006,7,0.074,8,0.883,26,1.561,27,0.532,29,1.021,30,0.001,31,0.713,32,0.184,33,0.603,34,1.509,35,1.486,47,0.52,49,1.93,55,2.481,59,3.285,95,0.134,99,0.816,101,0.008,103,0,104,0,112,0.585,120,4.337,133,2.576,140,2.74,153,2.014,154,1.894,155,2.458,177,1.349,180,1.32,236,0.796,239,1.123,271,4.913,319,3.326,349,0.761,379,0.612,382,3.883,413,2.269,437,0.953,447,7.083,448,4.554,449,5.57,452,4.163,453,5.57,454,5.633,455,4.163,456,4.163,457,4.163,458,4.089,459,4.546,460,5.006,461,6.529,462,5.869,463,7.034,464,2.791,469,2.765,470,4.163,471,2.791,472,5.21,473,5.379,474,4.211,475,5.059,476,4.125,477,2.765,478,2.607,479,4.162,480,3.294,481,2.693,482,2.649,483,2.765,484,5.133,485,2.791,486,3.569,487,4.917,488,2.765,489,7.192,490,4.207,491,6.704,492,2.791,493,3.654,494,2.765,495,2.791,496,2.765,497,2.791,498,2.765,501,2.765,502,6.167,503,2.791,504,2.765,505,4.163,506,3.894,507,4.163,508,2.791,509,2.67,510,2.649,511,2.186,512,2.765,513,2.765,514,2.765,515,2.791,516,2.791,517,1.876,518,2.765,519,1.516,520,2.791,521,2.918,522,2.765,523,2.791,524,2.791,525,2.846,527,2.936,651,2.338,652,2.338,653,2.529,1604,2.071,3081,4.423,4209,1.66,4317,6.313,4319,3.559,4603,4.02,7142,2.587,7149,3.955,7814,4.281,12843,4.281,21052,8.191,21053,4.894,21054,7.367,21055,7.367,21056,4.894,21057,4.894,21058,4.525,21059,4.525]],["title/classes/UserDto.html",[0,0.231,21060,5.705]],["body/classes/UserDto.html",[0,0.235,2,0.775,3,0.016,4,0.016,5,0.008,7,0.105,26,2.564,27,0.564,29,0.539,30,0.001,31,0.388,32,0.188,33,0.669,34,1.833,47,0.959,83,3.551,95,0.088,99,1.155,101,0.011,103,0.001,104,0.001,112,0.751,119,1.924,154,1.48,239,2.169,379,0.866,404,2.825,480,2.624,486,2.844,511,3.093,528,3.604,651,5.141,652,5.141,653,5.563,655,5.41,988,4.077,3115,4.603,3116,4.471,4202,7.525,4203,8.204,4209,3.651,4214,6.769,4286,4.109,4298,5.149,4787,5.594,6939,4.109,9624,4.603,9626,4.603,9628,5.277,11331,8.739,12597,8.432,12598,8.204,12599,8.005,12600,8.432,12605,5.8,12607,5.8,12609,5.8,12611,5.8,12613,5.8,12660,5.424,13145,6.057,14944,6.401,18454,6.401,21060,10.142,21061,6.923,21062,9.951,21063,6.923,21064,6.923,21065,6.923,21066,6.923,21067,6.923,21068,6.923,21069,6.923,21070,6.923,21071,6.923,21072,6.923,21073,6.923,21074,6.923,21075,6.923,21076,6.923,21077,6.923,21078,6.923,21079,6.923,21080,6.057,21081,6.923,21082,6.923]],["title/classes/UserFactory.html",[0,0.231,648,4.853]],["body/classes/UserFactory.html",[0,0.136,2,0.449,3,0.009,4,0.009,5,0.005,7,0.061,8,0.758,27,0.53,29,1.015,30,0.001,31,0.735,32,0.18,33,0.605,34,1.332,35,1.375,47,0.446,55,2.31,59,3,95,0.136,99,0.669,101,0.007,103,0,104,0,112,0.502,120,2.78,133,2.21,140,2.246,153,1.778,154,2.064,155,2.109,177,1.157,180,1.133,239,1.794,271,4.934,276,5.239,319,2.853,349,1.059,379,0.502,382,3.718,413,1.946,437,1.571,447,7.008,448,4.204,449,5.015,452,3.571,453,5.015,454,5.434,455,3.571,456,3.571,457,3.571,458,3.508,459,4.013,460,4.419,461,6.12,462,5.359,463,6.826,464,2.288,469,2.266,470,3.571,471,2.288,472,4.69,473,4.842,474,3.791,475,4.554,476,3.539,477,2.266,478,2.136,479,3.842,480,3.317,481,2.207,482,2.171,483,2.266,484,4.62,485,2.288,486,3.594,487,4.341,488,2.266,489,7.196,490,3.944,491,6.285,492,2.288,493,3.879,494,2.266,495,2.288,496,2.266,497,2.288,498,2.266,499,2.555,500,2.381,501,2.266,502,5.693,503,2.288,504,2.266,505,3.571,506,3.34,507,3.571,508,2.288,509,2.189,510,2.171,511,1.792,512,2.266,513,2.266,514,2.266,515,2.288,516,2.288,517,1.538,518,2.266,519,1.242,520,2.288,521,2.503,522,2.266,523,2.288,525,2.332,526,2.381,527,5.793,643,5.207,645,2.917,646,2.858,648,5.573,651,1.916,652,1.916,653,2.073,654,1.193,664,8.592,667,5.294,673,5.294,677,5.294,1663,5.395,2081,5.843,3081,5.12,4603,4.842,6804,3.142,6805,3.241,6814,3.142,9803,2.667,9804,2.667,12025,3.057,12595,3.241,12843,3.509,20241,3.708,20245,8.205,21058,3.708,21059,3.708,21083,4.011,21084,6.32,21085,6.32,21086,6.32,21087,6.32,21088,4.011,21089,4.011,21090,4.011,21091,6.32,21092,4.011,21093,6.32,21094,4.011,21095,6.32,21096,6.32,21097,6.32,21098,4.011,21099,4.011,21100,7.82,21101,4.011]],["title/classes/UserForGroupNotFoundLoggable.html",[0,0.231,16442,5.958]],["body/classes/UserForGroupNotFoundLoggable.html",[0,0.304,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,8,1.341,27,0.458,29,0.697,30,0.001,31,0.502,32,0.122,33,0.43,35,1.076,95,0.142,100,3.009,101,0.015,103,0.001,104,0.001,177,1.64,239,2.055,284,2.767,345,2.851,349,0.925,379,1.12,974,6.178,1025,3.504,1154,3.562,1275,5.598,1276,6.26,1278,2.834,1280,3.497,1281,6.296,1458,5.062,3024,6.383,4603,4.888,7095,5.564,8369,6.305,8370,6.549,8510,10.01,8523,5.956,11001,8.527,11249,6.515,16442,9.787,18339,8.282,18340,8.282,18341,8.282,21102,12.199,21103,8.957,21104,8.957,21105,8.957]],["title/interfaces/UserGroup.html",[105,0.735,9764,5.335]],["body/interfaces/UserGroup.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.059,26,1.855,30,0.001,31,0.535,32,0.145,34,1.057,36,2.475,47,0.937,51,4.261,55,1.657,72,1.778,95,0.155,99,0.653,101,0.006,103,0,104,0,105,1.03,107,0.94,112,0.493,119,0.797,177,1.858,203,1.409,226,0.56,236,1.652,239,0.899,262,2.549,284,3.407,349,1.226,358,1.723,379,0.49,437,1.745,475,2.01,528,2.039,529,2.478,539,0.821,560,2.554,564,2.689,593,2.297,603,2.521,608,3.074,696,2.446,932,5.252,974,4.235,1719,2.377,1839,4.665,1840,4.494,1842,3.795,1852,5.201,1861,2.963,1867,4.206,1869,2.463,1874,4.42,1881,2.913,1882,2.913,2100,6.861,2173,2.194,2336,2.301,2365,2.35,2568,6.301,3543,4.006,3544,1.982,4209,1.329,4360,4.906,4482,2.646,4483,2.739,4484,2.325,4603,4.202,4604,2.791,4768,4.524,4779,4.861,5257,2.604,5522,2.739,5767,5.044,5806,4.337,5870,2.646,5884,4.973,5944,4.42,6034,2.739,6107,5.728,6125,5.12,6141,4.726,6144,2.849,6158,4.728,6167,4.726,6541,3.644,6544,4.843,6545,2.739,6648,2.849,6697,3.069,7142,5.045,7148,4.19,7341,3.853,7874,2.53,8608,2.791,8668,2.986,8690,2.849,8858,4.779,8883,6.241,9001,2.791,9004,6.953,9010,5.12,9039,2.986,9713,2.986,9714,3.165,9715,3.165,9716,3.165,9717,3.165,9718,3.165,9719,2.791,9720,3.165,9733,5.289,9735,3.165,9738,3.165,9740,3.165,9742,3.165,9743,7.077,9745,3.165,9747,3.165,9749,3.165,9751,3.165,9753,8.332,9754,3.165,9756,3.165,9758,3.165,9760,2.986,9761,3.165,9762,4.859,9763,6.861,9764,6.033,9765,7.713,9766,7.713,9767,7.713,9768,5.012,9769,3.165,9770,5.012,9771,3.165,9772,3.165,9773,5.012,9774,3.165,9775,3.165,9776,5.012,9777,3.165,9778,3.165,9779,3.165,9780,3.165,9781,3.165,9782,3.165,9783,3.165,9784,3.165,9785,3.165,9786,3.165,9787,6.223,9788,3.165,9789,3.165,9790,3.165,9791,3.165,9792,3.165,9793,3.165,9794,3.165,9795,3.165,9796,3.165,9797,3.165,9798,3.165,9799,5.012,9800,3.165,9801,3.069,9802,3.165,9803,4.124,9804,2.604,9805,3.069,9806,3.069,9807,3.165,9808,5.012,9809,3.165,9810,5.012,9811,3.165,9812,3.069,9813,3.165,9814,3.165,9815,3.165,9816,3.165,9817,3.165,9818,3.165,9819,3.165,9820,3.069,9821,3.069]],["title/interfaces/UserGroups.html",[105,0.735,9763,5.335]],["body/interfaces/UserGroups.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.867,30,0.001,31,0.351,32,0.146,34,1.067,36,2.484,47,0.918,51,4.289,55,0.853,72,1.799,95,0.156,99,0.661,101,0.007,103,0,104,0,105,1.036,107,0.951,112,0.497,119,0.807,120,2.754,177,1.868,203,1.425,226,0.567,236,1.66,239,0.909,262,2.558,284,3.678,349,1.23,358,1.744,379,0.496,437,1.748,475,2.034,528,2.064,529,2.494,539,0.829,560,2.578,564,2.707,593,2.319,603,2.527,608,3.079,696,2.469,932,5.282,974,4.263,1719,2.405,1839,4.696,1840,4.524,1842,3.824,1852,5.242,1861,2.991,1867,4.222,1869,2.493,1874,4.461,1881,2.948,1882,2.948,2100,6.906,2173,2.219,2336,2.328,2365,2.378,2568,6.315,3543,4.043,3544,2.006,4209,1.344,4360,4.944,4482,2.677,4483,2.771,4484,2.353,4603,4.235,4604,2.824,4768,4.558,4779,4.893,5257,2.635,5522,2.771,5767,5.083,5806,4.377,5870,2.677,5884,5.012,5944,4.461,6034,2.771,6107,5.772,6125,5.16,6141,4.763,6144,2.883,6158,4.772,6167,4.763,6541,3.678,6544,4.88,6545,2.771,6648,2.883,6697,3.105,7142,5.074,7148,4.229,7341,3.889,7874,2.56,8608,2.824,8668,3.021,8690,2.883,8858,4.811,8883,6.282,9001,2.824,9004,6.974,9010,5.16,9039,3.021,9713,3.021,9714,3.203,9715,3.203,9716,3.203,9717,3.203,9718,3.203,9719,2.824,9720,3.203,9733,5.33,9735,3.203,9738,3.203,9740,3.203,9742,3.203,9743,7.124,9745,3.203,9747,3.203,9749,3.203,9751,3.203,9753,8.37,9754,3.203,9756,3.203,9758,3.203,9760,3.021,9761,3.203,9762,4.905,9763,7.52,9764,4.905,9765,5.059,9766,5.059,9767,7.757,9768,5.059,9769,3.203,9770,5.059,9771,3.203,9772,3.203,9773,5.059,9774,3.203,9775,3.203,9776,5.059,9777,3.203,9778,3.203,9779,3.203,9780,3.203,9781,3.203,9782,3.203,9783,3.203,9784,3.203,9785,3.203,9786,3.203,9787,6.271,9788,3.203,9789,3.203,9790,3.203,9791,3.203,9792,3.203,9793,3.203,9794,3.203,9795,3.203,9796,3.203,9797,3.203,9798,3.203,9799,5.059,9800,3.203,9801,3.105,9802,3.203,9803,4.163,9804,2.635,9805,3.105,9806,3.105,9807,3.203,9808,5.059,9809,3.203,9810,5.059,9811,3.203,9812,3.105,9813,3.203,9814,3.203,9815,3.203,9816,3.203,9817,3.203,9818,3.203,9819,3.203,9820,3.105,9821,3.105]],["title/classes/UserInfoMapper.html",[0,0.231,15154,5.958]],["body/classes/UserInfoMapper.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,8,1.395,27,0.391,29,0.744,30,0.001,31,0.535,32,0.131,33,0.458,34,1.627,35,1.148,95,0.148,99,1.594,100,3.91,101,0.016,103,0.001,104,0.001,236,1.554,239,3.074,349,0.987,413,3.866,437,1.236,528,4.974,651,4.563,652,4.563,782,6.461,789,4.769,3115,6.352,3116,6.169,15125,10.56,15154,10.183,17492,10.183,18375,8.357,18377,8.357,21106,11.64]],["title/classes/UserInfoResponse.html",[0,0.231,15125,5.503]],["body/classes/UserInfoResponse.html",[0,0.283,2,0.932,3,0.019,4,0.019,5,0.01,7,0.126,27,0.51,29,0.648,30,0.001,31,0.721,32,0.17,33,0.617,34,2.28,47,0.929,95,0.106,101,0.014,103,0.001,104,0.001,112,0.848,138,2.145,149,4.486,150,1.897,153,2.828,154,2.283,239,3.02,245,2.801,253,4.077,359,6.409,379,1.336,404,3.398,651,6.145,652,6.145,773,4.214,1213,5.929,2103,6.524,2858,5.455,2859,5.69,2860,5.69,4364,7.699,7054,9.345,9624,5.537,9626,5.537,15125,10.396,18382,7.285,21107,12.865,21108,8.327,21109,7.699]],["title/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.231,18990,5.503]],["body/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.281,2,0.927,3,0.019,4,0.019,5,0.01,7,0.125,8,1.275,26,2.629,27,0.436,29,0.644,30,0.001,31,0.464,32,0.145,33,0.397,35,0.994,52,5.929,83,3.611,95,0.149,99,1.38,101,0.014,103,0.001,104,0.001,128,5.294,177,1.948,180,1.907,182,2.692,226,1.183,284,2.556,345,2.634,349,0.855,379,1.035,590,7.618,603,1.662,654,2.461,1025,3.237,1275,5.396,1276,6.035,1278,2.618,1280,3.326,1281,6.116,1289,5.345,4508,5.253,5644,7.304,8369,6.078,8370,6.313,8820,5.205,8822,5.897,8827,4.812,8828,5.021,10425,6.483,12221,8.221,13998,6.483,18481,6.687,18990,8.598,19868,6.687,21110,9.851,21111,11.759,21112,7.651,21113,9.724,21114,8.276,21115,8.276]],["title/modules/UserLoginMigrationApiModule.html",[201,1.804,18592,5.503]],["body/modules/UserLoginMigrationApiModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,30,0.001,52,3.324,95,0.172,101,0.011,103,0.001,104,0.001,122,4.7,128,4.669,201,2.859,203,2.503,204,2.689,205,2.768,206,2.756,207,2.745,208,3.953,209,2.617,214,5.807,218,3.773,219,2.711,220,2.647,222,4.322,223,3.905,225,3.741,226,0.995,239,1.597,631,3.571,654,2.07,1278,2.202,1319,8.198,1358,9.805,1692,6.829,1904,3.897,2472,3.159,2705,3.285,4507,10.485,4508,3.109,5381,7.974,10508,5.452,13927,9.54,15538,5.452,15697,9.805,16553,10.485,17512,10.485,18592,11.595,18613,5.83,18982,10.485,20349,10.485,21116,6.959,21117,6.959,21118,6.959,21119,10.114,21120,9.441,21121,9.441,21122,9.486,21123,9.486,21124,6.959]],["title/controllers/UserLoginMigrationController.html",[259,2.591,21121,5.958]],["body/controllers/UserLoginMigrationController.html",[0,0.109,3,0.007,4,0.007,5,0.004,7,0.049,8,0.633,27,0.401,29,0.763,30,0.001,31,0.549,32,0.186,33,0.47,35,1.177,36,2.515,47,0.475,52,6.444,55,1.136,95,0.142,99,0.535,100,1.078,101,0.005,103,0,104,0,128,5.568,138,1.782,150,0.731,153,2.923,177,1.577,223,1.321,226,0.459,236,0.522,239,3.125,259,1.22,261,1.523,262,2.781,270,6.257,271,3.625,278,2.203,292,5.179,294,6.098,310,2.288,324,5.366,330,3.626,333,2.234,335,3.167,337,1.658,338,1.696,343,1.709,346,1.904,347,1.934,349,1.012,379,0.401,437,1.529,482,1.736,517,2.024,556,1.964,569,3.762,590,6.281,603,1.731,608,2.258,631,1.646,654,2.319,821,2.537,823,2.735,990,1.085,1220,1.83,1243,3.24,1289,5.034,1395,3.458,1417,4.627,2434,5.106,2680,2.383,2705,1.514,2902,2.286,2903,1.813,2904,1.722,3075,2.409,3720,5.062,4022,2.018,4507,5.635,4508,4.572,4511,4.618,4521,6.327,4523,5.756,4525,6.107,4526,5.942,4692,4.089,5497,2.101,6829,3.84,7156,5.942,9689,4.967,11023,4.422,12773,4.881,13747,3.84,13954,7.538,13955,7.444,13956,5.67,13960,8.27,13965,4.793,14511,2.966,14972,4.618,15396,4.266,15616,6.82,17013,7.286,17512,5.635,17514,4.618,18357,6.107,18430,6.53,18431,6.53,18433,6.82,18478,4.422,18982,5.635,18985,4.618,18990,6.299,19381,2.966,19868,8.822,20349,5.635,20351,5.885,20431,2.966,20492,8.573,20930,2.807,21119,5.436,21121,4.618,21125,9.462,21126,2.966,21127,5.279,21128,6.219,21129,6.219,21130,6.727,21131,3.208,21132,3.208,21133,9.462,21134,5.279,21135,5.279,21136,3.208,21137,3.208,21138,3.208,21139,5.279,21140,3.208,21141,3.208,21142,3.208,21143,9.268,21144,3.208,21145,3.208,21146,3.208,21147,6.53,21148,3.208,21149,3.208,21150,3.208,21151,3.208,21152,3.208,21153,3.208,21154,3.208,21155,3.208,21156,3.208,21157,3.208,21158,5.279,21159,6.53,21160,3.208,21161,5.279,21162,3.208,21163,3.208,21164,6.82,21165,3.208,21166,3.208,21167,3.208,21168,4.881,21169,3.208,21170,3.208,21171,3.208,21172,3.208,21173,3.208,21174,3.208,21175,6.727,21176,5.279,21177,2.807,21178,6.299,21179,9.233,21180,6.82,21181,3.208,21182,3.208,21183,3.208,21184,3.208,21185,3.208,21186,3.208,21187,3.208,21188,3.208,21189,3.208,21190,5.279,21191,3.208,21192,6.727,21193,3.208,21194,3.208,21195,3.208,21196,3.208,21197,3.208,21198,3.208,21199,6.727,21200,3.208,21201,3.208,21202,3.208,21203,3.208,21204,3.208,21205,3.208,21206,3.208,21207,3.208,21208,3.208,21209,3.208,21210,3.208,21211,3.208,21212,3.208]],["title/classes/UserLoginMigrationDO.html",[0,0.231,4521,4.398]],["body/classes/UserLoginMigrationDO.html",[0,0.261,2,0.861,3,0.018,4,0.018,5,0.009,7,0.117,26,2.783,27,0.553,29,0.599,30,0.001,31,0.431,32,0.184,33,0.659,34,1.728,47,0.543,83,4.094,95,0.129,101,0.013,103,0.001,104,0.001,112,0.805,128,5.434,180,1.818,181,2.715,379,0.962,381,2.583,382,2.32,1603,2.892,1686,7.018,4209,3.85,4286,4.565,4287,5.72,4521,8.101,5778,5.594,5783,5.862,7249,5.862,18406,8.442,18434,8.652,21113,8.892,21213,13.49,21214,7.691,21215,9.172,21216,8.892,21217,8.892,21218,10.143,21219,7.691,21220,7.691,21221,7.691,21222,7.691,21223,7.691,21224,7.691,21225,7.11,21226,7.11,21227,7.11,21228,7.11,21229,6.728,21230,6.728,21231,6.728,21232,6.728,21233,6.728,21234,6.728,21235,6.728,21236,6.728]],["title/entities/UserLoginMigrationEntity.html",[154,1.456,12198,5.065]],["body/entities/UserLoginMigrationEntity.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.105,27,0.523,30,0.001,32,0.178,33,0.624,83,3.994,95,0.146,96,1.895,101,0.016,103,0.001,104,0.001,112,0.749,128,5.24,138,2.324,143,2.897,144,4.21,145,2.618,154,2.016,155,2.302,160,6.128,172,3.986,173,2.04,174,3.75,175,3.051,177,1.263,178,2.866,180,1.236,181,1.846,182,2.244,556,2.706,644,5.27,654,3.196,1451,4.396,2619,7.388,5040,4.93,6611,4.285,6612,4.14,6819,6.37,8549,6.916,11136,4.824,12198,7.014,16566,8.682,16567,8.682,18155,6.379,18434,8.19,21113,8.417,21215,8.682,21217,8.417,21229,6.036,21230,6.036,21231,6.036,21232,6.036,21233,6.036,21234,6.036,21235,6.036,21236,6.036,21237,13.01,21238,6.899,21239,6.899,21240,6.899,21241,6.899,21242,6.899,21243,6.899,21244,6.899,21245,6.899,21246,6.899,21247,8.719,21248,6.899,21249,6.899,21250,6.899,21251,6.899,21252,6.899,21253,6.899]],["title/classes/UserLoginMigrationError.html",[0,0.231,21254,5.958]],["body/classes/UserLoginMigrationError.html",[0,0.261,2,0.861,3,0.018,4,0.018,5,0.009,7,0.117,8,1.216,27,0.538,29,0.599,30,0.001,31,0.431,32,0.186,33,0.545,35,0.924,47,0.801,52,5.422,55,1.655,59,2.389,95,0.129,101,0.013,103,0.001,104,0.001,112,0.805,128,4.861,138,2.282,177,2.493,180,1.818,182,2.502,226,1.1,239,1.764,340,3.696,347,2.817,379,0.962,382,3.887,595,6.379,820,5.537,823,2.699,950,5.266,988,5.205,990,4.08,1025,4.44,1205,8.279,1206,7.155,1207,3.853,1208,7.231,1212,4.967,1213,4.269,1214,4.967,1215,4.967,1216,4.967,1217,4.967,1218,4.967,1219,4.614,1220,4.386,1226,4.837,4508,4.532,6901,4.777,7095,4.777,8826,6.443,13737,5.72,13772,8.497,18360,6.728,21110,8.497,21254,8.874,21255,7.691]],["title/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.231,4525,5.335]],["body/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.278,2,0.917,3,0.019,4,0.019,5,0.01,7,0.124,8,1.267,26,2.619,27,0.433,29,0.638,30,0.001,31,0.459,32,0.144,33,0.393,35,0.984,52,5.906,83,3.593,95,0.148,99,1.366,101,0.013,103,0.001,104,0.001,128,5.371,177,1.935,180,1.894,182,2.665,226,1.171,239,1.879,284,2.53,345,2.607,349,0.846,379,1.024,603,1.645,1025,3.204,1275,5.37,1276,6.005,1278,2.591,1280,3.304,1281,6.093,4508,5.228,4525,8.28,5644,7.269,8369,6.049,8370,6.282,8827,4.763,8828,4.97,12221,8.181,13998,6.417,14972,7.166,18430,10.358,18431,10.358,18432,7.573,18433,10.817,18434,9.425,21110,9.803,21112,7.573,21256,8.192,21257,8.192,21258,8.192,21259,8.192,21260,8.192]],["title/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.231,20356,5.958]],["body/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.285,2,0.938,3,0.02,4,0.02,5,0.01,7,0.127,8,1.286,26,2.84,27,0.439,29,0.652,30,0.001,31,0.469,32,0.115,33,0.402,35,1.007,39,3.182,52,5.957,95,0.136,99,1.398,101,0.014,103,0.001,104,0.001,119,2.407,128,5.4,177,2.165,191,4.535,239,1.922,284,2.588,321,6.095,347,3.069,349,0.865,379,1.341,603,2.376,654,3.19,1025,3.278,1275,5.428,1276,6.07,1278,2.651,1280,3.352,1281,6.145,4508,5.284,8369,6.114,8370,6.35,10425,6.564,10780,6.771,11856,9.275,12221,8.718,13426,7.33,13998,6.564,20356,9.382,21261,10.936,21262,8.379,21263,8.379,21264,8.379,21265,8.379]],["title/classes/UserLoginMigrationMandatoryParams.html",[0,0.231,21164,5.958]],["body/classes/UserLoginMigrationMandatoryParams.html",[0,0.404,2,1.109,3,0.023,4,0.023,5,0.012,7,0.15,27,0.406,30,0.001,32,0.135,52,5.684,95,0.151,101,0.016,103,0.001,104,0.001,112,0.945,119,2.422,128,5.328,138,1.802,147,6.388,148,3.143,150,2.257,245,3.12,4508,5.315,7401,7.551,11856,9.486,21164,10.409,21266,11,21267,9.906,21268,9.906]],["title/classes/UserLoginMigrationMapper.html",[0,0.231,21177,5.958]],["body/classes/UserLoginMigrationMapper.html",[0,0.284,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,8,1.284,27,0.439,29,0.834,30,0.001,31,0.6,32,0.146,33,0.514,34,1.424,35,1.287,39,2.249,47,0.59,95,0.15,99,1.395,101,0.014,103,0.001,104,0.001,128,5.308,236,1.36,310,4.642,349,1.106,413,4.058,437,1.385,789,4.175,823,3.758,1604,3.538,2300,6.374,2705,3.947,4508,5.279,4521,8.047,18406,6.219,18434,6.374,21113,6.551,21147,10.438,21177,9.37,21178,10.069,21179,10.409,21215,6.757,21216,6.551,21217,6.551,21269,11.817,21270,7.731,21271,10.71,21272,10.71,21273,10.71,21274,8.362,21275,8.362,21276,10.71,21277,8.362,21278,8.362,21279,8.362,21280,8.362,21281,8.362,21282,8.362,21283,8.362,21284,8.362]],["title/modules/UserLoginMigrationModule.html",[201,1.804,13927,5.191]],["body/modules/UserLoginMigrationModule.html",[0,0.238,3,0.016,4,0.016,5,0.008,30,0.001,95,0.166,101,0.012,103,0.001,104,0.001,128,3.844,201,2.872,203,2.525,204,2.713,205,2.792,206,2.78,207,2.769,208,3.97,209,4.076,213,8.941,214,5.822,218,3.795,219,2.735,220,2.67,225,3.763,226,1.004,227,2.89,560,2.89,654,2.088,1278,2.221,1360,8.773,1376,5.351,1379,4.908,1904,3.931,3534,7.794,3544,3.552,4508,3.136,4514,9.706,4515,10.131,4516,11.007,5381,7.995,13927,10.957,14930,11.41,14934,9.83,15514,10.671,18613,5.881,21285,7.02,21286,7.02,21287,7.02,21288,7.02,21289,7.02]],["title/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.231,4526,5.191]],["body/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.282,2,0.93,3,0.019,4,0.019,5,0.01,7,0.126,8,1.279,26,2.834,27,0.437,29,0.647,30,0.001,31,0.465,32,0.146,33,0.399,35,0.998,52,5.938,59,2.582,95,0.149,99,1.386,101,0.014,103,0.001,104,0.001,128,5.389,177,1.953,180,1.912,182,2.703,226,1.188,239,1.907,284,2.567,345,2.645,349,0.858,379,1.039,603,1.669,654,2.472,1025,3.251,1275,5.406,1276,6.046,1278,2.629,1280,3.334,1281,6.126,2622,6.276,4209,3.997,4286,4.933,4508,5.264,4526,8.132,4692,4.359,5571,5.613,8369,6.09,8370,6.325,8820,5.226,8822,5.921,8827,4.832,8828,5.042,12221,8.691,13998,6.51,15443,10.893,18480,7.683,18481,6.715,21110,9.87,21290,8.31]],["title/interfaces/UserLoginMigrationQuery.html",[105,0.735,21178,5.503]],["body/interfaces/UserLoginMigrationQuery.html",[3,0.024,4,0.024,5,0.012,7,0.158,30,0.001,32,0.142,33,0.587,39,3.615,47,0.919,52,4.964,101,0.017,103,0.001,104,0.001,105,1.121,107,2.494,112,0.972,128,4.931,4508,4.642,9356,9.091,21178,9.893,21291,10.392]],["title/injectables/UserLoginMigrationRepo.html",[539,0.901,14934,5.335]],["body/injectables/UserLoginMigrationRepo.html",[0,0.161,3,0.011,4,0.011,5,0.006,7,0.072,8,0.863,10,2.926,12,3.305,18,3.645,26,2.678,27,0.538,29,1.015,30,0.001,31,0.73,32,0.178,33,0.626,34,1.654,35,1.552,36,2.561,40,2.296,95,0.145,96,1.979,97,2.058,99,0.792,101,0.008,103,0,104,0,112,0.377,128,4.204,133,2.518,154,2.075,173,1.405,177,1.318,180,1.291,226,0.679,236,1.172,262,2.857,349,1.135,379,0.594,381,1.595,382,3.86,437,1.256,448,3.566,519,1.471,539,0.953,541,1.137,556,1.196,593,2.667,603,2.361,608,1.095,644,2.167,654,2.142,680,5.035,686,3.4,687,5.281,718,2.636,1278,1.503,1604,3.681,1941,2.709,2240,9.025,2242,5.132,2243,5.132,2244,5.132,2245,5.132,2246,5.035,2247,5.035,2248,5.132,2249,5.035,2250,5.132,2251,3.454,2252,5.591,2253,3.98,2254,4.383,2256,5.238,2257,3.384,2259,5.591,2260,3.384,2262,3.384,2264,3.111,2265,5.035,2266,3.384,2268,3.384,2270,5.132,2274,5.132,2276,4.865,2277,5.035,2279,3.384,2281,2.85,2282,2.915,2283,3.384,2285,3.384,2287,3.32,2288,3.384,2294,3.208,4209,2.951,4389,3.026,4521,8.165,4523,4.473,5931,3.454,5932,3.454,5933,3.454,5934,3.454,5935,3.454,5936,3.454,5937,3.454,5938,3.454,5939,3.454,5947,3.62,8549,2.57,9081,4.391,9091,3.62,12198,8.743,12199,3.838,12200,3.838,14040,4.391,14067,6.659,14934,5.642,16566,3.838,16567,3.838,18202,6.659,18212,6.659,18221,3.838,18223,4.155,18224,4.155,18406,3.532,18434,5.49,21113,5.642,21215,5.82,21216,3.721,21217,5.642,21247,10.551,21292,9.709,21293,4.749,21294,4.749,21295,4.749,21296,4.749,21297,4.749,21298,4.749,21299,4.749,21300,4.749,21301,4.749,21302,4.749,21303,4.749,21304,4.749,21305,4.749,21306,4.749,21307,4.749,21308,7.202,21309,7.202,21310,4.749,21311,4.749,21312,4.749,21313,4.749,21314,4.749]],["title/classes/UserLoginMigrationResponse.html",[0,0.231,21179,5.503]],["body/classes/UserLoginMigrationResponse.html",[0,0.224,2,0.739,3,0.015,4,0.015,5,0.008,7,0.1,27,0.527,29,0.514,30,0.001,31,0.37,32,0.176,33,0.627,34,2.151,47,0.869,52,6.441,83,4.24,95,0.084,101,0.011,103,0.001,104,0.001,112,0.727,128,5.608,138,2.297,142,3.58,149,4.529,150,1.505,153,2.8,181,2.449,245,3.122,379,0.826,381,2.218,404,2.695,405,3.635,820,4.199,1213,6.293,1289,5.91,1964,7.395,2680,4.132,3075,5.174,3232,6.878,4508,5.839,7991,8.006,10403,7.395,18406,7.81,18430,7.666,18431,7.666,18434,8.005,21113,8.227,21179,9.621,21215,8.486,21216,8.227,21217,8.227,21225,6.106,21226,6.106,21227,6.106,21228,6.106,21229,5.778,21230,5.778,21231,5.778,21232,5.778,21233,5.778,21234,5.778,21235,5.778,21236,5.778,21315,12.085,21316,6.106,21317,9.151,21318,6.605,21319,6.605,21320,6.605,21321,6.605,21322,6.605,21323,6.605]],["title/injectables/UserLoginMigrationRevertService.html",[539,0.901,4516,5.503]],["body/injectables/UserLoginMigrationRevertService.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.131,8,1.308,27,0.447,29,0.85,30,0.001,31,0.611,32,0.149,33,0.524,35,1.035,36,2.322,52,5.723,95,0.16,99,1.437,101,0.014,103,0.001,104,0.001,128,5.433,177,1.998,226,1.231,239,1.976,262,2.625,379,1.365,539,1.444,541,2.062,603,2.192,608,2.516,654,2.562,1900,7.922,1902,7.848,1904,4.823,4508,5.352,4513,6.959,4514,9.463,4516,8.819,4521,8.135,4523,5.349,12197,6.137,13329,7.215,16454,7.534,21324,10.482,21325,8.612,21326,10.914,21327,8.612,21328,10.914,21329,8.612,21330,8.612,21331,8.612]],["title/injectables/UserLoginMigrationRule.html",[539,0.901,1713,5.705]],["body/injectables/UserLoginMigrationRule.html",[0,0.267,3,0.018,4,0.018,5,0.009,7,0.119,8,1.233,27,0.47,29,0.893,30,0.001,31,0.642,32,0.166,33,0.55,35,1.236,95,0.16,101,0.013,103,0.001,104,0.001,119,2.638,128,4.901,131,4.296,154,2.822,177,1.438,226,1.123,239,3.108,345,2.5,349,1.062,379,0.982,437,1.33,539,1.361,541,1.88,604,3.192,662,4.075,1280,2.455,1609,6.586,1637,8.049,1658,4.713,1675,7.383,1713,8.617,1816,6.643,1820,6.389,1827,5.223,3352,6.839,3353,5.306,3356,6.738,3358,5.306,3359,5.306,3360,6.948,3361,5.843,4521,8.65,6055,5.598,18264,7.263,21332,12.168,21333,7.856,21334,7.856,21335,7.856,21336,7.856]],["title/classes/UserLoginMigrationSearchListResponse.html",[0,0.231,21180,5.958]],["body/classes/UserLoginMigrationSearchListResponse.html",[0,0.262,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,27,0.514,29,0.601,30,0.001,31,0.432,32,0.184,33,0.603,52,4.858,55,3.018,56,6.236,59,3.16,70,6.439,95,0.144,101,0.013,103,0.001,104,0.001,112,0.807,128,5.059,138,2.198,150,1.759,180,1.822,239,1.771,245,2.666,247,3.379,284,3.879,379,0.965,382,3.647,556,1.945,812,7.246,813,5.397,814,8.07,815,6.98,816,5.8,818,3.88,820,5.218,821,3.71,822,4.323,823,2.709,824,5.397,825,6.567,826,5.856,827,5.057,828,4.112,829,5.397,830,5.397,832,4.855,833,4.285,4508,4.543,9349,7.138,9350,7.138,16240,7.138,21179,10.625,21180,8.896,21315,9.402]],["title/classes/UserLoginMigrationSearchParams.html",[0,0.231,21147,5.705]],["body/classes/UserLoginMigrationSearchParams.html",[0,0.402,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.402,30,0.001,32,0.134,33,0.568,39,3.416,47,0.835,52,5.65,95,0.15,101,0.016,103,0.001,104,0.001,112,0.939,128,5.311,138,1.784,148,3.113,149,4.499,150,2.235,248,4.936,249,4.785,4508,5.284,9351,8.581,9354,8.581,21147,9.909,21266,10.936,21337,9.809]],["title/injectables/UserLoginMigrationService.html",[539,0.901,4514,4.853]],["body/injectables/UserLoginMigrationService.html",[0,0.231,3,0.008,4,0.008,5,0.004,7,0.05,8,0.643,26,2.261,27,0.471,29,0.895,30,0.001,31,0.644,32,0.157,33,0.551,35,1.352,36,2.646,39,0.879,47,0.878,48,1.552,55,1.466,59,2.117,83,2.871,95,0.135,99,0.545,101,0.005,102,1.643,103,0,104,0,119,2.38,128,5.277,143,0.728,177,1.593,226,0.467,227,1.345,236,1.902,262,2.918,333,3.336,349,1.162,355,2.055,358,2.358,379,0.67,437,1.647,519,1.012,529,2.645,539,0.709,541,0.782,556,2.894,591,1.847,593,3.818,603,2.386,608,2.99,654,2.027,990,1.812,1154,1.3,1162,1.561,1379,2.285,1758,3.681,1900,4.958,1902,4.463,1904,1.83,1905,5.978,2020,1.43,2021,1.6,2022,1.543,2337,3.057,3075,1.491,3544,1.654,3564,2.859,3881,1.83,4209,3.967,4508,5.224,4511,4.689,4514,3.819,4515,7.345,4521,8.377,4523,7.963,4526,2.491,4528,5.708,4530,5.338,4533,5.068,4534,4.689,4692,1.714,4768,5.492,5644,2.03,6809,2.56,7142,4.166,9732,2.641,11292,5.241,11856,5.863,12197,2.329,12655,3.021,13087,5.506,13329,2.738,13665,2.738,13940,5.961,14012,7.127,14013,7.127,14014,7.859,14116,3.021,14124,4.331,14126,8.046,14132,3.021,14138,2.738,14139,7.288,14934,7.736,14939,2.641,14940,4.956,15513,7.183,16454,2.859,17157,2.641,17514,4.689,18024,3.819,18401,3.021,18406,2.431,18447,6.3,18448,3.021,18466,4.956,18985,4.689,19456,2.56,19556,3.021,19589,3.021,20351,4.689,21216,4.199,21217,2.56,21324,10.23,21338,5.36,21339,5.36,21340,5.36,21341,5.36,21342,5.36,21343,5.36,21344,5.36,21345,3.268,21346,5.36,21347,3.268,21348,5.36,21349,3.268,21350,5.36,21351,3.268,21352,5.36,21353,3.268,21354,5.36,21355,3.268,21356,5.36,21357,3.268,21358,4.956,21359,3.021,21360,5.36,21361,3.268,21362,5.36,21363,3.268,21364,5.36,21365,3.268,21366,5.36,21367,5.36,21368,5.36,21369,5.36,21370,6.814,21371,2.641,21372,3.268,21373,5.36,21374,5.36,21375,5.36,21376,3.268,21377,5.36,21378,3.268,21379,5.36,21380,3.268,21381,3.268,21382,3.268,21383,5.36,21384,3.268,21385,3.268,21386,3.268,21387,5.36,21388,3.268,21389,3.268,21390,3.268,21391,5.36,21392,4.956,21393,3.268]],["title/classes/UserLoginMigrationStartLoggable.html",[0,0.231,17519,5.705]],["body/classes/UserLoginMigrationStartLoggable.html",[0,0.294,2,0.97,3,0.02,4,0.02,5,0.01,7,0.131,8,1.314,26,2.861,27,0.449,29,0.675,30,0.001,31,0.486,32,0.118,33,0.416,35,1.041,39,3.233,52,6.032,95,0.139,99,1.446,101,0.014,103,0.001,104,0.001,128,5.358,177,2.006,191,4.691,284,2.677,321,6.305,345,2.759,349,0.895,379,1.084,603,1.741,654,3.259,1025,3.391,1275,5.514,1276,6.167,1278,2.742,1280,3.425,1281,6.222,1289,5.598,4508,5.368,8369,6.211,8370,6.451,10780,7.004,12221,8.828,13998,6.791,17519,9.18,18369,8.014,18370,8.014,21261,11.11,21394,8.668]],["title/injectables/UserLoginMigrationUc.html",[539,0.901,21119,5.503]],["body/injectables/UserLoginMigrationUc.html",[0,0.128,3,0.009,4,0.009,5,0.004,7,0.057,8,0.721,26,2.571,27,0.409,29,0.777,30,0.001,31,0.559,32,0.136,33,0.479,34,0.642,35,1.125,36,2.315,39,2.926,47,0.948,52,2.872,59,2.662,95,0.158,99,0.628,100,1.265,101,0.006,103,0,104,0,122,2.544,128,5.064,177,1.991,226,0.539,236,1.769,239,2.148,262,2.619,284,2.892,292,1.906,310,3.252,330,4.13,347,1.38,349,0.775,379,0.752,437,1.355,519,1.167,529,2.824,539,0.796,541,0.902,556,1.89,560,1.551,579,2.006,593,2.779,603,2.358,604,1.53,608,2.65,643,1.674,654,3.115,696,1.486,708,1.565,762,2.802,821,4.499,950,3.975,988,1.625,990,2.896,1025,2.936,1154,1.498,1178,2.022,1206,3.429,1233,3.939,1278,1.192,1361,7.79,1612,3.309,1613,2.312,1628,2.467,1666,2.544,1698,5.536,1775,4.285,1796,2.285,1905,5.243,2196,2.432,2253,3.076,2254,3.868,2435,2.684,2471,2.236,2472,1.71,2476,2.633,2823,4.142,3542,2.454,4209,3.385,4482,2.544,4483,2.633,4484,2.236,4508,4.679,4510,3.044,4514,7.463,4515,7.79,4521,4.846,4523,6.199,4527,2.951,4529,3.483,4645,2.871,4702,7.075,8523,2.504,8532,3.782,10112,2.802,10792,3.156,11249,2.74,11428,7.984,11448,4.373,11581,5.258,11656,6.105,13077,3.295,13103,6.546,13136,7.566,13395,5.26,13843,5.559,13965,5.347,14445,3.483,14939,3.044,15396,4.859,15456,4.859,15512,8.205,15514,7.819,15538,2.951,15539,3.295,15553,3.044,15571,3.156,15625,3.483,15631,3.295,15632,3.295,15792,5.559,15963,2.951,16244,3.044,16323,3.483,16326,5.559,16331,3.483,16345,3.295,16346,8.731,16347,3.483,16348,5.559,16349,5.559,16351,3.483,16352,3.483,16446,3.483,16529,3.483,16542,4.711,16565,5.26,16566,6.923,16567,8.464,16568,7.495,16574,3.295,18384,3.295,18406,9.027,21119,4.859,21128,5.559,21129,5.559,21178,6.923,21254,5.26,21395,10.474,21396,5.559,21397,7.504,21398,3.767,21399,3.767,21400,6.013,21401,3.767,21402,6.013,21403,3.767,21404,5.559,21405,3.767,21406,3.767,21407,3.767,21408,3.767,21409,3.767,21410,7.504,21411,3.767,21412,3.767,21413,3.767,21414,3.767,21415,3.767,21416,8.567,21417,3.767,21418,3.767,21419,6.013,21420,3.483,21421,3.483,21422,3.767,21423,6.013,21424,6.013,21425,6.013,21426,3.767,21427,3.767,21428,3.767,21429,3.767,21430,3.767,21431,3.767,21432,3.767,21433,9.363,21434,3.767,21435,6.013,21436,3.767]],["title/classes/UserMapper.html",[0,0.231,21437,5.958]],["body/classes/UserMapper.html",[0,0.311,2,1.026,3,0.021,4,0.021,5,0.011,7,0.139,8,1.36,27,0.375,29,0.713,30,0.001,31,0.513,32,0.125,33,0.44,34,1.561,35,1.101,95,0.144,99,1.528,101,0.015,103,0.001,104,0.001,154,1.958,236,1.49,239,2.955,276,4.823,349,0.946,413,3.795,651,4.376,652,4.376,653,4.735,655,4.605,4202,6.405,4209,3.108,4214,5.762,4389,5.837,4399,8.015,7151,7.403,11120,7.675,12597,7.177,12598,6.983,12599,6.814,12600,7.177,17597,9.504,17601,9.504,18221,7.403,21020,8.47,21021,8.47,21022,8.47,21027,8.47,21028,8.47,21029,8.47,21030,8.47,21031,8.47,21060,10.789,21062,8.47,21437,9.925,21438,9.161,21439,9.161,21440,9.161,21441,9.161]],["title/classes/UserMatchListResponse.html",[0,0.231,12798,5.705]],["body/classes/UserMatchListResponse.html",[0,0.352,2,0.722,3,0.015,4,0.015,5,0.008,7,0.098,27,0.483,29,0.502,30,0.001,31,0.504,32,0.182,33,0.566,34,1.098,39,1.734,47,0.792,55,2.947,56,5.911,59,2.796,70,6.103,95,0.15,101,0.015,103,0.001,104,0.001,112,0.714,128,2.597,138,2.04,143,1.435,148,2.046,149,3.423,150,1.469,153,2.779,180,1.612,181,1.725,191,3.489,192,4.107,239,2.878,245,3.289,247,2.822,276,2.74,284,3.645,319,2.91,361,5.857,379,0.806,382,3.385,517,2.471,556,1.624,564,1.979,593,2.387,651,4.298,652,4.298,807,3.672,814,7.7,815,6.616,816,5.132,818,3.24,820,4.756,821,3.098,822,3.61,823,2.262,824,4.507,825,5.811,826,5.181,827,4.222,828,3.433,829,4.507,830,4.507,832,4.054,833,3.578,838,2.821,1451,7.147,1844,4.222,3075,2.942,3076,4.107,3077,3.643,3081,3.218,3250,4.054,4508,4.02,5072,4.107,5537,4.107,9624,4.286,9625,4.689,9626,4.286,9627,4.689,10744,4.427,10762,4.593,10763,5.459,12021,4.914,12022,4.354,12039,7.538,12062,5.4,12798,7.538,12848,10.026,12850,7.902,12853,5.4,12854,5.4,12855,5.4,12856,5.4,12920,9.068,21442,8.319,21443,5.96,21444,6.446,21445,6.446,21446,5.639]],["title/classes/UserMatchMapper.html",[0,0.231,12790,5.705]],["body/classes/UserMatchMapper.html",[0,0.245,2,0.808,3,0.017,4,0.017,5,0.009,7,0.109,8,1.166,27,0.398,29,0.757,30,0.001,31,0.616,32,0.133,33,0.467,35,1.169,39,1.943,59,2.244,95,0.156,99,1.205,100,3.267,101,0.012,103,0.001,104,0.001,143,1.608,236,1.175,239,2.818,310,4.216,321,5.252,340,3.47,349,1.307,413,3.897,437,1.637,486,2.172,528,3.76,529,2.043,593,4.073,651,3.449,652,3.449,782,5.399,789,3.605,1246,6.333,1872,4.541,3076,4.601,3077,4.081,3115,4.801,3116,4.664,4508,4.914,4603,5.308,4604,5.146,5505,3.952,10744,4.96,10777,9.858,12021,7.414,12022,6.57,12023,10.625,12068,9.51,12660,5.657,12790,8.148,12792,6.317,12848,9.219,12850,8.384,12873,5.657,12875,6.049,12927,5.657,17492,8.509,17615,8.993,17620,6.676,17621,6.676,17622,6.676,21447,10.999,21448,7.221,21449,9.727,21450,7.221,21451,7.221,21452,7.221,21453,7.221,21454,9.727,21455,7.221,21456,7.221,21457,7.221,21458,7.221,21459,9.727,21460,7.221,21461,7.221,21462,7.221,21463,7.221,21464,7.221]],["title/classes/UserMatchResponse.html",[0,0.231,12848,5.335]],["body/classes/UserMatchResponse.html",[0,0.344,2,0.692,3,0.014,4,0.014,5,0.007,7,0.094,27,0.508,29,0.481,30,0.001,31,0.567,32,0.18,33,0.486,34,1.488,39,2.725,47,0.894,55,2.18,56,4.223,70,4.361,95,0.147,101,0.014,103,0,104,0,112,0.694,128,3.518,138,2.193,143,1.945,148,1.961,149,3.323,150,1.408,153,2.741,180,1.107,181,2.338,191,3.344,192,3.937,239,3.083,245,3.25,247,2.705,276,2.627,284,2.698,319,3.943,361,6.564,379,0.773,381,2.075,517,3.349,564,2.682,593,2.288,651,5.549,652,5.549,807,3.564,814,5.361,815,3.344,816,3.524,820,5.053,832,3.886,833,3.43,838,3.452,1213,3.43,1451,8.067,1844,5.721,3075,3.986,3076,5.565,3077,4.936,3081,4.361,3250,5.493,3817,3.63,4508,5.656,5072,5.565,5537,5.565,9624,4.108,9625,4.494,9626,4.108,9627,4.494,10744,6.958,10762,6.224,10763,6.681,12021,7.722,12022,6.843,12039,7.317,12062,5.176,12798,5.176,12848,9.919,12850,8.855,12853,5.176,12854,5.176,12855,5.176,12856,5.176,12920,10.163,21442,11.706,21443,5.713,21446,7.641,21465,6.179,21466,6.179,21467,6.179,21468,6.179,21469,6.179,21470,6.179,21471,6.179]],["title/interfaces/UserMetdata.html",[105,0.735,9762,5.335]],["body/interfaces/UserMetdata.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.867,30,0.001,31,0.351,32,0.146,34,1.067,36,2.484,47,0.918,51,4.289,55,0.853,72,1.799,95,0.156,99,0.661,101,0.007,103,0,104,0,105,1.036,107,0.951,112,0.497,119,0.807,120,2.754,177,1.868,203,1.425,226,0.567,236,1.66,239,0.909,262,2.558,284,3.678,349,1.23,358,1.744,379,0.496,437,1.748,475,2.034,528,2.064,529,2.494,539,0.829,560,2.578,564,2.707,593,2.319,603,2.527,608,3.079,696,2.469,932,5.282,974,4.263,1719,2.405,1839,4.696,1840,4.524,1842,3.824,1852,5.242,1861,2.991,1867,4.222,1869,2.493,1874,4.461,1881,2.948,1882,2.948,2100,6.906,2173,2.219,2336,2.328,2365,2.378,2568,6.315,3543,4.043,3544,2.006,4209,1.344,4360,4.944,4482,2.677,4483,2.771,4484,2.353,4603,4.235,4604,2.824,4768,4.558,4779,4.893,5257,2.635,5522,2.771,5767,5.083,5806,4.377,5870,2.677,5884,5.012,5944,4.461,6034,2.771,6107,5.772,6125,5.16,6141,4.763,6144,2.883,6158,4.772,6167,4.763,6541,3.678,6544,4.88,6545,2.771,6648,2.883,6697,3.105,7142,5.074,7148,4.229,7341,3.889,7874,2.56,8608,2.824,8668,3.021,8690,2.883,8858,4.811,8883,6.282,9001,2.824,9004,6.974,9010,5.16,9039,3.021,9713,3.021,9714,3.203,9715,3.203,9716,3.203,9717,3.203,9718,3.203,9719,2.824,9720,3.203,9733,5.33,9735,3.203,9738,3.203,9740,3.203,9742,3.203,9743,7.124,9745,3.203,9747,3.203,9749,3.203,9751,3.203,9753,8.37,9754,3.203,9756,3.203,9758,3.203,9760,3.021,9761,3.203,9762,6.079,9763,6.906,9764,4.905,9765,5.059,9766,5.059,9767,7.757,9768,5.059,9769,3.203,9770,5.059,9771,3.203,9772,3.203,9773,5.059,9774,3.203,9775,3.203,9776,5.059,9777,3.203,9778,3.203,9779,3.203,9780,3.203,9781,3.203,9782,3.203,9783,3.203,9784,3.203,9785,3.203,9786,3.203,9787,6.271,9788,3.203,9789,3.203,9790,3.203,9791,3.203,9792,3.203,9793,3.203,9794,3.203,9795,3.203,9796,3.203,9797,3.203,9798,3.203,9799,5.059,9800,3.203,9801,3.105,9802,3.203,9803,4.163,9804,2.635,9805,3.105,9806,3.105,9807,3.203,9808,5.059,9809,3.203,9810,5.059,9811,3.203,9812,3.105,9813,3.203,9814,3.203,9815,3.203,9816,3.203,9817,3.203,9818,3.203,9819,3.203,9820,3.105,9821,3.105]],["title/controllers/UserMigrationController.html",[259,2.591,21120,5.958]],["body/controllers/UserMigrationController.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.128,8,1.289,27,0.345,29,0.655,30,0.001,31,0.471,32,0.115,33,0.404,35,1.011,36,2.288,52,5.137,95,0.167,100,2.826,101,0.014,102,4.229,103,0.001,104,0.001,128,4.774,138,1.53,150,1.917,177,1.968,223,3.464,226,1.203,239,1.931,259,3.201,261,3.995,262,2.597,310,3.647,337,4.349,345,2.678,349,0.869,437,1.391,603,1.69,608,1.94,631,4.318,823,3.773,2196,4.794,2705,3.972,4508,4.804,12794,7.361,16244,6.799,16542,8.424,16553,9.928,16557,9.008,16562,10.926,20930,7.361,21119,8.69,21120,9.408,21125,9.942,21126,7.779,21472,10.753,21473,8.414,21474,10.753,21475,8.414,21476,10.753,21477,8.414,21478,8.414,21479,8.414,21480,8.414,21481,8.414,21482,8.414,21483,8.414,21484,8.414]],["title/classes/UserMigrationIsNotEnabled.html",[0,0.231,21485,6.296]],["body/classes/UserMigrationIsNotEnabled.html",[0,0.324,2,1.069,3,0.022,4,0.022,5,0.011,7,0.145,8,1.395,27,0.391,30,0.001,35,1.148,52,5.997,95,0.121,101,0.016,103,0.001,104,0.001,239,2.192,349,0.987,654,2.841,997,4.509,1025,3.737,1275,5.761,1276,6.443,1278,3.022,1280,3.638,1281,6.439,4508,5.2,6780,6.169,8369,6.489,8370,6.74,10775,7.105,12941,6.561,21485,10.762,21486,11.64,21487,9.553,21488,9.553,21489,9.553]],["title/classes/UserMigrationMapper.html",[0,0.231,16242,5.958]],["body/classes/UserMigrationMapper.html",[0,0.325,2,1.072,3,0.022,4,0.022,5,0.011,7,0.145,8,1.397,27,0.392,29,0.746,30,0.001,31,0.536,32,0.131,33,0.459,35,1.15,95,0.148,100,3.216,101,0.016,103,0.001,104,0.001,128,3.857,236,1.558,349,0.989,413,3.87,437,1.238,789,4.781,823,4.09,2060,6.184,3544,4.846,13965,9.319,14951,10.198,14952,10.198,16234,8.377,16238,11.23,16242,10.198,21270,8.853,21490,11.657,21491,9.576,21492,9.576]],["title/classes/UserMigrationResponse.html",[0,0.231,16238,5.705]],["body/classes/UserMigrationResponse.html",[0,0.34,2,1.12,3,0.023,4,0.023,5,0.012,7,0.152,27,0.49,29,0.779,30,0.001,31,0.56,32,0.164,33,0.48,47,0.845,101,0.016,103,0.001,104,0.001,112,0.95,181,3.203,379,1.251,381,3.36,2060,8.271,2076,8.381,16238,11.366,21316,9.249,21493,12.807,21494,10.004,21495,10.004,21496,10.004]],["title/injectables/UserMigrationService.html",[539,0.901,15514,5.335]],["body/injectables/UserMigrationService.html",[0,0.11,3,0.008,4,0.008,5,0.004,7,0.049,8,0.638,26,1.662,27,0.485,29,0.8,30,0.001,31,0.576,32,0.159,33,0.493,35,1.235,36,2.331,47,0.992,52,1.549,55,0.698,59,1.654,66,7.075,83,0.995,85,5.066,94,4.532,95,0.15,99,0.541,101,0.005,102,1.629,103,0,104,0,112,0.423,128,4.952,143,0.722,177,2.311,226,0.463,236,1.928,239,0.744,262,2.633,349,1.132,379,0.666,437,1.62,480,1.881,486,2.36,529,1.917,539,0.705,541,0.776,579,1.727,593,1.201,603,2.69,608,2.588,617,7.501,654,2.333,890,2.62,990,1.8,1025,1.268,1154,2.118,1178,1.74,1198,2.329,1246,3.902,1278,1.026,1395,2.123,1544,2.411,1666,2.253,1872,2.039,1899,2.62,1900,4.934,1902,3.488,1904,1.815,1905,2.982,1912,1.496,1962,4.376,1987,2.411,2020,1.419,2021,1.587,2022,1.53,2060,4.376,2196,3.768,2236,2.997,2253,2.777,2254,3.542,2259,3.066,2621,1.867,2622,1.727,3075,1.479,3371,3.657,3542,2.173,3544,1.64,3881,1.815,4508,5.368,4642,2.62,4702,3.596,4768,5.781,4903,2.54,5501,1.849,5571,2.19,5644,2.014,6240,4.505,7095,2.014,7103,4.737,7142,6.264,7149,2.62,7434,3.349,7997,2.54,8523,6.833,8532,3.349,10112,2.411,11292,6.193,11841,2.411,11957,3.96,12324,3.873,12586,2.716,12619,5.928,13076,4.171,13096,4.923,13388,2.62,13665,2.716,13672,2.716,13792,2.31,13965,7.999,14119,4.658,14938,2.836,14939,2.62,14948,8.611,15513,7.158,15514,4.171,15526,7.002,15558,4.923,15576,6.264,15596,6.264,15597,2.997,16113,2.471,16203,4.923,16542,7.709,16545,5.676,16546,5.676,16559,2.997,16565,5.928,16566,2.62,16567,2.62,16568,6.863,16574,2.836,18394,6.264,18398,6.264,18406,9.234,21216,6.146,21324,10.511,21359,4.923,21392,2.997,21396,4.923,21404,4.923,21497,7.845,21498,5.325,21499,5.325,21500,5.325,21501,7.845,21502,5.325,21503,3.242,21504,3.242,21505,3.242,21506,3.242,21507,5.325,21508,3.242,21509,5.325,21510,7.845,21511,3.242,21512,3.242,21513,3.242,21514,5.325,21515,3.242,21516,3.242,21517,8.665,21518,3.242,21519,6.776,21520,3.242,21521,3.242,21522,3.242,21523,3.242,21524,3.242,21525,3.242,21526,3.242,21527,6.776,21528,5.325,21529,3.242,21530,3.242,21531,3.242,21532,3.242,21533,3.242,21534,3.242,21535,3.242,21536,3.242,21537,3.242,21538,3.242,21539,3.242,21540,6.776,21541,3.242,21542,3.242,21543,3.242,21544,3.242,21545,3.242,21546,3.242,21547,3.242,21548,3.242,21549,3.242,21550,3.242,21551,3.242,21552,3.242,21553,5.325,21554,3.242,21555,3.242,21556,3.242,21557,3.242,21558,5.325,21559,3.242,21560,3.242,21561,3.242,21562,3.242,21563,3.242,21564,3.242,21565,3.242,21566,3.242,21567,3.242,21568,3.242,21569,3.242,21570,3.242,21571,3.242,21572,3.242,21573,3.242,21574,3.242]],["title/modules/UserModule.html",[201,1.804,3534,4.23]],["body/modules/UserModule.html",[0,0.27,3,0.019,4,0.019,5,0.009,30,0.001,95,0.17,101,0.013,103,0.001,104,0.001,201,3.055,203,2.859,204,3.072,205,3.161,206,3.148,207,3.135,208,4.225,209,4.337,213,9.264,214,6.032,217,8.33,218,4.122,219,3.097,220,3.024,225,4.088,226,1.136,227,3.273,654,2.364,1278,2.515,1359,9.67,1376,6.059,1904,4.451,3534,8.864,4677,7.349,4768,8.155,5381,8.283,20979,10.891,21575,7.949,21576,7.949,21577,7.949,21578,7.949,21579,7.949,21580,7.349,21581,7.349,21582,7.949]],["title/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.231,15540,5.958]],["body/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.249,2,0.82,3,0.017,4,0.017,5,0.009,7,0.111,8,1.177,26,2.507,27,0.52,29,0.57,30,0.001,31,0.41,32,0.169,33,0.352,35,0.88,47,0.953,48,5.621,59,2.276,95,0.14,99,1.222,101,0.012,103,0.001,104,0.001,112,0.78,177,2.492,180,1.76,182,2.383,193,5.329,239,1.681,284,2.263,292,5.607,349,0.757,379,1.228,382,3.572,480,2.727,486,2.955,603,2.225,654,2.179,990,2.477,1025,4.334,1275,5.084,1276,5.686,1278,2.318,1280,3.07,1281,5.833,3024,5.221,3871,5.585,4692,3.843,5497,4.799,5501,5.602,6780,4.731,6901,4.551,8369,5.727,8370,5.948,8523,7.367,8526,6.409,8532,7.445,8536,5.449,8820,4.608,8822,5.221,8823,6.409,8827,4.26,8828,4.445,11249,7.144,11445,9.248,11447,6.409,15458,8.592,15459,8.592,15460,8.228,15494,6.774,15495,6.138,15540,8.592,15565,6.409,21583,11.079,21584,11.079,21585,7.326,21586,7.326,21587,7.326,21588,7.326,21589,7.326,21590,7.326]],["title/classes/UserParams.html",[0,0.231,650,5.503]],["body/classes/UserParams.html",[0,0.4,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.4,30,0.001,32,0.133,34,2.009,39,3.409,47,0.832,95,0.15,101,0.016,103,0.001,104,0.001,112,0.936,135,6.546,138,1.775,142,4.613,143,2.626,144,3.885,145,3.274,148,3.098,150,2.224,153,2.219,239,2.706,245,3.092,650,9.53,807,4.813,3817,5.734,21591,9.761,21592,9.761]],["title/injectables/UserRepo.html",[217,4.086,539,0.901]],["body/injectables/UserRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.708,10,2.398,12,2.708,18,2.987,26,2.198,27,0.487,29,0.889,30,0.001,31,0.639,32,0.156,33,0.548,34,1.259,35,1.401,36,2.731,39,1.588,40,2.854,47,0.785,48,4.015,49,1.452,55,0.792,56,1.78,59,1.834,70,1.838,72,2.679,95,0.132,96,1.622,97,1.595,98,2.185,99,0.614,101,0.006,103,0,104,0,141,2.82,143,1.314,145,1.639,154,0.787,155,1.97,173,1.089,180,1.058,201,1.564,217,3.542,226,0.526,236,0.96,239,2.381,262,2.896,276,3.594,340,1.769,349,1.072,361,4.777,382,2.551,437,1.66,479,4.369,480,1.022,486,2.223,490,3.503,519,1.14,521,2.927,529,1.041,539,0.781,541,0.881,574,2.738,593,2.186,603,1.484,608,2.486,644,3.858,651,1.758,652,1.758,653,3.051,654,2.515,655,2.967,679,6.096,681,6.832,683,5.457,685,2.498,686,2.786,687,3.74,696,3.65,708,1.529,711,2.259,712,2.286,713,2.259,714,2.286,716,2.259,717,2.286,718,2.043,721,2.315,723,2.806,733,3.22,742,3.987,815,1.992,822,2.061,974,1.78,975,4.066,982,6.149,996,3.53,997,3.488,998,3.488,999,3.689,1000,2.008,1001,2.528,1004,2.806,1154,2.348,1246,5.329,1310,2.233,1666,1.557,1668,2.411,1872,3.712,2034,3.335,2281,3.542,3063,4.031,3081,3.689,3393,4.054,4209,2.002,4452,2.974,4690,6.153,4692,1.931,5257,5.621,5488,4.841,5949,4.916,6680,2.208,6745,3.083,6850,2.806,6969,5.266,6970,5.129,6980,4.39,6999,2.677,7000,2.677,7042,4.624,8976,4.499,9961,2.806,10378,3.335,10464,6.465,11061,3.22,11062,3.22,11994,3.403,12029,9.036,12030,2.623,12057,3.22,12068,6.832,12873,2.883,12927,2.883,13015,3.403,13026,3.083,13027,3.403,13029,3.403,13034,3.22,13035,3.403,13792,2.623,13828,4.945,20257,5.164,20259,5.164,20982,5.457,20989,5.457,21008,3.403,21011,3.403,21017,3.403,21019,3.403,21593,3.681,21594,5.457,21595,5.457,21596,7.39,21597,5.457,21598,3.681,21599,5.457,21600,3.681,21601,3.681,21602,3.681,21603,3.681,21604,3.681,21605,3.681,21606,3.681,21607,3.681,21608,3.681,21609,3.681,21610,3.681,21611,3.681,21612,3.681,21613,5.457,21614,3.681,21615,3.681,21616,5.903,21617,5.903,21618,5.903,21619,3.681,21620,3.681,21621,7.39,21622,3.681,21623,3.681,21624,3.681,21625,5.903,21626,3.681,21627,3.681,21628,3.083,21629,5.903,21630,3.681,21631,3.681,21632,5.903,21633,3.681,21634,3.681,21635,5.903,21636,5.903,21637,5.903,21638,5.903,21639,5.903,21640,5.903,21641,5.903,21642,7.39,21643,3.681,21644,3.681,21645,3.681,21646,3.681,21647,3.681,21648,3.681,21649,5.457,21650,3.681]],["title/injectables/UserRule.html",[539,0.901,1714,5.705]],["body/injectables/UserRule.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.122,8,1.251,27,0.475,29,0.902,30,0.001,31,0.649,32,0.168,33,0.556,35,1.253,95,0.156,101,0.013,103,0.001,104,0.001,119,2.497,131,4.341,154,2.876,177,1.47,226,1.148,239,3.254,345,2.555,349,1.078,379,1.004,437,1.499,539,1.381,541,1.922,604,3.262,662,4.099,1280,2.509,1609,6.641,1637,8.097,1658,4.817,1675,7.445,1714,8.74,1816,6.738,1820,6.48,1827,5.338,3352,6.937,3353,5.423,3356,6.834,3359,5.423,3360,7.047,3361,5.971,21651,8.028,21652,8.028,21653,8.028,21654,8.028,21655,10.433]],["title/classes/UserScope.html",[0,0.231,20997,5.958]],["body/classes/UserScope.html",[0,0.208,2,0.686,3,0.014,4,0.014,5,0.007,7,0.093,8,1.041,26,2.325,27,0.534,29,0.963,30,0.001,31,0.693,32,0.178,33,0.593,35,1.486,59,3.599,83,4.237,95,0.11,99,1.023,101,0.01,103,0,104,0,112,0.69,119,2.448,145,1.702,180,1.557,227,2.524,239,1.407,310,2.658,349,1.196,382,3.495,480,1.702,486,1.845,519,1.899,556,2.918,603,2.416,654,1.824,2291,5.988,2778,6.19,4209,3.422,5505,5.222,6059,5.868,6060,5.868,6061,5.868,6066,5.868,6067,5.868,6068,4.211,6069,4.142,6070,4.211,6071,4.211,6080,4.142,6081,5.868,6082,4.211,6083,4.142,6084,4.211,6085,4.142,6086,7.824,6543,7.189,6990,4.955,10297,7.6,10306,7.6,12236,9.704,12598,7.69,12599,6.461,14289,5.364,18451,10.709,20997,11.643,21004,8.032,21656,6.132,21657,8.687,21658,8.687,21659,6.132,21660,8.687,21661,6.132,21662,8.687,21663,6.132,21664,8.687,21665,6.132,21666,8.687,21667,6.132,21668,8.687]],["title/injectables/UserService.html",[539,0.901,4768,4]],["body/injectables/UserService.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.752,12,2.877,18,3.173,26,2.692,27,0.51,29,0.969,30,0.001,31,0.697,32,0.17,33,0.597,34,1.068,35,1.477,36,2.895,39,2.374,40,3.032,47,0.868,48,4.191,59,1.234,66,4.05,94,1.932,95,0.163,99,0.662,101,0.007,102,1.996,103,0,104,0,107,0.953,119,1.581,133,2.193,143,1.965,157,2.601,177,1.759,217,6.127,226,0.568,227,1.635,236,0.646,239,2.82,262,3.032,285,2.601,310,1.721,349,1.252,358,1.747,379,0.784,437,1.671,490,3.129,519,1.942,529,1.124,539,0.83,541,0.951,584,7.004,598,2.287,603,2.226,608,2.63,617,8.151,653,2.053,655,1.996,821,3.013,890,3.209,939,3.672,1376,3.027,1544,2.954,1660,3.474,1663,3.152,1832,4.912,2173,2.224,2249,4.384,2265,4.384,2337,2.265,2621,4.474,3063,3.384,3115,2.64,3116,4.05,3358,2.682,4202,2.776,4203,8.151,4573,5.537,4584,3.027,4683,8.151,4705,3.327,4768,3.683,5768,3.195,6970,5.354,7130,2.954,7142,6.497,7145,4.664,7148,4.235,7154,3.474,9634,5.486,12245,3.209,14029,5.486,14033,5.486,16334,3.672,16473,5.797,17404,3.474,20933,5.797,20979,8.957,20986,8.16,20996,3.672,21009,3.672,21060,6.509,21080,3.474,21437,3.474,21580,3.672,21581,3.672,21594,5.797,21595,5.797,21597,5.797,21599,5.797,21649,5.797,21669,3.971,21670,6.271,21671,6.271,21672,6.271,21673,6.271,21674,5.797,21675,3.971,21676,6.271,21677,3.971,21678,3.971,21679,3.971,21680,3.971,21681,3.971,21682,6.271,21683,3.971,21684,6.271,21685,3.971,21686,6.271,21687,3.971,21688,6.271,21689,3.971,21690,5.797,21691,3.971,21692,5.797,21693,8.825,21694,3.971,21695,6.271,21696,3.971,21697,6.271,21698,3.971,21699,3.971,21700,3.971,21701,3.971,21702,3.971,21703,3.971,21704,3.971,21705,3.971,21706,3.971,21707,3.971,21708,3.971,21709,3.971,21710,6.271,21711,3.971,21712,3.971,21713,3.971,21714,3.971,21715,3.971,21716,6.271,21717,3.971,21718,3.971,21719,3.971,21720,3.971,21721,3.971,21722,3.672,21723,3.971,21724,3.672,21725,3.971]],["title/injectables/UserUc.html",[539,0.901,12801,5.503]],["body/injectables/UserUc.html",[0,0.252,3,0.017,4,0.017,5,0.009,7,0.112,8,1.186,26,2.757,27,0.487,29,0.926,30,0.001,31,0.666,32,0.162,33,0.57,35,1.338,36,2.53,39,2.662,95,0.162,99,1.236,101,0.012,103,0.001,104,0.001,107,1.777,143,2.203,157,4.852,177,1.811,217,7.648,226,1.059,227,3.05,236,1.205,239,2.728,262,2.793,271,4.358,345,2.358,349,1.022,379,0.926,437,1.441,519,3.065,529,2.096,539,1.31,541,1.773,584,8.525,598,4.265,603,2.388,608,2.568,789,3.698,990,3.345,1660,6.48,1663,4.973,1832,7.751,2621,4.265,4200,9.96,4203,9.063,12245,5.986,12801,7.995,17404,6.48,21080,6.48,21674,9.147,21690,9.147,21692,9.147,21722,6.848,21724,6.848,21726,7.407,21727,9.894,21728,7.407,21729,9.894,21730,7.407,21731,7.407,21732,7.407,21733,7.407,21734,7.407,21735,7.407,21736,7.407]],["title/classes/UsersList.html",[0,0.231,6606,5.705]],["body/classes/UsersList.html",[0,0.21,2,0.859,3,0.009,4,0.009,5,0.005,7,0.161,26,2.248,27,0.314,30,0.001,31,0.43,32,0.145,34,1.621,39,2.064,47,0.894,62,2.288,83,3.109,95,0.153,96,1.07,101,0.013,103,0,104,0,105,0.42,112,0.49,119,1.257,143,2.451,144,3.135,145,1.081,153,1.744,154,1.32,168,3.522,172,3.515,173,1.152,174,2.456,175,1.722,178,1.618,180,0.698,181,1.042,182,1.267,236,1.791,239,2.323,253,1.907,316,2.091,348,3.083,349,1.339,379,0.487,404,1.589,413,1.901,437,1.677,473,2.125,486,2.308,490,1.381,519,1.913,528,2.028,529,1.747,556,2.551,565,3.665,603,1.754,644,3.984,651,4.17,652,4.17,654,1.836,662,3.652,708,1.618,726,3.262,838,2.405,914,2.723,1162,2.949,1207,1.243,1280,1.217,1603,1.464,1657,2.932,1666,2.613,1672,2.028,1760,2.589,1867,3.233,1965,2.143,1985,3.472,2611,4.673,2614,5.526,2618,4.186,2626,2.723,2628,2.419,3063,3.802,3115,2.589,3116,2.515,3287,2.363,3395,2.481,3692,2.775,3738,2.419,3762,4.044,3763,4.044,4060,2.288,4209,1.321,4210,5.363,4225,3.262,4259,5.58,4285,2.703,4360,4.888,4779,2.162,4915,2.39,5040,2.833,6443,2.897,6504,2.775,6536,3.407,6537,6.328,6538,5.182,6539,5.466,6540,4.105,6541,4.506,6542,2.675,6543,5.466,6544,4.825,6545,4.317,6546,5.58,6548,3.407,6550,3.407,6553,3.407,6554,2.515,6556,3.407,6558,6.711,6561,3.407,6563,3.407,6572,3.407,6576,2.419,6577,3.407,6578,3.407,6579,3.746,6580,4.4,6581,3.407,6582,5.706,6583,3.407,6584,4.491,6585,3.147,6586,3.627,6587,2.589,6588,4.044,6589,2.39,6590,3.883,6591,2.181,6592,4.989,6593,4.989,6594,3.407,6595,3.147,6596,2.775,6597,3.407,6598,3.407,6599,3.262,6600,2.897,6601,3.407,6602,3.407,6603,3.051,6604,3.407,6605,3.789,6606,10.5,6607,5.466,6608,3.147,6609,4.17,6610,2.515,6611,2.419,6612,2.337,6613,3.147,6614,3.407,6615,3.407,6616,5.402,6617,5.402,6618,5.402,6619,7.054,6620,4.989,6621,4.706,6622,5.402,6623,4.592,6624,4.706,6625,2.897,6626,3.407,6627,3.407,6628,2.481,6629,4.105,6630,3.407,6631,3.407,6632,3.407,6633,5.402,6634,3.407,6635,3.407,6636,3.407,6637,3.407,6638,3.407,6639,3.407,6640,3.407,6641,6.199,6642,6.711,6643,3.407,6644,3.407,6645,3.407,6646,3.407,6647,3.407,6648,2.833,6649,3.407,6650,3.407,6651,3.407,6652,3.407,6653,3.407,6654,2.63,6655,3.407,6656,3.262,6657,3.407,6658,6.711,6659,5.402,6660,3.407,6661,3.407,6662,3.147,6663,3.147,6664,2.675,6665,3.407,6666,6.199,6667,3.407,6668,3.407,6669,3.407,6670,3.407,21737,3.894,21738,3.894,21739,3.894]],["title/classes/ValidationError.html",[0,0.231,283,4.18]],["body/classes/ValidationError.html",[0,0.264,2,0.871,3,0.018,4,0.018,5,0.009,7,0.118,8,1.225,27,0.54,29,0.606,30,0.001,31,0.436,32,0.186,33,0.548,35,0.935,47,0.912,55,1.674,59,2.417,95,0.13,101,0.013,103,0.001,104,0.001,112,0.812,138,2.29,177,2.498,180,1.832,182,2.531,226,1.112,283,6.273,347,2.849,379,0.973,382,3.899,820,5.563,823,2.73,950,5.296,988,5.228,990,4.257,1025,5.056,1205,8.298,1206,7.513,1207,3.87,1208,7.272,1212,5.024,1213,4.318,1214,5.024,1215,5.024,1216,5.024,1217,5.024,1218,5.024,1219,4.668,1220,4.437,1221,6.095,1222,6.517,1225,4.775,1226,4.893,1227,6.095,1631,6.095,21740,7.78,21741,7.78,21742,7.78]],["title/classes/ValidationErrorDetailResponse.html",[0,0.231,1237,5.958]],["body/classes/ValidationErrorDetailResponse.html",[0,0.346,2,1.14,3,0.024,4,0.024,5,0.012,27,0.417,29,0.793,30,0.001,31,0.57,32,0.139,33,0.489,47,0.976,101,0.017,103,0.001,104,0.001,177,1.864,379,1.273,990,4.089,1222,8.529,1233,8.452,1237,10.581,12056,8.996,21743,12.095,21744,10.181,21745,10.181,21746,10.181]],["title/modules/ValidationModule.html",[201,1.804,6496,5.705]],["body/modules/ValidationModule.html",[0,0.347,3,0.024,4,0.024,5,0.012,30,0.001,95,0.164,101,0.017,103,0.001,104,0.001,201,3.209,203,3.671,208,3.738,226,1.459,636,5.936,6496,10.147,6509,11.199,8450,7.781,8454,7.781,10947,10.597,21747,10.207,21748,10.207,21749,10.207]],["title/entities/VideoConference.html",[154,1.456,6605,4.18]],["body/entities/VideoConference.html",[0,0.355,3,0.019,4,0.019,5,0.01,7,0.186,27,0.476,30,0.001,32,0.168,47,0.738,95,0.133,96,2.214,101,0.02,103,0.001,104,0.001,112,0.922,119,2.363,138,2.112,154,2.236,155,2.69,170,6.314,172,4.167,173,2.384,174,4.16,175,3.564,177,1.475,178,3.348,180,1.444,181,2.157,182,2.622,490,4.358,838,2.527,2680,5.548,3400,5.995,4779,5.806,5154,6.513,6605,6.42,6925,7.295,6951,5.635,8082,4.514,8084,5.28,8103,5.536,8104,5.536,8105,5.863,11658,8.194,15132,6.314,15288,9.384,21750,11.362,21751,7.452,21752,9.141,21753,8.06,21754,8.06,21755,8.06,21756,7.051,21757,7.452,21758,7.452,21759,6.513,21760,6.752,21761,6.513,21762,6.314,21763,9.151,21764,7.452,21765,7.452,21766,7.452,21767,7.452,21768,7.452]],["title/classes/VideoConference-1.html",[0,0.192,708,2.352,6605,3.475]],["body/classes/VideoConference-1.html",[0,0.301,2,0.994,3,0.021,4,0.021,5,0.011,7,0.135,27,0.522,29,0.691,30,0.001,31,0.497,32,0.174,33,0.583,95,0.154,99,1.481,100,2.982,101,0.015,103,0.001,104,0.001,112,0.883,238,6.996,379,1.11,643,5.948,1939,6.78,1949,6.207,1955,5.327,2127,10.201,3912,9.32,6605,8.05,8082,4.972,8084,5.816,8095,6.604,8097,7.174,21769,11.475,21770,8.878,21771,11.125,21772,8.878,21773,9.262,21774,8.878,21775,8.208,21776,8.208,21777,8.878,21778,8.878,21779,8.208]],["title/modules/VideoConferenceApiModule.html",[201,1.804,18593,5.503]],["body/modules/VideoConferenceApiModule.html",[0,0.281,3,0.019,4,0.019,5,0.01,30,0.001,95,0.167,101,0.014,103,0.001,104,0.001,201,3.115,203,2.976,204,3.198,205,3.291,206,3.278,207,3.264,208,4.307,209,3.112,218,4.231,219,3.224,220,3.148,222,5.14,223,4.38,225,4.196,226,1.183,259,3.148,1692,7.171,1939,4.277,2472,3.756,2705,3.907,3534,8.163,3544,4.188,8082,4.634,8084,5.421,18593,11.524,18616,6.687,21780,8.276,21781,8.276,21782,8.276,21783,11.01,21784,11.01,21785,11.01,21786,11.01,21787,11.01,21788,9.851,21789,8.276]],["title/classes/VideoConferenceBaseResponse.html",[0,0.231,8085,5.335]],["body/classes/VideoConferenceBaseResponse.html",[0,0.381,2,1.395,3,0.018,4,0.018,5,0.009,7,0.114,27,0.49,29,0.586,30,0.001,31,0.422,32,0.164,33,0.539,47,0.793,95,0.127,99,1.256,101,0.019,102,6.016,103,0.001,104,0.001,112,0.794,119,2.286,180,1.793,236,1.947,238,6.469,347,4.115,358,5.266,379,0.942,490,2.671,643,5.692,823,4.2,986,4.864,1198,2.589,1927,4.424,1939,6.439,2336,7.031,6264,4.044,8080,7.838,8081,9.76,8082,7.598,8083,6.589,8084,8.161,8085,10.239,8086,9.377,8088,5.742,8091,9.078,8094,6.31,8095,5.602,8096,6.31,8097,6.087,8098,6.589,8099,8.085,8100,8.753,8101,6.31,8102,5.367,8103,5.173,8104,5.173,8105,5.479,8106,6.31,21790,10.005,21791,7.532,21792,7.532]],["title/classes/VideoConferenceConfiguration.html",[0,0.231,21793,5.958]],["body/classes/VideoConferenceConfiguration.html",[0,0.289,2,0.954,3,0.02,4,0.02,5,0.01,7,0.129,27,0.444,30,0.001,32,0.148,47,0.961,95,0.151,101,0.014,103,0.001,104,0.001,105,0.92,112,0.861,119,2.206,413,4.078,480,3.01,486,3.587,1117,6.577,1131,8.492,1939,6.162,1955,7.946,2020,3.73,2021,4.172,2022,4.022,2137,8.76,2138,9.484,2140,9.634,3881,4.772,4903,8.492,6605,7.317,8082,6.676,11590,5.756,12617,10.43,12619,9.484,18616,9.634,21793,9.484,21794,10.84,21795,10.84,21796,10.84,21797,8.521,21798,10.84,21799,10.022,21800,8.521]],["title/controllers/VideoConferenceController.html",[259,2.591,21788,5.705]],["body/controllers/VideoConferenceController.html",[0,0.129,3,0.02,4,0.009,5,0.005,7,0.058,8,0.726,27,0.353,29,0.85,30,0.001,31,0.482,32,0.149,33,0.413,35,1.439,36,2.322,95,0.146,100,2.535,101,0.006,103,0,104,0,105,0.41,138,1.566,141,4.112,142,4.268,150,0.866,153,3.155,177,1.576,223,1.564,226,0.543,236,1.63,239,2.503,259,1.445,261,1.804,262,2.625,270,5.955,271,2.952,284,3.37,285,7.147,294,6.113,319,2.733,324,3.063,333,3.978,335,5.641,336,7.895,337,1.963,338,2.008,343,2.023,346,5.11,347,4.693,349,0.625,358,4.8,379,0.475,437,1.454,529,1.075,556,3.173,603,1.729,608,1.984,643,4.849,685,2.562,828,5.008,990,1.284,1220,2.167,1227,6.744,1243,7.075,1289,5.559,1557,2.656,1939,4.86,2035,6.862,2079,8.572,2116,8.56,2131,6.766,2146,6.134,2153,5.296,2173,4.821,2309,3.857,2659,8.817,2705,1.793,2771,3.593,2904,2.039,3024,7.775,4022,2.389,6684,2.279,8082,7.553,8084,8.513,8088,6.562,8826,7.211,10338,6.403,10793,2.896,10794,7.959,11057,7.959,13071,3.323,18555,8.572,21752,6.403,21784,6.322,21785,6.322,21786,6.322,21787,6.322,21788,5.071,21801,8.692,21802,3.799,21803,3.799,21804,3.512,21805,11.979,21806,10.64,21807,3.799,21808,9.262,21809,3.799,21810,7.959,21811,3.799,21812,3.512,21813,3.799,21814,3.799,21815,3.799,21816,3.799,21817,3.799,21818,3.799,21819,6.054,21820,3.799,21821,3.799,21822,3.799,21823,6.956,21824,3.799,21825,6.054,21826,3.799,21827,3.182,21828,3.182,21829,3.07,21830,4.614,21831,4.614,21832,6.322,21833,6.322,21834,3.512,21835,3.799,21836,3.799,21837,3.512,21838,3.799,21839,6.054,21840,3.799,21841,8.608,21842,8.608,21843,3.799,21844,3.799,21845,3.799,21846,3.799,21847,3.799,21848,3.799,21849,3.799,21850,3.799,21851,3.799,21852,3.799,21853,3.799]],["title/classes/VideoConferenceCreateParams.html",[0,0.231,21823,5.503]],["body/classes/VideoConferenceCreateParams.html",[0,0.343,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,27,0.493,30,0.001,32,0.164,33,0.639,47,0.712,95,0.143,101,0.013,103,0.001,104,0.001,105,0.824,112,0.801,118,6.43,119,2.616,138,2.188,145,2.119,147,6.459,148,2.422,149,4.76,150,1.739,153,1.735,220,3.839,249,5.062,486,3.402,1025,3.948,1198,4.136,1213,4.236,1289,6.518,1718,4.251,1939,6.467,1962,7.303,2148,6.123,3063,4.396,3542,4.119,8082,7.342,8102,8.058,8103,7.766,8104,7.766,8244,6.611,8698,6.167,8705,7.056,16580,9.331,20522,7.907,21823,8.156,21854,11.569,21855,11.308,21856,11.308,21857,7.632,21858,7.632,21859,10.093,21860,8.829,21861,10.093,21862,10.093,21863,10.093,21864,7.632,21865,7.632,21866,7.632,21867,6.394,21868,6.677,21869,6.677,21870,6.677,21871,7.632]],["title/injectables/VideoConferenceCreateUc.html",[539,0.901,21784,5.705]],["body/injectables/VideoConferenceCreateUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.918,26,2.484,27,0.464,29,0.882,30,0.001,31,0.657,32,0.155,33,0.543,35,1.298,36,2.409,47,0.799,95,0.153,99,0.859,100,1.73,101,0.008,103,0,104,0,105,0.556,177,1.672,226,0.736,236,1.245,239,1.756,262,2.697,276,3.254,349,0.532,379,0.957,437,1.465,490,4.562,519,1.596,529,1.457,539,1.013,541,1.233,556,2.301,560,2.121,579,4.077,603,2.657,608,2.887,685,3.239,755,4.762,765,2.859,828,2.743,932,2.834,949,3.161,1178,4.109,1448,8.846,1796,3.125,1829,4.035,1867,1.908,1938,5.693,1939,6.06,1943,5.454,1955,3.09,1956,4.162,1961,4.506,2001,9.907,2024,8.422,2039,4.162,2067,4.506,2101,8.465,2127,5.835,2129,8.632,2259,2.966,2384,3.282,2471,3.057,3544,2.606,3983,3.125,4209,1.747,4702,6.17,4768,6.888,5505,5.089,6605,3.161,6915,3.125,7142,4.046,8082,6.566,12240,8.732,14113,4.035,14282,4.762,16113,3.926,18555,9.547,21752,9.316,21762,4.035,21784,6.412,21872,9.823,21873,5.151,21874,7.654,21875,9.134,21876,7.654,21877,7.654,21878,4.315,21879,9.475,21880,5.151,21881,7.654,21882,5.151,21883,7.654,21884,5.151,21885,5.151,21886,9.453,21887,5.151,21888,7.654,21889,5.151,21890,7.654,21891,5.151,21892,4.315,21893,5.151,21894,5.151,21895,7.652,21896,5.151,21897,4.506,21898,4.506,21899,5.151,21900,4.762,21901,7.652,21902,4.762,21903,4.506,21904,5.151,21905,5.151,21906,9.134,21907,5.151,21908,5.151,21909,5.151,21910,5.151,21911,5.151,21912,5.151,21913,4.506,21914,5.151,21915,5.151,21916,4.762]],["title/classes/VideoConferenceDO.html",[0,0.231,21917,5.335]],["body/classes/VideoConferenceDO.html",[0,0.364,2,0.938,3,0.02,4,0.02,5,0.01,7,0.127,27,0.528,29,0.652,30,0.001,31,0.469,32,0.176,33,0.568,34,1.827,47,0.835,95,0.136,101,0.018,103,0.001,104,0.001,112,0.852,119,2.407,180,1.922,379,1.048,382,2.528,490,4.194,1604,3.546,1686,7.251,2680,5.34,5154,6.771,5778,6.095,6925,7.021,6951,5.858,7249,6.387,7252,8.402,7253,6.564,8082,4.692,8102,5.971,8103,5.755,8104,5.755,8105,6.095,15132,6.564,18556,9.267,21759,6.771,21760,7.019,21761,6.771,21762,6.564,21913,7.33,21917,10.098,21918,11.917,21919,7.747,21920,10.725,21921,10.447,21922,8.379,21923,8.379,21924,7.747,21925,7.747,21926,7.33,21927,7.747,21928,7.747,21929,7.747]],["title/controllers/VideoConferenceDeprecatedController.html",[259,2.591,21930,5.958]],["body/controllers/VideoConferenceDeprecatedController.html",[0,0.15,3,0.022,4,0.01,5,0.005,7,0.067,8,0.815,10,1.79,27,0.34,29,0.83,30,0.001,31,0.465,32,0.184,33,0.398,35,1.335,36,2.269,47,0.831,95,0.155,100,3.136,101,0.007,102,4.174,103,0,104,0,105,0.475,138,1.511,142,4.171,150,1.004,153,3.041,177,0.807,223,1.814,226,0.63,239,2.447,259,3.159,261,2.092,262,2.581,270,5.89,271,3.249,278,4.671,282,6.623,284,3.294,285,6.985,287,6.985,294,6.047,319,3.07,324,3.441,333,1.864,335,5.602,336,7.605,337,2.277,338,2.329,343,2.347,345,1.402,346,4.929,347,4.406,349,0.858,358,2.992,437,1.208,608,2.326,643,4.739,685,2.878,1162,5.309,1243,7.045,1289,4.392,1557,3.08,1939,4.826,1949,3.08,1955,2.644,2079,5.184,2116,6.792,2131,5.609,2146,6.654,2153,5.949,2173,4.651,2336,3.995,2337,3.879,2471,6.597,2621,6.4,2659,8.617,2705,2.08,2903,2.49,2904,2.365,3024,7.599,3672,2.93,4915,2.704,5505,5.172,6605,5.097,8080,6.506,8082,7.198,8084,7.88,8085,3.452,8102,3.14,8103,3.026,8104,3.026,8443,8.129,9657,10.287,18556,9.425,21773,3.359,21788,5.697,21801,8.633,21804,4.074,21808,9.859,21810,7.678,21812,4.074,21823,7.545,21830,6.33,21831,5.184,21834,4.074,21867,3.691,21868,3.855,21869,3.855,21870,3.855,21930,5.949,21931,4.406,21932,8.305,21933,4.406,21934,4.406,21935,4.406,21936,4.406,21937,4.406,21938,4.406,21939,4.406,21940,4.406,21941,3.855,21942,4.406,21943,6.287,21944,4.406,21945,4.074,21946,4.406,21947,4.406,21948,4.406,21949,8.305,21950,8.305,21951,4.406,21952,6.8,21953,4.406,21954,3.691,21955,4.406,21956,4.074,21957,4.074,21958,4.074,21959,4.406,21960,4.406,21961,4.406,21962,4.406,21963,4.406,21964,4.406,21965,4.406]],["title/injectables/VideoConferenceEndUc.html",[539,0.901,21785,5.705]],["body/injectables/VideoConferenceEndUc.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.105,8,1.132,26,2.448,27,0.387,29,0.735,30,0.001,31,0.529,32,0.129,33,0.453,35,0.83,36,2.009,39,1.859,47,0.666,95,0.165,99,1.153,100,2.321,101,0.011,103,0.001,104,0.001,177,1.968,226,0.988,236,1.749,238,3.98,239,2.166,262,2.356,349,0.714,379,1.181,437,1.683,528,3.598,529,1.955,539,1.25,541,1.654,560,2.845,603,2.16,608,2.879,643,3.072,765,3.836,932,3.803,1796,4.193,1829,5.414,1867,2.56,1912,3.189,1938,7.998,1939,5.558,1943,4.925,1949,4.832,1955,4.147,1956,5.585,2024,8.596,2039,5.585,2127,8.809,2129,9.52,2131,6.377,2471,4.102,3544,3.497,4702,4.668,4768,7.51,5505,4.695,6605,7.093,6915,4.193,7142,4.99,8082,6.022,12240,7.629,14113,5.414,16113,5.268,18555,8.809,18615,5.585,21773,5.268,21785,7.909,21828,5.79,21829,5.585,21872,9.009,21878,5.79,21879,10.331,21886,6.046,21892,5.79,21895,7.909,21897,6.046,21898,6.046,21901,7.909,21903,6.046,21916,6.39,21966,6.911,21967,6.911,21968,9.441,21969,6.911,21970,6.046,21971,5.79,21972,6.046,21973,6.911,21974,6.911,21975,6.911,21976,6.39,21977,6.39]],["title/classes/VideoConferenceInfo.html",[0,0.231,21830,5.191]],["body/classes/VideoConferenceInfo.html",[0,0.302,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.522,29,0.693,30,0.001,31,0.498,32,0.174,33,0.427,47,0.628,95,0.154,100,2.989,101,0.015,103,0.001,104,0.001,105,0.96,112,0.885,138,2.026,170,6.971,172,2.841,180,1.996,379,1.113,382,3.67,490,4.313,1939,5.758,1955,5.339,2101,6.971,2680,5.03,3912,9.333,6605,8.218,6925,6.613,8082,6.811,8084,5.829,8105,6.472,11938,7.784,15288,7.19,21752,9.046,21769,9.746,21830,10.005,21978,8.898,21979,8.898,21980,8.898,21981,8.898,21982,8.898,21983,8.898]],["title/classes/VideoConferenceInfoResponse.html",[0,0.231,21832,5.705]],["body/classes/VideoConferenceInfoResponse.html",[0,0.288,2,0.95,3,0.02,4,0.02,5,0.01,7,0.129,27,0.487,29,0.661,30,0.001,31,0.475,32,0.163,33,0.407,95,0.151,101,0.014,103,0.001,104,0.001,112,0.858,138,1.966,150,1.933,153,2.705,238,7.451,245,3.12,379,1.061,490,4.588,820,3.893,838,2.66,1939,6.475,2103,6.647,2862,5.208,2863,5.327,8081,9.815,8082,7.755,8084,8.665,8086,8.47,8088,6.468,8091,10.863,8094,7.108,8095,6.311,8096,7.108,8105,6.172,8106,7.108,21109,9.995,21832,10.84,21984,9.968,21985,8.485,21986,7.845]],["title/injectables/VideoConferenceInfoUc.html",[539,0.901,21786,5.705]],["body/injectables/VideoConferenceInfoUc.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.004,26,2.27,27,0.401,29,0.763,30,0.001,31,0.549,32,0.134,33,0.47,35,1.006,36,2.281,95,0.161,99,0.971,100,1.955,101,0.01,103,0,104,0,105,0.628,119,1.185,177,1.794,226,0.832,236,1.744,238,4.82,239,1.921,262,2.591,349,0.865,379,1.047,437,1.642,490,4.502,529,1.647,539,1.108,541,1.393,560,2.397,579,4.459,603,2.375,608,2.926,643,3.72,765,3.231,823,3.761,932,3.203,1178,4.494,1796,3.532,1829,4.56,1867,2.156,1912,2.686,1938,7.29,1939,5.54,1943,4.148,1955,3.493,1956,4.704,2024,8.445,2039,6.764,2101,4.56,2127,8.17,2129,9.012,2134,7.739,2471,3.455,3544,2.946,4702,6.621,4768,7.156,5505,4.613,6915,3.532,7142,4.424,8082,6.002,12240,6.764,14113,4.56,16113,4.437,18555,9.286,18615,4.704,21752,7.29,21762,4.56,21773,4.437,21786,7.012,21828,4.877,21829,4.704,21830,8.17,21867,7.012,21872,8.979,21878,4.877,21879,9.844,21886,5.093,21892,4.877,21895,8.211,21897,5.093,21898,5.093,21900,5.382,21901,8.979,21902,5.382,21903,7.323,21917,6.558,21921,8.211,21954,4.877,21970,5.093,21971,4.877,21972,5.093,21977,7.739,21987,5.821,21988,8.371,21989,5.821,21990,8.371,21991,5.821,21992,8.371,21993,5.821,21994,5.821,21995,5.821,21996,5.382,21997,5.382,21998,5.821,21999,5.821,22000,5.821,22001,5.821,22002,5.821,22003,5.382,22004,5.821]],["title/classes/VideoConferenceJoin.html",[0,0.231,21831,5.191]],["body/classes/VideoConferenceJoin.html",[0,0.303,2,1.001,3,0.021,4,0.021,5,0.011,7,0.136,27,0.523,29,0.696,30,0.001,31,0.501,32,0.174,33,0.429,47,0.788,95,0.142,99,1.491,100,3.002,101,0.015,103,0.001,104,0.001,112,0.887,238,7.017,379,1.118,643,5.958,1198,4.19,1939,6.793,3912,9.359,6264,4.798,8082,7.507,8084,5.854,8095,6.648,8097,7.222,21769,11.497,21773,9.29,21775,8.263,21776,8.263,21779,8.263,21831,10.018,22005,8.938,22006,11.171,22007,8.938,22008,8.938,22009,8.938]],["title/classes/VideoConferenceJoinResponse.html",[0,0.231,21833,5.705]],["body/classes/VideoConferenceJoinResponse.html",[0,0.32,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.473,29,0.733,30,0.001,31,0.528,32,0.158,33,0.452,47,0.814,95,0.119,101,0.016,103,0.001,104,0.001,112,0.916,138,1.713,150,2.146,153,2.141,245,3.026,379,1.178,820,4.322,1198,4.587,1939,6.449,2079,8.796,2096,8.708,6264,5.056,8081,9.774,8082,7.472,8084,7.559,8086,9.04,8088,7.18,8101,7.89,21833,11.178,22010,11.54]],["title/injectables/VideoConferenceJoinUc.html",[539,0.901,21787,5.705]],["body/injectables/VideoConferenceJoinUc.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.121,26,2.434,27,0.383,29,0.728,30,0.001,31,0.524,32,0.128,33,0.449,35,0.819,36,1.99,47,0.481,95,0.164,99,1.137,100,2.29,101,0.011,103,0.001,104,0.001,177,1.955,226,0.975,236,1.737,238,3.926,239,1.564,262,2.34,276,3.977,349,0.704,379,1.17,437,1.609,529,1.929,539,1.238,541,1.632,560,2.807,603,2.145,608,2.776,643,3.03,1117,4.136,1198,3.216,1939,5.519,1943,4.858,1955,4.09,1956,5.509,2024,5.071,2058,5.964,2078,9.341,2079,8.139,2129,9.481,2471,5.552,3116,4.403,3544,3.45,4702,6.318,4768,7.483,5505,4.338,6605,4.184,7142,4.944,7491,5.071,8082,6.435,16113,5.197,18555,8.759,18615,5.509,21773,5.197,21787,7.836,21828,5.711,21829,5.509,21831,9.179,21872,8.945,21878,5.711,21879,10.294,21892,5.711,21895,8.945,21901,7.836,21917,7.328,21954,5.711,21970,5.964,21971,5.711,21972,5.964,21997,9.872,22003,6.303,22011,6.817,22012,6.817,22013,9.354,22014,6.817,22015,6.817,22016,6.817,22017,6.817,22018,6.817,22019,6.817,22020,9.354,22021,6.817,22022,9.354,22023,6.817,22024,6.817,22025,6.817,22026,6.817,22027,6.817,22028,6.817]],["title/classes/VideoConferenceMapper.html",[0,0.231,21827,5.705]],["body/classes/VideoConferenceMapper.html",[0,0.24,2,0.79,3,0.016,4,0.016,5,0.008,7,0.107,8,1.148,27,0.477,29,0.908,30,0.001,31,0.653,32,0.159,33,0.559,35,1.4,95,0.159,99,1.177,101,0.016,103,0.001,104,0.001,105,0.761,236,1.768,238,5.514,271,2.76,349,1.204,413,4.198,437,1.239,490,2.502,643,3.136,789,3.523,1198,2.426,1557,4.933,1939,6.299,1955,4.234,1962,4.557,2024,5.249,2039,5.702,2041,6.524,8082,3.952,8091,8.784,8102,5.028,8103,4.847,8104,4.847,21752,8.085,21773,8.886,21823,9.42,21827,8.022,21830,9.29,21831,9.29,21832,9.766,21833,9.766,21837,6.524,21867,5.911,21868,6.173,21869,6.173,21870,6.173,21954,5.911,21956,6.524,21957,6.524,21958,6.524,21971,5.911,21976,6.524,21984,5.911,21986,6.524,21996,6.524,22029,12.187,22030,7.057,22031,9.576,22032,9.576,22033,9.576,22034,9.576,22035,9.576,22036,7.057,22037,9.576,22038,7.057,22039,9.576,22040,7.057,22041,9.576,22042,7.057,22043,6.524,22044,7.057,22045,7.057,22046,7.057,22047,7.057,22048,7.057,22049,7.057,22050,7.057,22051,7.057,22052,7.057,22053,7.057]],["title/modules/VideoConferenceModule.html",[201,1.804,21783,5.705]],["body/modules/VideoConferenceModule.html",[0,0.205,3,0.014,4,0.014,5,0.007,30,0.001,80,7.519,95,0.175,101,0.01,102,3.036,103,0,104,0,105,0.652,201,2.65,203,2.172,204,2.334,205,2.402,206,2.392,207,2.382,208,3.992,209,4.098,214,5.554,218,3.418,219,2.353,220,2.298,223,3.538,225,3.39,226,0.863,227,2.487,259,2.298,340,2.903,560,2.487,636,4.998,654,1.796,963,3.478,1116,6.124,1278,1.911,1666,4.234,1692,6.531,1737,8.903,1750,8.221,1773,5.459,1775,7.129,1904,3.382,1912,2.787,1939,3.122,1955,3.624,2129,10.117,2141,10.027,2143,7.519,2472,2.741,2705,2.851,3534,7.955,3544,3.056,3546,4.732,3933,10.027,3939,5.714,5381,7.626,5391,5.06,8082,4.813,8084,6.554,10227,4.223,10509,4.881,10510,4.881,12620,7.946,13862,8.529,14122,4.492,18616,4.881,21783,11.961,21793,5.284,21799,5.584,21879,10.725,21930,9.535,21943,11.386,22054,6.04,22055,6.04,22056,6.04,22057,6.04,22058,10.471,22059,6.04,22060,6.04,22061,6.04,22062,6.04,22063,6.04,22064,6.04,22065,6.04,22066,6.04,22067,8.594]],["title/classes/VideoConferenceOptions.html",[0,0.231,21752,5.065]],["body/classes/VideoConferenceOptions.html",[0,0.353,2,0.895,3,0.019,4,0.019,5,0.01,7,0.186,27,0.502,29,0.623,30,0.001,31,0.448,32,0.174,33,0.384,47,0.564,95,0.132,96,2.197,101,0.02,103,0.001,104,0.001,112,0.919,119,2.65,154,2.224,172,3.912,173,2.365,174,4.138,175,3.536,177,1.464,178,3.322,180,1.433,181,2.14,182,2.601,379,1,490,4.102,838,2.507,2680,4.698,3400,5.947,4779,5.776,5154,8.409,6605,4.908,6925,6.177,6951,5.59,8082,4.478,8084,5.238,8103,7.945,8104,7.945,8105,5.816,11658,8.152,15132,6.264,15288,8.409,21750,11.744,21751,7.393,21752,9.685,21756,10.12,21757,7.393,21758,7.393,21759,6.462,21760,6.699,21761,6.462,21762,6.264,21763,9.103,21764,7.393,21765,7.393,21766,7.393,21767,7.393,21768,7.393,22068,10.406,22069,7.996,22070,7.996]],["title/classes/VideoConferenceOptionsDO.html",[0,0.231,21921,5.705]],["body/classes/VideoConferenceOptionsDO.html",[0,0.371,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.516,29,0.671,30,0.001,31,0.482,32,0.172,33,0.413,47,0.608,95,0.138,101,0.018,103,0.001,104,0.001,112,0.867,119,2.703,180,1.543,379,1.077,490,3.87,1686,6.346,2680,3.888,5154,8.819,6925,5.112,6951,6.021,7249,6.565,7252,6.747,7253,6.747,8082,4.823,8102,8.537,8103,8.229,8104,8.229,8105,6.264,15132,6.747,18556,8.55,21759,6.959,21760,7.215,21761,6.959,21762,6.747,21913,7.534,21917,8.55,21918,12.017,21919,7.962,21921,11.125,21924,7.962,21925,7.962,21926,7.534,21927,7.962,21928,7.962,21929,7.962,22071,10.914,22072,8.612,22073,8.612]],["title/classes/VideoConferenceOptionsResponse.html",[0,0.231,21984,5.705]],["body/classes/VideoConferenceOptionsResponse.html",[0,0.277,2,0.913,3,0.019,4,0.019,5,0.01,7,0.124,27,0.506,29,0.635,30,0.001,31,0.457,32,0.169,33,0.391,95,0.103,101,0.013,103,0.001,104,0.001,112,0.837,119,2.665,138,2.124,143,2.347,145,3.428,150,1.859,153,2.655,245,3.237,379,1.02,820,5.359,1939,6.607,2067,10.801,2079,8.036,2120,11.414,2433,7.855,8081,10.014,8082,7.158,8086,8.259,8088,6.219,8102,8.323,8103,8.022,8104,8.022,13060,8.831,21759,6.593,21761,6.593,21926,7.137,21984,10.709,22074,8.158,22075,10.542,22076,12.346,22077,10.542,22078,8.158,22079,8.158,22080,10.542,22081,8.158,22082,8.158,22083,8.158]],["title/injectables/VideoConferenceRepo.html",[539,0.901,22058,5.958]],["body/injectables/VideoConferenceRepo.html",[0,0.169,3,0.012,4,0.012,5,0.006,7,0.075,8,0.895,10,3.032,12,3.424,18,3.776,26,2.526,27,0.539,29,1.015,30,0.001,31,0.73,32,0.178,33,0.626,34,1.694,35,1.566,36,2.595,40,2.407,47,0.632,95,0.142,96,1.368,99,0.83,101,0.008,103,0,104,0,112,0.395,133,2.61,154,2.277,173,1.472,180,1.337,226,0.712,236,1.214,262,2.881,349,1.1,381,1.672,382,3.897,437,1.158,448,4.888,490,2.646,519,1.542,539,0.988,541,1.192,603,2.395,608,1.148,680,5.217,686,3.523,687,5.39,718,2.763,1604,3.788,1941,2.84,2240,9.097,2242,5.318,2243,5.318,2244,5.318,2245,5.318,2246,5.217,2247,5.217,2248,5.318,2249,5.217,2250,5.318,2257,3.548,2259,5.726,2260,3.548,2262,3.548,2264,3.261,2265,5.217,2266,3.548,2268,3.548,2270,5.318,2274,5.318,2276,5.041,2277,5.217,2279,3.548,2281,2.987,2282,3.056,2283,3.548,2285,3.548,2287,3.481,2288,3.548,2306,3.703,2680,4.041,4060,4.384,4389,3.172,4915,3.056,5931,3.621,5932,3.621,5933,3.621,5934,3.621,5935,3.621,5936,3.621,5937,3.621,5938,5.428,5939,5.428,6605,7.116,6925,5.313,8102,3.548,8103,5.125,8104,5.125,9091,3.795,9657,6.03,14721,4.171,15288,4.023,18556,9.084,21756,4.355,21763,9.783,21917,9.084,22058,6.529,22084,8.951,22085,4.979,22086,7.463,22087,7.463,22088,4.979,22089,4.979,22090,4.979,22091,4.979,22092,4.979,22093,4.979,22094,7.463,22095,7.463,22096,7.463,22097,7.463,22098,4.979,22099,4.979,22100,4.979,22101,4.979,22102,4.603,22103,4.979,22104,4.979,22105,4.979,22106,4.979,22107,4.979,22108,4.979,22109,4.979,22110,4.979,22111,4.979]],["title/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.231,21941,5.958]],["body/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.263,2,0.866,3,0.018,4,0.018,5,0.009,7,0.117,8,1.221,27,0.466,29,0.886,30,0.001,31,0.638,32,0.156,33,0.546,35,1.367,95,0.153,101,0.013,102,6.486,103,0.001,104,0.001,236,1.852,238,6.554,349,1.176,358,4.479,413,4.159,490,2.743,643,5.059,781,4.591,1198,2.659,1557,5.408,1939,6.252,1949,5.408,1955,4.641,2336,5.981,2337,5.807,6023,6.767,6605,7.423,8080,9.476,8082,4.331,8084,5.067,8085,9.476,8099,9.774,17676,7.151,18252,7.151,21827,6.48,21829,6.25,21830,9.22,21831,9.22,21941,8.908,21945,7.151,22043,7.151,22112,12.095,22113,10.182,22114,10.182,22115,10.182,22116,10.182,22117,10.182,22118,10.182,22119,10.182,22120,11.382,22121,11.382,22122,7.735,22123,7.735]],["title/classes/VideoConferenceScopeParams.html",[0,0.231,21806,5.958]],["body/classes/VideoConferenceScopeParams.html",[0,0.38,2,1.003,3,0.021,4,0.021,5,0.011,7,0.136,27,0.458,30,0.001,32,0.153,47,0.79,95,0.155,99,1.494,101,0.015,103,0.001,104,0.001,112,0.888,138,2.035,142,4.998,143,2.716,144,3.685,145,3.548,148,2.842,150,2.041,245,3.199,807,4.565,838,3.507,851,4.279,1939,6.305,2863,5.513,5505,4.956,5832,9.787,8082,6.831,9657,9.858,18556,10.507,21806,9.787,21854,11.279,22124,8.957,22125,8.957,22126,8.957,22127,8.957,22128,8.957,22129,8.957]],["title/classes/VisibilitySettingsResponse.html",[0,0.231,4082,5.705]],["body/classes/VisibilitySettingsResponse.html",[0,0.33,2,1.088,3,0.023,4,0.023,5,0.012,7,0.147,27,0.482,29,0.756,30,0.001,31,0.544,32,0.161,33,0.607,47,0.83,95,0.123,101,0.016,103,0.001,104,0.001,112,0.934,138,1.767,149,4.811,150,2.213,379,1.471,773,4.916,4082,11.275,22130,12.646,22131,9.714,22132,13.459,22133,9.714,22134,9.714,22135,9.714]],["title/dependencies.html",[204,3.171,22136,4.953]],["body/dependencies.html",[0,0.249,4,0.011,5,0.009,10,1.981,30,0.001,32,0.067,34,0.831,36,1.881,56,2.358,96,2.428,97,2.113,103,0,104,0,118,3.107,141,3.509,148,2.805,150,1.111,155,1.627,173,1.442,204,1.884,226,0.697,262,1.937,324,2.467,524,2.781,560,2.007,570,2.993,598,2.808,646,3.474,653,2.52,756,3.717,823,1.711,876,4.266,963,2.808,965,3.194,969,3.349,1112,4.266,1160,3.409,1161,3.149,1241,2.781,1372,4.266,1374,3.627,1382,3.627,1417,2.894,1451,4.681,1550,3.547,1582,2.835,1618,2.958,1719,5.363,1821,8.53,1923,5.136,1955,2.926,1965,2.683,2021,2.387,2022,3.468,2023,3.107,2112,3.349,2271,3.82,2346,3.349,2588,2.706,3456,3.067,3457,2.894,3541,2.403,3542,4.015,3883,5.6,3893,4.266,3894,5.756,3895,8.27,4547,3.94,5080,2.808,5120,5.344,5168,3.94,5169,3.94,5497,3.194,5501,2.781,5904,3.067,6204,4.508,6498,3.82,6500,4.085,6596,3.474,6684,6.334,6923,3.627,7843,4.508,7874,3.149,8031,6.155,8423,5.756,8450,3.717,8798,3.94,8880,4.508,9833,4.266,9906,4.508,10010,8.205,10412,4.508,10666,3.474,10763,2.958,11519,4.085,11520,4.085,11629,3.349,11656,3.474,12864,3.82,13172,7.709,13243,3.627,13435,3.717,13783,4.508,14580,4.508,14881,4.085,14882,4.085,14883,4.508,15015,3.94,15369,4.266,15678,4.266,15679,4.508,16750,4.508,17430,4.266,17933,4.508,17934,4.508,18564,4.266,22137,4.876,22138,7.347,22139,4.876,22140,10.556,22141,4.876,22142,4.876,22143,8.84,22144,7.347,22145,4.876,22146,4.876,22147,4.876,22148,4.876,22149,7.347,22150,4.876,22151,9.84,22152,7.347,22153,9.84,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,4.876,22166,4.876,22167,4.876,22168,4.876,22169,4.876,22170,4.876,22171,4.876,22172,4.876,22173,4.876,22174,4.876,22175,4.876,22176,7.347,22177,4.876,22178,4.876,22179,4.876,22180,7.347,22181,4.876,22182,4.876,22183,7.347,22184,4.876,22185,4.876,22186,4.876,22187,4.876,22188,7.347,22189,7.347,22190,4.876,22191,4.876,22192,4.876,22193,4.876,22194,4.876,22195,4.876,22196,4.876,22197,4.876,22198,4.876,22199,4.876,22200,4.876,22201,4.876,22202,4.876,22203,4.876,22204,4.876,22205,4.876,22206,4.876,22207,4.876,22208,7.347,22209,4.876,22210,4.876,22211,4.876,22212,4.876,22213,4.876,22214,4.876,22215,4.876,22216,4.876,22217,4.876,22218,4.266,22219,4.876,22220,4.876,22221,8.173,22222,4.876,22223,4.876,22224,4.876,22225,4.876,22226,8.84,22227,4.876,22228,4.876,22229,7.347,22230,4.876,22231,4.876,22232,4.876,22233,4.876,22234,4.876,22235,4.876,22236,4.876,22237,4.876,22238,4.876,22239,4.876,22240,4.876,22241,7.347,22242,4.508,22243,4.876,22244,4.876,22245,7.347,22246,4.876,22247,4.876,22248,4.876,22249,4.876,22250,4.876,22251,4.876,22252,4.876,22253,4.876,22254,4.876,22255,4.876,22256,4.876,22257,4.876,22258,4.876,22259,4.876,22260,7.347,22261,4.876,22262,4.876,22263,4.876,22264,4.508,22265,4.876,22266,4.876,22267,4.876,22268,4.876,22269,4.876,22270,4.876,22271,4.876,22272,4.508,22273,4.876,22274,4.876,22275,4.876,22276,4.876,22277,4.876,22278,4.876,22279,4.876,22280,6.792,22281,4.508,22282,4.876,22283,4.876,22284,4.876,22285,4.876,22286,4.876,22287,4.876,22288,4.876,22289,4.876,22290,4.876,22291,4.876]],["title/index.html",[7,0.086,1289,3.656,22292,4.953]],["body/index.html",[30,0.001,31,0.482,34,1.03,55,2.155,102,3.04,103,0,104,0.001,131,2.266,141,4.11,153,1.375,204,2.338,236,0.984,261,4.755,292,3.061,355,5.411,358,2.661,359,3.629,360,7.051,361,3.418,458,3.357,475,3.104,486,1.82,511,3.844,517,2.319,563,3.59,564,2.642,685,4.237,754,3.962,759,4.611,764,3.962,828,3.222,849,5.067,933,3.59,934,4.739,936,10.321,949,3.712,950,4.646,990,2.909,1025,2.366,1206,3.45,1207,1.931,1224,4.818,1243,5.28,1459,6.258,1582,3.517,1618,3.67,1669,3.804,1719,6.992,1734,3.854,1753,4.229,1773,3.301,1779,8.814,1965,4.734,2020,2.648,2022,2.855,2034,3.418,2347,6.221,2365,6.544,2366,5.481,2367,5.909,2372,4.154,2384,5.481,2433,3.629,2434,3.962,2747,6.297,3075,2.76,3249,4.022,3457,6.84,3460,7.144,3692,4.31,3856,6.558,3857,8.53,3931,4.611,4148,3.962,4550,4.888,4692,3.173,5080,3.483,5231,5.411,5337,5.067,5462,5.344,5509,4.4,5523,4.611,5754,4.888,6132,3.854,6220,4.154,6318,5.636,6401,4.888,6504,4.31,6505,4.499,6684,6.544,6780,5.556,6926,4.907,6931,4.611,7524,4.499,7891,4.154,8827,3.517,8972,6.558,9595,5.292,9656,4.739,10388,8.314,10770,4.888,11385,4.31,11627,4.086,11770,4.739,11775,6.258,11787,5.481,11821,5.292,12055,6.558,13076,7.844,13651,8.092,13852,4.499,14122,4.499,14183,6.74,14321,4.888,14968,4.888,15357,4.611,15373,5.067,15717,5.067,15718,4.888,16874,4.739,16880,6.952,17097,4.31,18343,5.292,20522,4.739,21628,5.067,21860,5.292,22293,7.207,22294,4.611,22295,5.292,22296,5.067,22297,5.292,22298,4.888,22299,7.207,22300,6.952,22301,5.292,22302,5.292,22303,5.292,22304,7.954,22305,7.207,22306,5.592,22307,5.592,22308,5.592,22309,5.067,22310,7.633,22311,5.292,22312,7.954,22313,5.067,22314,5.067,22315,7.954,22316,5.292,22317,4.611,22318,5.067,22319,5.292,22320,5.292,22321,4.888,22322,5.592,22323,5.292,22324,5.592,22325,5.067,22326,4.739,22327,5.292,22328,7.954,22329,7.954,22330,8.76,22331,10.082,22332,5.292,22333,5.592,22334,7.954,22335,5.292,22336,5.592,22337,5.592,22338,5.592,22339,7.954,22340,7.954,22341,5.592,22342,5.592,22343,5.592,22344,5.067,22345,5.592,22346,4.888,22347,5.592,22348,6.952,22349,7.207,22350,5.592,22351,5.067,22352,5.592,22353,5.292,22354,5.592,22355,5.067]],["title/license.html",[1289,3.656,12110,4.211,22292,4.953]],["body/license.html",[0,0.041,4,0.029,5,0.003,8,0.146,27,0.05,30,0,53,2.839,55,0.483,56,1.086,72,3.487,74,0.981,76,1.123,77,0.774,79,1.965,83,0.373,87,0.61,95,0.015,103,0,104,0,105,0.616,107,0.752,131,0.455,133,3.39,137,1.412,142,1.527,154,0.48,172,0.388,220,0.462,236,1.006,238,0.699,239,1.952,274,1.879,284,0.967,292,0.615,301,0.807,315,1.123,316,3.321,319,1.014,324,0.615,347,0.445,348,0.606,349,0.125,358,4.265,359,0.729,362,1.123,472,0.642,475,2.003,490,0.431,493,1.936,500,0.721,502,0.674,510,2.478,511,1.744,519,0.376,521,0.481,535,0.883,560,0.925,562,0.834,567,1.062,577,1.062,578,2.368,590,0.745,603,0.244,636,3.01,643,3.113,654,0.361,662,3.405,708,1.902,710,2.151,739,0.983,762,1.67,764,4.052,765,2.166,767,1.062,768,9.155,828,0.647,934,1.759,950,5.331,993,2.166,998,0.573,1007,1.57,1151,0.764,1206,0.693,1232,1.67,1240,4.848,1243,3.796,1246,2.247,1310,0.737,1311,3.85,1328,3.7,1400,3.619,1451,1.431,1457,7.063,1458,2.205,1545,1.815,1582,2.27,1634,0.754,1635,1.062,1663,3.52,1668,5.032,1669,3.255,1720,0.951,1753,4.897,1755,0.796,1759,0.834,1764,1.6,1765,2.531,1766,1.123,1773,1.225,1925,0.657,1964,0.981,1965,4.049,2005,8.121,2033,1.965,2034,1.269,2116,2.839,2131,0.82,2148,2.368,2173,1.258,2196,0.491,2259,1.293,2346,2.151,2347,3.995,2358,4.516,2361,4.613,2384,3.298,2400,2.076,2401,1.712,2421,6.031,2433,4.788,2434,0.796,2435,1.6,2664,3.85,2666,7.833,2714,2.557,2971,1.017,3063,3.205,3075,2.09,3113,0.951,3163,0.774,3249,5.306,3250,1.412,3271,1.6,3396,3.201,3506,4.613,3541,0.598,3565,1.759,3612,3.991,3834,0.951,3853,0.981,3855,1.542,3857,0.774,3859,1.759,3923,0.981,3983,1.9,4145,1.062,4147,2.74,4148,3.391,4151,1.123,4202,1.57,4281,1.017,4546,0.883,4550,4.613,4552,1.062,4634,1.017,4692,1.178,4693,1.017,4694,1.542,4701,1.881,4919,1.412,5057,6.098,5072,1.431,5080,0.699,5106,2.557,5107,1.517,5149,1.759,5343,0.981,5462,1.395,5500,1.062,5505,0.493,5509,2.278,5515,2.388,5699,3.145,6132,0.774,6220,2.151,6227,2.896,6259,2.032,6443,2.33,6500,1.017,6599,1.017,6684,1.347,6780,0.784,6808,0.903,6829,2.278,6900,3.587,6928,0.865,6955,1.633,7109,0.926,7115,0.883,7127,1.062,7128,3.154,7524,2.33,7554,3.201,7564,0.926,7991,1.062,7992,1.881,8052,2.903,8249,0.745,8326,4.998,8969,0.883,8972,2.975,9426,2.454,9675,2.975,9681,2.896,9689,3.298,9706,2.454,9719,2.232,10124,0.82,10140,2.33,10383,0.926,10403,4.998,10770,6.208,10793,1.712,10845,0.82,10953,0.951,10961,1.965,10968,1.815,11363,1.712,11365,1.062,11616,0.926,11622,0.883,11629,2.681,11630,0.903,11649,0.981,11694,1.123,11727,4.772,11739,1.062,11775,2.278,11787,1.996,11797,0.903,11811,4.006,11818,2.076,11857,1.123,11878,5.084,12055,0.926,12110,9.995,12237,1.017,12550,1.017,12732,0.951,13077,4.994,13395,1.062,13417,1.062,13426,4.006,13427,1.123,13488,2.076,13560,6.438,13651,0.981,13747,0.883,13845,1.062,13909,0.981,13913,0.981,13931,2.232,14430,4.994,14540,9.194,14575,1.123,14582,2.839,14966,0.981,14971,1.123,15028,3.27,15117,2.076,15286,1.123,15354,3.27,15357,2.388,15717,1.017,15720,7.126,16613,1.017,16630,1.123,17164,4.528,17173,1.062,17277,7.103,18342,2.896,18427,1.062,18566,1.123,18648,1.062,18689,0.951,18694,1.881,18707,1.712,18958,2.388,19368,2.896,19918,1.965,19921,3.7,19923,1.062,19928,6.476,20116,1.062,20118,8.079,20160,2.076,20312,0.903,20375,1.815,20570,4.528,20654,2.076,20872,5.787,21133,8.282,21159,1.017,22303,1.062,22305,9.934,22310,4.351,22317,7.128,22318,9.152,22319,2.74,22348,2.531,22351,1.881,22356,8.958,22357,8.741,22358,1.214,22359,1.214,22360,3.132,22361,10.727,22362,8.492,22363,4.579,22364,1.214,22365,1.214,22366,2.246,22367,4.579,22368,3.132,22369,3.132,22370,1.214,22371,1.214,22372,2.246,22373,4.233,22374,5.278,22375,2.246,22376,2.246,22377,7.631,22378,6.185,22379,1.214,22380,1.123,22381,5.176,22382,1.123,22383,7.359,22384,11.802,22385,3.132,22386,1.214,22387,1.214,22388,3.903,22389,6.615,22390,1.214,22391,6.615,22392,1.214,22393,4.579,22394,0.981,22395,1.017,22396,3.608,22397,1.123,22398,8.506,22399,0.981,22400,1.123,22401,7.004,22402,7.359,22403,4.579,22404,7.683,22405,1.214,22406,2.246,22407,1.214,22408,1.214,22409,2.896,22410,1.214,22411,1.214,22412,1.214,22413,1.214,22414,1.214,22415,3.608,22416,1.123,22417,1.062,22418,1.123,22419,3.132,22420,1.214,22421,1.214,22422,1.214,22423,2.246,22424,1.214,22425,1.214,22426,2.624,22427,1.123,22428,2.246,22429,2.246,22430,3.132,22431,6.685,22432,4.579,22433,4.786,22434,3.132,22435,2.246,22436,1.214,22437,1.214,22438,1.214,22439,3.132,22440,1.214,22441,1.214,22442,2.246,22443,1.214,22444,1.214,22445,1.214,22446,3.903,22447,2.246,22448,10.274,22449,3.132,22450,6.615,22451,3.415,22452,1.214,22453,2.246,22454,3.132,22455,6.615,22456,7.004,22457,1.123,22458,3.903,22459,2.246,22460,3.903,22461,1.214,22462,3.132,22463,0.981,22464,10.392,22465,2.246,22466,1.123,22467,6.185,22468,1.214,22469,3.132,22470,4.336,22471,8.506,22472,3.132,22473,2.246,22474,7.359,22475,5.176,22476,1.214,22477,2.246,22478,7.98,22479,2.246,22480,1.214,22481,1.214,22482,2.896,22483,1.214,22484,1.214,22485,1.062,22486,3.132,22487,3.903,22488,1.123,22489,1.214,22490,1.214,22491,1.062,22492,2.896,22493,3.132,22494,1.214,22495,4.579,22496,1.123,22497,2.896,22498,1.214,22499,1.123,22500,1.214,22501,1.214,22502,1.214,22503,2.896,22504,1.017,22505,6.438,22506,2.246,22507,1.062,22508,1.214,22509,1.214,22510,2.246,22511,1.214,22512,1.965,22513,4.006,22514,1.214,22515,5.708,22516,3.608,22517,1.214,22518,4.579,22519,1.214,22520,1.214,22521,1.214,22522,1.214,22523,1.214,22524,3.132,22525,1.214,22526,2.246,22527,1.214,22528,1.214,22529,1.214,22530,1.123,22531,1.214,22532,1.214,22533,3.132,22534,0.951,22535,1.214,22536,0.981,22537,1.214,22538,1.214,22539,1.214,22540,4.579,22541,1.214,22542,1.214,22543,3.132,22544,1.214,22545,1.214,22546,3.903,22547,1.214,22548,2.246,22549,1.214,22550,1.214,22551,1.214,22552,1.214,22553,1.214,22554,1.214,22555,2.246,22556,1.214,22557,1.214,22558,1.214,22559,2.246,22560,1.214,22561,1.214,22562,1.214,22563,1.214,22564,1.214,22565,2.076,22566,6.116,22567,1.214,22568,5.176,22569,1.214,22570,1.214,22571,3.132,22572,3.903,22573,3.903,22574,3.903,22575,1.214,22576,4.579,22577,4.006,22578,1.123,22579,3.132,22580,1.214,22581,2.246,22582,1.214,22583,1.965,22584,2.246,22585,3.608,22586,3.903,22587,1.214,22588,3.132,22589,4.579,22590,1.214,22591,1.214,22592,2.896,22593,2.246,22594,1.123,22595,1.214,22596,1.123,22597,1.214,22598,1.214,22599,2.896,22600,1.214,22601,1.214,22602,2.246,22603,1.214,22604,1.214,22605,1.214,22606,3.132,22607,1.214,22608,3.132,22609,2.246,22610,5.176,22611,3.132,22612,2.246,22613,2.246,22614,2.246,22615,3.415,22616,1.965,22617,1.214,22618,1.214,22619,1.214,22620,5.176,22621,2.246,22622,1.214,22623,1.214,22624,1.214,22625,2.246,22626,1.214,22627,2.246,22628,1.214,22629,1.214,22630,4.998,22631,1.214,22632,6.803,22633,1.214,22634,1.214,22635,1.214,22636,1.214,22637,2.246,22638,1.214,22639,4.006,22640,3.903,22641,2.246,22642,1.214,22643,1.214,22644,1.214,22645,1.214,22646,1.214,22647,2.246,22648,1.214,22649,1.214,22650,1.062,22651,1.214,22652,2.246,22653,2.246,22654,1.214,22655,1.214,22656,1.214,22657,1.214,22658,1.214,22659,1.214,22660,1.214,22661,1.214,22662,1.123,22663,1.214,22664,1.214,22665,1.214,22666,1.214,22667,4.579,22668,1.214,22669,1.214,22670,3.903,22671,1.214,22672,1.214,22673,1.214,22674,1.214,22675,1.214,22676,1.214,22677,1.214,22678,5.708,22679,2.896,22680,1.214,22681,3.903,22682,1.214,22683,1.214,22684,3.132,22685,1.214,22686,1.214,22687,3.132,22688,1.214,22689,2.246,22690,1.214,22691,1.214,22692,1.214,22693,1.214,22694,1.214,22695,1.062,22696,2.076,22697,1.214,22698,1.062,22699,2.246,22700,2.076,22701,1.214,22702,3.903,22703,1.214,22704,2.896,22705,1.214,22706,2.076,22707,3.132,22708,2.246,22709,1.214,22710,3.132,22711,5.708,22712,1.214,22713,2.246,22714,1.214,22715,2.076,22716,1.214,22717,1.214,22718,1.214,22719,3.903,22720,3.132,22721,1.214,22722,1.214,22723,1.214,22724,1.214,22725,1.214,22726,1.214,22727,2.246,22728,2.246,22729,2.246,22730,3.132,22731,1.214,22732,2.246,22733,1.123,22734,3.132,22735,1.214,22736,2.076,22737,2.246,22738,1.214,22739,1.214,22740,2.246,22741,9.998,22742,3.132,22743,1.214,22744,4.579,22745,7.004,22746,3.132,22747,1.214,22748,1.214,22749,3.903,22750,1.214,22751,3.132,22752,1.214,22753,1.214,22754,1.214,22755,1.214,22756,1.214,22757,1.214,22758,1.214,22759,1.214,22760,3.903,22761,1.214,22762,1.214,22763,3.132,22764,1.214,22765,2.246,22766,3.132,22767,1.062,22768,2.246,22769,1.214,22770,1.214,22771,1.214,22772,1.214,22773,2.246,22774,3.132,22775,1.123,22776,1.214,22777,1.214,22778,1.214,22779,1.123,22780,1.214,22781,1.214,22782,1.214,22783,3.132,22784,2.246,22785,1.123,22786,1.214,22787,1.214,22788,3.903,22789,1.214,22790,3.132,22791,1.214,22792,1.214,22793,1.214,22794,1.214,22795,1.214,22796,3.132,22797,2.246,22798,2.246,22799,1.214,22800,2.246,22801,5.708,22802,2.246,22803,3.132,22804,3.903,22805,1.123,22806,1.123,22807,2.246,22808,1.214,22809,3.132,22810,1.214,22811,1.214,22812,1.214,22813,1.214,22814,1.214,22815,3.132,22816,2.246,22817,1.214,22818,1.214,22819,1.214,22820,1.214,22821,2.246,22822,2.246,22823,1.214,22824,2.076,22825,1.214,22826,1.123,22827,1.123,22828,1.214,22829,3.132,22830,1.214,22831,1.214,22832,1.214,22833,2.246,22834,3.132,22835,1.214,22836,1.214,22837,1.214,22838,1.214,22839,2.246,22840,1.214,22841,1.214,22842,1.214,22843,1.214,22844,1.214,22845,1.214,22846,1.214,22847,1.214,22848,1.214,22849,1.214,22850,1.214,22851,1.214,22852,1.214,22853,3.903,22854,1.214,22855,1.214,22856,2.246,22857,1.214,22858,1.123,22859,1.214,22860,1.214,22861,1.214,22862,1.214,22863,1.214,22864,1.214,22865,1.123,22866,1.214,22867,1.214,22868,1.214,22869,1.214,22870,2.246,22871,1.214,22872,1.214,22873,1.214,22874,1.214,22875,1.062,22876,2.246,22877,1.214,22878,1.214,22879,1.214,22880,1.123,22881,1.123,22882,1.017,22883,1.214,22884,2.246,22885,1.123,22886,2.076,22887,1.214,22888,1.214,22889,3.132,22890,2.076,22891,1.214,22892,2.076,22893,2.246,22894,2.246,22895,1.123,22896,1.062,22897,1.214,22898,1.214,22899,1.123,22900,1.214,22901,1.214,22902,1.214,22903,2.246,22904,1.214,22905,3.132,22906,1.214,22907,1.214,22908,1.214,22909,1.214,22910,1.214,22911,1.214,22912,1.214,22913,1.214,22914,1.214,22915,1.214,22916,1.214,22917,1.017,22918,1.214,22919,1.214,22920,1.214,22921,1.214,22922,1.214,22923,1.214,22924,1.214,22925,1.214,22926,1.214,22927,1.214,22928,1.214,22929,1.214,22930,1.062,22931,1.123,22932,2.246,22933,2.076,22934,1.214,22935,1.214,22936,1.214,22937,1.214,22938,1.214,22939,1.214,22940,1.214,22941,1.214,22942,1.214,22943,1.017,22944,1.214,22945,1.123,22946,0.981,22947,1.214,22948,1.214,22949,1.123,22950,1.214]],["title/modules.html",[203,3.362]],["body/modules.html",[30,0,103,0,104,0,202,3.861,203,1.718,213,3.404,214,2.217,616,3.743,1104,4.002,1315,3.743,1319,3.129,1357,3.861,1358,3.743,1359,3.553,1360,3.34,1692,2.607,1697,3.861,1737,3.553,1768,3.553,1770,3.553,2346,9.989,2358,7.666,2689,3.861,3531,3.642,3532,3.743,3533,3.553,3534,2.967,3933,4.002,4422,4.002,4610,4.002,4615,3.553,4662,3.861,5376,3.475,5381,3.044,5882,3.642,5883,3.743,6406,3.475,6490,3.177,6494,3.861,6495,4.002,6496,4.002,7926,4.002,8336,3.475,8917,3.743,8918,3.642,10429,4.002,10440,4.002,10494,4.18,10498,3.861,10503,3.743,10660,3.404,10661,3.34,10670,4.002,10673,3.553,10727,4.18,10730,3.34,10830,4.18,10841,4.18,11025,3.861,11029,3.861,11403,4.002,11412,4.18,12671,3.743,12672,3.861,12932,3.861,13310,4.002,13858,3.861,13862,3.404,13863,3.553,13881,3.553,13923,3.861,13927,3.642,14142,3.861,14701,4.002,14765,3.743,14779,3.743,14793,4.002,14800,4.002,14821,3.861,14825,3.743,14882,10.463,15182,3.861,15693,3.861,15697,3.743,15875,3.861,15879,4.002,16691,4.18,16694,4.002,16998,3.861,17396,3.861,17580,3.861,18569,4.18,18583,4.002,18586,3.743,18587,3.861,18588,3.861,18589,3.861,18590,3.861,18591,3.861,18592,3.861,18593,3.861,18664,4.002,18943,4.002,20249,4.002,20629,4.002,21783,4.002,22951,14.544,22952,14.544,22953,13.482]],["title/properties.html",[112,0.651,22136,4.953]],["body/properties.html",[30,0.001,103,0.001,104,0.001,112,0.829,153,2.374,1718,4.399,1719,6.338,1965,5.748,2429,9.658,4565,6.488,7874,6.746,12110,7.769,17097,7.443,20301,7.962,22715,9.658,22949,9.658,22954,10.743,22955,9.658,22956,8.751,22957,10.446,22958,10.446,22959,10.446,22960,10.446]],["title/todo.html",[1289,3.656,1666,2.396,22292,4.953]],["body/todo.html",[0,0.191,5,0.007,30,0.001,31,0.457,32,0.111,34,1.39,36,1.195,47,0.397,72,2.55,99,0.937,100,2.74,103,0,104,0,107,1.348,112,0.446,131,3.056,133,1.965,141,3.897,142,2.198,154,2.639,155,1.875,201,2.966,209,2.112,220,3.104,225,2.216,239,1.872,259,2.137,261,2.668,262,2.105,290,4.086,305,3.235,355,3.533,358,4.638,360,5.38,379,0.703,454,2.668,472,2.969,486,3.172,490,3.406,493,2.786,511,5.002,573,3.795,574,7.145,595,3.533,639,2.637,739,2.459,828,2.992,933,7.153,937,5.532,949,5.896,982,4.086,990,2.758,993,3.118,997,3.851,1081,4.282,1198,1.931,1224,5.904,1225,3.448,1233,3.68,1241,4.653,1417,3.335,1442,5.934,1459,5.934,1666,2.377,1688,7.978,1718,4.44,1719,4.95,1756,3.859,1762,3.371,1773,6.976,1941,4.653,1965,3.092,2020,2.459,2022,3.851,2032,4.179,2036,3.795,2112,3.859,2253,2.303,2337,3.204,2346,3.859,2362,8.048,2365,4.895,2366,7.866,2428,3.041,2705,2.652,3248,3.795,3250,3.533,3287,4.95,3460,3.68,3612,3.928,3959,4.179,4022,5.131,4148,3.68,4324,3.409,4484,3.335,4551,3.795,4597,9.048,4620,2.904,4692,5.039,4693,6.835,4694,3.859,4919,3.533,5072,3.579,5106,3.68,5527,4.54,6182,4.915,6220,5.604,6259,5.83,6498,6.392,6504,5.814,6507,3.928,6508,4.915,6511,4.706,6600,7.145,6922,3.041,6926,3.204,6953,3.68,7095,3.49,7872,4.401,7873,4.179,7874,7.231,7875,7.323,8326,4.54,8384,4.282,8391,5.704,8393,4.179,9689,3.579,9841,6.835,10010,6.846,10374,4.706,10884,5.194,10953,4.401,11622,4.086,11627,3.795,11629,3.859,11630,4.179,11648,4.086,11727,3.49,11775,5.934,12325,6.392,12941,3.859,13157,4.706,13831,4.915,13909,4.54,15028,4.706,15718,4.54,16824,4.915,16874,4.401,17097,4.003,17863,5.194,18689,7.526,19002,5.194,19735,5.194,20301,4.282,20312,4.179,20582,4.915,21168,5.194,22136,4.915,22264,5.194,22294,6.219,22311,4.915,22314,4.706,22355,4.706,22394,4.54,22499,5.194,22504,4.706,22530,5.194,22650,4.915,22930,7.138,22946,4.54,22961,5.618,22962,5.194,22963,4.706,22964,4.915,22965,5.194,22966,5.618,22967,5.618,22968,5.618,22969,4.706,22970,5.618,22971,5.618,22972,5.618,22973,4.706,22974,5.618,22975,5.618,22976,5.194,22977,5.618,22978,5.618,22979,5.618,22980,5.618,22981,5.618,22982,4.706,22983,4.915,22984,5.618,22985,5.618,22986,5.618,22987,5.618,22988,5.194,22989,5.618,22990,5.194,22991,5.618,22992,5.618,22993,5.618,22994,5.618,22995,5.618,22996,5.618,22997,4.915,22998,5.618,22999,5.618,23000,5.618,23001,5.618,23002,5.194,23003,5.618,23004,5.618,23005,5.618,23006,5.618,23007,5.618,23008,5.618,23009,5.618,23010,5.618,23011,9.607,23012,5.618,23013,5.618,23014,5.618,23015,5.618,23016,5.618,23017,5.618,23018,4.706,23019,8.159,23020,5.618,23021,5.618]],["title/additional-documentation/nestjs-application.html",[821,2.328,1240,2.846,3457,2.876,3857,3.087]],["body/additional-documentation/nestjs-application.html",[5,0.012,18,1.89,30,0.001,31,0.418,33,0.287,72,1.695,78,6.298,87,1.877,95,0.047,103,0,104,0,107,0.896,128,1.505,133,2.089,141,1.784,142,1.461,172,1.193,180,0.669,201,2.258,203,2.148,219,2.327,253,1.829,271,1.461,284,3.224,292,3.777,305,2.151,358,4.919,361,2.111,413,2.298,454,4.427,486,1.124,493,2.962,511,4.165,535,2.717,560,1.538,569,4.256,574,5.551,576,3.268,579,1.99,600,3.71,645,2.717,756,4.553,759,4.553,764,3.912,765,3.315,821,2.87,828,4.966,933,5.534,934,7.304,937,3.439,949,3.666,950,4.614,993,3.315,996,4.073,999,2.982,1132,7.298,1145,3.268,1161,5.506,1206,3.407,1224,4.775,1240,2.194,1241,2.13,1243,4.58,1289,5.506,1395,2.447,1430,3.473,1442,5.428,1456,3.129,1457,3.018,1458,5.619,1546,2.778,1669,2.349,1688,2.662,1719,3.624,1753,2.611,1755,2.447,1756,4.102,1762,3.584,1764,2.662,1773,2.038,1844,2.447,1895,2.662,1965,5.472,2020,1.635,2021,1.829,2022,4.025,2116,4.344,2169,5.225,2196,1.511,2259,3.439,2271,7.79,2337,2.13,2358,2.293,2365,3.584,2366,7.82,2367,2.565,2368,2.447,2384,2.38,2433,4.478,2435,2.662,2592,2.484,2714,3.912,2771,5.061,2777,2.447,2825,2.241,3075,1.705,3249,2.484,3250,3.756,3455,5.126,3456,6.253,3457,6.807,3460,4.888,3541,5.51,3542,1.524,3549,2.926,3854,3.018,3855,2.565,3857,7.463,3883,2.847,4692,3.133,5057,2.022,5106,2.447,5343,3.018,5504,3.268,5520,3.971,5590,1.865,6221,2.484,6259,1.945,6302,2.523,6318,2.447,6319,2.484,6395,5.522,6443,2.778,6501,3.453,6540,3.971,6596,2.662,6684,2.241,6780,2.412,7112,2.38,7870,6.518,7874,6.021,7888,5.003,7891,5.856,8033,4.826,8052,6.342,8349,3.453,8827,2.172,8969,4.344,9675,4.553,10090,4.679,10374,3.129,10378,4.818,10383,2.847,10425,2.926,10694,4.442,10695,4.553,10763,2.266,11363,2.847,11385,4.256,11539,3.129,11616,2.847,11627,2.523,11628,4.256,11648,5.428,11650,2.717,11657,2.926,11698,3.268,11727,5.296,11787,2.38,11825,3.268,11851,9.193,11855,3.453,11856,2.778,11963,3.129,11993,3.268,12342,2.484,12864,2.926,13058,3.018,13156,3.018,13394,3.268,13651,3.018,13852,2.778,13911,3.018,13913,3.018,14490,6.9,14966,8.035,15015,6.03,15357,2.847,15373,3.129,15718,3.018,15720,3.129,16613,3.129,16824,8.157,18024,2.662,20301,6.499,20311,3.268,20312,6.935,20711,3.453,20766,5.522,21159,3.129,21371,4.826,22221,3.453,22272,3.453,22280,3.453,22281,3.453,22293,3.129,22294,9.357,22295,5.225,22296,3.129,22298,3.018,22301,3.268,22309,6.252,22310,10.097,22330,3.268,22417,3.268,22463,3.018,22496,5.522,22503,3.453,22504,6.252,22505,5.225,22615,3.268,22630,3.018,22639,5.225,22698,3.268,22736,3.453,22779,3.453,22785,3.453,22896,5.225,22917,3.129,22953,3.453,22969,9.368,22982,5.003,22983,5.225,22997,5.225,23002,8.62,23022,3.735,23023,3.735,23024,7.811,23025,3.735,23026,3.735,23027,3.735,23028,3.735,23029,3.735,23030,5.973,23031,3.735,23032,6.529,23033,3.735,23034,3.735,23035,3.735,23036,3.735,23037,3.735,23038,3.735,23039,3.735,23040,3.735,23041,3.735,23042,3.735,23043,3.735,23044,3.735,23045,3.735,23046,3.735,23047,8.62,23048,3.453,23049,3.453,23050,3.453,23051,3.453,23052,3.453,23053,3.453,23054,3.453,23055,3.453,23056,3.735,23057,3.453,23058,3.735,23059,3.735,23060,3.735,23061,5.973,23062,3.268,23063,3.453,23064,3.268,23065,3.268,23066,3.735,23067,9.323,23068,3.453,23069,3.735,23070,3.735,23071,9.943,23072,3.735,23073,3.735,23074,3.735,23075,3.735,23076,5.973,23077,8.526,23078,3.735,23079,5.973,23080,3.735,23081,5.973,23082,5.973,23083,3.735,23084,3.735,23085,8.526,23086,3.735,23087,3.735,23088,3.735,23089,3.735,23090,5.973,23091,3.735,23092,3.735,23093,3.735,23094,3.735,23095,5.973,23096,3.735,23097,3.735,23098,3.735,23099,3.453,23100,3.735,23101,3.735,23102,3.735,23103,5.973,23104,3.735,23105,3.735,23106,3.735,23107,3.735,23108,3.735,23109,3.735,23110,3.735,23111,5.973,23112,7.463,23113,3.735,23114,3.735,23115,7.463,23116,5.973,23117,3.735,23118,3.735,23119,3.735,23120,3.735,23121,3.735,23122,3.735,23123,3.735,23124,3.735,23125,5.973,23126,3.735,23127,5.973,23128,5.973,23129,3.453,23130,3.735,23131,6.9,23132,3.735,23133,3.735,23134,3.735,23135,3.453,23136,3.453,23137,3.735,23138,3.735,23139,3.735,23140,3.735,23141,3.735,23142,3.735,23143,3.735,23144,3.735]],["title/additional-documentation/nestjs-application/software-architecture.html",[821,2.328,1240,2.846,22300,3.915,22362,4.059]],["body/additional-documentation/nestjs-application/software-architecture.html",[0,0.325,2,0.698,5,0.005,7,0.06,8,0.472,27,0.392,30,0.001,72,4.62,95,0.05,101,0.014,103,0,104,0,105,1.193,107,2.73,155,2.08,201,3.417,203,4.564,204,1.523,208,2.831,209,1.482,223,3.183,225,2.458,236,0.641,239,0.904,259,1.499,316,3.346,348,1.967,353,2.706,355,2.478,357,3.003,358,2.741,454,2.959,459,4.509,474,1.683,482,2.132,500,2.339,535,2.866,539,0.521,541,0.943,560,1.622,562,5.309,564,2.939,579,3.319,662,2.431,685,1.667,754,2.581,758,3.087,764,5.064,765,4.291,768,2.706,950,5.129,993,3.459,1007,4.357,1121,2.447,1151,2.478,1224,6.526,1225,2.418,1243,2.418,1458,2.226,1546,7.119,1603,2.907,1666,1.667,1668,2.581,1669,5.526,1718,5.472,1753,6.143,1755,2.581,1759,4.28,1760,6.364,1761,3.087,1762,2.364,1764,2.808,1935,2.755,1965,4.254,2034,3.521,2036,4.209,2131,4.209,2148,5.331,2161,3.554,2337,3.554,2347,6.08,2357,3.301,2358,2.418,2361,3.184,2366,2.51,2367,2.706,2384,3.97,2401,3.003,2432,3.643,2433,6.107,2434,4.082,2435,2.808,2588,3.459,2609,2.478,2705,1.86,2714,2.581,3075,4.865,3249,2.62,3250,4.862,3457,2.339,3551,4.635,3565,3.087,3612,4.357,3835,4.28,3853,3.184,3855,6.035,3857,3.97,3983,2.391,4022,2.478,4148,6.667,4202,2.755,4487,2.314,4546,2.866,4597,5.036,4634,3.301,5106,5.756,5333,3.643,5462,4.802,5509,2.866,5515,3.003,5526,3.301,5634,5.761,6219,3.087,6221,4.143,6231,3.643,6259,2.051,6502,2.755,6901,2.447,6902,4.533,7095,2.447,7196,3.184,7564,4.75,7875,3.003,8052,2.931,8384,3.003,8393,4.635,8972,3.003,9675,3.003,9689,4.925,9707,7.466,9871,3.003,9999,2.931,10124,2.661,10227,2.755,10378,3.521,10403,3.184,10793,3.003,10954,5.761,10968,3.184,11626,2.581,11627,4.209,11727,3.871,11756,8.019,11775,4.533,11776,5.22,11797,4.635,12324,6.391,12325,3.087,12631,3.301,12732,4.882,12864,3.087,13060,6.476,13156,3.184,13852,4.635,13904,3.087,13909,5.036,13911,3.184,14121,5.761,14183,6.056,14430,3.447,14540,3.447,14881,6.476,14882,3.301,15375,3.643,15963,3.087,16619,3.447,17097,6.821,17940,5.452,18689,4.882,18694,3.301,18958,3.003,19539,3.643,19733,3.184,19868,3.184,19916,3.447,20117,3.301,20375,3.184,20709,10.179,20872,3.447,21159,3.301,21446,3.447,22294,3.003,22300,8.225,22302,5.452,22313,3.301,22314,3.301,22317,3.003,22326,4.882,22348,5.036,22351,3.301,22362,5.22,22394,3.184,22395,8.019,22426,3.301,22427,7.147,22433,3.643,22448,3.447,22451,5.452,22463,3.184,22470,3.301,22482,3.643,22485,3.447,22507,3.447,22513,6.763,22534,3.087,22565,3.643,22577,3.447,22585,3.643,22615,3.447,22616,3.447,22639,5.452,22775,7.147,22826,3.643,22865,3.643,22880,3.643,22882,6.476,22931,5.761,22943,3.301,22956,3.301,22963,6.476,22973,8.019,23065,3.447,23145,3.94,23146,3.94,23147,9.572,23148,3.94,23149,3.94,23150,3.94,23151,3.94,23152,3.94,23153,8.787,23154,3.94,23155,3.643,23156,3.94,23157,3.94,23158,7.73,23159,3.94,23160,3.94,23161,7.147,23162,3.94,23163,3.94,23164,3.94,23165,3.447,23166,3.643,23167,3.94,23168,3.301,23169,3.94,23170,7.73,23171,8.374,23172,5.22,23173,3.94,23174,3.94,23175,7.687,23176,3.94,23177,6.232,23178,3.447,23179,3.94,23180,6.232,23181,3.94,23182,3.94,23183,3.94,23184,3.94,23185,3.94,23186,3.94,23187,3.94,23188,3.643,23189,3.94,23190,3.94,23191,3.643,23192,3.94,23193,6.232,23194,3.643,23195,3.94,23196,3.94,23197,3.94,23198,8.124,23199,3.94,23200,3.643,23201,3.94,23202,3.94,23203,3.94,23204,3.643,23205,3.94,23206,3.94,23207,6.232,23208,3.94,23209,3.94,23210,3.94,23211,3.447,23212,3.94,23213,3.643,23214,3.94,23215,3.94,23216,3.94,23217,3.94,23218,3.643,23219,3.94,23220,3.94,23221,3.94,23222,3.94,23223,3.94,23224,5.761,23225,3.94,23226,3.94,23227,6.232,23228,6.232,23229,7.73,23230,7.73,23231,6.232,23232,6.232,23233,3.643,23234,3.94,23235,3.94,23236,3.301,23237,6.232,23238,3.94,23239,3.94,23240,3.94,23241,3.94,23242,3.447,23243,3.94,23244,3.94,23245,3.94,23246,3.94,23247,3.94,23248,6.232,23249,3.94,23250,3.643,23251,3.94]],["title/additional-documentation/nestjs-application/file-structure.html",[5,0.006,821,2.328,1240,2.846,5331,3.796]],["body/additional-documentation/nestjs-application/file-structure.html",[0,0.375,2,0.372,3,0.008,5,0.013,9,2.564,27,0.386,30,0.001,31,0.557,32,0.074,34,0.566,36,1.156,72,3.984,95,0.069,100,3.34,101,0.016,103,0,104,0,105,0.358,107,1.304,112,0.547,128,1.338,133,1.9,138,1.448,142,1.3,148,2.187,154,2.126,155,3.145,172,1.061,201,3.334,203,4.068,204,1.284,207,1.31,208,1.99,209,3.543,217,1.993,223,2.837,225,2.143,236,1.121,239,1.581,259,3.947,262,1.51,270,2.66,271,1.3,274,1.993,284,2.459,294,2.73,316,5.57,324,1.681,345,1.057,349,0.712,353,2.282,355,2.089,358,5.49,359,1.993,361,1.877,379,0.415,437,1.03,454,1.577,459,4.505,474,1.419,484,1.73,486,0.999,493,3.949,511,1.484,535,3.951,539,0.719,560,4.976,562,4.733,563,3.225,577,2.906,591,1.877,608,1.252,631,4.505,639,2.55,645,2.416,654,2.05,685,3.369,739,3.017,748,5.023,759,2.532,762,2.471,764,3.558,765,1.844,823,1.166,828,1.769,933,3.225,949,5.783,950,2.521,982,5.013,993,3.015,999,1.659,1082,5.399,1103,4.256,1224,5.569,1225,4.23,1232,5.921,1233,2.176,1240,4.048,1241,1.895,1246,5.055,1395,2.176,1417,1.972,1458,1.877,1459,5.013,1603,2.591,1657,1.577,1668,2.176,1669,3.416,1670,2.684,1684,4.753,1692,1.813,1697,5.569,1698,2.871,1704,6.433,1718,2.903,1719,7.003,1720,2.603,1734,3.461,1753,2.323,1756,2.282,1912,1.533,1941,1.895,1965,1.828,2036,3.669,2131,3.669,2148,2.016,2161,3.098,2196,2.198,2347,1.895,2366,4.391,2368,5.215,2373,2.783,2374,2.906,2428,3.73,2433,5.267,2435,2.367,2588,1.844,2609,2.089,2705,1.568,2714,4.514,2823,1.606,2903,1.877,3025,2.532,3250,3.416,3309,2.684,3371,2.282,3417,2.089,3457,6.374,3612,2.323,3692,3.871,3720,1.951,3834,4.256,3835,2.282,3836,2.471,3855,3.731,3856,4.141,3857,2.117,3983,2.016,4022,2.089,4145,2.906,4148,2.176,4444,2.783,4484,1.972,4487,3.191,4597,4.39,4620,1.717,4645,2.532,4692,1.743,4694,2.282,5072,5.072,5207,2.145,5331,2.603,5462,4.281,5509,2.416,5521,2.532,6132,2.117,6165,2.176,6183,3.071,6220,2.282,6221,2.209,6228,2.367,6259,3.588,6498,5.399,6507,3.798,6512,2.684,6540,4.582,6926,3.931,7099,4.39,7112,3.461,7156,2.532,7276,2.145,7564,2.532,7816,2.532,7891,4.733,8120,2.416,8225,6.372,8334,2.532,8384,2.532,8394,2.783,8484,6.854,8972,2.532,9631,3.071,9636,3.071,9675,2.532,9689,3.461,9706,2.603,9707,7.008,9708,5.569,9709,2.684,9710,2.783,9711,2.783,9824,2.906,9841,4.551,9842,2.603,9999,2.471,10010,2.367,10742,2.783,10792,2.783,10911,2.783,11330,2.684,11362,5.023,11363,2.532,11755,2.783,11756,5.773,11787,4.391,11797,5.126,11811,2.906,11850,6.029,12054,4.551,12055,2.532,12324,5.013,12864,6.877,13146,2.906,13211,3.071,13904,4.256,14968,2.684,15031,3.071,15093,3.071,15094,3.071,15095,3.071,15096,2.906,15134,2.906,15357,2.532,15395,6.029,15963,2.603,16874,2.603,17097,2.367,17583,4.753,18689,7.382,18931,2.906,19741,4.551,19833,3.071,20709,7.382,22300,4.39,22309,2.783,22325,2.783,22326,5.399,22335,2.906,22344,5.773,22346,2.684,22348,6.433,22353,2.906,22355,2.783,22397,3.071,22399,2.684,22470,2.783,22485,2.906,22491,2.906,22492,3.071,22512,2.906,22516,3.071,22536,2.684,22592,3.071,22630,2.684,22698,2.906,22805,6.372,22875,2.906,22882,2.783,22899,3.071,22917,2.783,22945,3.071,22946,4.39,22956,2.783,22963,6.669,22964,6.029,22973,2.783,23018,5.773,23024,4.551,23063,3.071,23064,6.029,23065,2.906,23068,3.071,23165,2.906,23171,2.906,23172,2.783,23175,2.906,23233,3.071,23252,7.36,23253,4.753,23254,6.372,23255,3.071,23256,3.322,23257,5.432,23258,3.322,23259,9.423,23260,7.961,23261,3.322,23262,3.322,23263,3.322,23264,5.432,23265,7.961,23266,3.322,23267,3.322,23268,3.322,23269,3.322,23270,5.432,23271,2.906,23272,3.322,23273,3.322,23274,3.322,23275,3.322,23276,3.322,23277,3.322,23278,3.322,23279,3.322,23280,3.322,23281,3.322,23282,3.322,23283,3.322,23284,3.322,23285,3.071,23286,3.322,23287,3.322,23288,3.322,23289,3.322,23290,3.322,23291,3.322,23292,3.322,23293,3.322,23294,3.322,23295,3.322,23296,3.322,23297,3.322,23298,3.071,23299,3.322,23300,3.071,23301,5.023,23302,3.322,23303,3.322,23304,3.322,23305,3.322,23306,3.322,23307,3.322,23308,3.322,23309,3.322,23310,3.322,23311,3.322,23312,3.322,23313,3.322,23314,3.322,23315,3.322,23316,3.322,23317,3.322,23318,3.322,23319,3.322,23320,3.322,23321,3.071,23322,3.322,23323,3.322,23324,3.322,23325,3.322,23326,3.322,23327,3.071,23328,3.322,23329,3.322,23330,3.322,23331,3.322,23332,3.322,23333,3.322,23334,6.372,23335,2.906,23336,5.432,23337,3.322,23338,3.322,23339,3.322,23340,3.322,23341,3.322,23342,3.322]],["title/additional-documentation/nestjs-application/api-design.html",[821,2.328,1224,2.713,1240,2.846,22956,4.059]],["body/additional-documentation/nestjs-application/api-design.html",[30,0.001,103,0.001,104,0.001,22695,9.827]],["title/additional-documentation/nestjs-application/logging.html",[821,2.721,1240,3.326,6505,4.211]],["body/additional-documentation/nestjs-application/logging.html",[0,0.349,3,0.018,8,0.942,26,1.664,30,0.001,39,3.085,95,0.1,101,0.017,103,0.001,104,0.001,105,0.848,131,2.943,177,1.438,191,4.251,201,2.081,236,1.278,284,3.758,345,3.274,349,0.811,358,4.525,462,4.36,475,4.031,517,3.012,528,4.09,572,8.058,591,4.439,639,3.687,662,2.47,685,3.324,949,4.821,990,3.478,1025,4.941,1233,6.738,1275,5.584,1276,5.279,1278,2.485,1280,3.215,1281,3.871,2253,5.645,2254,3.547,2347,4.481,2358,4.821,2372,5.395,2433,7.301,4022,4.94,4324,4.766,4484,4.663,4650,6.872,4694,7.877,5505,3.192,5520,5.223,5527,6.348,6401,6.348,6505,9.051,6902,5.714,6955,5.714,8391,9.231,8392,7.263,8423,6.154,10968,6.348,11614,5.988,11756,6.581,12056,5.843,12092,8.999,12093,6.872,12325,6.154,12631,6.581,13911,6.348,14454,6.581,19063,6.872,20522,8.058,22534,6.154,22578,7.263,22630,6.348,22946,6.348,23343,7.856,23344,7.856,23345,7.856,23346,10.286,23347,7.856,23348,7.856,23349,7.856,23350,7.856,23351,7.856,23352,7.856,23353,7.856,23354,7.856,23355,7.856,23356,7.856,23357,7.263,23358,7.263,23359,7.856]],["title/additional-documentation/nestjs-application/exception-handling.html",[821,2.328,1240,2.846,4484,2.876,6504,3.452]],["body/additional-documentation/nestjs-application/exception-handling.html",[0,0.308,9,3.082,30,0.001,31,0.366,32,0.162,47,0.796,48,5.357,51,4.417,72,4.121,101,0.015,103,0.001,104,0.001,105,0.705,141,3.119,172,2.899,177,1.662,180,1.17,182,2.124,183,5.277,193,4.749,201,1.73,236,1.835,283,5.572,284,3.224,345,2.078,348,4.533,349,0.674,355,4.107,358,4.592,437,0.845,459,4.659,463,3.534,472,3.451,476,3.657,486,3.14,511,4.056,529,2.953,535,4.749,579,3.478,603,1.312,662,2.053,685,2.763,762,4.857,823,3.186,950,4.843,990,4.51,1025,4.801,1151,4.107,1178,3.506,1206,3.724,1207,2.085,1223,6.037,1224,5.084,1225,6.406,1231,6.604,1233,8.04,1240,5.333,1241,5.953,1243,4.008,1249,4.217,1275,5.632,1280,2.838,1281,3.218,1545,5.277,1553,5.47,1561,6.037,1669,4.107,1818,4.342,2161,3.724,2363,5.47,2365,3.918,2372,4.485,2433,7.364,3025,4.977,3249,4.342,3271,4.653,3457,6.195,3542,2.665,3834,5.115,3853,9.581,3854,5.277,3859,8.177,4022,6.564,4484,7.837,4645,4.977,4694,4.485,5529,5.47,6504,4.653,6505,6.753,6511,5.47,8060,5.47,8369,3.375,8384,7.956,8391,4.565,8443,4.977,8449,6.037,8451,5.47,8827,3.797,8828,3.962,9689,5.784,9842,5.115,10894,6.037,12056,4.857,13913,5.277,15028,5.47,20853,6.037,22293,5.47,22373,6.037,22534,5.115,22700,12.055,23172,5.47,23236,5.47,23285,6.037,23360,6.037,23361,6.53,23362,9.079,23363,6.53,23364,6.53,23365,6.53,23366,6.53,23367,6.53,23368,6.53,23369,6.53,23370,6.53,23371,6.53,23372,6.53,23373,6.53,23374,6.53,23375,6.53,23376,6.037,23377,6.53,23378,6.53,23379,6.53,23380,6.53,23381,6.037,23382,6.53]],["title/additional-documentation/nestjs-application/domain-object-validation.html",[133,1.481,821,2.035,1225,2.599,1240,2.487,1718,1.783]],["body/additional-documentation/nestjs-application/domain-object-validation.html",[0,0.306,30,0.001,103,0.001,104,0.001,105,1.211,119,1.831,133,4.605,253,5.493,358,3.958,454,4.272,472,4.755,479,3.37,493,4.463,578,5.459,662,2.829,765,6.227,1225,5.522,1619,5.982,1669,5.659,1718,5.546,1759,6.18,1867,3.332,2036,6.077,2336,6.59,2357,7.537,2365,6.731,2372,7.705,2428,4.869,2433,5.398,2627,5.012,2824,3.958,3077,5.084,3463,7.537,5502,7.871,5509,6.544,6165,5.894,8052,6.692,8250,6.077,9707,6.077,9973,6.692,10383,8.551,11628,6.411,12324,6.544,13904,7.049,18958,6.859,22321,7.271,22431,9.398,22463,7.271,22594,8.319,22875,7.871,22885,10.372,23166,8.319,23334,12.836,23383,8.997,23384,8.997,23385,8.997,23386,8.997,23387,11.218,23388,8.997,23389,8.997,23390,8.997,23391,8.997,23392,11.218,23393,8.997]],["title/additional-documentation/nestjs-application/testing.html",[821,2.721,1240,3.326,11385,4.034]],["body/additional-documentation/nestjs-application/testing.html",[0,0.18,27,0.164,29,0.412,30,0.001,31,0.297,32,0.107,35,0.481,36,1.662,51,1.126,72,4.379,79,3.504,94,1.126,95,0.029,96,0.636,100,0.777,103,0,104,0,131,0.867,153,0.91,154,0.856,155,1.767,168,2.284,201,2.349,204,2.44,208,1.939,219,0.901,220,0.88,223,1.649,225,0.912,236,0.376,238,3.049,239,0.919,253,1.133,259,0.88,262,2.395,280,1.589,284,3.078,292,1.171,316,3.389,349,0.807,353,1.589,355,2.519,357,1.764,358,4.719,359,1.388,363,1.296,437,1.387,459,1.187,474,4.378,475,3.239,478,4.161,480,1.753,486,1.205,487,1.284,493,4.398,500,1.373,517,2.735,535,1.683,560,2.599,562,2.751,564,1.626,569,1.649,574,4.695,579,1.232,590,1.42,591,3.567,608,2.297,636,2.329,639,1.086,685,3.306,708,0.961,739,3.42,756,3.053,762,1.721,825,1.494,933,7.622,934,1.812,937,2.306,950,4.114,982,1.683,990,3.465,993,3.504,998,1.092,999,1.155,1004,1.764,1116,1.649,1178,2.15,1198,1.377,1224,4.965,1232,1.721,1233,1.515,1241,1.32,1243,1.42,1245,3.504,1246,4.499,1289,1.494,1393,4.498,1396,2.139,1439,2.024,1458,1.307,1459,1.683,1546,2.979,1618,1.404,1619,2.663,1668,1.515,1669,1.455,1671,1.764,1683,1.812,1753,3.702,1756,2.751,1759,1.589,1760,1.538,1762,5.789,1763,3.504,1765,4.279,1867,1.483,1941,1.32,1965,2.204,2032,1.721,2034,1.307,2035,2.519,2112,1.589,2116,1.683,2169,2.024,2252,3.049,2298,4.591,2309,2.552,2336,1.359,2337,3.6,2347,4.781,2358,3.25,2365,2.403,2366,8.147,2368,1.515,2373,1.938,2376,2.024,2401,1.764,2421,1.359,2428,4.537,2433,5.789,2434,5.118,2435,4.498,2489,0.767,2588,1.284,2609,1.455,2620,1.683,2666,3.355,2903,1.307,2985,2.243,3063,1.008,3075,1.056,3077,1.307,3081,1.155,3113,4.945,3249,1.538,3271,1.649,3287,2.43,3396,1.617,3457,2.377,3460,6.879,3549,1.812,3612,1.617,3835,2.751,3855,1.589,3856,1.764,3857,1.474,3959,2.979,4147,2.024,4148,2.623,4546,4.591,4620,2.07,4645,3.053,4692,1.214,4694,3.637,4700,1.812,5072,1.474,5099,1.474,5106,1.515,5231,3.33,5331,5.589,5337,1.938,5462,2.488,5509,2.913,5520,1.538,5521,1.764,5523,1.764,5524,1.87,5525,1.764,5531,1.764,5556,1.938,5699,2.751,5754,1.87,6165,1.515,6178,1.938,6221,2.663,6297,1.538,6502,1.617,6504,2.854,6540,1.538,6596,1.649,6600,1.721,6829,4.591,6901,1.437,6902,1.683,6912,1.721,6926,1.32,6953,3.469,7003,6.242,7095,1.437,7102,1.812,7554,1.617,7564,3.053,7844,3.053,7872,1.812,7874,3.42,7882,3.504,7888,3.355,7891,2.751,7990,2.024,8120,2.913,8334,1.764,8393,6.595,8798,7.503,9426,1.812,9675,5.439,9676,2.139,9689,4.546,9706,3.137,9707,1.563,9842,6.946,9871,1.764,10089,1.812,10383,1.764,10384,2.139,10403,3.236,10692,1.683,10695,3.053,10730,2.8,10736,5.683,10739,1.721,10771,1.938,10953,1.812,10963,2.139,11363,1.764,11364,1.812,11383,7.223,11385,7.789,11622,1.683,11627,2.705,11628,1.649,11770,1.812,11771,2.139,11775,1.683,11787,2.552,11850,2.024,12055,3.053,12324,2.913,12632,2.139,13051,4.279,13058,1.87,13157,1.938,13417,2.024,13424,5.522,13652,1.87,13799,2.139,13845,2.024,13850,2.024,13903,3.504,13904,1.812,13911,1.87,13912,2.139,13913,1.87,13931,1.649,14122,3.939,14183,1.812,14450,3.703,14454,3.355,14881,1.938,15135,2.024,15187,3.236,15354,3.355,15564,2.139,15963,1.812,16880,1.87,17097,3.773,17167,1.938,17177,2.024,17392,1.938,17906,2.024,17940,2.024,18043,3.504,18694,1.938,18958,1.764,19116,2.024,19733,1.87,19741,1.938,19868,3.236,19918,3.504,19920,2.139,19926,2.139,20117,1.938,20118,1.87,20299,3.703,20301,4.812,20302,5.836,20306,5.836,20311,5.522,20312,2.979,20570,3.504,20709,3.137,21358,7.75,21371,3.236,21613,4.896,22218,2.024,22242,2.139,22294,3.053,22296,3.355,22305,3.355,22310,1.764,22317,1.764,22321,1.87,22323,2.024,22326,4.945,22346,1.87,22362,1.938,22374,2.139,22377,2.139,22380,2.139,22382,2.139,22394,1.87,22395,1.938,22399,1.87,22400,2.139,22415,2.139,22416,2.139,22431,3.355,22448,3.504,22463,4.279,22470,1.938,22488,2.139,22491,2.024,22497,2.139,22505,2.024,22507,2.024,22513,2.024,22536,1.87,22577,2.024,22583,2.024,22616,2.024,22630,1.87,22650,2.024,22695,2.024,22806,2.139,22824,2.139,22858,2.139,22886,2.139,22890,2.139,22896,2.024,22930,2.024,22943,1.938,22963,1.938,22964,2.024,22973,4.436,22988,4.896,22990,3.703,23018,1.938,23024,7.428,23062,2.024,23129,2.139,23161,2.139,23171,2.024,23172,1.938,23175,3.504,23178,2.024,23191,2.139,23198,2.139,23200,2.139,23211,3.504,23213,2.139,23218,8.92,23236,3.355,23242,3.504,23250,3.703,23252,4.896,23253,2.024,23254,3.703,23255,2.139,23271,3.504,23300,2.139,23301,2.139,23327,2.139,23358,2.139,23360,2.139,23376,2.139,23394,2.314,23395,2.314,23396,2.314,23397,6.312,23398,2.024,23399,2.314,23400,5.295,23401,2.314,23402,4.005,23403,2.314,23404,2.314,23405,4.005,23406,2.314,23407,2.314,23408,2.314,23409,2.024,23410,2.314,23411,2.314,23412,2.314,23413,2.314,23414,2.314,23415,2.314,23416,2.314,23417,2.314,23418,2.314,23419,2.314,23420,2.314,23421,2.314,23422,6.312,23423,2.314,23424,2.139,23425,2.314,23426,2.314,23427,2.139,23428,2.314,23429,2.314,23430,7.813,23431,2.314,23432,2.314,23433,2.314,23434,2.314,23435,2.314,23436,2.139,23437,3.703,23438,4.005,23439,7.135,23440,4.005,23441,2.314,23442,2.314,23443,2.024,23444,2.314,23445,5.295,23446,4.005,23447,4.005,23448,7.813,23449,4.005,23450,2.314,23451,2.314,23452,2.139,23453,2.024,23454,5.295,23455,2.314,23456,5.295,23457,4.005,23458,7.135,23459,4.005,23460,5.295,23461,2.314,23462,2.314,23463,2.314,23464,4.005,23465,8.382,23466,2.314,23467,2.314,23468,2.314,23469,2.314,23470,2.314,23471,2.314,23472,2.314,23473,2.314,23474,2.314,23475,2.314,23476,2.314,23477,2.314,23478,2.314,23479,2.314,23480,2.314,23481,2.314,23482,2.314,23483,4.005,23484,2.314,23485,2.139,23486,5.295,23487,2.314,23488,2.314,23489,2.314,23490,2.314,23491,5.295,23492,2.314,23493,4.005,23494,4.005,23495,2.314,23496,2.314,23497,2.314,23498,2.314,23499,2.314,23500,4.005,23501,4.005,23502,4.005,23503,5.295,23504,2.314,23505,2.314,23506,4.005,23507,4.005,23508,4.005,23509,5.295,23510,2.314,23511,2.314,23512,2.314,23513,4.005,23514,2.314,23515,4.005,23516,2.314,23517,2.314,23518,2.314,23519,2.314,23520,4.005,23521,4.005,23522,2.314,23523,2.314,23524,2.314,23525,2.314,23526,7.135,23527,2.314,23528,5.295,23529,2.139,23530,2.024,23531,2.314,23532,2.314,23533,2.314,23534,2.314,23535,2.314,23536,2.314,23537,2.314,23538,2.314,23539,6.312,23540,2.314,23541,2.314,23542,4.005,23543,4.005,23544,2.314,23545,4.005,23546,2.314,23547,2.314,23548,2.314,23549,2.314,23550,2.314,23551,2.314,23552,2.314,23553,2.139,23554,2.314,23555,2.314,23556,2.314,23557,2.314,23558,2.314,23559,2.314,23560,4.005,23561,2.314,23562,2.314,23563,2.314,23564,2.314,23565,2.314,23566,2.314,23567,2.314,23568,2.314,23569,2.314,23570,2.314,23571,2.314]],["title/additional-documentation/nestjs-application/vscode.html",[821,2.721,1240,3.326,22298,4.575]],["body/additional-documentation/nestjs-application/vscode.html",[5,0.014,30,0.001,72,4.378,103,0.001,104,0.001,511,5.23,590,5.919,758,7.556,828,5.137,933,5.725,2116,7.015,2366,7.459,2592,6.413,3457,6.949,3856,7.352,3857,7.459,4692,6.141,6221,6.413,6259,6.096,6297,6.413,6500,8.079,8052,7.173,11792,7.794,11797,7.173,14422,8.437,20301,8.924,22298,9.461,22327,10.242,22504,8.079,22596,8.917,22767,8.437,22881,8.917,22933,11.656,22962,8.917,22969,8.079,23024,8.079,23064,8.437,23099,8.917,23135,8.917,23168,8.079,23271,8.437,23335,10.242,23572,9.644,23573,9.644,23574,9.644,23575,9.644,23576,9.644,23577,9.644,23578,9.644]],["title/additional-documentation/nestjs-application/git.html",[821,2.721,1240,3.326,22299,4.743]],["body/additional-documentation/nestjs-application/git.html",[30,0.001,31,0.42,55,2.411,72,3.4,77,4.772,103,0.001,104,0.001,153,1.703,220,2.849,324,3.79,353,5.144,358,3.295,486,2.253,511,3.346,517,2.872,765,6.218,828,3.989,936,6.275,950,5.198,998,3.536,1025,2.93,1207,2.391,1246,4.313,1456,6.275,1457,6.053,1458,5.632,1619,6.627,1668,7.338,1688,7.103,1755,4.906,1760,4.98,1773,4.087,1779,10.049,1780,9.801,1912,3.456,2034,4.232,2131,5.059,2161,4.272,2336,4.4,2347,4.272,2366,6.35,2368,4.906,2421,4.4,2433,6.722,2637,3.515,2771,4.446,2823,4.82,3396,5.237,4692,3.929,5106,7.338,5462,4.652,5525,5.709,6182,8.72,6507,5.237,6780,4.837,6897,5.868,7112,4.772,7816,5.709,7891,5.144,8393,5.571,9426,5.868,10227,5.237,11626,4.906,11630,5.571,11770,5.868,11882,5.337,11883,5.337,12027,6.553,12054,6.275,12323,6.553,13850,6.553,13852,8.883,14122,5.571,15276,6.553,19749,6.925,22299,10.005,22316,6.553,22321,6.053,22331,6.553,22332,6.553,22344,9.385,22349,8.35,22395,10.005,22396,6.925,22409,9.215,22534,7.809,22536,6.053,22583,9.801,22662,6.925,22827,6.925,22946,9.053,22976,6.925,22997,8.72,23155,6.925,23168,8.35,23188,6.925,23253,8.72,23298,6.925,23529,6.925,23530,6.553,23579,7.49,23580,7.49,23581,7.49,23582,7.49,23583,7.49,23584,7.49,23585,7.49,23586,7.49,23587,7.49,23588,7.49,23589,7.49,23590,7.49,23591,7.49,23592,7.49,23593,9.968,23594,7.49,23595,7.49,23596,9.968,23597,7.49,23598,7.49,23599,7.49,23600,7.49,23601,7.49,23602,7.49,23603,7.49,23604,7.49,23605,7.49,23606,7.49,23607,7.49,23608,7.49]],["title/additional-documentation/nestjs-application/keycloak.html",[568,3.607,821,2.721,1240,3.326]],["body/additional-documentation/nestjs-application/keycloak.html",[5,0.005,18,2.272,30,0.001,31,0.602,51,3.357,53,6.112,78,8,87,3.468,95,0.12,101,0.016,103,0,104,0,128,1.808,137,4.339,153,1.568,208,1.644,219,1.749,220,1.708,239,1.583,284,3.318,319,2.027,321,5.018,353,3.084,357,3.422,358,4.149,511,3.082,517,2.645,568,8.585,569,3.199,591,2.537,600,2.789,685,1.9,746,3.266,762,3.339,766,5.78,768,3.084,828,5.421,933,4.095,969,3.084,993,2.492,1079,2.637,1080,5.354,1132,3.139,1206,3.935,1224,3.864,1233,2.941,1427,5.78,1451,5.354,1458,3.899,1663,3.468,1668,4.519,1734,2.86,1755,2.941,1895,3.199,1925,3.734,1965,6.355,2022,4.452,2034,2.537,2116,3.266,2148,2.724,2259,6.65,2271,9.047,2282,2.756,2358,2.756,2367,5.771,2368,2.941,2372,3.084,2433,6.929,2777,7.921,2825,6.929,2903,3.899,3063,3.66,3075,2.049,3250,5.285,3455,5.771,3460,4.519,3542,1.832,3547,3.033,3857,2.86,3931,6.405,4546,3.266,4620,4.343,4694,3.084,5462,2.789,5515,3.422,5570,3.928,6221,2.985,6443,3.339,6499,3.517,6541,2.637,6780,4.456,6829,3.266,6901,4.286,7095,4.286,7112,2.86,7350,6.859,7870,5.875,8052,5.132,8391,4.824,8393,3.339,8798,8.682,9707,3.033,10134,3.517,10374,3.761,10694,3.339,10763,2.724,11249,6.112,11385,5.988,11598,2.561,11616,7.758,11626,2.941,11627,5.676,11644,3.517,11657,7.388,11698,8.25,11727,4.286,11755,3.761,11825,3.928,11954,3.628,12941,6.477,13297,7.351,13394,7.351,13397,7.621,13435,7.189,13529,3.928,13652,3.628,13654,4.151,13852,6.25,14422,3.928,14966,3.628,15015,6.79,15374,4.151,15495,3.761,15720,3.761,17097,5.988,19923,3.928,20301,3.422,20312,5.132,21371,3.628,22294,3.422,22297,3.928,22310,9.516,22320,3.928,22349,3.761,22399,3.628,22417,3.928,22457,4.151,22534,5.405,22566,4.151,22599,4.151,22632,4.151,22704,4.151,22954,8.903,22969,7.9,23032,10.763,23047,9.409,23048,7.769,23049,6.379,23050,6.379,23051,6.379,23052,8.719,23053,6.379,23054,6.379,23055,8.719,23057,4.151,23131,6.379,23427,4.151,23436,4.151,23443,3.928,23485,4.151,23609,4.49,23610,4.49,23611,4.49,23612,4.49,23613,9.431,23614,4.49,23615,4.49,23616,4.49,23617,6.9,23618,4.49,23619,4.49,23620,6.9,23621,4.49,23622,4.49,23623,4.49,23624,4.49,23625,6.9,23626,4.49,23627,6.9,23628,6.9,23629,6.9,23630,6.9,23631,11.19,23632,6.9,23633,6.9,23634,6.9,23635,6.9,23636,4.49,23637,4.49,23638,4.49,23639,10.177,23640,6.9,23641,6.9,23642,4.49,23643,4.49,23644,6.9,23645,4.49,23646,4.49,23647,4.49,23648,4.49,23649,4.49,23650,4.49,23651,4.49,23652,6.9,23653,4.49,23654,4.49,23655,4.49,23656,6.9,23657,6.9,23658,4.49,23659,4.49,23660,4.49,23661,4.49,23662,4.49,23663,4.49,23664,4.49,23665,4.49,23666,4.49,23667,4.49]],["title/additional-documentation/nestjs-application/rocket.chat.html",[821,2.721,1240,3.326,23668,5.235]],["body/additional-documentation/nestjs-application/rocket.chat.html",[5,0.009,30,0.001,31,0.416,103,0.001,104,0.001,358,3.271,696,2.932,756,9.93,828,3.96,937,4.281,949,6.087,975,4.091,992,5.198,1057,5.667,1103,7.77,1131,5.824,1670,6.008,1965,5.458,2022,3.51,2259,8.269,2271,5.824,2336,4.367,2433,7.443,2592,4.943,2825,4.461,3075,3.393,3455,5.106,3456,4.676,3460,4.87,3542,4.047,3857,4.737,6443,5.53,7109,5.667,8969,5.408,10124,5.022,11650,5.408,15015,6.008,15277,6.504,15395,6.504,16613,6.228,17583,8.677,19733,6.008,19742,6.874,20312,5.53,21628,6.228,22310,7.561,22536,6.008,22954,6.504,22982,6.228,23032,10.852,23335,6.504,23668,10.319,23669,7.435,23670,7.435,23671,7.435,23672,7.435,23673,7.435,23674,9.918,23675,7.435,23676,7.435,23677,7.435,23678,7.435,23679,7.435,23680,7.435,23681,9.918,23682,7.435,23683,7.435,23684,7.435,23685,7.435,23686,7.435,23687,7.435,23688,7.435,23689,7.435,23690,7.435,23691,7.435,23692,7.435,23693,7.435,23694,7.435,23695,7.435,23696,7.435,23697,7.435,23698,7.435,23699,7.435,23700,7.435,23701,7.435,23702,7.435,23703,7.435,23704,7.435,23705,7.435,23706,7.435,23707,7.435,23708,7.435,23709,7.435,23710,7.435,23711,7.435,23712,7.435,23713,7.435,23714,7.435,23715,7.435,23716,9.918,23717,9.918,23718,7.435,23719,7.435]],["title/additional-documentation/nestjs-application/configuration.html",[821,2.721,1240,3.326,2020,2.478]],["body/additional-documentation/nestjs-application/configuration.html",[30,0.001,31,0.482,34,1.03,55,2.155,102,3.04,103,0,104,0.001,131,2.266,141,4.11,153,1.375,204,2.338,236,0.984,261,4.755,292,3.061,355,5.411,358,2.661,359,3.629,360,7.051,361,3.418,458,3.357,475,3.104,486,1.82,511,3.844,517,2.319,563,3.59,564,2.642,685,4.237,754,3.962,759,4.611,764,3.962,828,3.222,849,5.067,933,3.59,934,4.739,936,10.321,949,3.712,950,4.646,990,2.909,1025,2.366,1206,3.45,1207,1.931,1224,4.818,1243,5.28,1459,6.258,1582,3.517,1618,3.67,1669,3.804,1719,6.992,1734,3.854,1753,4.229,1773,3.301,1779,8.814,1965,4.734,2020,2.648,2022,2.855,2034,3.418,2347,6.221,2365,6.544,2366,5.481,2367,5.909,2372,4.154,2384,5.481,2433,3.629,2434,3.962,2747,6.297,3075,2.76,3249,4.022,3457,6.84,3460,7.144,3692,4.31,3856,6.558,3857,8.53,3931,4.611,4148,3.962,4550,4.888,4692,3.173,5080,3.483,5231,5.411,5337,5.067,5462,5.344,5509,4.4,5523,4.611,5754,4.888,6132,3.854,6220,4.154,6318,5.636,6401,4.888,6504,4.31,6505,4.499,6684,6.544,6780,5.556,6926,4.907,6931,4.611,7524,4.499,7891,4.154,8827,3.517,8972,6.558,9595,5.292,9656,4.739,10388,8.314,10770,4.888,11385,4.31,11627,4.086,11770,4.739,11775,6.258,11787,5.481,11821,5.292,12055,6.558,13076,7.844,13651,8.092,13852,4.499,14122,4.499,14183,6.74,14321,4.888,14968,4.888,15357,4.611,15373,5.067,15717,5.067,15718,4.888,16874,4.739,16880,6.952,17097,4.31,18343,5.292,20522,4.739,21628,5.067,21860,5.292,22293,7.207,22294,4.611,22295,5.292,22296,5.067,22297,5.292,22298,4.888,22299,7.207,22300,6.952,22301,5.292,22302,5.292,22303,5.292,22304,7.954,22305,7.207,22306,5.592,22307,5.592,22308,5.592,22309,5.067,22310,7.633,22311,5.292,22312,7.954,22313,5.067,22314,5.067,22315,7.954,22316,5.292,22317,4.611,22318,5.067,22319,5.292,22320,5.292,22321,4.888,22322,5.592,22323,5.292,22324,5.592,22325,5.067,22326,4.739,22327,5.292,22328,7.954,22329,7.954,22330,8.76,22331,10.082,22332,5.292,22333,5.592,22334,7.954,22335,5.292,22336,5.592,22337,5.592,22338,5.592,22339,7.954,22340,7.954,22341,5.592,22342,5.592,22343,5.592,22344,5.067,22345,5.592,22346,4.888,22347,5.592,22348,6.952,22349,7.207,22350,5.592,22351,5.067,22352,5.592,22353,5.292,22354,5.592,22355,5.067]],["title/additional-documentation/nestjs-application/authorisation.html",[821,2.721,1240,3.326,3549,4.435]],["body/additional-documentation/nestjs-application/authorisation.html",[0,0.075,5,0.006,8,0.46,9,1.041,10,1.56,26,1.924,27,0.09,30,0.001,31,0.342,32,0.052,33,0.106,34,0.869,47,0.611,72,4.291,74,1.781,94,1.073,101,0.008,103,0,104,0,105,0.238,119,1.039,131,3.662,133,2.658,141,1.053,142,2.389,143,1.36,145,1.066,153,0.501,154,1.942,155,1.703,172,0.704,177,0.934,180,0.395,182,0.717,201,2.504,203,1.381,209,1.444,236,1.126,239,2.922,253,1.88,261,1.047,262,1.517,271,2.708,275,5.646,276,4.279,316,2.062,321,3.712,345,0.702,349,0.895,355,3.84,358,4.541,359,1.323,363,1.234,437,1.527,459,1.971,474,0.942,475,2.619,478,3.688,487,1.224,511,0.985,517,1.472,521,2.418,535,1.603,539,0.292,560,4.762,562,4.755,563,3.625,564,0.677,576,1.929,590,3.748,591,2.17,603,1.227,604,0.896,608,1.884,643,3.077,651,1.053,652,1.053,653,1.139,654,3.309,662,1.208,685,3.665,708,0.916,739,1.681,758,1.727,762,3.795,764,3.343,765,5.042,768,1.514,828,1.174,838,1.6,935,1.405,937,4.988,949,1.353,950,1.023,993,3.843,1002,2.594,1007,1.541,1161,3.944,1178,1.183,1224,3.42,1233,1.444,1240,3.587,1243,1.353,1246,2.938,1280,0.689,1395,3.343,1399,2.038,1400,1.541,1417,1.309,1455,1.929,1458,3.912,1603,1.444,1609,1.193,1612,5.808,1613,4.665,1618,3.096,1619,3.393,1634,8.061,1635,6.057,1637,2.385,1657,2.423,1663,6.281,1668,2.516,1669,4.354,1670,1.781,1671,1.68,1672,2,1675,3.096,1679,1.006,1683,1.727,1689,2.928,1703,3.795,1718,4.613,1719,1.337,1720,5.955,1755,4.979,1756,1.514,1758,4.194,1759,2.638,1761,1.727,1762,1.323,1763,5.342,1764,4.933,1765,4.124,1773,3.778,1791,2.038,1796,4.201,1798,1.727,1816,1.424,1820,5.871,1821,1.781,1827,1.466,1861,2.438,1867,4.234,1872,2.415,1883,0.912,1935,2.685,1941,2.91,1965,2.808,2004,1.489,2022,1.041,2034,1.246,2036,2.594,2148,1.337,2149,2.038,2336,3.587,2337,1.257,2347,4.336,2348,4.124,2349,2.038,2358,1.353,2363,3.217,2365,1.323,2368,1.444,2384,6.413,2421,2.998,2433,6.859,2434,2.516,2435,5.417,2476,4.269,2558,6.23,2588,1.224,2627,0.985,2637,2.395,2680,2.304,2705,3.588,2771,1.309,2778,5.824,2899,1.323,3025,3.89,3063,1.673,3073,1.781,3075,3.73,3076,2.447,3077,3.451,3081,4.719,3163,1.405,3250,5.14,3356,1.444,3360,2.594,3371,3.505,3395,1.405,3456,1.386,3457,2.28,3541,3.009,3542,0.9,3551,1.64,3612,4.84,3833,1.781,3835,4.755,3854,1.781,3856,1.68,3857,4.411,4148,5.95,4209,1.303,4444,1.847,4547,1.781,4551,2.594,4552,1.929,4565,5.077,4649,1.514,4690,1.466,4692,1.156,4694,6.715,4915,1.353,5072,2.447,5106,2.516,5231,4.781,5331,3.009,5505,5.077,5515,1.68,5524,1.781,5754,1.781,6165,2.516,6220,1.514,6259,3.605,6319,1.466,6498,1.727,6502,1.541,6507,1.541,6539,1.571,6593,1.781,6600,2.857,6684,1.323,6780,3.944,6829,1.603,6859,1.929,6860,1.847,6902,1.603,6922,2.079,6926,4.94,6928,1.571,6930,3.89,6944,1.727,6949,1.68,7053,2.038,7097,5.342,7107,1.405,7115,2.793,7349,1.781,7434,1.386,7524,1.64,7554,1.541,7844,1.68,7866,1.727,7880,3.89,8120,1.603,8384,1.68,8393,3.795,8394,1.847,8827,1.282,8969,1.603,9689,3.891,9707,5.134,9709,4.124,9871,1.68,9973,1.64,10124,1.489,10227,1.541,10581,1.847,10587,1.929,10763,3.096,10775,1.64,10793,5.794,10961,1.929,11392,4.718,11628,1.571,11630,1.64,11708,2.038,11727,1.369,11775,5.036,11787,1.405,11852,2.038,11949,2.554,12043,1.781,12056,1.64,12324,5.529,12631,4.275,12956,1.929,13060,3.217,13157,1.847,13158,4.275,13804,3.551,13805,1.847,13848,2.038,13852,1.64,13903,1.929,13904,3.009,13909,1.781,13931,1.571,14183,3.009,14200,3.217,14266,2.038,14277,2.038,14321,1.781,14454,1.847,14582,2.793,14968,3.103,15354,3.217,15357,1.68,15369,1.929,15963,1.727,16456,2.038,16619,1.929,16644,2.038,16721,1.929,16874,1.727,16880,1.781,17097,2.737,17167,1.847,17750,3.36,18427,1.929,18920,2.038,19733,3.103,19734,2.038,19741,1.847,19814,2.038,19916,6.65,19921,4.124,19947,5.646,20065,2.038,20118,1.781,20312,2.857,20330,2.038,20375,3.103,20709,3.009,20710,2.038,21371,4.935,21420,2.038,21421,2.038,22102,3.551,22218,7.947,22313,1.847,22317,3.89,22318,1.847,22325,1.847,22326,1.727,22346,1.781,22394,3.103,22399,5.595,22418,2.038,22426,1.847,22431,3.217,22451,1.929,22466,2.038,22512,3.36,22679,2.038,22696,2.038,22767,5.342,22882,1.847,22892,2.038,22895,2.038,22917,1.847,22943,1.847,22965,2.038,22982,1.847,22983,1.929,23062,4.464,23136,2.038,23165,1.929,23168,3.217,23178,1.929,23194,4.718,23204,2.038,23211,1.929,23224,3.551,23242,4.464,23321,3.551,23357,2.038,23398,1.929,23409,1.929,23424,2.038,23437,2.038,23443,1.929,23452,2.038,23530,1.929,23553,3.551,23720,2.204,23721,2.204,23722,3.841,23723,2.204,23724,5.103,23725,2.204,23726,2.204,23727,2.038,23728,6.106,23729,3.841,23730,2.204,23731,2.204,23732,3.841,23733,3.841,23734,3.841,23735,2.204,23736,2.204,23737,3.841,23738,8.662,23739,2.204,23740,2.204,23741,2.204,23742,3.841,23743,2.204,23744,2.204,23745,2.204,23746,2.204,23747,2.204,23748,2.204,23749,3.841,23750,2.204,23751,2.204,23752,2.204,23753,2.204,23754,5.103,23755,2.204,23756,3.841,23757,3.841,23758,2.204,23759,3.841,23760,2.204,23761,2.204,23762,2.204,23763,2.204,23764,2.204,23765,2.204,23766,2.204,23767,2.204,23768,2.204,23769,2.204,23770,2.204,23771,2.204,23772,3.841,23773,3.841,23774,2.204,23775,2.204,23776,2.204,23777,2.204,23778,3.841,23779,2.204,23780,2.204,23781,2.204,23782,2.204,23783,2.204,23784,2.204,23785,5.103,23786,2.204,23787,2.204,23788,2.204,23789,2.204,23790,2.204,23791,2.204,23792,2.204,23793,2.204,23794,5.103,23795,2.204,23796,6.106,23797,2.204,23798,2.204,23799,3.841,23800,2.204,23801,2.204,23802,2.204,23803,2.204,23804,2.204,23805,2.204,23806,2.204,23807,2.204,23808,2.204,23809,2.204,23810,2.204,23811,2.204,23812,3.841,23813,2.204,23814,2.204,23815,3.841,23816,2.204,23817,2.204,23818,2.204,23819,2.038,23820,2.204,23821,2.204,23822,2.204,23823,3.841,23824,2.204,23825,2.204,23826,2.204,23827,2.204,23828,2.204,23829,2.204,23830,2.204,23831,2.204,23832,2.204,23833,2.204,23834,2.204,23835,2.204,23836,2.204,23837,2.204,23838,2.204]],["title/additional-documentation/nestjs-application/code-style.html",[821,2.328,950,2.248,1240,2.846,23453,4.239]],["body/additional-documentation/nestjs-application/code-style.html",[0,0.292,2,1.222,8,1.436,30,0.001,31,0.706,35,1.035,47,0.846,101,0.014,103,0.001,104,0.001,112,0.951,119,2.221,181,2.305,206,3.411,261,5.689,314,7.534,349,0.89,358,3.789,379,1.365,474,5.762,529,2.437,708,3.578,765,4.78,937,6.284,950,3.996,990,3.69,993,6.058,1618,5.225,1669,6.864,1675,5.225,1802,6.137,1867,3.19,2034,6.167,2161,4.912,2433,6.548,2435,6.137,2978,7.962,3252,7.215,3506,6.959,3869,7.962,5563,7.534,6656,7.215,7554,6.021,8052,6.406,10950,11.077,11727,5.349,12513,6.747,15719,7.962,22317,6.565,22426,7.215,22706,7.962,22733,7.962,22955,7.962,23018,7.215,23236,7.215,23398,7.534,23409,9.548,23453,7.534,23819,7.962,23839,8.612,23840,8.612,23841,8.612,23842,8.612,23843,8.612,23844,8.612,23845,8.612,23846,8.612]],["title/additional-documentation/nestjs-application/s3clientmodule.html",[821,2.721,1240,3.326,10673,4.211]],["body/additional-documentation/nestjs-application/s3clientmodule.html",[0,0.373,30,0.001,31,0.487,101,0.02,103,0.001,104,0.001,124,5.515,168,4.954,177,1.59,201,3.186,203,3.124,208,4.019,225,3.426,353,8.262,358,5.292,379,1.086,437,1.419,517,3.33,539,1.15,560,3.576,591,4.909,603,1.745,685,4.643,758,6.805,765,4.822,1672,4.523,2020,3.802,2035,5.463,2036,5.867,2433,5.212,3541,4.281,3542,4.909,4148,7.188,6335,6.991,6336,6.805,6337,6.073,6338,6.073,6339,6.073,6340,6.073,8033,10.921,10581,7.277,10688,7.277,10849,7.02,10850,6.461,11629,7.537,11770,6.805,11993,9.6,13435,6.622,17178,7.6,20375,7.02,20709,6.805,20716,8.031,23381,8.031,23727,8.031,23847,8.687,23848,8.687,23849,8.687,23850,8.687,23851,8.687,23852,12.029,23853,8.687,23854,8.687,23855,8.687,23856,8.687]]],"invertedIndex":[["",{"_index":30,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":696,"title":{},"body":{"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":{},"classes/GroupUcMapper.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":{},"injectables/MetaTagExtractorService.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.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":22163,"title":{},"body":{"dependencies.html":{}}}],["0.1.1",{"_index":22236,"title":{},"body":{"dependencies.html":{}}}],["0.1.13",{"_index":22265,"title":{},"body":{"dependencies.html":{}}}],["0.1.4",{"_index":22274,"title":{},"body":{"dependencies.html":{}}}],["0.14.0",{"_index":22197,"title":{},"body":{"dependencies.html":{}}}],["0.4.0",{"_index":22183,"title":{},"body":{"dependencies.html":{}}}],["0.4.11",{"_index":22171,"title":{},"body":{"dependencies.html":{}}}],["0.5.1",{"_index":22288,"title":{},"body":{"dependencies.html":{}}}],["0.5.19",{"_index":22277,"title":{},"body":{"dependencies.html":{}}}],["0.5.2",{"_index":22250,"title":{},"body":{"dependencies.html":{}}}],["0.5.4",{"_index":22240,"title":{},"body":{"dependencies.html":{}}}],["0.5.9",{"_index":22172,"title":{},"body":{"dependencies.html":{}}}],["0.6.0",{"_index":22241,"title":{},"body":{"dependencies.html":{}}}],["0.7.0",{"_index":22276,"title":{},"body":{"dependencies.html":{}}}],["0.8.0",{"_index":22178,"title":{},"body":{"dependencies.html":{}}}],["0.8.1",{"_index":22244,"title":{},"body":{"dependencies.html":{}}}],["0.9.7",{"_index":22238,"title":{},"body":{"dependencies.html":{}}}],["0000d231816abba584714c9e",{"_index":23356,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0000dcfbfb5c7a3f00bf21ab",{"_index":5837,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["0000dcfbfb5c7a3f00bf21ab'})@ismongoid",{"_index":5833,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["05",{"_index":23353,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["08",{"_index":19064,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["0]?.id",{"_index":13293,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["1",{"_index":708,"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":{},"injectables/ColumnBoardService.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":22260,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":22144,"title":{},"body":{"dependencies.html":{}}}],["1.0.5",{"_index":22224,"title":{},"body":{"dependencies.html":{}}}],["1.0.56",{"_index":22212,"title":{},"body":{"dependencies.html":{}}}],["1.0a",{"_index":14580,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"dependencies.html":{}}}],["1.1",{"_index":23542,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.1.1",{"_index":22258,"title":{},"body":{"dependencies.html":{}}}],["1.1.4",{"_index":22266,"title":{},"body":{"dependencies.html":{}}}],["1.15.2",{"_index":22190,"title":{},"body":{"dependencies.html":{}}}],["1.17.3",{"_index":22217,"title":{},"body":{"dependencies.html":{}}}],["1.2",{"_index":23543,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.2.0",{"_index":22188,"title":{},"body":{"dependencies.html":{}}}],["1.21.2",{"_index":22187,"title":{},"body":{"dependencies.html":{}}}],["1.25.0",{"_index":22225,"title":{},"body":{"dependencies.html":{}}}],["1.25.1",{"_index":22165,"title":{},"body":{"dependencies.html":{}}}],["1.28.1",{"_index":22228,"title":{},"body":{"dependencies.html":{}}}],["1.3.4",{"_index":22145,"title":{},"body":{"dependencies.html":{}}}],["1.5.0",{"_index":22186,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":22192,"title":{},"body":{"dependencies.html":{}}}],["1.6.2",{"_index":22202,"title":{},"body":{"dependencies.html":{}}}],["1.9.4",{"_index":22252,"title":{},"body":{"dependencies.html":{}}}],["10",{"_index":710,"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":22157,"title":{},"body":{"dependencies.html":{}}}],["10.1.1",{"_index":22155,"title":{},"body":{"dependencies.html":{}}}],["10.2.4",{"_index":22153,"title":{},"body":{"dependencies.html":{}}}],["100",{"_index":697,"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":1575,"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":19772,"title":{},"body":{"classes/TaskFactory.html":{}}}],["100000",{"_index":7086,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/FileRecordFactory.html":{},"classes/JwtTestFactory.html":{}}}],["1010",{"_index":22065,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["1055",{"_index":1776,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["10start",{"_index":23676,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["11",{"_index":22548,"title":{},"body":{"license.html":{}}}],["123",{"_index":14010,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["1234",{"_index":23586,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["12345",{"_index":19434,"title":{},"body":{"classes/SystemFactory.html":{}}}],["124",{"_index":15394,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["13",{"_index":4281,"title":{},"body":{"entities/ClassEntity.html":{},"classes/GroupUcMapper.html":{},"interfaces/IClassEntityProps.html":{},"license.html":{}}}],["13.1.0",{"_index":22261,"title":{},"body":{"dependencies.html":{}}}],["14.14",{"_index":10426,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["15",{"_index":11818,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["150",{"_index":4130,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{}}}],["15672:15672",{"_index":23034,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["15:20:30.888",{"_index":23355,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["16",{"_index":22713,"title":{},"body":{"license.html":{}}}],["172.29.173.128",{"_index":23680,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["173",{"_index":2334,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["17t14:17:51.958+00:00",{"_index":19065,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["18.5.0",{"_index":22222,"title":{},"body":{"dependencies.html":{}}}],["19",{"_index":22358,"title":{},"body":{"license.html":{}}}],["1993",{"_index":23599,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["1996",{"_index":22554,"title":{},"body":{"license.html":{}}}],["2",{"_index":7554,"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":14502,"title":{},"body":{"controllers/LoginController.html":{}}}],["2.0",{"_index":5570,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["2.0.0",{"_index":22194,"title":{},"body":{"dependencies.html":{}}}],["2.0.1",{"_index":22161,"title":{},"body":{"dependencies.html":{}}}],["2.0.5",{"_index":22230,"title":{},"body":{"dependencies.html":{}}}],["2.1.0",{"_index":22152,"title":{},"body":{"dependencies.html":{}}}],["2.1.2",{"_index":22196,"title":{},"body":{"dependencies.html":{}}}],["2.1375.0",{"_index":22185,"title":{},"body":{"dependencies.html":{}}}],["2.19.2",{"_index":22237,"title":{},"body":{"dependencies.html":{}}}],["2.2.5",{"_index":22167,"title":{},"body":{"dependencies.html":{}}}],["2.2.6",{"_index":22253,"title":{},"body":{"dependencies.html":{}}}],["2.3.2",{"_index":22226,"title":{},"body":{"dependencies.html":{}}}],["2.8.1",{"_index":22207,"title":{},"body":{"dependencies.html":{}}}],["2.8.32",{"_index":22169,"title":{},"body":{"dependencies.html":{}}}],["2.9.0",{"_index":22193,"title":{},"body":{"dependencies.html":{}}}],["20",{"_index":22552,"title":{},"body":{"license.html":{}}}],["200",{"_index":278,"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":22360,"title":{},"body":{"license.html":{}}}],["200})@apiinternalservererrorresponse({description",{"_index":21154,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["201",{"_index":2876,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{}}}],["2023",{"_index":19063,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["204",{"_index":2921,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["204})@apiresponse({status",{"_index":2884,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["21.1.2",{"_index":22146,"title":{},"body":{"dependencies.html":{}}}],["24",{"_index":6807,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["250",{"_index":3519,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["28",{"_index":22849,"title":{},"body":{"license.html":{}}}],["2984",{"_index":17859,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["2a$10$/dsztv5o6p5piw2ewjsxw.4nhovmjgba.qnwitmuz/uvuc40b.uhu",{"_index":534,"title":{},"body":{"classes/AccountFactory.html":{}}}],["2auth",{"_index":22992,"title":{},"body":{"todo.html":{}}}],["3",{"_index":3506,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LdapService.html":{},"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["3.0",{"_index":22960,"title":{},"body":{"properties.html":{}}}],["3.0.0",{"_index":22151,"title":{},"body":{"dependencies.html":{}}}],["3.0.1",{"_index":22154,"title":{},"body":{"dependencies.html":{}}}],["3.0.2",{"_index":22268,"title":{},"body":{"dependencies.html":{}}}],["3.1.0",{"_index":22255,"title":{},"body":{"dependencies.html":{}}}],["3.100.0",{"_index":22137,"title":{},"body":{"dependencies.html":{}}}],["3.13.0",{"_index":22269,"title":{},"body":{"dependencies.html":{}}}],["3.2.2",{"_index":22176,"title":{},"body":{"dependencies.html":{}}}],["3.3",{"_index":15721,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["3.3.4",{"_index":22251,"title":{},"body":{"dependencies.html":{}}}],["3.8.2",{"_index":22291,"title":{},"body":{"dependencies.html":{}}}],["30",{"_index":22756,"title":{},"body":{"license.html":{}}}],["300",{"_index":13796,"title":{},"body":{"injectables/LdapService.html":{}}}],["3000:3000",{"_index":23713,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["302",{"_index":11459,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["3030/api/v3/docs",{"_index":23121,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["3030/docs",{"_index":23126,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["31",{"_index":23354,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["335",{"_index":12663,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["3532",{"_index":23600,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["389:389",{"_index":23640,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["3990",{"_index":1781,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["4",{"_index":7524,"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":22143,"title":{},"body":{"dependencies.html":{}}}],["4.0.1",{"_index":22259,"title":{},"body":{"dependencies.html":{}}}],["4.1.6",{"_index":22283,"title":{},"body":{"dependencies.html":{}}}],["4.13.2",{"_index":22216,"title":{},"body":{"dependencies.html":{}}}],["4.14.0",{"_index":22215,"title":{},"body":{"dependencies.html":{}}}],["4.17.19",{"_index":22234,"title":{},"body":{"dependencies.html":{}}}],["4.18.2",{"_index":22282,"title":{},"body":{"dependencies.html":{}}}],["4.2.0",{"_index":22209,"title":{},"body":{"dependencies.html":{}}}],["4.2.5",{"_index":22198,"title":{},"body":{"dependencies.html":{}}}],["4.5.11",{"_index":22140,"title":{},"body":{"dependencies.html":{}}}],["4.5.16",{"_index":22139,"title":{},"body":{"dependencies.html":{}}}],["4.6.0",{"_index":22191,"title":{},"body":{"dependencies.html":{}}}],["4.x",{"_index":23027,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["400",{"_index":282,"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":{},"injectables/MetaTagExtractorService.html":{},"classes/OAuthRejectableBody.html":{},"controllers/ShareTokenController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["400/bad",{"_index":23371,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["401",{"_index":5535,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"controllers/MetaTagExtractorController.html":{},"classes/OAuthRejectableBody.html":{}}}],["4011:80",{"_index":23628,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["403",{"_index":287,"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":290,"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":23369,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["4096",{"_index":7069,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["4444",{"_index":23084,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["456",{"_index":14015,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["47494638",{"_index":8870,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["4xx",{"_index":11040,"title":{},"body":{"controllers/GroupController.html":{}}}],["5",{"_index":17173,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["5.0.0",{"_index":22180,"title":{},"body":{"dependencies.html":{}}}],["5.0.1",{"_index":22181,"title":{},"body":{"dependencies.html":{}}}],["5.0.3",{"_index":22219,"title":{},"body":{"dependencies.html":{}}}],["5.1.1",{"_index":22257,"title":{},"body":{"dependencies.html":{}}}],["5.13.20",{"_index":22239,"title":{},"body":{"dependencies.html":{}}}],["5.2.1",{"_index":22150,"title":{},"body":{"dependencies.html":{}}}],["5.4.2",{"_index":22149,"title":{},"body":{"dependencies.html":{}}}],["500",{"_index":8443,"title":{},"body":{"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"classes/ListOauthClientsParams.html":{},"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["501",{"_index":18718,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["5069",{"_index":1830,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["5672",{"_index":23036,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["5672:5672",{"_index":23033,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["59",{"_index":13276,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["5xx",{"_index":11042,"title":{},"body":{"controllers/GroupController.html":{}}}],["6.0.0",{"_index":22204,"title":{},"body":{"dependencies.html":{}}}],["6.1.3",{"_index":22205,"title":{},"body":{"dependencies.html":{}}}],["6.2.2",{"_index":22254,"title":{},"body":{"dependencies.html":{}}}],["6.3.0",{"_index":22220,"title":{},"body":{"dependencies.html":{}}}],["6.9.7",{"_index":22262,"title":{},"body":{"dependencies.html":{}}}],["60",{"_index":6808,"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":17636,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["632",{"_index":15558,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["64",{"_index":23583,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["673",{"_index":14120,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["699615164",{"_index":22985,"title":{},"body":{"todo.html":{}}}],["6b",{"_index":22626,"title":{},"body":{"license.html":{}}}],["6d",{"_index":22645,"title":{},"body":{"license.html":{}}}],["7",{"_index":10140,"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":22208,"title":{},"body":{"dependencies.html":{}}}],["7.1.10",{"_index":22159,"title":{},"body":{"dependencies.html":{}}}],["7.3.1",{"_index":22270,"title":{},"body":{"dependencies.html":{}}}],["789",{"_index":14016,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["8",{"_index":10396,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["8.1.0",{"_index":22200,"title":{},"body":{"dependencies.html":{}}}],["8.3.0",{"_index":22290,"title":{},"body":{"dependencies.html":{}}}],["8.8.2",{"_index":22174,"title":{},"body":{"dependencies.html":{}}}],["80",{"_index":23119,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080",{"_index":23091,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080:8080",{"_index":23049,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["820",{"_index":21419,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["8443:8443",{"_index":23050,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["86400000",{"_index":10204,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["885",{"_index":22067,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["89504e47",{"_index":8868,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["9.0.0",{"_index":22229,"title":{},"body":{"dependencies.html":{}}}],["9.2.0",{"_index":22148,"title":{},"body":{"dependencies.html":{}}}],["9000:9000",{"_index":23041,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001",{"_index":23046,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001:9001",{"_index":23042,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["91",{"_index":16081,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["9229",{"_index":23079,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["99",{"_index":845,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["990",{"_index":9870,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["999",{"_index":22334,"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":10870,"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":10868,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9]{24",{"_index":2860,"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":645,"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":11707,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_.pick(params",{"_index":659,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["_.random(35).tostring(36)).join",{"_index":15012,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.snakecase(classname).touppercase",{"_index":10935,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.snakecase(exceptionname).touppercase",{"_index":10945,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.spec.ts",{"_index":23256,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["_.startcase(exceptionname",{"_index":10946,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.startcase(name",{"_index":10936,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.test.[ts|js",{"_index":23098,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["_.times(20",{"_index":15011,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.union(userpermissions",{"_index":21100,"title":{},"body":{"classes/UserFactory.html":{}}}],["_\\w\\d",{"_index":15024,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["__v",{"_index":9996,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_allowemptyquery",{"_index":6059,"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":16818,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_collectmetricsroutemetrics",{"_index":16819,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_columnboardid",{"_index":4911,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["_contextid",{"_index":3333,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_contexttype",{"_index":3335,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["_creatorid",{"_index":9957,"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":2256,"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":975,"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":11790,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_instance",{"_index":16820,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_iscopyfrom",{"_index":10091,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_isenabled",{"_index":16821,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_lockid",{"_index":9958,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_oauthconfigcache",{"_index":13530,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["_operator",{"_index":6060,"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":7195,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["_ownerid",{"_index":9959,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_parentid",{"_index":9960,"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":16822,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_queries",{"_index":6061,"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":16823,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_schoolid",{"_index":10092,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_self",{"_index":5367,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["_updatedat",{"_index":985,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["a.getmetadata().title",{"_index":7539,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["a.localecompare(b",{"_index":18973,"title":{},"body":{"classes/SortHelper.html":{}}}],["a.m",{"_index":22352,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["a.position",{"_index":3242,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["a.userid.$oid",{"_index":13720,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["a.width",{"_index":14901,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["aaa",{"_index":23428,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["abbreviation",{"_index":6524,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ability",{"_index":22686,"title":{},"body":{"license.html":{}}}],["aborted",{"_index":13695,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["above",{"_index":22348,"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":22575,"title":{},"body":{"license.html":{}}}],["absolute",{"_index":11694,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["abstract",{"_index":9,"title":{},"body":{"classes/AbstractAccountService.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":{},"classes/BaseUc.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":857,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:113",{"_index":858,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:117",{"_index":870,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:122",{"_index":869,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:127",{"_index":874,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:146",{"_index":865,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:18",{"_index":861,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:24",{"_index":866,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:29",{"_index":862,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:34",{"_index":863,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:42",{"_index":864,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:47",{"_index":868,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:83",{"_index":873,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:91",{"_index":871,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:99",{"_index":872,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractbootstrapconsole",{"_index":20297,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["abstraction",{"_index":23727,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["abstraction/detail",{"_index":23159,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractions",{"_index":23196,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractlaunchstrategy",{"_index":2531,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:105",{"_index":2566,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:128",{"_index":2569,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:139",{"_index":2572,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:155",{"_index":2559,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:18",{"_index":2551,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:181",{"_index":2587,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:19",{"_index":15455,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:218",{"_index":2584,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:24",{"_index":2589,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:249",{"_index":2563,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:33",{"_index":2553,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:40",{"_index":2577,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:64",{"_index":2579,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:79",{"_index":2574,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:9",{"_index":2548,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["acacac",{"_index":6603,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.html":{}}}],["accept",{"_index":137,"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":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["accept(visitor",{"_index":2737,"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":22760,"title":{},"body":{"license.html":{}}}],["acceptasync",{"_index":2730,"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":2741,"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":15928,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequest(challenge",{"_index":15934,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequestbody",{"_index":106,"title":{"interfaces/AcceptConsentRequestBody.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["accepted",{"_index":22972,"title":{},"body":{"todo.html":{}}}],["acceptloginrequest",{"_index":16086,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(challenge",{"_index":16160,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptloginrequest(currentuserid",{"_index":16090,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["acceptloginrequestbody",{"_index":127,"title":{"interfaces/AcceptLoginRequestBody.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest",{"_index":15967,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(@param",{"_index":16045,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptlogoutrequest(challenge",{"_index":16162,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(params",{"_index":15972,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptquery",{"_index":134,"title":{"classes/AcceptQuery.html":{}},"body":{"classes/AcceptQuery.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["accepts",{"_index":140,"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":316,"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":1003,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["access.token.claim",{"_index":13496,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["access_token",{"_index":125,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["accessed",{"_index":6931,"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":22423,"title":{},"body":{"license.html":{}}}],["accessing",{"_index":23213,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["accesskeyid",{"_index":6339,"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":686,"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":1437,"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":14569,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accesstokendto.accesstoken",{"_index":14571,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accompanied",{"_index":22611,"title":{},"body":{"license.html":{}}}],["accompanies",{"_index":22928,"title":{},"body":{"license.html":{}}}],["accomplish",{"_index":22425,"title":{},"body":{"license.html":{}}}],["accord",{"_index":22574,"title":{},"body":{"license.html":{}}}],["according",{"_index":22920,"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":538,"title":{},"body":{"classes/AccountFactory.html":{}}}],["account's",{"_index":12704,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["account.'})@apiresponse({status",{"_index":281,"title":{},"body":{"controllers/AccountController.html":{}}}],["account._id.$oid",{"_index":13730,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.activated",{"_index":430,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.attdbcaccountid",{"_index":551,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcsystemid",{"_index":553,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcuserid",{"_index":552,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.createdat",{"_index":426,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.createddate",{"_index":550,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["account.credentialhash",{"_index":431,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.email",{"_index":13590,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.expiresat",{"_index":432,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.factory",{"_index":647,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.firstname",{"_index":13591,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.id",{"_index":425,"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":13713,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.interface.ts",{"_index":12072,"title":{},"body":{"interfaces/IJsonAccount.html":{}}}],["account.lastname",{"_index":13592,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.lasttriedfailedlogin",{"_index":433,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["account.lasttriedfailedlogin.gettime",{"_index":1574,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["account.module",{"_index":228,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["account.params.ts",{"_index":16609,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:13",{"_index":16620,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:24",{"_index":16618,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:33",{"_index":16614,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:42",{"_index":16615,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:51",{"_index":16616,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.password",{"_index":434,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["account.response",{"_index":831,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["account.service.abstract",{"_index":877,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["account.systemid",{"_index":890,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["account.systemid?.tostring",{"_index":435,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.test.factory.ts",{"_index":642,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:23",{"_index":20914,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:28",{"_index":20907,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:34",{"_index":20911,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:49",{"_index":20913,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:61",{"_index":20909,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.token",{"_index":436,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.updatedat",{"_index":427,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{}}}],["account.userid",{"_index":790,"title":{},"body":{"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LocalStrategy.html":{}}}],["account.userid.$oid",{"_index":13731,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.userid?.tostring",{"_index":428,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountValidationService.html":{}}}],["account.username",{"_index":429,"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":956,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["account?.systemid?.tostring",{"_index":957,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountapimodule",{"_index":202,"title":{"modules/AccountApiModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["accountbyidbodyparams",{"_index":232,"title":{"classes/AccountByIdBodyParams.html":{}},"body":{"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{}}}],["accountbyidparams",{"_index":255,"title":{"classes/AccountByIdParams.html":{}},"body":{"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{}}}],["accountcontroller",{"_index":224,"title":{"controllers/AccountController.html":{}},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountcopy",{"_index":21517,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountcopy.systemid",{"_index":21553,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountdbcaccountid",{"_index":12710,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdbcuserid",{"_index":12713,"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":894,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.credentialhash",{"_index":899,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.expiresat",{"_index":895,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.id",{"_index":887,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.lasttriedfailedlogin",{"_index":896,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.password",{"_index":897,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.systemid",{"_index":891,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.token",{"_index":900,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.username",{"_index":893,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdtos",{"_index":440,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities",{"_index":421,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountentities[0",{"_index":439,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities[1",{"_index":442,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentity",{"_index":880,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper",{"_index":410,"title":{"classes/AccountEntityToDtoMapper.html":{}},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.mapaccountstodto(accountentities",{"_index":883,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(await",{"_index":916,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(foundaccounts",{"_index":441,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentitytodtomapper.mapsearchresult(accountentities",{"_index":908,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapsearchresult(await",{"_index":940,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.maptodto(account",{"_index":902,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.maptodto(accountentity",{"_index":444,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountfactory",{"_index":445,"title":{"classes/AccountFactory.html":{}},"body":{"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountfactory.define(account",{"_index":537,"title":{},"body":{"classes/AccountFactory.html":{}}}],["accountfactory.withuser(user).build(accountparams",{"_index":661,"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":954,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountidmtodtomapper",{"_index":540,"title":{"injectables/AccountIdmToDtoMapper.html":{}},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{}}}],["accountidmtodtomapper:6",{"_index":547,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["accountidmtodtomapperdb",{"_index":545,"title":{"classes/AccountIdmToDtoMapperDb.html":{}},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"modules/AccountModule.html":{}}}],["accountidmtodtomapperfactory",{"_index":638,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountidmtodtomapperfactory(configservice",{"_index":634,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountidmtodtomapperidm",{"_index":554,"title":{"classes/AccountIdmToDtoMapperIdm.html":{}},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{}}}],["accountlookupservice",{"_index":557,"title":{"injectables/AccountLookupService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["accountmodule",{"_index":213,"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":640,"title":{"interfaces/AccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountpassword",{"_index":14416,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountrepo",{"_index":619,"title":{"injectables/AccountRepo.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountresponse",{"_index":279,"title":{"classes/AccountResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountresponsemapper",{"_index":780,"title":{"classes/AccountResponseMapper.html":{}},"body":{"classes/AccountResponseMapper.html":{}}}],["accounts",{"_index":179,"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":320,"title":{},"body":{"controllers/AccountController.html":{}}}],["accounts.filter((foundaccount",{"_index":943,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accounts.find((a",{"_index":13719,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["accounts.find((foundaccount",{"_index":1560,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["accounts.length",{"_index":13676,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["accounts.map((accountentity",{"_index":443,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accounts_allowanonymousread=false",{"_index":23696,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowemailchange=false",{"_index":23695,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowrealnamechange=false",{"_index":23693,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowusernamechange=false",{"_index":23694,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_method=get",{"_index":23711,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_url=http://localhost:4000/rocketchat/authget",{"_index":23692,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_enabled=true",{"_index":23690,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_url=http://localhost:4000/rocketchat/iframe",{"_index":23691,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_activating=false",{"_index":23697,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_deactivating=false",{"_index":23698,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_setdefaultavatar=false",{"_index":23709,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_usedefaultblockeddomainslist=false",{"_index":23699,"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":401,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:26",{"_index":395,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:30",{"_index":398,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:34",{"_index":389,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:38",{"_index":399,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:42",{"_index":397,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:46",{"_index":393,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:5",{"_index":384,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:50",{"_index":391,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:54",{"_index":387,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:57",{"_index":392,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:7",{"_index":383,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:9",{"_index":385,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsearchlistresponse",{"_index":317,"title":{"classes/AccountSearchListResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountsearchqueryparams",{"_index":311,"title":{"classes/AccountSearchQueryParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{}}}],["accountsearchtype",{"_index":836,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["accountservice",{"_index":617,"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":620,"title":{"injectables/AccountServiceDb.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["accountserviceidm",{"_index":621,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountsfile",{"_index":12079,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["accountuc",{"_index":215,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountuserid",{"_index":14419,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountvalidationservice",{"_index":618,"title":{"injectables/AccountValidationService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{}}}],["achieve",{"_index":22931,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["achieved",{"_index":23527,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["acknowledges",{"_index":22522,"title":{},"body":{"license.html":{}}}],["acquired",{"_index":22807,"title":{},"body":{"license.html":{}}}],["acr",{"_index":129,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["acr_values",{"_index":16384,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["act",{"_index":23427,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["action",{"_index":1612,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/BaseDomainObject.html":{},"classes/BaseUc.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnUc.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":1614,"title":{},"body":{"interfaces/AuthorizationContext.html":{}}}],["action.read",{"_index":1628,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"classes/BaseUc.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.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":1627,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/ElementUc.html":{},"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{}}}],["actions",{"_index":22767,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.loggable",{"_index":16712,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["actions.loggable.ts",{"_index":16660,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:4",{"_index":16662,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:7",{"_index":16663,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.read",{"_index":2349,"title":{},"body":{"classes/BaseDomainObject.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.write",{"_index":23785,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["activated",{"_index":157,"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":237,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["active",{"_index":11626,"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":22462,"title":{},"body":{"license.html":{}}}],["activity",{"_index":22844,"title":{},"body":{"license.html":{}}}],["actor",{"_index":23199,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["actual",{"_index":22827,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["actually",{"_index":22662,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["adapt",{"_index":22444,"title":{},"body":{"license.html":{}}}],["adapter",{"_index":4547,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adapter.mapper",{"_index":4583,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.mapper.ts",{"_index":4592,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.mapper.ts:16",{"_index":4595,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.module",{"_index":4671,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["adapter.module.ts",{"_index":4619,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.service",{"_index":15545,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthModule.html":{}}}],["adapter.service.ts",{"_index":15665,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:11",{"_index":15668,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:14",{"_index":15670,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:23",{"_index":15675,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:37",{"_index":15673,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapters",{"_index":23567,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["add",{"_index":1458,"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":{},"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":2731,"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":2744,"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":13332,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addclientprotocolmappers(defaultclientinternalid",{"_index":13349,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["added",{"_index":11787,"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":13413,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addexternaloauth2datatoconfig",{"_index":9357,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addexternaloauth2datatoconfig(config",{"_index":9371,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addgroupmoderator(groupname",{"_index":1046,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adding",{"_index":473,"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":1240,"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":13124,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["additionally",{"_index":22325,"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":13684,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["additionalpermissions",{"_index":664,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["additionaly",{"_index":23072,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["addlessons",{"_index":5046,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addlessons(builder",{"_index":5055,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addorganization",{"_index":5152,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addorganization(props",{"_index":5161,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addparameters",{"_index":2536,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addparameters(propertydata",{"_index":2555,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addprometheusmetricsmiddlewaresifenabled",{"_index":16881,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["addproperty",{"_index":2537,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addproperty(propertydata",{"_index":2560,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addquery",{"_index":6066,"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":6080,"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":10969,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addreferences(anotherreference",{"_index":7532,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addresourcetofile",{"_index":5153,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addresourcetofile(props",{"_index":5165,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization",{"_index":5315,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization(props",{"_index":5179,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["address",{"_index":16613,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["addressed",{"_index":22441,"title":{},"body":{"license.html":{}}}],["addroom",{"_index":7468,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["addroom(room",{"_index":7489,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["adds",{"_index":11708,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addtasks",{"_index":5047,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addtasks(builder",{"_index":5060,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addteacherroleifadmin",{"_index":18053,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addteacherroleifadmin(externaluser",{"_index":18057,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addtokentowhitelist",{"_index":13217,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtokentowhitelist(redisidentifier",{"_index":13225,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist",{"_index":13200,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist(accountid",{"_index":13206,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["adduser",{"_index":10997,"title":{},"body":{"classes/Group.html":{}}}],["adduser(user",{"_index":11000,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["adduserids",{"_index":15420,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adduserids.tostring",{"_index":15424,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adjust",{"_index":5389,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["adm",{"_index":5168,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["admin",{"_index":10763,"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":23688,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["adminaccount",{"_index":675,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["adminid",{"_index":971,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminidandtoken",{"_index":959,"title":{"interfaces/AdminIdAndToken.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.id",{"_index":1071,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.token",{"_index":1070,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["administration.module",{"_index":12677,"title":{},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration.module.ts",{"_index":13241,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["administration.service",{"_index":13248,"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":13251,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:21",{"_index":13268,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:26",{"_index":13275,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:35",{"_index":13272,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:39",{"_index":13269,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:43",{"_index":13270,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:47",{"_index":13271,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:57",{"_index":13274,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:62",{"_index":13273,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:66",{"_index":13267,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:7",{"_index":13277,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:9",{"_index":13265,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration/interface/keycloak",{"_index":12084,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["administration/keycloak",{"_index":12676,"title":{},"body":{"modules/IdentityManagementModule.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration/service/keycloak",{"_index":13250,"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":321,"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":970,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminpermissions",{"_index":21095,"title":{},"body":{"classes/UserFactory.html":{}}}],["adminstrator",{"_index":23752,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["admintoken",{"_index":972,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminuser",{"_index":676,"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":5159,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["adopted",{"_index":22551,"title":{},"body":{"license.html":{}}}],["adversely",{"_index":22692,"title":{},"body":{"license.html":{}}}],["advised",{"_index":22916,"title":{},"body":{"license.html":{}}}],["aes",{"_index":19351,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["aes_key",{"_index":8349,"title":{},"body":{"modules/EncryptionModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["aeskey",{"_index":8346,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["affected",{"_index":23380,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["affecteduserid",{"_index":21554,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["affects",{"_index":11857,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["affero",{"_index":22357,"title":{},"body":{"license.html":{}}}],["affirmed",{"_index":22789,"title":{},"body":{"license.html":{}}}],["affirms",{"_index":22520,"title":{},"body":{"license.html":{}}}],["afterall",{"_index":23515,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterall(async",{"_index":23506,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterbuild",{"_index":452,"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":469,"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":477,"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":19889,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["afterduedateornone(duedate",{"_index":19971,"title":{},"body":{"classes/TaskScope.html":{}}}],["aftereach",{"_index":23422,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterwards",{"_index":23327,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["again",{"_index":6319,"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":11363,"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":11357,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["against.ts:8",{"_index":11361,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["age",{"_index":23744,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["agent",{"_index":14892,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["aggregate",{"_index":22599,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["aggregate.attrs",{"_index":13492,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["agility",{"_index":23149,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["agnostic",{"_index":13035,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["ago",{"_index":7993,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["agpl",{"_index":22949,"title":{},"body":{"license.html":{},"properties.html":{}}}],["agree",{"_index":22862,"title":{},"body":{"license.html":{}}}],["agreed",{"_index":22904,"title":{},"body":{"license.html":{}}}],["agreement",{"_index":22815,"title":{},"body":{"license.html":{}}}],["aims",{"_index":23145,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["aint",{"_index":23184,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ajax",{"_index":11401,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["ajv",{"_index":22173,"title":{},"body":{"dependencies.html":{}}}],["aktuelle",{"_index":4865,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["alert",{"_index":8409,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alert(loggable",{"_index":8414,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alg",{"_index":1429,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["algorithm",{"_index":1380,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/JwtConstants.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["algorithms",{"_index":1401,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{}}}],["algorithms.includes(jwtconstants.jwtoptions.algorithm",{"_index":1415,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["alias",{"_index":12342,"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":7913,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["all_entities",{"_index":10668,"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":11724,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.filter",{"_index":11731,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.map((file",{"_index":11735,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["alleging",{"_index":22795,"title":{},"body":{"license.html":{}}}],["allforcreator",{"_index":19879,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(allforfinishedcoursesandlessonsforcreator.query",{"_index":19882,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closeddraftsforcreator.query",{"_index":19881,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closedwithoutparentforcreator.query",{"_index":19880,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons",{"_index":19865,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.addquery(parentsfinished.query",{"_index":19866,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.bydraft(false",{"_index":19867,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator",{"_index":19876,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.addquery(parentsfinished.query",{"_index":19877,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.bycreatorid(parentids.creatorid",{"_index":19878,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allmappers",{"_index":13452,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allmappers.find((mapper",{"_index":13455,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allow",{"_index":6297,"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":3983,"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":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.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":4178,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedcontexttype",{"_index":18925,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["alloweddos",{"_index":4193,"title":{},"body":{"injectables/CardUc.html":{}}}],["alloweddos.push(boarddo",{"_index":4192,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedparenttype",{"_index":18918,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["allowedstrings",{"_index":10562,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowedstrings.includes(input",{"_index":10564,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowemptyquery",{"_index":6067,"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":6083,"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":9073,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["allowglobalcontext",{"_index":15017,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{}}}],["allowmodstounmuteusers",{"_index":1959,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["allows",{"_index":758,"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":17096,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["allrooms",{"_index":7469,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["allteacherpseudonyms",{"_index":9796,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["allteacherpseudonyms.map((pseudonym",{"_index":9800,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["alone",{"_index":23419,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["along",{"_index":22577,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["already",{"_index":590,"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":4732,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["alternate",{"_index":22410,"title":{},"body":{"license.html":{}}}],["alternative",{"_index":13427,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["alternativetext",{"_index":3221,"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":9927,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["although",{"_index":23324,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["always",{"_index":357,"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":1981,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["always_deny",{"_index":1982,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["ambiguous",{"_index":19922,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["amount",{"_index":825,"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":22175,"title":{},"body":{"dependencies.html":{}}}],["amqp.module.ts",{"_index":10500,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["amqpconnection",{"_index":1147,"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":17160,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqplib",{"_index":22177,"title":{},"body":{"dependencies.html":{}}}],["amr",{"_index":130,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["analysis",{"_index":23116,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["analytics",{"_index":22287,"title":{},"body":{"dependencies.html":{}}}],["analytics_features_messages=false",{"_index":23700,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_rooms=false",{"_index":23701,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_users=false",{"_index":23702,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ancestor",{"_index":3609,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestorids",{"_index":3101,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/ColumnBoardService.html":{}}}],["ancestornodes",{"_index":3618,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestornodes.foreach((node",{"_index":3620,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestors",{"_index":3607,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancillary",{"_index":22761,"title":{},"body":{"license.html":{}}}],["and/opr",{"_index":23463,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["and/or",{"_index":22403,"title":{},"body":{"license.html":{}}}],["annotations",{"_index":23267,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["anonymous",{"_index":7181,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["another",{"_index":15963,"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":10983,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["antareskey",{"_index":6516,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["anti",{"_index":22539,"title":{},"body":{"license.html":{}}}],["antivirus.service",{"_index":1114,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirus_service_options",{"_index":1115,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirusmodule",{"_index":1104,"title":{"modules/AntivirusModule.html":{}},"body":{"modules/AntivirusModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["antivirusmodule.forroot",{"_index":10681,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["antivirusmoduleoptions",{"_index":1108,"title":{"interfaces/AntivirusModuleOptions.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["antivirusservice",{"_index":1113,"title":{"injectables/AntivirusService.html":{}},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["antivirusservice:checkstream",{"_index":1181,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusservice:send",{"_index":1194,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusserviceoptions",{"_index":1138,"title":{"interfaces/AntivirusServiceOptions.html":{}},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["anyboarddo",{"_index":2453,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnUc.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.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":1864,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{}}}],["anycontentelementresponse",{"_index":2452,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{}}}],["anyelementcontentbody",{"_index":5675,"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":720,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["anymore",{"_index":1399,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anyone",{"_index":22586,"title":{},"body":{"license.html":{}}}],["anything",{"_index":22451,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anywhere",{"_index":23233,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["api",{"_index":1224,"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":10738,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["api.module.ts",{"_index":222,"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/MetaTagExtractorApiModule.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":23100,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v1",{"_index":22306,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3",{"_index":22307,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/docs",{"_index":23122,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v3/news",{"_index":22315,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/sso/oauth",{"_index":15598,"title":{},"body":{"injectables/OAuthService.html":{}}}],["api/v3/sso/oauth/migration",{"_index":15597,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["api_enable_cors=true",{"_index":23704,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_enable_rate_limiter_limit_calls_default=255",{"_index":23689,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_keys",{"_index":23747,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["api_response_time_metric_middleware_successfully_added",{"_index":16872,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["api_validation_error",{"_index":1223,"title":{},"body":{"classes/ApiValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["api_version_path",{"_index":1165,"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":6265,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["apibadrequestresponse",{"_index":20585,"title":{},"body":{"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apibody",{"_index":4968,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apicreatedresponse",{"_index":20491,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiexcludeendpoint",{"_index":10344,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10339,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@put(filesstorageinternalactions.updatesecuritystatus",{"_index":10342,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiextramodels",{"_index":3707,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SubmissionItemResponse.html":{}}}],["apiextramodels(fileelementresponse",{"_index":19164,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["apiextramodels(lti11toolconfigcreateparams",{"_index":8711,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["apiextramodels(lti11toolconfigupdateparams",{"_index":9513,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(richtextelementresponse",{"_index":3728,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apiextramodels(submissionitemresponse",{"_index":8296,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiforbiddenresponse",{"_index":17013,"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":13953,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiinternalservererrorresponse",{"_index":21175,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinocontentresponse",{"_index":21176,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinotfoundresponse",{"_index":13954,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiokresponse",{"_index":13955,"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":335,"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/MetaTagExtractorController.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":2874,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.html":{},"controllers/H5PEditorController.html":{},"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{}}}],["apiproperty",{"_index":245,"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/GetMetaTagDataBody.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/MetaTagExtractorResponse.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":18140,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["apiproperty()@apipropertyoptional",{"_index":7330,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["apiproperty()@decodehtmlentities",{"_index":2720,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordResponse.html":{},"classes/MetaTagExtractorResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/TaskResponse.html":{}}}],["apiproperty()@ismongoid",{"_index":5890,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileRecordParams.html":{},"classes/SchoolIdParams.html":{},"classes/SingleFileParams.html":{}}}],["apiproperty()@isnumber",{"_index":5902,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["apiproperty()@isstring",{"_index":6291,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/DownloadFileParams.html":{},"classes/MetaTagExtractorResponse.html":{}}}],["apiproperty()@isstring()@ismongoid",{"_index":18191,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["apiproperty()@isstring()@isnotempty",{"_index":17414,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["apiproperty()@isurl",{"_index":14861,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["apiproperty()@matches('([a",{"_index":10865,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["apiproperty()@validatenested",{"_index":6294,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{}}}],["apiproperty({description",{"_index":820,"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":2862,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassInfoResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameterResponse.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":5832,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty({pattern",{"_index":2858,"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":818,"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/SubmissionItemResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionsResponse.html":{},"classes/TaskListResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["apipropertyoptional",{"_index":149,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BusinessError.html":{},"classes/CardResponse.html":{},"classes/ClassFilterParams.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":3422,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{}}}],["apipropertyoptional()@isoptional()@isboolean",{"_index":10749,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["apipropertyoptional()@isoptional()@isstring()@isnotempty",{"_index":10747,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["apipropertyoptional()@isstring()@isoptional",{"_index":21337,"title":{},"body":{"classes/UserLoginMigrationSearchParams.html":{}}}],["apipropertyoptional({default",{"_index":21855,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({description",{"_index":1213,"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":10754,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/PreviewParams.html":{}}}],["apipropertyoptional({nullable",{"_index":20763,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["apipropertyoptional({type",{"_index":6226,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/NewsResponse.html":{}}}],["apiresponse",{"_index":336,"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/MetaTagExtractorController.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":17457,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetrichistogram.observe(labels",{"_index":17464,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetriclabelnames",{"_index":17443,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apitags",{"_index":337,"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/MetaTagExtractorController.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":342,"title":{},"body":{"controllers/AccountController.html":{}}}],["apitags('authentication",{"_index":14508,"title":{},"body":{"controllers/LoginController.html":{}}}],["apitags('board",{"_index":2911,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apitags('collaborative",{"_index":4656,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["apitags('courses",{"_index":6693,"title":{},"body":{"controllers/CourseController.html":{}}}],["apitags('dashboard",{"_index":7452,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apitags('file",{"_index":10346,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apitags('fwu",{"_index":10810,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["apitags('group",{"_index":11055,"title":{},"body":{"controllers/GroupController.html":{}}}],["apitags('h5p",{"_index":11386,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["apitags('lesson",{"_index":14158,"title":{},"body":{"controllers/LessonController.html":{}}}],["apitags('meta",{"_index":14841,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["apitags('news",{"_index":15091,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["apitags('oauth2",{"_index":16016,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["apitags('pseudonym",{"_index":17018,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apitags('rooms",{"_index":17783,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apitags('school",{"_index":13961,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["apitags('sharetoken",{"_index":18730,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apitags('sso",{"_index":16247,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apitags('submission",{"_index":19093,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apitags('systems",{"_index":19384,"title":{},"body":{"controllers/SystemController.html":{}}}],["apitags('task",{"_index":19655,"title":{},"body":{"controllers/TaskController.html":{}}}],["apitags('tool",{"_index":20428,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["apitags('user",{"_index":20929,"title":{},"body":{"controllers/UserController.html":{}}}],["apitags('userimport",{"_index":12799,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["apitags('userloginmigration",{"_index":21186,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apitags('usermigration",{"_index":21478,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["apitags('videoconference",{"_index":21834,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiunauthorizedresponse",{"_index":13956,"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":20492,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apivalidationerror",{"_index":1202,"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":10966,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apivalidationerror.validationerrors.foreach((validationerror",{"_index":1257,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apivalidationerrorresponse",{"_index":1228,"title":{"classes/ApiValidationErrorResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/GlobalErrorFilter.html":{}}}],["apivalidationerrorresponse(error",{"_index":10938,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apivalidationerror})@apiresponse({status",{"_index":2878,"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":1459,"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":23328,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["app.use(createapiresponsetimemetricmiddleware",{"_index":16885,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["app_filter",{"_index":6511,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["app_guard",{"_index":6510,"title":{},"body":{"modules/CoreModule.html":{}}}],["app_interceptor",{"_index":6508,"title":{},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"todo.html":{}}}],["app_pipe",{"_index":6509,"title":{},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{}}}],["append",{"_index":23021,"title":{},"body":{"todo.html":{}}}],["appendedattachment",{"_index":1294,"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":2675,"title":{},"body":{"entities/Board.html":{}}}],["applicable",{"_index":22455,"title":{},"body":{"license.html":{}}}],["applicaiton",{"_index":23081,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["application",{"_index":3857,"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":1443,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/CalendarService.html":{},"classes/TestApiClient.html":{}}}],["application/octet",{"_index":9912,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{}}}],["application/x",{"_index":13558,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["application/xml",{"_index":2197,"title":{},"body":{"injectables/BBBService.html":{}}}],["application/zip",{"_index":6705,"title":{},"body":{"controllers/CourseController.html":{}}}],["applications",{"_index":22293,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["applied",{"_index":11755,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["applies",{"_index":4552,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["apply",{"_index":11727,"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":13102,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["applypropertiestopathparams",{"_index":2538,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["applypropertiestopathparams(url",{"_index":2564,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["appname",{"_index":1272,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["approach",{"_index":23525,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appropriate",{"_index":4550,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["appropriately",{"_index":22570,"title":{},"body":{"license.html":{}}}],["approve",{"_index":22080,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["approximate",{"_index":4144,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["approximates",{"_index":22924,"title":{},"body":{"license.html":{}}}],["apps/server",{"_index":23068,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["apps/server/doc",{"_index":23130,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src",{"_index":23134,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src/apps/helpers/app",{"_index":1270,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["apps/server/src/apps/helpers/prometheus",{"_index":16859,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["apps/server/src/config/database.config.ts",{"_index":10879,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["apps/server/src/console/api",{"_index":20294,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["apps/server/src/console/console.module.ts",{"_index":18572,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["apps/server/src/console/server.console.ts",{"_index":18558,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:11",{"_index":18562,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:17",{"_index":18565,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:6",{"_index":18561,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/core/core.module.ts",{"_index":6497,"title":{},"body":{"modules/CoreModule.html":{}}}],["apps/server/src/core/error/dto/api",{"_index":1229,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts",{"_index":8455,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:10",{"_index":8461,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:15",{"_index":8460,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:20",{"_index":8459,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:25",{"_index":8458,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:30",{"_index":8457,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/validation",{"_index":21743,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["apps/server/src/core/error/error.module.ts",{"_index":8448,"title":{},"body":{"modules/ErrorModule.html":{}}}],["apps/server/src/core/error/filter/global",{"_index":10883,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apps/server/src/core/error/interface/error",{"_index":11974,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["apps/server/src/core/error/interface/feathers",{"_index":9699,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts",{"_index":8357,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:11",{"_index":8365,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:13",{"_index":8368,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:34",{"_index":8367,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:47",{"_index":8372,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:56",{"_index":8374,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:8",{"_index":8363,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts",{"_index":8462,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:16",{"_index":8471,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:20",{"_index":8476,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:24",{"_index":8468,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:6",{"_index":8473,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/interceptor/interceptor.module.ts",{"_index":13057,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["apps/server/src/core/interfaces/core",{"_index":11940,"title":{},"body":{"interfaces/ICoreModuleConfig.html":{}}}],["apps/server/src/core/logger/error",{"_index":8407,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["apps/server/src/core/logger/interfaces/legacy",{"_index":12090,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts",{"_index":14427,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts:4",{"_index":14428,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/logger",{"_index":12107,"title":{},"body":{"interfaces/ILoggerConfig.html":{}}}],["apps/server/src/core/logger/legacy",{"_index":13884,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["apps/server/src/core/logger/logger.module.ts",{"_index":14449,"title":{},"body":{"modules/LoggerModule.html":{}}}],["apps/server/src/core/logger/logger.ts",{"_index":14429,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:13",{"_index":14441,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:18",{"_index":14438,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:23",{"_index":14436,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:28",{"_index":14434,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:33",{"_index":14439,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:9",{"_index":14432,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logging.utils.ts",{"_index":14470,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:13",{"_index":14480,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:18",{"_index":14478,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:6",{"_index":14475,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/validation/pipe/global",{"_index":10948,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apps/server/src/core/validation/validation.module.ts",{"_index":21747,"title":{},"body":{"modules/ValidationModule.html":{}}}],["apps/server/src/modules/account/account",{"_index":221,"title":{},"body":{"modules/AccountApiModule.html":{},"interfaces/IAccountConfig.html":{}}}],["apps/server/src/modules/account/account.module.ts",{"_index":623,"title":{},"body":{"modules/AccountModule.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts",{"_index":260,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:31",{"_index":322,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:44",{"_index":297,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:60",{"_index":332,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:70",{"_index":326,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:84",{"_index":293,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:97",{"_index":308,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/dto/account",{"_index":233,"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":772,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:13",{"_index":776,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:16",{"_index":779,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:19",{"_index":778,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:22",{"_index":775,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:25",{"_index":777,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:3",{"_index":774,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/patch",{"_index":16608,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["apps/server/src/modules/account/mapper/account",{"_index":411,"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":678,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:10",{"_index":719,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:18",{"_index":691,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:22",{"_index":698,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:27",{"_index":693,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:31",{"_index":694,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:35",{"_index":701,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:42",{"_index":703,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:46",{"_index":699,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:50",{"_index":707,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:54",{"_index":709,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:58",{"_index":689,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:63",{"_index":690,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:73",{"_index":695,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:79",{"_index":706,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/services/account",{"_index":558,"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":918,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:11",{"_index":924,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:29",{"_index":928,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:34",{"_index":926,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:8",{"_index":922,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/dto/account",{"_index":791,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts",{"_index":375,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts:9",{"_index":380,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/authentication/authentication",{"_index":1321,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["apps/server/src/modules/authentication/authentication.module.ts",{"_index":1369,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["apps/server/src/modules/authentication/constants.ts",{"_index":13151,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/ldap",{"_index":13750,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/local",{"_index":14394,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts",{"_index":14532,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts:5",{"_index":14533,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth",{"_index":15833,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth2",{"_index":15615,"title":{},"body":{"classes/Oauth2AuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts",{"_index":14484,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:31",{"_index":14494,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:47",{"_index":14498,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:62",{"_index":14503,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/mapper/login",{"_index":14553,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["apps/server/src/modules/authentication/errors/brute",{"_index":3819,"title":{},"body":{"classes/BruteForceError.html":{}}}],["apps/server/src/modules/authentication/errors/ldap",{"_index":13770,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["apps/server/src/modules/authentication/errors/school",{"_index":18359,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["apps/server/src/modules/authentication/errors/unauthorized.loggable",{"_index":20851,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["apps/server/src/modules/authentication/guard/jwt",{"_index":13147,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["apps/server/src/modules/authentication/interface/jwt",{"_index":7091,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["apps/server/src/modules/authentication/interface/user.ts",{"_index":11952,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["apps/server/src/modules/authentication/mapper/current",{"_index":7131,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts",{"_index":1518,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:17",{"_index":1527,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:25",{"_index":1534,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:42",{"_index":1532,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:57",{"_index":1540,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:65",{"_index":1529,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:76",{"_index":1543,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:80",{"_index":1538,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:84",{"_index":1536,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts",{"_index":13776,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:14",{"_index":13780,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:23",{"_index":13782,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:9",{"_index":13778,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt",{"_index":13166,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts",{"_index":13175,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12",{"_index":13178,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25",{"_index":13180,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts",{"_index":13808,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16",{"_index":13813,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28",{"_index":13822,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56",{"_index":13819,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68",{"_index":13817,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75",{"_index":13815,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:91",{"_index":13820,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts",{"_index":14397,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:15",{"_index":14401,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:25",{"_index":14409,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:46",{"_index":14407,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:54",{"_index":14404,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts",{"_index":15622,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15",{"_index":15623,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20",{"_index":15624,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts",{"_index":14524,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts:2",{"_index":14525,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts",{"_index":14561,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:12",{"_index":14566,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:9",{"_index":14564,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authorization/authorization",{"_index":1751,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["apps/server/src/modules/authorization/authorization.module.ts",{"_index":1715,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["apps/server/src/modules/authorization/domain/error/forbidden.loggable",{"_index":10779,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["apps/server/src/modules/authorization/domain/mapper/authorization",{"_index":1616,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["apps/server/src/modules/authorization/domain/rules/board",{"_index":3350,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/context",{"_index":6050,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course",{"_index":6853,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts",{"_index":7007,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:10",{"_index":7010,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:16",{"_index":7009,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:7",{"_index":7008,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts",{"_index":11253,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:11",{"_index":11256,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:17",{"_index":11255,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:8",{"_index":11254,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/legacy",{"_index":14071,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts",{"_index":14249,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:16",{"_index":14261,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:22",{"_index":14260,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:40",{"_index":14263,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:53",{"_index":14265,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:59",{"_index":14267,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:73",{"_index":14259,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:79",{"_index":14257,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:9",{"_index":14255,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/school",{"_index":18263,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts",{"_index":19254,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:11",{"_index":19272,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:17",{"_index":19267,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:27",{"_index":19262,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:41",{"_index":19271,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:47",{"_index":19269,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:61",{"_index":19266,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:70",{"_index":19264,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:8",{"_index":19260,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts",{"_index":19946,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:16",{"_index":19952,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:22",{"_index":19951,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:43",{"_index":19950,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:9",{"_index":19948,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts",{"_index":20196,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:10",{"_index":20199,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:14",{"_index":20198,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:7",{"_index":20197,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user",{"_index":21332,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts",{"_index":21651,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:10",{"_index":21654,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:16",{"_index":21653,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:7",{"_index":21652,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization",{"_index":1777,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts",{"_index":1638,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:14",{"_index":1651,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:21",{"_index":1653,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:32",{"_index":1647,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:38",{"_index":1656,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:7",{"_index":1649,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts",{"_index":1799,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:11",{"_index":1805,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:18",{"_index":1811,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:24",{"_index":1817,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:31",{"_index":1807,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:38",{"_index":1814,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:42",{"_index":1809,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:49",{"_index":1815,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:53",{"_index":1813,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts",{"_index":12136,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:39",{"_index":17405,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:69",{"_index":17408,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:77",{"_index":17407,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/rule",{"_index":17867,"title":{},"body":{"injectables/RuleManager.html":{}}}],["apps/server/src/modules/authorization/domain/type/authorization",{"_index":1610,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts",{"_index":17864,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:6",{"_index":17866,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:7",{"_index":17865,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/feathers/feathers",{"_index":9630,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{}}}],["apps/server/src/modules/board/board",{"_index":2698,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["apps/server/src/modules/board/board.module.ts",{"_index":3540,"title":{},"body":{"modules/BoardModule.html":{}}}],["apps/server/src/modules/board/controller/board",{"_index":3681,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts",{"_index":2865,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:33",{"_index":2895,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:50",{"_index":2890,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:68",{"_index":2901,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:83",{"_index":2886,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:93",{"_index":2881,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts",{"_index":3988,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:113",{"_index":4003,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:141",{"_index":3999,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:47",{"_index":4010,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:68",{"_index":4014,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:83",{"_index":4018,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:98",{"_index":4021,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts",{"_index":4946,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:34",{"_index":4964,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:49",{"_index":4967,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:64",{"_index":4960,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:75",{"_index":4957,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board",{"_index":2855,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts",{"_index":3656,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:17",{"_index":3660,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:21",{"_index":3663,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:26",{"_index":3659,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:29",{"_index":3662,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:6",{"_index":3658,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts",{"_index":3816,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11",{"_index":3818,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/card",{"_index":4140,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts",{"_index":4984,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:17",{"_index":4987,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:21",{"_index":4989,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:26",{"_index":4986,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:29",{"_index":4988,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:6",{"_index":4985,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts",{"_index":5035,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11",{"_index":5036,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/content",{"_index":5760,"title":{},"body":{"classes/ContentElementUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/move",{"_index":15032,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts",{"_index":17410,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12",{"_index":17413,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/set",{"_index":18670,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts",{"_index":4194,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts:11",{"_index":4195,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card",{"_index":4056,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts",{"_index":4074,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:21",{"_index":4076,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:34",{"_index":4079,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:38",{"_index":4081,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:41",{"_index":4078,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:55",{"_index":4077,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:58",{"_index":4083,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:61",{"_index":4080,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/create",{"_index":7045,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/move",{"_index":15042,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["apps/server/src/modules/board/controller/dto/card/visibility",{"_index":22130,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/create",{"_index":7050,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/element/external",{"_index":8731,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/file",{"_index":9933,"title":{},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/link",{"_index":14359,"title":{},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/rich",{"_index":17558,"title":{},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/submission",{"_index":19062,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/update",{"_index":8240,"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":7123,"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":20343,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:11",{"_index":20347,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:14",{"_index":20345,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:17",{"_index":20346,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:3",{"_index":20344,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/user",{"_index":21046,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts",{"_index":8262,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:110",{"_index":8274,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:125",{"_index":8270,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:51",{"_index":8278,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:89",{"_index":8283,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/mapper/base",{"_index":2445,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/board",{"_index":3668,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/card",{"_index":4088,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/column",{"_index":4992,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/content",{"_index":5633,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["apps/server/src/modules/board/controller/mapper/external",{"_index":8753,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/file",{"_index":9952,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/link",{"_index":14373,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/rich",{"_index":17569,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/submission",{"_index":19071,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["apps/server/src/modules/board/repo/board",{"_index":3165,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["apps/server/src/modules/board/repo/recursive",{"_index":17281,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["apps/server/src/modules/board/service/board",{"_index":3086,"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":4097,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:16",{"_index":4111,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:20",{"_index":4114,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:29",{"_index":4105,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:50",{"_index":4109,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:54",{"_index":4117,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:58",{"_index":4119,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:64",{"_index":4121,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:70",{"_index":4107,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:9",{"_index":4101,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/column",{"_index":4767,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts",{"_index":5001,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:11",{"_index":5007,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:16",{"_index":5003,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:32",{"_index":5005,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:36",{"_index":5009,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:40",{"_index":5011,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:8",{"_index":5002,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/content",{"_index":5662,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["apps/server/src/modules/board/service/submission",{"_index":19183,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts",{"_index":2455,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:12",{"_index":2464,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:28",{"_index":2470,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:44",{"_index":2467,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/base.uc.ts:6",{"_index":2460,"title":{},"body":{"classes/BaseUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts",{"_index":3779,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:11",{"_index":3783,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:25",{"_index":3789,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:34",{"_index":3791,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:43",{"_index":3787,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:52",{"_index":3797,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:61",{"_index":3785,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:71",{"_index":3795,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts",{"_index":4154,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:22",{"_index":4168,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:31",{"_index":4173,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:40",{"_index":4175,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:49",{"_index":4163,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:60",{"_index":4161,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:79",{"_index":4171,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:9",{"_index":4159,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:96",{"_index":4166,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts",{"_index":5018,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:22",{"_index":5023,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:31",{"_index":5028,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:40",{"_index":5021,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:51",{"_index":5026,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/column.uc.ts:9",{"_index":5019,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts",{"_index":8300,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:19",{"_index":8303,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:32",{"_index":8311,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:43",{"_index":8307,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:49",{"_index":8309,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:63",{"_index":8305,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/submission",{"_index":19198,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["apps/server/src/modules/class/class.module.ts",{"_index":4428,"title":{},"body":{"modules/ClassModule.html":{}}}],["apps/server/src/modules/class/domain/class",{"_index":4460,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts",{"_index":4207,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:22",{"_index":4220,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:26",{"_index":4222,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:30",{"_index":4224,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:34",{"_index":4226,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:38",{"_index":4228,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:42",{"_index":4230,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:46",{"_index":4232,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:50",{"_index":4234,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:54",{"_index":4236,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:58",{"_index":4238,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:62",{"_index":4240,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:66",{"_index":4241,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:70",{"_index":4242,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:74",{"_index":4218,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts",{"_index":4316,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8",{"_index":4318,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/entity/class",{"_index":4467,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts",{"_index":4260,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:26",{"_index":4264,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:30",{"_index":4265,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:34",{"_index":4273,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:38",{"_index":4272,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:41",{"_index":4262,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:44",{"_index":4274,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:47",{"_index":4261,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:50",{"_index":4263,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:53",{"_index":4271,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:57",{"_index":4267,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:60",{"_index":4270,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts",{"_index":4306,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7",{"_index":4309,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts",{"_index":4473,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:10",{"_index":4476,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:13",{"_index":4478,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:21",{"_index":4479,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:31",{"_index":4481,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts",{"_index":4375,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:26",{"_index":4387,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:43",{"_index":4383,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:47",{"_index":4385,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:7",{"_index":4381,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/service/class.service.ts",{"_index":4429,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:10",{"_index":4440,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:16",{"_index":4438,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:23",{"_index":4436,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:7",{"_index":4434,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/collaborative",{"_index":4631,"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":6217,"title":{},"body":{"classes/CopyApiResponse.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["apps/server/src/modules/files",{"_index":6237,"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":10064,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts",{"_index":9956,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:106",{"_index":9983,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:109",{"_index":9972,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:116",{"_index":9997,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:39",{"_index":9979,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:42",{"_index":9978,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:45",{"_index":9980,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:48",{"_index":9981,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:51",{"_index":9989,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:54",{"_index":9995,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:57",{"_index":9990,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:60",{"_index":9977,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:63",{"_index":9992,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:66",{"_index":9993,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:69",{"_index":9994,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:72",{"_index":9987,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:76",{"_index":9988,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:80",{"_index":9976,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:88",{"_index":9975,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:95",{"_index":9985,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:99",{"_index":9970,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/files.module.ts",{"_index":10444,"title":{},"body":{"modules/FilesModule.html":{}}}],["apps/server/src/modules/files/job/delete",{"_index":7982,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts",{"_index":10445,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:10",{"_index":10449,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:15",{"_index":10458,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:19",{"_index":10457,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:33",{"_index":10451,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:44",{"_index":10454,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/service/files.service.ts",{"_index":10473,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:10",{"_index":10480,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:14",{"_index":10486,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:28",{"_index":10482,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:32",{"_index":10484,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:7",{"_index":10478,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/uc/delete",{"_index":8006,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["apps/server/src/modules/fwu",{"_index":10796,"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":4323,"title":{},"body":{"classes/ClassFilterParams.html":{},"classes/ClassSortParams.html":{}}}],["apps/server/src/modules/group/controller/dto/request/group",{"_index":11143,"title":{},"body":{"classes/GroupIdParams.html":{}}}],["apps/server/src/modules/group/controller/dto/response/class",{"_index":4359,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/external",{"_index":8554,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group",{"_index":11329,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts",{"_index":11183,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:11",{"_index":11188,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:14",{"_index":11190,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:17",{"_index":11192,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:20",{"_index":11186,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:23",{"_index":11185,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:8",{"_index":11187,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts",{"_index":11035,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:23",{"_index":11044,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:53",{"_index":11050,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/mapper/group",{"_index":11202,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["apps/server/src/modules/group/domain/group",{"_index":11316,"title":{},"body":{"classes/GroupUser.html":{}}}],["apps/server/src/modules/group/domain/group.ts",{"_index":10996,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["apps/server/src/modules/group/domain/group.ts:25",{"_index":11006,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:29",{"_index":11007,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:33",{"_index":11009,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:37",{"_index":11011,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:41",{"_index":11013,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:45",{"_index":11005,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:49",{"_index":11003,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:53",{"_index":11002,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/entity/group",{"_index":11322,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts",{"_index":11127,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:32",{"_index":11129,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:35",{"_index":11131,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:38",{"_index":11128,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:41",{"_index":11133,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:44",{"_index":11132,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:47",{"_index":11130,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/group",{"_index":11031,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["apps/server/src/modules/group/group.module.ts",{"_index":11150,"title":{},"body":{"modules/GroupModule.html":{}}}],["apps/server/src/modules/group/loggable/unknown",{"_index":20855,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["apps/server/src/modules/group/repo/group",{"_index":11070,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts",{"_index":11155,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:10",{"_index":11158,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:100",{"_index":11159,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:13",{"_index":11162,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:27",{"_index":11161,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:46",{"_index":11164,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:60",{"_index":11165,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:75",{"_index":11166,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/service/group.service.ts",{"_index":11259,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:12",{"_index":11266,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:22",{"_index":11272,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:28",{"_index":11265,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:34",{"_index":11267,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:40",{"_index":11268,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:46",{"_index":11270,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:52",{"_index":11264,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:9",{"_index":11262,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/uc/dto/class",{"_index":4331,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["apps/server/src/modules/group/uc/dto/resolved",{"_index":17481,"title":{},"body":{"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["apps/server/src/modules/group/uc/mapper/group",{"_index":11282,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["apps/server/src/modules/group/util/sort",{"_index":18968,"title":{},"body":{"classes/SortHelper.html":{}}}],["apps/server/src/modules/h5p",{"_index":11368,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["apps/server/src/modules/learnroom/common",{"_index":5145,"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":6672,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:23",{"_index":6681,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:36",{"_index":6678,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts",{"_index":7433,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:15",{"_index":7436,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:22",{"_index":7441,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:38",{"_index":7446,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course",{"_index":6890,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts",{"_index":6958,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14",{"_index":6960,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts",{"_index":7043,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11",{"_index":7044,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts",{"_index":7652,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100",{"_index":7661,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105",{"_index":7657,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108",{"_index":7826,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118",{"_index":7828,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124",{"_index":7827,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16",{"_index":7676,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22",{"_index":7678,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27",{"_index":7677,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32",{"_index":7675,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35",{"_index":7656,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4",{"_index":7674,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62",{"_index":7663,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68",{"_index":7666,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73",{"_index":7664,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78",{"_index":7658,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83",{"_index":7667,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88",{"_index":7668,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94",{"_index":7662,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts",{"_index":7856,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11",{"_index":7857,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson",{"_index":14163,"title":{},"body":{"classes/LessonCopyApiParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts",{"_index":14327,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11",{"_index":14328,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/move",{"_index":15046,"title":{},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/patch",{"_index":16604,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room",{"_index":17728,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts",{"_index":17731,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11",{"_index":17732,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/single",{"_index":2710,"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":17760,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:33",{"_index":17772,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:43",{"_index":17775,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:57",{"_index":17778,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:67",{"_index":17766,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:78",{"_index":17769,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/learnroom",{"_index":13867,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["apps/server/src/modules/learnroom/learnroom.module.ts",{"_index":13882,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["apps/server/src/modules/learnroom/mapper/board",{"_index":3753,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts",{"_index":6876,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts:5",{"_index":6879,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts",{"_index":7679,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15",{"_index":7683,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36",{"_index":7685,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5",{"_index":7687,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/room",{"_index":17669,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["apps/server/src/modules/learnroom/service/board",{"_index":2933,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/column",{"_index":4924,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["apps/server/src/modules/learnroom/service/common",{"_index":5043,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["apps/server/src/modules/learnroom/service/course",{"_index":6709,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts",{"_index":7021,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:13",{"_index":7029,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:19",{"_index":7026,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:29",{"_index":7027,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:6",{"_index":7024,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:9",{"_index":7031,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts",{"_index":6863,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:15",{"_index":6869,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:6",{"_index":6867,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:9",{"_index":6871,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts",{"_index":17800,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:10",{"_index":17804,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:19",{"_index":17808,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:33",{"_index":17806,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/uc/course",{"_index":6764,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts",{"_index":7037,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:10",{"_index":7041,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:7",{"_index":7039,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts",{"_index":7829,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13",{"_index":7835,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26",{"_index":7837,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41",{"_index":7839,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57",{"_index":7841,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7",{"_index":7834,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/lesson",{"_index":14166,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["apps/server/src/modules/learnroom/uc/room",{"_index":8124,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts",{"_index":17733,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11",{"_index":17741,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17",{"_index":17739,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24",{"_index":17745,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45",{"_index":17743,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts",{"_index":17823,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:10",{"_index":17827,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:20",{"_index":17829,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:31",{"_index":17834,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:52",{"_index":17832,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/legacy",{"_index":9862,"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":14325,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11",{"_index":14326,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts",{"_index":14153,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts:14",{"_index":14157,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/lesson",{"_index":14147,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["apps/server/src/modules/lesson/lesson.module.ts",{"_index":14224,"title":{},"body":{"modules/LessonModule.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts",{"_index":8481,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:12",{"_index":8487,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:9",{"_index":8485,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts",{"_index":14290,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:13",{"_index":14297,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:19",{"_index":14304,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:23",{"_index":14302,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:27",{"_index":14301,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:33",{"_index":14299,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:7",{"_index":14295,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts",{"_index":15336,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:12",{"_index":15340,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:9",{"_index":15338,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts",{"_index":14315,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:13",{"_index":14318,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:7",{"_index":14316,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lti",{"_index":14706,"title":{},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{}}}],["apps/server/src/modules/management/console/board",{"_index":3442,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["apps/server/src/modules/management/console/database",{"_index":7859,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["apps/server/src/modules/management/controller/database",{"_index":7897,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts",{"_index":3827,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:11",{"_index":3840,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:21",{"_index":3831,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/management",{"_index":14796,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["apps/server/src/modules/management/management.module.ts",{"_index":14783,"title":{},"body":{"modules/ManagementModule.html":{}}}],["apps/server/src/modules/management/uc/board",{"_index":3468,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["apps/server/src/modules/management/uc/database",{"_index":11681,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["apps/server/src/modules/meta",{"_index":10872,"title":{},"body":{"classes/GetMetaTagDataBody.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["apps/server/src/modules/news/controller/dto/create",{"_index":7100,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/filter",{"_index":10767,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts",{"_index":15120,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:101",{"_index":15235,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:106",{"_index":15231,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:111",{"_index":15243,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:116",{"_index":15230,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:12",{"_index":15228,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:121",{"_index":15242,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:126",{"_index":15234,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:129",{"_index":15121,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:51",{"_index":15233,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:56",{"_index":15241,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:61",{"_index":15229,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:66",{"_index":15232,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:73",{"_index":15236,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:78",{"_index":15237,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:85",{"_index":15240,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:91",{"_index":15239,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:96",{"_index":15238,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts",{"_index":15333,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts:11",{"_index":15335,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/school",{"_index":18381,"title":{},"body":{"classes/SchoolInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/target",{"_index":19597,"title":{},"body":{"classes/TargetInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts",{"_index":20219,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts:11",{"_index":20220,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/update",{"_index":20869,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/user",{"_index":21107,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts",{"_index":15067,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:26",{"_index":15070,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:40",{"_index":15075,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:61",{"_index":15079,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:71",{"_index":15084,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:89",{"_index":15073,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/team",{"_index":20152,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["apps/server/src/modules/news/loggable/news",{"_index":15110,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts",{"_index":15136,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:38",{"_index":15144,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:52",{"_index":15142,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:65",{"_index":15150,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:74",{"_index":15146,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:9",{"_index":15148,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/school",{"_index":18374,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/target",{"_index":19592,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/user",{"_index":21106,"title":{},"body":{"classes/UserInfoMapper.html":{}}}],["apps/server/src/modules/news/news.module.ts",{"_index":15188,"title":{},"body":{"modules/NewsModule.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts",{"_index":15262,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:100",{"_index":15279,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:122",{"_index":15291,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:148",{"_index":15272,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:159",{"_index":15283,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:179",{"_index":15289,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:197",{"_index":15281,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:207",{"_index":15285,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:23",{"_index":15269,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:39",{"_index":15271,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:67",{"_index":15274,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/oauth",{"_index":135,"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":1722,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11",{"_index":1726,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15",{"_index":1729,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19",{"_index":1730,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23",{"_index":1731,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27",{"_index":1732,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/sso",{"_index":18010,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["apps/server/src/modules/oauth/controller/dto/stateless",{"_index":18995,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/system",{"_index":19460,"title":{},"body":{"classes/SystemIdParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/user",{"_index":21493,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["apps/server/src/modules/oauth/controller/oauth",{"_index":16199,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apps/server/src/modules/oauth/interface/oauth",{"_index":15605,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["apps/server/src/modules/oauth/loggable/oauth",{"_index":15491,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["apps/server/src/modules/oauth/loggable/user",{"_index":21583,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["apps/server/src/modules/oauth/mapper/oauth",{"_index":15853,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/token",{"_index":20363,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/user",{"_index":21490,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["apps/server/src/modules/oauth/oauth",{"_index":15699,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["apps/server/src/modules/oauth/oauth.module.ts",{"_index":15873,"title":{},"body":{"modules/OauthModule.html":{}}}],["apps/server/src/modules/oauth/service/dto/authentication",{"_index":1327,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts",{"_index":6207,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2",{"_index":6211,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4",{"_index":6210,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts",{"_index":11479,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13",{"_index":11483,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15",{"_index":11484,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17",{"_index":11482,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19",{"_index":11485,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21",{"_index":11481,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4",{"_index":11480,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/oauth",{"_index":15477,"title":{},"body":{"classes/OAuthProcessDto.html":{},"interfaces/OauthTokenResponse.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts",{"_index":11496,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:126",{"_index":11508,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:19",{"_index":11503,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:27",{"_index":11516,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:29",{"_index":11510,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:43",{"_index":11515,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:79",{"_index":11512,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:99",{"_index":11506,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/oauth",{"_index":15664,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts",{"_index":15501,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:116",{"_index":15522,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:132",{"_index":15531,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:142",{"_index":15535,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:154",{"_index":15537,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:169",{"_index":15527,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:189",{"_index":15524,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:205",{"_index":15529,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:214",{"_index":15520,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:22",{"_index":15515,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:37",{"_index":15518,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:63",{"_index":15533,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/uc/dto/oauth",{"_index":15841,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["apps/server/src/modules/oauth/uc/hydra",{"_index":11419,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts",{"_index":16315,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:142",{"_index":16322,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:26",{"_index":16320,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:40",{"_index":16330,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:66",{"_index":16328,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:97",{"_index":16325,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/provisioning/dto/external",{"_index":8500,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalUserDto.html":{}}}],["apps/server/src/modules/provisioning/dto/oauth",{"_index":15812,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning",{"_index":16973,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts",{"_index":16915,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2",{"_index":16917,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/loggable/group",{"_index":11241,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/school",{"_index":18338,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/user",{"_index":21102,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/mapper/provisioning",{"_index":16978,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["apps/server/src/modules/provisioning/provisioning.module.ts",{"_index":16925,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts",{"_index":16931,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:16",{"_index":16952,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:19",{"_index":16940,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:32",{"_index":16951,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:36",{"_index":16944,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:50",{"_index":16942,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:56",{"_index":16949,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:62",{"_index":16946,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts",{"_index":16969,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:5",{"_index":16972,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:7",{"_index":16971,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:9",{"_index":16970,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv",{"_index":13081,"title":{},"body":{"classes/IservMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts",{"_index":13098,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19",{"_index":13101,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65",{"_index":13106,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc",{"_index":16410,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts",{"_index":16521,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9",{"_index":16523,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/service/oidc",{"_index":16420,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis",{"_index":18017,"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":18076,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis",{"_index":18079,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts",{"_index":18052,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21",{"_index":18055,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:72",{"_index":18058,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym",{"_index":17042,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts",{"_index":17044,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:11",{"_index":17045,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:5",{"_index":17046,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:8",{"_index":17047,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts",{"_index":17007,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts:27",{"_index":17012,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/domain/pseudonym",{"_index":17061,"title":{},"body":{"interfaces/PseudonymSearchQuery.html":{}}}],["apps/server/src/modules/pseudonym/entity/external",{"_index":9002,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts",{"_index":17025,"title":{},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18",{"_index":17026,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21",{"_index":17027,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24",{"_index":17028,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts",{"_index":17050,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:13",{"_index":17059,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:20",{"_index":17057,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:6",{"_index":17055,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/loggable/too",{"_index":20374,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts",{"_index":17030,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts:5",{"_index":17032,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym",{"_index":17003,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym.module.ts",{"_index":17041,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["apps/server/src/modules/pseudonym/repo/external",{"_index":9016,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts",{"_index":17127,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10",{"_index":17133,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21",{"_index":17132,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36",{"_index":17131,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44",{"_index":17129,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65",{"_index":17130,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7",{"_index":17128,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71",{"_index":17135,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82",{"_index":17134,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/service/feathers",{"_index":9714,"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":17062,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:105",{"_index":17075,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:11",{"_index":17071,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:112",{"_index":17090,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:120",{"_index":17084,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:126",{"_index":17083,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:132",{"_index":17088,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:17",{"_index":17077,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:27",{"_index":17078,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:50",{"_index":17082,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:74",{"_index":17073,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:87",{"_index":17086,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:93",{"_index":17080,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:99",{"_index":17076,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts",{"_index":17114,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:16",{"_index":17118,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:9",{"_index":17116,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/rocketchat/rocket",{"_index":960,"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":17595,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:13",{"_index":17599,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:5",{"_index":17602,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/role.module.ts",{"_index":17611,"title":{},"body":{"modules/RoleModule.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts",{"_index":17590,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:4",{"_index":17592,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:6",{"_index":17593,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:8",{"_index":17591,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/role.service.ts",{"_index":17642,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:11",{"_index":17649,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:16",{"_index":17646,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:22",{"_index":17647,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:28",{"_index":17648,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:8",{"_index":17645,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts",{"_index":17660,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:10",{"_index":17663,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:7",{"_index":17662,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts",{"_index":18581,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts:7",{"_index":18582,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/server.config.ts",{"_index":12244,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["apps/server/src/modules/server/server.module.ts",{"_index":18594,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:157",{"_index":18597,"title":{},"body":{"modules/ServerModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:188",{"_index":18668,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:192",{"_index":18669,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/sharing/controller/dto/share",{"_index":18682,"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":18701,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apps/server/src/modules/sharing/domainobject/share",{"_index":18749,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["apps/server/src/modules/sharing/entity/share",{"_index":12263,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["apps/server/src/modules/sharing/mapper/context",{"_index":18698,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/metadata",{"_index":14918,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/parent",{"_index":18791,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/share",{"_index":18785,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["apps/server/src/modules/sharing/repo/share",{"_index":18803,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["apps/server/src/modules/sharing/service/share",{"_index":18836,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["apps/server/src/modules/sharing/service/token",{"_index":20359,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["apps/server/src/modules/sharing/sharing.module.ts",{"_index":18944,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["apps/server/src/modules/sharing/uc/dto/share",{"_index":18777,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["apps/server/src/modules/sharing/uc/share",{"_index":18867,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["apps/server/src/modules/system/controller/dto/oauth",{"_index":15786,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/public",{"_index":17144,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/system",{"_index":19461,"title":{},"body":{"classes/SystemIdParams-1.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts",{"_index":19452,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:10",{"_index":19458,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:16",{"_index":19455,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/mapper/system",{"_index":19526,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts",{"_index":19363,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:23",{"_index":19370,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:38",{"_index":19375,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/mapper/system",{"_index":19484,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts",{"_index":19463,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:20",{"_index":19469,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:39",{"_index":19466,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:6",{"_index":19467,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/service/dto/oauth",{"_index":15756,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/oidc",{"_index":16364,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts",{"_index":19396,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:10",{"_index":19406,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:12",{"_index":19399,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:14",{"_index":19400,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:16",{"_index":19403,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:18",{"_index":19404,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:20",{"_index":19402,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:22",{"_index":19398,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:6",{"_index":19401,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:8",{"_index":19405,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/system",{"_index":19497,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts",{"_index":19542,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:10",{"_index":19545,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:16",{"_index":19546,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:25",{"_index":19548,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:40",{"_index":19552,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:66",{"_index":19550,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/system",{"_index":19358,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["apps/server/src/modules/system/system.module.ts",{"_index":19480,"title":{},"body":{"modules/SystemModule.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts",{"_index":19584,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:11",{"_index":19587,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:25",{"_index":19588,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:8",{"_index":19585,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts",{"_index":19300,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:14",{"_index":19307,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:17",{"_index":19310,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:20",{"_index":19309,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:23",{"_index":19306,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:26",{"_index":19308,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:29",{"_index":19311,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:3",{"_index":19305,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:32",{"_index":19301,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:38",{"_index":19302,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts",{"_index":19330,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts:11",{"_index":19331,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task",{"_index":19674,"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":19774,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:22",{"_index":19940,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:26",{"_index":19943,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:29",{"_index":19932,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:32",{"_index":19939,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:36",{"_index":19934,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:39",{"_index":19942,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:42",{"_index":19933,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:49",{"_index":19937,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:52",{"_index":19941,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:55",{"_index":19938,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:58",{"_index":19935,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:61",{"_index":19945,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:64",{"_index":19944,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:67",{"_index":19775,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:9",{"_index":19931,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts",{"_index":20111,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts:11",{"_index":20112,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts",{"_index":19081,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:15",{"_index":19089,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:29",{"_index":19085,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts",{"_index":19624,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:100",{"_index":19633,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:22",{"_index":19634,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:30",{"_index":19637,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:37",{"_index":19639,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:54",{"_index":19642,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:63",{"_index":19645,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:72",{"_index":19648,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:85",{"_index":19631,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts",{"_index":19221,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts:5",{"_index":19224,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/task",{"_index":20012,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts",{"_index":19781,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:39",{"_index":19788,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:54",{"_index":19785,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:6",{"_index":19790,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts",{"_index":19284,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:13",{"_index":19294,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:17",{"_index":19291,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:23",{"_index":19289,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:7",{"_index":19287,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/task",{"_index":19676,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts",{"_index":19996,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:15",{"_index":20005,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:24",{"_index":20000,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:32",{"_index":20002,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:39",{"_index":20004,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:8",{"_index":19998,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/task",{"_index":19618,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["apps/server/src/modules/task/task.module.ts",{"_index":19822,"title":{},"body":{"modules/TaskModule.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts",{"_index":19312,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:13",{"_index":19320,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:22",{"_index":19316,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:39",{"_index":19318,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:7",{"_index":19315,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/task",{"_index":19710,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts",{"_index":20023,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:110",{"_index":20048,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:126",{"_index":20038,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:155",{"_index":20040,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:185",{"_index":20044,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:19",{"_index":20029,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:197",{"_index":20046,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:218",{"_index":20041,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:225",{"_index":20032,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:28",{"_index":20036,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:69",{"_index":20034,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:85",{"_index":20031,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts",{"_index":20204,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:15",{"_index":20210,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:6",{"_index":20208,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:9",{"_index":20212,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/teams",{"_index":20250,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["apps/server/src/modules/teams/teams.module.ts",{"_index":20255,"title":{},"body":{"modules/TeamsModule.html":{}}}],["apps/server/src/modules/tool/common/common",{"_index":5385,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["apps/server/src/modules/tool/common/domain/custom",{"_index":7274,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntry.html":{}}}],["apps/server/src/modules/tool/common/entity/custom",{"_index":7318,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["apps/server/src/modules/tool/common/interface/external",{"_index":9355,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{}}}],["apps/server/src/modules/tool/common/interface/tool",{"_index":20848,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["apps/server/src/modules/tool/common/mapper/tool",{"_index":20841,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["apps/server/src/modules/tool/common/service/common",{"_index":5392,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{}}}],["apps/server/src/modules/tool/common/uc/tool",{"_index":20703,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["apps/server/src/modules/tool/context",{"_index":5764,"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":2487,"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":7322,"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":1589,"title":{},"body":{"classes/AuthenticationValues.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":20702,"title":{},"body":{"modules/ToolModule.html":{}}}],["apps/server/src/modules/user",{"_index":4508,"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":17502,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts",{"_index":4201,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts:8",{"_index":4205,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts",{"_index":19341,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:3",{"_index":19343,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:9",{"_index":19344,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts",{"_index":20921,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:15",{"_index":20928,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:25",{"_index":20925,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/interfaces/user",{"_index":12594,"title":{},"body":{"interfaces/IUserConfig.html":{}}}],["apps/server/src/modules/user/mapper/resolved",{"_index":17491,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts",{"_index":21438,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts:5",{"_index":21439,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/service/user.service.ts",{"_index":21669,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:103",{"_index":21694,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:112",{"_index":21677,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:118",{"_index":21678,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:20",{"_index":21675,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:29",{"_index":21691,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:39",{"_index":21689,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:46",{"_index":21687,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:55",{"_index":21681,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:61",{"_index":21696,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:67",{"_index":21698,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:73",{"_index":21683,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:79",{"_index":21680,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:85",{"_index":21679,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:91",{"_index":21685,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts",{"_index":21061,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:20",{"_index":21068,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:22",{"_index":21064,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:24",{"_index":21066,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:26",{"_index":21071,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:28",{"_index":21075,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:3",{"_index":21063,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:30",{"_index":21076,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:32",{"_index":21072,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:34",{"_index":21065,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:36",{"_index":21069,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:38",{"_index":21067,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:41",{"_index":21074,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:43",{"_index":21070,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:45",{"_index":21073,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts",{"_index":21726,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:12",{"_index":21732,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:19",{"_index":21730,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:25",{"_index":21733,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:9",{"_index":21728,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/user",{"_index":20918,"title":{},"body":{"modules/UserApiModule.html":{}}}],["apps/server/src/modules/user/user.module.ts",{"_index":21579,"title":{},"body":{"modules/UserModule.html":{}}}],["apps/server/src/modules/video",{"_index":1939,"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":1203,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts",{"_index":1630,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts:4",{"_index":1632,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts",{"_index":3852,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:12",{"_index":3861,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:15",{"_index":3864,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:18",{"_index":3863,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:21",{"_index":3862,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:25",{"_index":3860,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:47",{"_index":3865,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/entity",{"_index":8351,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["apps/server/src/shared/common/error/forbidden",{"_index":10788,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["apps/server/src/shared/common/error/user",{"_index":20900,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts",{"_index":21740,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts:4",{"_index":21741,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/interceptor/duration",{"_index":8223,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/interfaces/interceptor",{"_index":12069,"title":{},"body":{"interfaces/IInterceptorConfig.html":{}}}],["apps/server/src/shared/common/interceptor/request",{"_index":17466,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts",{"_index":20328,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11",{"_index":20332,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14",{"_index":20333,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/loggable",{"_index":15441,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts",{"_index":6198,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts:9",{"_index":6201,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/guard",{"_index":11356,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts",{"_index":19032,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:10",{"_index":19035,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:2",{"_index":19037,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts",{"_index":16583,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:14",{"_index":16584,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:8",{"_index":16585,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts",{"_index":16588,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:11",{"_index":16591,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:14",{"_index":16594,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:17",{"_index":16593,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:20",{"_index":16592,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:3",{"_index":16590,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts",{"_index":18977,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:13",{"_index":18978,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:18",{"_index":18980,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/domain/domain",{"_index":1601,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts",{"_index":2237,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts:5",{"_index":2239,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/board/board",{"_index":2728,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts",{"_index":3963,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:10",{"_index":3971,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:14",{"_index":3973,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:18",{"_index":3975,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:22",{"_index":3977,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column",{"_index":4750,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts",{"_index":4741,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:10",{"_index":4745,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:6",{"_index":4744,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/content",{"_index":5608,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["apps/server/src/shared/domain/domainobject/board/external",{"_index":8715,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/file",{"_index":9915,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/link",{"_index":14335,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/rich",{"_index":17539,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/submission",{"_index":19052,"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":2782,"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":8539,"title":{},"body":{"classes/ExternalSource.html":{}}}],["apps/server/src/shared/domain/domainobject/legacy",{"_index":13974,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts",{"_index":7244,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:17",{"_index":14680,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:19",{"_index":14689,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:21",{"_index":14676,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:23",{"_index":14687,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:25",{"_index":14677,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:27",{"_index":14678,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:29",{"_index":14679,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:31",{"_index":14685,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:33",{"_index":14686,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:35",{"_index":14684,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:37",{"_index":14671,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:39",{"_index":14675,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:41",{"_index":14674,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:43",{"_index":14683,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:45",{"_index":14681,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:47",{"_index":14672,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:49",{"_index":14688,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:51",{"_index":14682,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:53",{"_index":14673,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:55",{"_index":14670,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:6",{"_index":7247,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:8",{"_index":7246,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts",{"_index":16538,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:2",{"_index":16540,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:4",{"_index":16539,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts",{"_index":16986,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13",{"_index":16988,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17",{"_index":16990,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21",{"_index":16991,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25",{"_index":16992,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29",{"_index":16993,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/role",{"_index":17626,"title":{},"body":{"classes/RoleReference.html":{}}}],["apps/server/src/shared/domain/domainobject/user",{"_index":21213,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts",{"_index":20938,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:11",{"_index":20941,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:13",{"_index":20944,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:15",{"_index":20950,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:17",{"_index":20955,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:19",{"_index":20956,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:21",{"_index":20952,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:23",{"_index":20943,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:25",{"_index":20947,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:27",{"_index":20945,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:29",{"_index":20951,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:31",{"_index":20942,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:33",{"_index":20948,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:35",{"_index":20946,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:37",{"_index":20954,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:39",{"_index":20949,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:41",{"_index":20953,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:43",{"_index":20939,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:7",{"_index":20940,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:9",{"_index":20957,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/video",{"_index":21918,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts",{"_index":156,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:12",{"_index":171,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:15",{"_index":165,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:18",{"_index":167,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:21",{"_index":162,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:24",{"_index":169,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:27",{"_index":166,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:30",{"_index":164,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:33",{"_index":163,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:36",{"_index":161,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts",{"_index":2351,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:11",{"_index":2356,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:25",{"_index":2378,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:28",{"_index":2380,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:31",{"_index":2379,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:34",{"_index":2382,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:8",{"_index":2354,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts",{"_index":3550,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29",{"_index":3554,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32",{"_index":3552,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35",{"_index":3555,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39",{"_index":3558,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42",{"_index":3556,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/card",{"_index":4066,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/column",{"_index":4801,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/external",{"_index":8740,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/file",{"_index":9940,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/link",{"_index":14364,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/rich",{"_index":17563,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/submission",{"_index":19068,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/types/board",{"_index":3124,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts",{"_index":6536,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:100",{"_index":6560,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:103",{"_index":6549,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:106",{"_index":6562,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:44",{"_index":21738,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:46",{"_index":21737,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:48",{"_index":21739,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:57",{"_index":6564,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:60",{"_index":6557,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:64",{"_index":6566,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:68",{"_index":6571,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:72",{"_index":6574,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:76",{"_index":6573,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:79",{"_index":6555,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:83",{"_index":6551,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:86",{"_index":6569,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:90",{"_index":6575,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:93",{"_index":6552,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:97",{"_index":6568,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts",{"_index":6815,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:21",{"_index":6818,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:25",{"_index":6823,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:29",{"_index":6817,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:33",{"_index":6821,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts",{"_index":7467,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:100",{"_index":10993,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:108",{"_index":10982,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:117",{"_index":10988,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:138",{"_index":10992,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:14",{"_index":12008,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:142",{"_index":10995,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:16",{"_index":12010,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:161",{"_index":7487,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:163",{"_index":7485,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:165",{"_index":7486,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:167",{"_index":7488,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:169",{"_index":7509,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:176",{"_index":7515,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:18",{"_index":12009,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:180",{"_index":7484,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:193",{"_index":7503,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:197",{"_index":7507,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:20",{"_index":12006,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:201",{"_index":7501,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:213",{"_index":7498,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:22",{"_index":12005,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:221",{"_index":7513,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:231",{"_index":7522,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:24",{"_index":12011,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:240",{"_index":7519,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:255",{"_index":7494,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:266",{"_index":7492,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:272",{"_index":7490,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:278",{"_index":7500,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:286",{"_index":7506,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:298",{"_index":7517,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:307",{"_index":7511,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:38",{"_index":10978,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:40",{"_index":10981,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:42",{"_index":10980,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:52",{"_index":10977,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:60",{"_index":10986,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:64",{"_index":10985,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:68",{"_index":10987,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:72",{"_index":10984,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:76",{"_index":10979,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:78",{"_index":10991,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:8",{"_index":12007,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:82",{"_index":10989,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:86",{"_index":10990,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:90",{"_index":10994,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts",{"_index":7620,"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":7627,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45",{"_index":7628,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48",{"_index":7629,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52",{"_index":7626,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56",{"_index":7624,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76",{"_index":7708,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81",{"_index":7710,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/external",{"_index":8544,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/federal",{"_index":6514,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["apps/server/src/shared/domain/entity/import",{"_index":12019,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["apps/server/src/shared/domain/entity/legacy",{"_index":2607,"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":11877,"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":14209,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:104",{"_index":14202,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:107",{"_index":14207,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:110",{"_index":14210,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:81",{"_index":12106,"title":{},"body":{"interfaces/ILessonParent.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:87",{"_index":14208,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:91",{"_index":14206,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:95",{"_index":14203,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:98",{"_index":14204,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts",{"_index":7170,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:101",{"_index":14651,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:33",{"_index":14658,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:36",{"_index":14669,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:39",{"_index":14654,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:42",{"_index":14667,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:45",{"_index":14655,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:48",{"_index":14656,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:51",{"_index":14657,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:54",{"_index":14663,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:58",{"_index":14666,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:65",{"_index":14662,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:68",{"_index":14648,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:71",{"_index":14653,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:74",{"_index":14652,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:77",{"_index":14647,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:85",{"_index":14659,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:89",{"_index":14649,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:92",{"_index":14668,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:95",{"_index":14660,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:98",{"_index":14650,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts",{"_index":12109,"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":14804,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:34",{"_index":14805,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:37",{"_index":14806,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:40",{"_index":14807,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:43",{"_index":14808,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:46",{"_index":14809,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:49",{"_index":14810,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:52",{"_index":14811,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:55",{"_index":14812,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:58",{"_index":14813,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts",{"_index":6913,"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":18472,"title":{},"body":{"entities/SchoolNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:116",{"_index":6914,"title":{},"body":{"entities/CourseNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:127",{"_index":20151,"title":{},"body":{"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:34",{"_index":15064,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:38",{"_index":15054,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:43",{"_index":15056,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:46",{"_index":15057,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:49",{"_index":15060,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:52",{"_index":15061,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:55",{"_index":15062,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:59",{"_index":15063,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:62",{"_index":15059,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:65",{"_index":15055,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:68",{"_index":15065,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:70",{"_index":15058,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts",{"_index":12172,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:15",{"_index":17586,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:18",{"_index":17587,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:21",{"_index":17589,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts",{"_index":12193,"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":18156,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:107",{"_index":18146,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:47",{"_index":18486,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:50",{"_index":18485,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:56",{"_index":18487,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:59",{"_index":18488,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:66",{"_index":18145,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:69",{"_index":18147,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:72",{"_index":18148,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:75",{"_index":18144,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:78",{"_index":18152,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:81",{"_index":18149,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:84",{"_index":18150,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:87",{"_index":18154,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:90",{"_index":18151,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:93",{"_index":18153,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts",{"_index":12235,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:13",{"_index":18521,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:16",{"_index":18522,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:19",{"_index":18520,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts",{"_index":12274,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:15",{"_index":19024,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:18",{"_index":19023,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:21",{"_index":19026,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:24",{"_index":19025,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts",{"_index":12287,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:30",{"_index":19045,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:34",{"_index":19049,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:37",{"_index":19046,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:40",{"_index":19041,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:43",{"_index":19050,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:46",{"_index":19040,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:49",{"_index":19047,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:52",{"_index":19044,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:55",{"_index":19042,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:58",{"_index":19043,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts",{"_index":12341,"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":13760,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:105",{"_index":13761,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:108",{"_index":13759,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:111",{"_index":13768,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:114",{"_index":13765,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:117",{"_index":13766,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:120",{"_index":13767,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:123",{"_index":13763,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:126",{"_index":13764,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:153",{"_index":16355,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:166",{"_index":16357,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:169",{"_index":16358,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:172",{"_index":16360,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:175",{"_index":16356,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:178",{"_index":16362,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:18",{"_index":15742,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:181",{"_index":16361,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:184",{"_index":16363,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:187",{"_index":16359,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:206",{"_index":19423,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:209",{"_index":19424,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:212",{"_index":19414,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:215",{"_index":19415,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:218",{"_index":19418,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:222",{"_index":19421,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:225",{"_index":19419,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:228",{"_index":19417,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:231",{"_index":19422,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:36",{"_index":15744,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:39",{"_index":15745,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:42",{"_index":15747,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:45",{"_index":15752,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:48",{"_index":15746,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:51",{"_index":15755,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:54",{"_index":15743,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:57",{"_index":15753,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:60",{"_index":15754,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:63",{"_index":15751,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:66",{"_index":15750,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:69",{"_index":15748,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:72",{"_index":15749,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:76",{"_index":13756,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:93",{"_index":13757,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:96",{"_index":13758,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:99",{"_index":13762,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts",{"_index":12454,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:16",{"_index":20114,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:18",{"_index":20113,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:35",{"_index":12455,"title":{},"body":{"interfaces/ITaskParent.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:45",{"_index":19607,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:48",{"_index":19601,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:51",{"_index":19602,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:54",{"_index":19598,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:58",{"_index":19603,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:61",{"_index":19608,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:64",{"_index":19609,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:67",{"_index":19612,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:71",{"_index":19600,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:75",{"_index":19599,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:79",{"_index":19610,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:83",{"_index":19606,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:86",{"_index":19611,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:90",{"_index":19604,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts",{"_index":12564,"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":20224,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:27",{"_index":20227,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:30",{"_index":20225,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:33",{"_index":20226,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:36",{"_index":20228,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:40",{"_index":20230,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:44",{"_index":20232,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:48",{"_index":20234,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:56",{"_index":20123,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:59",{"_index":20124,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/user",{"_index":21237,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts",{"_index":12596,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:41",{"_index":20881,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:44",{"_index":20884,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:47",{"_index":20890,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:51",{"_index":20897,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:55",{"_index":20898,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:59",{"_index":20892,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:62",{"_index":20883,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:65",{"_index":20895,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:69",{"_index":20887,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:72",{"_index":20885,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:75",{"_index":20891,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:78",{"_index":20882,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:81",{"_index":20888,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:84",{"_index":20886,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:87",{"_index":20894,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:91",{"_index":20880,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:94",{"_index":20889,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:97",{"_index":20893,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/video",{"_index":21750,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["apps/server/src/shared/domain/interface/base",{"_index":2343,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["apps/server/src/shared/domain/interface/entity.ts",{"_index":11970,"title":{},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/interface/find",{"_index":12003,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["apps/server/src/shared/domain/interface/learnroom.ts",{"_index":12088,"title":{},"body":{"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts",{"_index":16635,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:17",{"_index":16641,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:26",{"_index":16646,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:51",{"_index":16639,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/types/importuser.types.ts",{"_index":12065,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["apps/server/src/shared/domain/types/news.types.ts",{"_index":11944,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["apps/server/src/shared/domain/types/rich",{"_index":17528,"title":{},"body":{"classes/RichText.html":{}}}],["apps/server/src/shared/domain/types/task.types.ts",{"_index":12447,"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":1105,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts:8",{"_index":1109,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts",{"_index":1142,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:10",{"_index":1149,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:17",{"_index":1152,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:44",{"_index":1158,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:62",{"_index":1156,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts",{"_index":1136,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["apps/server/src/shared/infra/cache/cache.module.ts",{"_index":3890,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts",{"_index":3877,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts:7",{"_index":3879,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/calendar/calendar.module.ts",{"_index":3938,"title":{},"body":{"modules/CalendarModule.html":{}}}],["apps/server/src/shared/infra/calendar/dto/calendar",{"_index":3909,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["apps/server/src/shared/infra/calendar/interface/calendar",{"_index":11595,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts",{"_index":3919,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7",{"_index":3922,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts",{"_index":3942,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:15",{"_index":3952,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:17",{"_index":3946,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:24",{"_index":3949,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:46",{"_index":3951,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/collaborative",{"_index":4543,"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":5600,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{}}}],["apps/server/src/shared/infra/database/management/database",{"_index":7931,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{}}}],["apps/server/src/shared/infra/database/mongo",{"_index":15003,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts",{"_index":11961,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:5",{"_index":11967,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:6",{"_index":11965,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.module.ts",{"_index":8339,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts",{"_index":19346,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:15",{"_index":19349,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:23",{"_index":19348,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:8",{"_index":19347,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/feathers/feathers",{"_index":9823,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["apps/server/src/shared/infra/feathers/feathers.module.ts",{"_index":9705,"title":{},"body":{"modules/FeathersModule.html":{}}}],["apps/server/src/shared/infra/file",{"_index":10359,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["apps/server/src/shared/infra/identity",{"_index":11598,"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":1295,"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":14766,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts:11",{"_index":14768,"title":{},"body":{"modules/MailModule.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts",{"_index":14772,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:12",{"_index":14774,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:18",{"_index":14775,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts",{"_index":16817,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:12",{"_index":16834,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:14",{"_index":16839,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:18",{"_index":16833,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:20",{"_index":16841,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:24",{"_index":16829,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:26",{"_index":16843,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:30",{"_index":16830,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:32",{"_index":16845,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:34",{"_index":16828,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:4",{"_index":16831,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:44",{"_index":16846,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:52",{"_index":16835,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:6",{"_index":16832,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:8",{"_index":16837,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts",{"_index":17417,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10",{"_index":17424,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12",{"_index":17426,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14",{"_index":17428,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16",{"_index":17422,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32",{"_index":17511,"title":{},"body":{"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6",{"_index":17425,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8",{"_index":17423,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/oauth",{"_index":108,"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":16658,"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":8433,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/error.mapper.ts:6",{"_index":8437,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/exchange/files",{"_index":11930,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts",{"_index":17159,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:55",{"_index":17182,"title":{},"body":{"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rpc",{"_index":11972,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{}}}],["apps/server/src/shared/infra/redis/redis.module.ts",{"_index":17399,"title":{},"body":{"modules/RedisModule.html":{}}}],["apps/server/src/shared/infra/s3",{"_index":6331,"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":2241,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:11",{"_index":2290,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:111",{"_index":2269,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:116",{"_index":2273,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:13",{"_index":2272,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:15",{"_index":2278,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:17",{"_index":2275,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:19",{"_index":2284,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:24",{"_index":2286,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:42",{"_index":2258,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:50",{"_index":2289,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:63",{"_index":2261,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:77",{"_index":2280,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:8",{"_index":2255,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:85",{"_index":2263,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:98",{"_index":2267,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts",{"_index":2427,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:13",{"_index":2436,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:16",{"_index":2441,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:18",{"_index":2437,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:22",{"_index":2440,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:26",{"_index":2438,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:30",{"_index":2439,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts",{"_index":3623,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:11",{"_index":3631,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:17",{"_index":3634,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:25",{"_index":3629,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:38",{"_index":3636,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:7",{"_index":3637,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/contextexternaltool/context",{"_index":5907,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts",{"_index":6962,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:120",{"_index":6975,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:129",{"_index":6978,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:21",{"_index":7020,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:32",{"_index":7019,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:37",{"_index":7016,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:47",{"_index":7018,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:55",{"_index":6979,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:59",{"_index":6968,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:71",{"_index":6971,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:9",{"_index":7017,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:95",{"_index":6973,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts",{"_index":6842,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19",{"_index":6845,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26",{"_index":6848,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9",{"_index":6849,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts",{"_index":7712,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112",{"_index":7735,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128",{"_index":7730,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16",{"_index":7723,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19",{"_index":7741,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24",{"_index":7737,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34",{"_index":7732,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42",{"_index":7743,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51",{"_index":7739,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64",{"_index":7728,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75",{"_index":7745,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95",{"_index":7725,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts",{"_index":7797,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14",{"_index":11959,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15",{"_index":11958,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16",{"_index":11960,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20",{"_index":7801,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24",{"_index":7807,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30",{"_index":7809,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36",{"_index":7803,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42",{"_index":7805,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/externaltool/external",{"_index":9076,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["apps/server/src/shared/repo/federalstate/federal",{"_index":9856,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts",{"_index":12942,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:11",{"_index":12957,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:27",{"_index":12955,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:34",{"_index":12951,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:52",{"_index":12953,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:69",{"_index":12948,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts",{"_index":12997,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:10",{"_index":13021,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:100",{"_index":13017,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:113",{"_index":13025,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:17",{"_index":13023,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:24",{"_index":13010,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:38",{"_index":13012,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:54",{"_index":13014,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:69",{"_index":13019,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:86",{"_index":13008,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson",{"_index":14284,"title":{},"body":{"classes/LessonScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts",{"_index":14225,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:13",{"_index":14229,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:23",{"_index":14231,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:41",{"_index":14233,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:9",{"_index":14234,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts",{"_index":14708,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17",{"_index":14714,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26",{"_index":14716,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31",{"_index":14713,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9",{"_index":14719,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts",{"_index":14819,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts:7",{"_index":14820,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts",{"_index":15022,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts:6",{"_index":15026,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/news/news",{"_index":15244,"title":{},"body":{"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts",{"_index":15193,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:10",{"_index":15207,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:12",{"_index":15208,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:21",{"_index":15200,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:36",{"_index":15202,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:51",{"_index":15206,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:58",{"_index":15204,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts",{"_index":17629,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:11",{"_index":17637,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:13",{"_index":17633,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:23",{"_index":17635,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:28",{"_index":17632,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:7",{"_index":17638,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/school/legacy",{"_index":14027,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["apps/server/src/shared/repo/schoolexternaltool/school",{"_index":18199,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["apps/server/src/shared/repo/scope.ts",{"_index":18538,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:11",{"_index":18541,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:13",{"_index":18540,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:20",{"_index":18546,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:31",{"_index":18543,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:35",{"_index":18544,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:9",{"_index":18542,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts",{"_index":19027,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12",{"_index":19030,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16",{"_index":19029,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7",{"_index":19028,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts",{"_index":19231,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:10",{"_index":19244,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:21",{"_index":19238,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:30",{"_index":19240,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:35",{"_index":19236,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:41",{"_index":19243,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/system/system",{"_index":19540,"title":{},"body":{"classes/SystemScope.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts",{"_index":19510,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:12",{"_index":19514,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:31",{"_index":19512,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:8",{"_index":19515,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/task/task",{"_index":19960,"title":{},"body":{"classes/TaskScope.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts",{"_index":19823,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:106",{"_index":19832,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:11",{"_index":19843,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:15",{"_index":19842,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:164",{"_index":19838,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:190",{"_index":19840,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:26",{"_index":19830,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:38",{"_index":19836,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts",{"_index":20256,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:12",{"_index":20261,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:35",{"_index":20258,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:42",{"_index":20260,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:8",{"_index":20262,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts",{"_index":19001,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:10",{"_index":19007,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:21",{"_index":19010,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:36",{"_index":19012,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/user/user",{"_index":20980,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts",{"_index":21593,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:158",{"_index":21600,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:166",{"_index":21598,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:173",{"_index":21606,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:185",{"_index":21608,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:189",{"_index":21605,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:21",{"_index":21609,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:36",{"_index":21601,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:48",{"_index":21604,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts",{"_index":21656,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:12",{"_index":21665,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:19",{"_index":21663,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:28",{"_index":21667,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:35",{"_index":21659,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:5",{"_index":21661,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/userloginmigration/user",{"_index":21292,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["apps/server/src/shared/repo/videoconference/video",{"_index":22084,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts",{"_index":446,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:15",{"_index":468,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:9",{"_index":466,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/axios",{"_index":1909,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts",{"_index":2383,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:110",{"_index":2389,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:122",{"_index":2396,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:134",{"_index":2399,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:144",{"_index":2397,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:148",{"_index":2394,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:15",{"_index":2387,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:160",{"_index":2398,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:32",{"_index":2395,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:47",{"_index":2390,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:60",{"_index":2393,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:75",{"_index":2391,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:84",{"_index":2392,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:98",{"_index":2388,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts",{"_index":6792,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:12",{"_index":6796,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:19",{"_index":6797,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:26",{"_index":6799,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:33",{"_index":6802,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts",{"_index":6837,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts:8",{"_index":6838,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/board/column",{"_index":4795,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/do",{"_index":8108,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/domain",{"_index":8116,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/legacy",{"_index":14002,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/context",{"_index":5863,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/external",{"_index":7332,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/school",{"_index":18174,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/external",{"_index":8782,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts",{"_index":10199,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts:10",{"_index":10201,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/import",{"_index":12831,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts",{"_index":7059,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:18",{"_index":13198,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:22",{"_index":13197,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/lesson.factory.ts",{"_index":14212,"title":{},"body":{"classes/LessonFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts",{"_index":14691,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:14",{"_index":14695,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:7",{"_index":14693,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/material.factory.ts",{"_index":14815,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["apps/server/src/shared/testing/factory/readable",{"_index":17184,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["apps/server/src/shared/testing/factory/share",{"_index":18762,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts",{"_index":19105,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:15",{"_index":19110,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:21",{"_index":19109,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:27",{"_index":19112,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:9",{"_index":19108,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts",{"_index":19425,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:28",{"_index":19430,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:40",{"_index":19433,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:7",{"_index":19432,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts",{"_index":19766,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:11",{"_index":19767,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:17",{"_index":19770,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:23",{"_index":19771,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:29",{"_index":19769,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts",{"_index":20126,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:14",{"_index":20132,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:7",{"_index":20130,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts",{"_index":20235,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:19",{"_index":20238,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:9",{"_index":20236,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user",{"_index":641,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts",{"_index":21053,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts:8",{"_index":21056,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts",{"_index":21083,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:11",{"_index":21094,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:17",{"_index":21092,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:23",{"_index":21089,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:32",{"_index":21090,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:41",{"_index":21088,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/test",{"_index":1435,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["apps\\server\\src\\shared\\testing\\factory",{"_index":23555,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appstartinfo",{"_index":1269,"title":{"interfaces/AppStartInfo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["appstartloggable",{"_index":1279,"title":{"classes/AppStartLoggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["appthis",{"_index":22308,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["arbitrary",{"_index":23344,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["arc",{"_index":2431,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["architectural",{"_index":23156,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["architecture",{"_index":22300,"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":23332,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["archive",{"_index":22944,"title":{},"body":{"license.html":{}}}],["archived",{"_index":6899,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["archivegroup(groupname",{"_index":1036,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["are.claim.values.regex",{"_index":13487,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["area",{"_index":23736,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["areas",{"_index":23424,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["aresubmissionspublic",{"_index":12520,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["arg",{"_index":22179,"title":{},"body":{"dependencies.html":{}}}],["args",{"_index":18564,"title":{},"body":{"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{}}}],["argument",{"_index":1004,"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":10895,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["arising",{"_index":22908,"title":{},"body":{"license.html":{}}}],["around",{"_index":19735,"title":{},"body":{"injectables/TaskCopyUC.html":{},"todo.html":{}}}],["arrange",{"_index":22824,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["arrangement",{"_index":22834,"title":{},"body":{"license.html":{}}}],["array",{"_index":1672,"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":{},"classes/SubmissionItemResponse.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":3522,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["array.from(classmap.keys",{"_index":4494,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["array.from(modelentity.gridelements).foreach((el",{"_index":7788,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["array.isarray(boardnode",{"_index":3257,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(cardidparams.ids",{"_index":4031,"title":{},"body":{"controllers/CardController.html":{}}}],["array.isarray(collectionnamefilter",{"_index":11728,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["array.isarray(domainobjects",{"_index":2329,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(id",{"_index":2338,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(matches",{"_index":12050,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(permissions",{"_index":9686,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["array.isarray(props.classnames",{"_index":12036,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(props.rolenames",{"_index":12033,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(requiredpermissions",{"_index":1673,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["array.isarray(t",{"_index":3253,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(user.attributes[attributename",{"_index":13629,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.isarray(user.permissions",{"_index":9651,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["array.isarray(value",{"_index":13641,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["arraybuffer",{"_index":8888,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["article",{"_index":22547,"title":{},"body":{"license.html":{}}}],["asadmin",{"_index":21084,"title":{},"body":{"classes/UserFactory.html":{}}}],["asadmin(additionalpermissions",{"_index":677,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["asc",{"_index":10460,"title":{},"body":{"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["asguest",{"_index":2080,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["asguest(isguest",{"_index":22019,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["asguest(value",{"_index":2083,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["ask",{"_index":14282,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["ask_moderator",{"_index":1983,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["asks",{"_index":5503,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["aspnetcore_environment='development",{"_index":23629,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["assert",{"_index":22400,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assets",{"_index":22779,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["assigned",{"_index":3463,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["assignemnt",{"_index":12863,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["assigning",{"_index":23300,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assignment",{"_index":1013,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["assignment,@typescript",{"_index":1010,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["associated",{"_index":20116,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{}}}],["associations",{"_index":453,"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":483,"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":21085,"title":{},"body":{"classes/UserFactory.html":{}}}],["asstudent(additionalpermissions",{"_index":667,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["assume",{"_index":22899,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["assumption",{"_index":22927,"title":{},"body":{"license.html":{}}}],["assumptions",{"_index":22729,"title":{},"body":{"license.html":{}}}],["asteacher",{"_index":21086,"title":{},"body":{"classes/UserFactory.html":{}}}],["asteacher(additionalpermissions",{"_index":673,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["async",{"_index":262,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/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":23462,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["atm",{"_index":1455,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["attach",{"_index":22933,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["attachment",{"_index":1303,"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":1305,"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":22739,"title":{},"body":{"license.html":{}}}],["attempted",{"_index":14995,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["attendee",{"_index":2120,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["attendeepw",{"_index":1960,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["attendees",{"_index":2104,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["attends",{"_index":12862,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["attention",{"_index":23791,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["attribute",{"_index":12724,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["attributename",{"_index":12721,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributes",{"_index":3928,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["attributes.summary",{"_index":3932,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributes['x",{"_index":3930,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributevalue",{"_index":12726,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributions",{"_index":22716,"title":{},"body":{"license.html":{}}}],["aud",{"_index":7060,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["audience",{"_index":1421,"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":4850,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["autenticationresponse",{"_index":1452,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["auth",{"_index":1081,"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":13148,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["auth.provider",{"_index":9682,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["auth.provider.ts",{"_index":9631,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["auth.provider.ts:13",{"_index":9637,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:16",{"_index":9645,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:26",{"_index":9647,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:38",{"_index":9641,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:55",{"_index":9639,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:60",{"_index":9643,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth_token",{"_index":2097,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["authcode",{"_index":15517,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authconfig",{"_index":13155,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.jwtoptions",{"_index":13164,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.secret",{"_index":13163,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authendpoint",{"_index":11570,"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":338,"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/MetaTagExtractorController.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":343,"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/MetaTagExtractorController.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":16002,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@delete('clients/:id",{"_index":15977,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('auth/sessions/consent",{"_index":15990,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients",{"_index":15992,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients/:id",{"_index":15985,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('consentrequest/:challenge",{"_index":15980,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('consentrequest/:challenge",{"_index":15995,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('loginrequest/:challenge",{"_index":15998,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('logoutrequest/:challenge",{"_index":15973,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@post('clients",{"_index":15975,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@put('clients/:id",{"_index":16004,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticated",{"_index":303,"title":{},"body":{"controllers/AccountController.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"interfaces/OauthCurrentUser.html":{}}}],["authenticateuser",{"_index":15502,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticateuser(systemid",{"_index":15516,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticating",{"_index":23210,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["authentication",{"_index":1734,"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":1323,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["authentication/authentication",{"_index":11416,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["authentication/authentication.module",{"_index":10837,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/MetaTagExtractorModule.html":{}}}],["authentication/local",{"_index":1447,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationapimodule",{"_index":1315,"title":{"modules/AuthenticationApiModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["authenticationcodegranttokenrequest",{"_index":1326,"title":{"classes/AuthenticationCodeGrantTokenRequest.html":{}},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/TokenRequestMapper.html":{}}}],["authenticationexecutioninforepresentation",{"_index":13379,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationflowrepresentation",{"_index":13381,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationmodule",{"_index":1319,"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/MetaTagExtractorModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["authenticationresponse",{"_index":1434,"title":{"interfaces/AuthenticationResponse.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationresponse.accesstoken",{"_index":1517,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationservice",{"_index":1361,"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":15587,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["authenticationurl.searchparams.append('client_id",{"_index":15589,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('kc_idp_hint",{"_index":15594,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('redirect_uri",{"_index":15590,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('response_type",{"_index":15591,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('scope",{"_index":15592,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('state",{"_index":15593,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.tostring",{"_index":15595,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationvalues",{"_index":1588,"title":{"classes/AuthenticationValues.html":{}},"body":{"classes/AuthenticationValues.html":{}}}],["authguard",{"_index":13150,"title":{},"body":{"injectables/JwtAuthGuard.html":{},"controllers/LoginController.html":{}}}],["authguard('jwt",{"_index":13149,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["authheader",{"_index":16303,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.split",{"_index":16306,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.tolowercase().startswith('bearer",{"_index":16305,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["author",{"_index":22715,"title":{},"body":{"license.html":{},"properties.html":{}}}],["authoriation",{"_index":23804,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorisation",{"_index":3549,"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":14196,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorisationservice",{"_index":8126,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["authorizable",{"_index":2482,"title":{},"body":{"classes/BaseUc.html":{}}}],["authorizable.service",{"_index":3802,"title":{},"body":{"injectables/BoardUc.html":{}}}],["authorizable.service.ts",{"_index":3087,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:11",{"_index":5798,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:18",{"_index":3092,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:24",{"_index":3093,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:32",{"_index":3095,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:50",{"_index":3097,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:8",{"_index":5797,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.ts",{"_index":3062,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizable.ts:32",{"_index":3065,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:36",{"_index":3067,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:40",{"_index":3069,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizableobject",{"_index":1600,"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":1787,"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":10646,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.contextexternaltoolentity",{"_index":6146,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.course",{"_index":6775,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.lesson",{"_index":10642,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.school",{"_index":10640,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{}}}],["authorizablereferencetype.submission",{"_index":10644,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.task",{"_index":10635,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.user",{"_index":10638,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizableuser",{"_index":14113,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["authorization",{"_index":1634,"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":13751,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:12",{"_index":13755,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:13",{"_index":14395,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:17",{"_index":13752,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:21",{"_index":13753,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:7",{"_index":13754,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:8",{"_index":14396,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.helper",{"_index":1819,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["authorization.module",{"_index":1772,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorization.params",{"_index":16246,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authorization.params.ts",{"_index":18996,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:12",{"_index":18998,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:16",{"_index":18999,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:20",{"_index":19000,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:8",{"_index":18997,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.service",{"_index":1793,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["authorization.service.ts",{"_index":9667,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:16",{"_index":9678,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:32",{"_index":9674,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:54",{"_index":9680,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:6",{"_index":9672,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization_code",{"_index":11574,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{}}}],["authorization_operation",{"_index":1633,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["authorization_timebox_ms",{"_index":13252,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorizationapimodule",{"_index":1757,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorizationcontext",{"_index":1609,"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":1615,"title":{"classes/AuthorizationContextBuilder.html":{}},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ExternalToolConfigurationUc.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":17126,"title":{},"body":{"injectables/PseudonymUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_admin",{"_index":6162,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_user",{"_index":20695,"title":{},"body":{"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read([permission.course_edit",{"_index":6788,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["authorizationcontextbuilder.read([permission.filestorage_view",{"_index":23763,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([permission.school_edit",{"_index":14140,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["authorizationcontextbuilder.read([permission.school_tool_admin",{"_index":8669,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["authorizationcontextbuilder.read([permission.submissions_view",{"_index":19329,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.read([permission.topic_create",{"_index":14194,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorizationcontextbuilder.read([permissions.course_view",{"_index":23760,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write",{"_index":14200,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.change_team_roles",{"_index":4713,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["authorizationcontextbuilder.write([permission.context_tool_admin",{"_index":6143,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["authorizationcontextbuilder.write([permission.course_create",{"_index":6773,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_create",{"_index":23762,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_edit",{"_index":23764,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_remove",{"_index":23765,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.instance",{"_index":23772,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.submissions_edit",{"_index":19326,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.write([permission.topic_view",{"_index":14323,"title":{},"body":{"injectables/LessonUC.html":{}}}],["authorizationcontextbuilder.write([permission.user_login_migration_admin",{"_index":17523,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["authorizationcontextbuilder.write(requiredpermissions",{"_index":18923,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["authorizationerror",{"_index":1629,"title":{"classes/AuthorizationError.html":{}},"body":{"classes/AuthorizationError.html":{}}}],["authorizationhelper",{"_index":1637,"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":1682,"title":{"interfaces/AuthorizationLoaderService.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizationloaderservicegeneric",{"_index":1690,"title":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/GroupService.html":{}}}],["authorizationmodule",{"_index":1692,"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/MetaTagExtractorApiModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/PseudonymApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/TaskApiModule.html":{},"modules/ToolApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationparams",{"_index":1721,"title":{"classes/AuthorizationParams.html":{}},"body":{"classes/AuthorizationParams.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["authorizationreferencemodule",{"_index":1737,"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":1742,"title":{"injectables/AuthorizationReferenceService.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ShareTokenUC.html":{}}}],["authorizations",{"_index":19734,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationservice",{"_index":1698,"title":{"injectables/AuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/MetaTagExtractorUc.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":12430,"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":16619,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizeaccess",{"_index":13254,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorized",{"_index":1635,"title":{},"body":{"classes/AuthorizationError.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizes",{"_index":22802,"title":{},"body":{"license.html":{}}}],["authorizing",{"_index":22838,"title":{},"body":{"license.html":{}}}],["authors",{"_index":22720,"title":{},"body":{"license.html":{}}}],["authparams",{"_index":11466,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["authservice",{"_index":4685,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LoginUc.html":{}}}],["authtoken",{"_index":1022,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["auto",{"_index":1844,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"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":{}}}],["autocontextidstrategy",{"_index":1833,"title":{"injectables/AutoContextIdStrategy.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["autocontextnamestrategy",{"_index":1847,"title":{"injectables/AutoContextNameStrategy.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["automated",{"_index":23394,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["automatic",{"_index":22771,"title":{},"body":{"license.html":{}}}],["automatically",{"_index":8972,"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":8959,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameters.includes(customparameter.type",{"_index":8998,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameterstrategy",{"_index":1843,"title":{"interfaces/AutoParameterStrategy.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["autoparameterstrategymap",{"_index":2532,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["autoschoolidstrategy",{"_index":1893,"title":{"injectables/AutoSchoolIdStrategy.html":{}},"body":{"injectables/AutoSchoolIdStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["autoschoolnumberstrategy",{"_index":1897,"title":{"injectables/AutoSchoolNumberStrategy.html":{}},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["avaible",{"_index":1689,"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":2358,"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":{},"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":12251,"title":{},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{}}}],["availabledate",{"_index":3737,"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":19890,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["availableschoolexternaltools",{"_index":8601,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["availableschoolexternaltools.map",{"_index":8628,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["availabletools",{"_index":8618,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["availabletools.foreach((externaltool",{"_index":8673,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext",{"_index":8681,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext.foreach((tooltemplateinfo",{"_index":8684,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["avoid",{"_index":1763,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["await",{"_index":608,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/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/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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/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":23464,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["awaiting_scan_status",{"_index":10118,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["awaits",{"_index":20716,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["away",{"_index":22380,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["aws",{"_index":8031,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"dependencies.html":{}}}],["axios",{"_index":1923,"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":11460,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosheaders",{"_index":1918,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaders(props.headers",{"_index":1932,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaderskeyvalue",{"_index":1924,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheadervalue",{"_index":1922,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosrequestconfig",{"_index":3950,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponse",{"_index":1911,"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":1936,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseimp",{"_index":1908,"title":{"classes/AxiosResponseImp.html":{}},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseprops",{"_index":1914,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["b",{"_index":2664,"title":{},"body":{"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/MetaTagExtractorService.html":{},"classes/SortHelper.html":{},"license.html":{}}}],["b.getmetadata().title",{"_index":7541,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["b.position",{"_index":3243,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["b.width",{"_index":14902,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["back",{"_index":518,"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":14549,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["backchannelsupported",{"_index":16407,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["backend",{"_index":23715,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["backendurl",{"_index":8873,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["backendurl}${filledtemplate",{"_index":8877,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["background",{"_index":10134,"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":11691,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["backup/idm/keycloak",{"_index":23664,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup/setup/accounts.json",{"_index":13306,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["backup/setup/users.json",{"_index":13307,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["bad",{"_index":12323,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["badrequest",{"_index":19736,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["badrequestexception",{"_index":2621,"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":{},"injectables/SubmissionItemUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["badrequestexception('dashboard",{"_index":7563,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('destination",{"_index":18914,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["badrequestexception('elements",{"_index":2658,"title":{},"body":{"entities/Board.html":{}}}],["badrequestexception('language",{"_index":21724,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["badrequestexception('this",{"_index":7549,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('unknown",{"_index":21546,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["badrequestexception(`cannot",{"_index":2770,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(`invalid",{"_index":2768,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(errorobj.message",{"_index":8441,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["badrequestexception(errortype.file_name_empty",{"_index":10166,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["badrequestexception})@apiresponse({status",{"_index":11376,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["badrequestloggableexception",{"_index":23378,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["base",{"_index":1941,"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":7249,"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":14040,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["base.do.repo.ts",{"_index":2377,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["base.entity",{"_index":175,"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":526,"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":8109,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["base.interface.strategy",{"_index":15377,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["base.repo",{"_index":3638,"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":2055,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{}}}],["base.response.ts",{"_index":1951,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["base.strategy",{"_index":13113,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{}}}],["base.uc",{"_index":3803,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["base64",{"_index":8880,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"dependencies.html":{}}}],["base64content",{"_index":1298,"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":8884,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["base_string",{"_index":14586,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["base_url",{"_index":17444,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["based",{"_index":2384,"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":11695,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["basedo",{"_index":1686,"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":5778,"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":2342,"title":{"classes/BaseDomainObject.html":{}},"body":{"classes/BaseDomainObject.html":{}}}],["basedorepo",{"_index":2240,"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":5929,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:111",{"_index":5935,"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":9091,"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":20992,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:13",{"_index":14711,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["basedorepo:19",{"_index":5937,"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":9081,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:24",{"_index":5938,"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":18810,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:28",{"_index":18208,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:29",{"_index":20985,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:34",{"_index":5921,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:37",{"_index":22089,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:40",{"_index":21297,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:42",{"_index":5931,"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":14718,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:45",{"_index":14032,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:46",{"_index":18809,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:49",{"_index":14038,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:50",{"_index":5939,"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":21296,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:56",{"_index":5924,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:60",{"_index":20991,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:63",{"_index":5932,"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":14037,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:69",{"_index":14717,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:74",{"_index":18214,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:77",{"_index":5936,"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":5930,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:84",{"_index":9090,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:85",{"_index":5933,"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":9089,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["basedorepo:98",{"_index":5934,"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":2292,"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":2293,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["baseentityproperties.includes(key",{"_index":2326,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["baseentityreference",{"_index":2360,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["baseentitywithtimestamps",{"_index":174,"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":447,"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":1937,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalToolEntityFactory.html":{}}}],["basefactory.define(readablestreamwithfiletypeimp",{"_index":17194,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["basefactory:110",{"_index":485,"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":515,"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":523,"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":8118,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["basefactory:144",{"_index":516,"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":503,"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":464,"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":520,"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":508,"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":492,"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":499,"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":4319,"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":495,"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":497,"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":471,"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":14790,"title":{},"body":{"modules/ManagementModule.html":{}}}],["basename",{"_index":14885,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["basename(urlobject.pathname",{"_index":14898,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["basepath",{"_index":1273,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/ICollectionFilePath.html":{}}}],["basepermission",{"_index":23793,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["baserepo",{"_index":679,"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":6847,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["baserepo:14",{"_index":19241,"title":{},"body":{"injectables/SubmissionRepo.html":{},"injectables/TeamsRepo.html":{}}}],["baserepo:15",{"_index":12949,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["baserepo:17",{"_index":14232,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["baserepo:18",{"_index":712,"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":717,"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":21602,"title":{},"body":{"injectables/UserRepo.html":{}}}],["baserepo:26",{"_index":714,"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":715,"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":3632,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["baserepo:63",{"_index":6976,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["baseresponsemapper",{"_index":2444,"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":1460,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["baseuc",{"_index":2454,"title":{"classes/BaseUc.html":{}},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseuc:12",{"_index":3798,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseuc:28",{"_index":3800,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseuc:44",{"_index":3799,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["baseurl",{"_index":2136,"title":{},"body":{"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":7345,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["bash",{"_index":23613,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["basic",{"_index":13417,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["basictoolconfig",{"_index":2486,"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":9210,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["basictoolconfigentity",{"_index":2499,"title":{"classes/BasicToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["basictoolconfigfactory",{"_index":7342,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigfactory.build",{"_index":7391,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigparams",{"_index":2509,"title":{"classes/BasicToolConfigParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["basictoolconfigresponse",{"_index":2519,"title":{"classes/BasicToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["basictoollaunchstrategy",{"_index":2527,"title":{"injectables/BasicToolLaunchStrategy.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["batch",{"_index":7999,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["batchcounter",{"_index":8037,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["batchsize",{"_index":7989,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["bbb",{"_index":1955,"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":1938,"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":1979,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["bbbbaseresponse",{"_index":1949,"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":1957,"title":{"classes/BBBCreateConfig.html":{}},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbcreateconfigbuilder",{"_index":2001,"title":{"classes/BBBCreateConfigBuilder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["bbbcreateresponse",{"_index":2044,"title":{"interfaces/BBBCreateResponse.html":{}},"body":{"interfaces/BBBCreateResponse.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfig",{"_index":2056,"title":{"classes/BBBJoinConfig.html":{}},"body":{"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfigbuilder",{"_index":2078,"title":{"classes/BBBJoinConfigBuilder.html":{}},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["bbbjoinresponse",{"_index":2095,"title":{"interfaces/BBBJoinResponse.html":{}},"body":{"interfaces/BBBJoinResponse.html":{}}}],["bbbmeetinginforesponse",{"_index":2101,"title":{"interfaces/BBBMeetingInfoResponse.html":{}},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbresp",{"_index":2202,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.message",{"_index":2208,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.returncode",{"_index":2205,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresponse",{"_index":2127,"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":2024,"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":2039,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbrole.viewer",{"_index":2041,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbservice",{"_index":2129,"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":2211,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:end",{"_index":2217,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:getmeetinginfo",{"_index":2219,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbsettings",{"_index":2143,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbstatus",{"_index":1954,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/BBBService.html":{}}}],["bbbstatus.success",{"_index":2206,"title":{},"body":{"injectables/BBBService.html":{}}}],["bc",{"_index":1780,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["bcc",{"_index":1313,"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":875,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LocalStrategy.html":{}}}],["bcrypt.compare(comparepassword",{"_index":911,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcrypt.compare(enteredpassword",{"_index":14426,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["bcrypt.hash(password",{"_index":915,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcryptjs",{"_index":876,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/LocalStrategy.html":{},"dependencies.html":{}}}],["bearer",{"_index":1445,"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":22422,"title":{},"body":{"license.html":{}}}],["becoming",{"_index":23730,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["beetween",{"_index":4283,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["before",{"_index":355,"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":23513,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeall(async",{"_index":23491,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeeach",{"_index":23514,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforehand",{"_index":23082,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["beginning",{"_index":22335,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["behalf",{"_index":22528,"title":{},"body":{"license.html":{}}}],["behaves",{"_index":23379,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["behavior",{"_index":755,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["behaviour",{"_index":6502,"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":20330,"title":{},"body":{"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["being",{"_index":2401,"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":22832,"title":{},"body":{"license.html":{}}}],["belong",{"_index":4128,"title":{},"body":{"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["belongs",{"_index":5563,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["below",{"_index":22534,"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":22406,"title":{},"body":{"license.html":{}}}],["ber",{"_index":4895,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["berechtigungen",{"_index":4878,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["beside",{"_index":23064,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["best",{"_index":22930,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["better",{"_index":22946,"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":9718,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["between",{"_index":562,"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":23180,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["beyond",{"_index":22601,"title":{},"body":{"license.html":{}}}],["bezeichnung",{"_index":18019,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["big",{"_index":23169,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bigbluebutton",{"_index":21859,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["bigbluebutton/api/${callname",{"_index":2234,"title":{},"body":{"injectables/BBBService.html":{}}}],["binary",{"_index":6304,"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":10062,"title":{},"body":{"classes/FileParams.html":{}}}],["bind",{"_index":13804,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["binding",{"_index":13851,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["bis",{"_index":18034,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["blackbox",{"_index":23402,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["block",{"_index":23436,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["blocked",{"_index":10114,"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":23405,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["blti",{"_index":5233,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_bundle",{"_index":5240,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_icon",{"_index":5242,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["bn",{"_index":3251,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["bn.type",{"_index":3255,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["board",{"_index":1885,"title":{"entities/Board.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"classes/BaseUc.html":{},"entities/Board.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"interfaces/BoardDoBuilder.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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":{},"modules/ToolApiModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["board.'})@apiresponse({status",{"_index":2875,"title":{},"body":{"controllers/BoardController.html":{}}}],["board.children.map((column",{"_index":3674,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.context",{"_index":3808,"title":{},"body":{"injectables/BoardUc.html":{}}}],["board.context.type",{"_index":1887,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["board.createdat",{"_index":3680,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.displaycolor",{"_index":17684,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.do",{"_index":2819,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["board.do.factory.ts",{"_index":4796,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.factory.ts:10",{"_index":4798,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.ts",{"_index":4751,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["board.do.ts:10",{"_index":4756,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:14",{"_index":4758,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:18",{"_index":4760,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:6",{"_index":4755,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.elements.foreach((element",{"_index":17686,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.getbytargetid(elementid",{"_index":17844,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.id",{"_index":3514,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{}}}],["board.isarchived",{"_index":17685,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.module",{"_index":2704,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["board.references.getitems",{"_index":3647,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.references.init",{"_index":3646,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.reorderelements(orderedlist",{"_index":17847,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.response",{"_index":3411,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.response.ts",{"_index":2712,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:15",{"_index":2718,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:19",{"_index":2721,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:22",{"_index":2719,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:25",{"_index":2717,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:28",{"_index":2722,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:31",{"_index":2716,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:4",{"_index":2715,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.roomid",{"_index":17683,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.service.ts",{"_index":4814,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:145",{"_index":4823,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:20",{"_index":4819,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:27",{"_index":4832,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:33",{"_index":4833,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:39",{"_index":4830,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:52",{"_index":4835,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:57",{"_index":4821,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:72",{"_index":4828,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:76",{"_index":4838,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:81",{"_index":4825,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.syncboardelementreferences(boardelementtargets",{"_index":17816,"title":{},"body":{"injectables/RoomsService.html":{}}}],["board.title",{"_index":3673,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardService.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.types",{"_index":8165,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["board.updatedat",{"_index":3679,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board/board",{"_index":2711,"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":2608,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:29",{"_index":2613,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:32",{"_index":2617,"title":{},"body":{"entities/Board.html":{}}}],["board/board.response.ts",{"_index":18951,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:19",{"_index":18956,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:25",{"_index":18957,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:30",{"_index":18953,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:36",{"_index":18954,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:41",{"_index":18955,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:6",{"_index":18952,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/boardelement.entity.ts",{"_index":3391,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:26",{"_index":3394,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:30",{"_index":3392,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/column",{"_index":4909,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{}}}],["board/lesson",{"_index":14150,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["board/task",{"_index":19622,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardapimodule",{"_index":2689,"title":{"modules/BoardApiModule.html":{}},"body":{"modules/BoardApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["boardauthorizable",{"_index":19210,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardauthorizable.users.filter((user",{"_index":19212,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardcolumnboardresponse",{"_index":2709,"title":{"classes/BoardColumnBoardResponse.html":{}},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardcomposite",{"_index":2727,"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":8719,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:14",{"_index":4743,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:17",{"_index":8717,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:19",{"_index":3967,"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":8718,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{}}}],["boardcomposite:22",{"_index":4754,"title":{},"body":{"classes/ColumnBoard.html":{},"classes/RichTextElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:23",{"_index":4742,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:25",{"_index":9916,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:26",{"_index":3966,"title":{},"body":{"classes/Card.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:27",{"_index":4752,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:28",{"_index":19122,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:29",{"_index":9917,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:30",{"_index":17540,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:31",{"_index":4753,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:32",{"_index":19123,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:35",{"_index":3969,"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":3964,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:37",{"_index":14338,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:39",{"_index":3968,"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":3965,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:41",{"_index":14336,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:45",{"_index":14337,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcompositeprops",{"_index":2781,"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":2738,"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":2742,"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":2918,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse",{"_index":2854,"title":{"classes/BoardContextResponse.html":{}},"body":{"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{}}}],["boardcontextresponse(boardcontext",{"_index":2920,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse})@apiresponse({status",{"_index":2888,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontroller",{"_index":2699,"title":{"controllers/BoardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{}}}],["boardcopy",{"_index":2995,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyparams",{"_index":2951,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyservice",{"_index":2932,"title":{"injectables/BoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{}}}],["boarddo",{"_index":2469,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddo.id",{"_index":3103,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["boarddoauthorizable",{"_index":2473,"title":{"classes/BoardDoAuthorizable.html":{}},"body":{"classes/BaseUc.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizable.requireduserrole",{"_index":2475,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find",{"_index":3363,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find((u",{"_index":2478,"title":{},"body":{"classes/BaseUc.html":{}}}],["boarddoauthorizableprops",{"_index":3082,"title":{"interfaces/BoardDoAuthorizableProps.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizableservice",{"_index":2459,"title":{"injectables/BoardDoAuthorizableService.html":{}},"body":{"classes/BaseUc.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["boarddobuilder",{"_index":3123,"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":3164,"title":{"classes/BoardDoBuilderImpl.html":{}},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(children).builddomainobject(boardnode",{"_index":3326,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(descendants).builddomainobject(boardnode",{"_index":3317,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddocopyparams",{"_index":3264,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["boarddocopyservice",{"_index":3261,"title":{"injectables/BoardDoCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["boarddorepo",{"_index":3091,"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":1700,"title":{"injectables/BoardDoRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoRule.html":{},"injectables/RuleManager.html":{}}}],["boarddos",{"_index":4165,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddos.map((boarddo",{"_index":4189,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddoservice",{"_index":3368,"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":2629,"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":2631,"title":{},"body":{"entities/Board.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts",{"_index":14151,"title":{},"body":{"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts:13",{"_index":14152,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["boardelement.entity.ts:16",{"_index":19623,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardelement.ts",{"_index":5037,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelement.ts:13",{"_index":5039,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelementprops",{"_index":3397,"title":{},"body":{"entities/BoardElement.html":{}}}],["boardelementreference",{"_index":2630,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{}}}],["boardelementresponse",{"_index":3401,"title":{"classes/BoardElementResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["boardelements",{"_index":2956,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelements.map((element",{"_index":3007,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelementservice",{"_index":20704,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardelementtarget",{"_index":2687,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets",{"_index":17815,"title":{},"body":{"injectables/RoomsService.html":{}}}],["boardelementtargets.filter(isnotcontained).map(maptoboardelement",{"_index":2683,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets.includes(ref.target",{"_index":2673,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtype",{"_index":2975,"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":3019,"title":{},"body":{"injectables/BoardCopyService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.lesson",{"_index":3016,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.task",{"_index":3012,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardexternalreference",{"_index":3297,"title":{"interfaces/BoardExternalReference.html":{}},"body":{"injectables/BoardDoRepo.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardUc.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{}}}],["boardexternalreferencetype",{"_index":1865,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":1888,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/RoomsService.html":{}}}],["boardid",{"_index":3464,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"injectables/ColumnBoardService.html":{}}}],["boardids",{"_index":4836,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["boardlessonresponse",{"_index":3405,"title":{"classes/BoardLessonResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardmanagementconsole",{"_index":3441,"title":{"classes/BoardManagementConsole.html":{}},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["boardmanagementuc",{"_index":3447,"title":{"injectables/BoardManagementUc.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ManagementModule.html":{}}}],["boardmodule",{"_index":1770,"title":{"modules/BoardModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/LearnroomModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules.html":{}}}],["boardnode",{"_index":3112,"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":3222,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.ancestorids",{"_index":3343,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.caption",{"_index":3220,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.completed",{"_index":3233,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.context",{"_index":3208,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.contextexternaltool?.id",{"_index":3236,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.createdat",{"_index":3206,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.duedate",{"_index":3231,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.entity",{"_index":4069,"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":3258,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.height",{"_index":3217,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.id",{"_index":3204,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnode.imageurl",{"_index":3225,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.inputformat",{"_index":3228,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.joinpath(props.parent.path",{"_index":3567,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.joinpath(this.path",{"_index":3579,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.parentid",{"_index":3340,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.text",{"_index":3226,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.title",{"_index":3205,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.updatedat",{"_index":3207,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.url",{"_index":3223,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.usedobuilder(this",{"_index":3199,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.userid",{"_index":3234,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnodeauthorizableservice",{"_index":12139,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["boardnodeprops",{"_index":3561,"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":3283,"title":{"injectables/BoardNodeRepo.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnodes",{"_index":3321,"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":3324,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.map((o",{"_index":3337,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.reduce((map",{"_index":3329,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodetype",{"_index":3190,"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":3209,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["boardnodetype.column",{"_index":3201,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{}}}],["boardnodetype.column_board",{"_index":4806,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["boardnodetype.external_tool",{"_index":3215,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["boardnodetype.file_element",{"_index":3211,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["boardnodetype.link_element",{"_index":3212,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["boardnodetype.rich_text_element",{"_index":3213,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["boardnodetype.submission_container_element",{"_index":3214,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["boardnodetype.submission_item",{"_index":3229,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardprops",{"_index":2639,"title":{},"body":{"entities/Board.html":{}}}],["boardrepo",{"_index":2944,"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":2905,"title":{"classes/BoardResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper",{"_index":2909,"title":{"classes/BoardResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper.maptoresponse(board",{"_index":2916,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardresponse})@apiresponse({status",{"_index":2893,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardroles",{"_index":3070,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"interfaces/UserBoardRoles.html":{}}}],["boardroles.editor",{"_index":3117,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boardroles.reader",{"_index":3122,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boards",{"_index":2866,"title":{},"body":{"controllers/BoardController.html":{},"injectables/ColumnBoardService.html":{}}}],["boardservice",{"_index":20705,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardstatus",{"_index":2974,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["boardstatus.elements",{"_index":3052,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardsubmissioncontroller",{"_index":2703,"title":{"controllers/BoardSubmissionController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["boardtask",{"_index":17692,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.availabledate",{"_index":17707,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.course",{"_index":17703,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.createdat",{"_index":17700,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.description",{"_index":17713,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.duedate",{"_index":17709,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.getparentdata",{"_index":17694,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.id",{"_index":17698,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.name",{"_index":17699,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.updatedat",{"_index":17701,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc",{"_index":17693,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc.color",{"_index":17711,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskresponse",{"_index":3404,"title":{"classes/BoardTaskResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatus",{"_index":17695,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper",{"_index":3752,"title":{"classes/BoardTaskStatusMapper.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper.maptoresponse(status",{"_index":17696,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusresponse",{"_index":3748,"title":{"classes/BoardTaskStatusResponse.html":{}},"body":{"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{}}}],["boardtaskstatusresponse(status",{"_index":3758,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["boarduc",{"_index":2693,"title":{"injectables/BoardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["boardurlparams",{"_index":2873,"title":{"classes/BoardUrlParams.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardUrlParams.html":{}}}],["boardvalue",{"_index":1878,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["body",{"_index":324,"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/MetaTagExtractorController.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":21211,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.create",{"_index":20184,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.delete",{"_index":20185,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.destinationcourseid",{"_index":18747,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.expiresindays",{"_index":18736,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.mandatory",{"_index":21205,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.newname",{"_index":18746,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parentid",{"_index":18734,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parenttype",{"_index":18733,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.read",{"_index":20186,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.redirecturi",{"_index":21212,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.schoolexclusive",{"_index":18735,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.session",{"_index":15959,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["body.share",{"_index":20187,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.systemid",{"_index":21210,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.write",{"_index":20188,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["bodyparams",{"_index":2897,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/MetaTagExtractorController.html":{}}}],["bodyparams.completed",{"_index":3727,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.data.content",{"_index":8293,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.height",{"_index":4043,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.title",{"_index":2925,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["bodyparams.toboardid",{"_index":4975,"title":{},"body":{"controllers/ColumnController.html":{}}}],["bodyparams.tocardid",{"_index":8289,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.tocolumnid",{"_index":4039,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.toposition",{"_index":4040,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.url",{"_index":14844,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["bodyproperties",{"_index":2595,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["bom",{"_index":22279,"title":{},"body":{"dependencies.html":{}}}],["boolean",{"_index":119,"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":11664,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["bootstrap",{"_index":207,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":20314,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts",{"_index":20296,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts:8",{"_index":20298,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrapconsole",{"_index":20305,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstraps",{"_index":23489,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["both",{"_index":22865,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bound",{"_index":14386,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["box",{"_index":23485,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["branch",{"_index":936,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["break",{"_index":5257,"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":23721,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["breakout",{"_index":2105,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["breakoutrooms",{"_index":2106,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["bring",{"_index":7053,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["broadcast",{"_index":980,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["broken",{"_index":23177,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["broker",{"_index":13394,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["brokerconfig",{"_index":19575,"title":{},"body":{"injectables/SystemService.html":{}}}],["brokering",{"_index":23620,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["browse",{"_index":22953,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application.html":{}}}],["browser",{"_index":22951,"title":{},"body":{"modules.html":{}}}],["brute",{"_index":73,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{}}}],["bruteforceerror",{"_index":1552,"title":{"classes/BruteForceError.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["bruteforceerror(timetowait",{"_index":1580,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["bson",{"_index":524,"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":3838,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["bsonconverter",{"_index":3826,"title":{"injectables/BsonConverter.html":{}},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["bsondocuments",{"_index":3837,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["btw",{"_index":2374,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bucket",{"_index":6338,"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":23850,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buffer",{"_index":7064,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"classes/JwtTestFactory.html":{}}}],["buffer.from(externaltool.logo",{"_index":8879,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(manifest",{"_index":5209,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(newresource.content",{"_index":5190,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(resource.content",{"_index":5195,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(response.data",{"_index":8891,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(tool.logo",{"_index":8900,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.length",{"_index":8881,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.tostring('base64",{"_index":8893,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["bufferencoding",{"_index":10406,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["bug",{"_index":12569,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["bugs",{"_index":22959,"title":{},"body":{"properties.html":{}}}],["build",{"_index":454,"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":10319,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["build(id",{"_index":6328,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["build(name",{"_index":9899,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["build(params",{"_index":488,"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":18499,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["build(requiredpermissions",{"_index":1620,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["build(schoolid",{"_index":10056,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["build(type",{"_index":5615,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["build(userid",{"_index":6349,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["buildaccount",{"_index":20905,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildaccount(user",{"_index":660,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin",{"_index":674,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin(params",{"_index":20908,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildcard",{"_index":3126,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcard(boardnode",{"_index":3135,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren",{"_index":3169,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren(boardnode",{"_index":3177,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn",{"_index":3127,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn(boardnode",{"_index":3138,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard",{"_index":3128,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard(boardnode",{"_index":3141,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcopyentitydict",{"_index":6416,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["buildcopyentitydict(status",{"_index":6419,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["builddomainobject",{"_index":3170,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddomainobject(boardnode",{"_index":3181,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddtowithelements",{"_index":8128,"title":{},"body":{"classes/DtoCreator.html":{}}}],["builddtowithelements(elements",{"_index":8142,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["builder",{"_index":2004,"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":5096,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.build",{"_index":5091,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.buildcard(this",{"_index":4073,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["builder.buildcolumn(this",{"_index":4983,"title":{},"body":{"entities/ColumnNode.html":{}}}],["builder.buildcolumnboard(this",{"_index":4813,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["builder.buildexternaltoolelement(this",{"_index":8747,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["builder.buildfileelement(this",{"_index":9946,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["builder.buildlinkelement(this",{"_index":14368,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["builder.buildrichtextelement(this",{"_index":17568,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["builder.buildsubmissioncontainerelement(this",{"_index":19070,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["builder.buildsubmissionitem(this",{"_index":19156,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["builder.ts",{"_index":5147,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:24",{"_index":11875,"title":{},"body":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:28",{"_index":11872,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:30",{"_index":11873,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:32",{"_index":11874,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:35",{"_index":5316,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:42",{"_index":5319,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:46",{"_index":5321,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:52",{"_index":5317,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:63",{"_index":5158,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:65",{"_index":5160,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:67",{"_index":5157,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:69",{"_index":5156,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:73",{"_index":5163,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:79",{"_index":5166,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:88",{"_index":5167,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder:2",{"_index":2010,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["builder:26",{"_index":2011,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["builder:8",{"_index":2089,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["buildexternaltool",{"_index":5610,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildexternaltoolelement",{"_index":3129,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildexternaltoolelement(boardnode",{"_index":3144,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfile",{"_index":5611,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/PreviewGeneratorBuilder.html":{}}}],["buildfile(preview",{"_index":16699,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["buildfileelement",{"_index":3130,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfileelement(boardnode",{"_index":3147,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfromaxiosresponse",{"_index":9897,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromaxiosresponse(name",{"_index":9901,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest",{"_index":9898,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest(fileinfo",{"_index":9903,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildgroupsclaim",{"_index":12636,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildgroupsclaim(teams",{"_index":12642,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildlink",{"_index":5612,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildlinkelement",{"_index":3131,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildlinkelement(boardnode",{"_index":3150,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildlist",{"_index":455,"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":494,"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":7333,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["buildlistwitheachtype(params",{"_index":7334,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["buildlistwithid",{"_index":456,"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":496,"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":8840,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildlogourl(template",{"_index":8847,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildoptions",{"_index":491,"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":16670,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildparams(filerecord",{"_index":16672,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload",{"_index":16671,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload(params",{"_index":16674,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildrichtext",{"_index":5613,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildrichtextelement",{"_index":3132,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildrichtextelement(boardnode",{"_index":3153,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["builds",{"_index":2169,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["buildscope",{"_index":5909,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildscope(query",{"_index":5914,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildstudent",{"_index":663,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildstudent(params",{"_index":20910,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildsubmissioncontainer",{"_index":5614,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildsubmissioncontainerelement",{"_index":3133,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissioncontainerelement(boardnode",{"_index":3156,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem",{"_index":3134,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem(boardnode",{"_index":3159,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildteacher",{"_index":670,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildteacher(params",{"_index":20912,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildtokenrequestpayload",{"_index":15503,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtokenrequestpayload(code",{"_index":15519,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtoollaunchdatafromconcreteconfig",{"_index":2533,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromconcreteconfig(userid",{"_index":2546,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool",{"_index":2539,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool(externaltool",{"_index":2567,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools",{"_index":2540,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools(data",{"_index":2571,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload",{"_index":2534,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload(url",{"_index":2549,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl",{"_index":2541,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl(toollaunchdatado",{"_index":2573,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildwithid",{"_index":457,"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":498,"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":668,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["built",{"_index":476,"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":13419,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["bundle",{"_index":22965,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["busboy",{"_index":9906,"title":{},"body":{"classes/FileDtoBuilder.html":{},"dependencies.html":{}}}],["business",{"_index":3853,"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":1221,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ForbiddenOperationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/ValidationError.html":{}}}],["businesserror",{"_index":1205,"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":1212,"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":1217,"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":1216,"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":1215,"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":1214,"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":1218,"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":23362,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["businesslogic",{"_index":23223,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["button",{"_index":16580,"title":{},"body":{"classes/PageContentResponse.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["byavailable",{"_index":19961,"title":{},"body":{"classes/TaskScope.html":{}}}],["byavailable(availabledate",{"_index":19973,"title":{},"body":{"classes/TaskScope.html":{}}}],["byclasses",{"_index":12998,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclasses(classes",{"_index":13007,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclientid",{"_index":9338,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(clientid",{"_index":9341,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(query.clientid",{"_index":9101,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["bycontextid",{"_index":6062,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontextid(contextid",{"_index":6072,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype",{"_index":6063,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype(contexttype",{"_index":6074,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycourseids",{"_index":14285,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycourseids(courseids",{"_index":14286,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycreator",{"_index":15245,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreator(creatorid",{"_index":15249,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreatorid",{"_index":19962,"title":{},"body":{"classes/TaskScope.html":{}}}],["bycreatorid(creatorid",{"_index":19975,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft",{"_index":19963,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft(isdraft",{"_index":19976,"title":{},"body":{"classes/TaskScope.html":{}}}],["byexpires",{"_index":10276,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["byfilerecordid",{"_index":10294,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfilerecordid(filerecordid",{"_index":10299,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfinished",{"_index":19964,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfinished(userid",{"_index":19978,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfirstname",{"_index":12999,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byfirstname(firstname",{"_index":13009,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byhidden",{"_index":9339,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(ishidden",{"_index":9343,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(query.ishidden",{"_index":9102,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byid",{"_index":6064,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byid(id",{"_index":6076,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bylastname",{"_index":13000,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylastname(lastname",{"_index":13011,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylessonids",{"_index":19965,"title":{},"body":{"classes/TaskScope.html":{}}}],["bylessonids(lessonids",{"_index":19979,"title":{},"body":{"classes/TaskScope.html":{}}}],["byloginname",{"_index":13001,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byloginname(loginname",{"_index":13013,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymarkedfordelete",{"_index":10295,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymarkedfordelete(ismarked",{"_index":10301,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymatches",{"_index":13002,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymatches(matches",{"_index":13016,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byname",{"_index":9340,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(name",{"_index":9345,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(query.name",{"_index":9100,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byonlycreatorid",{"_index":19966,"title":{},"body":{"classes/TaskScope.html":{}}}],["byonlycreatorid(creatorid",{"_index":19981,"title":{},"body":{"classes/TaskScope.html":{}}}],["byparentid",{"_index":10296,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byparentid(parentid",{"_index":10304,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bypassdocumentvalidation",{"_index":7967,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["bypasstest",{"_index":1134,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["bypseudonym",{"_index":17051,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(pseudonym",{"_index":17054,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(query.pseudonym",{"_index":9070,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bypublished",{"_index":15246,"title":{},"body":{"classes/NewsScope.html":{}}}],["byrole",{"_index":13003,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byrole(rolename",{"_index":13018,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool",{"_index":13004,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool(school",{"_index":13020,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschoolid",{"_index":10297,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschoolid(query.schoolid",{"_index":21001,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["byschoolid(schoolid",{"_index":10306,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschooltoolid",{"_index":6065,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byschooltoolid(schooltoolid",{"_index":6078,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bysecuritycheckrequesttoken",{"_index":10298,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bysecuritycheckrequesttoken(token",{"_index":10308,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bytargets",{"_index":15247,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytargets(targets",{"_index":15251,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytes",{"_index":10820,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["bytesrange",{"_index":10814,"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":17052,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["bytoolid(query.toolid",{"_index":9071,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bytoolid(toolid",{"_index":17056,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["byunpublished",{"_index":15248,"title":{},"body":{"classes/NewsScope.html":{}}}],["byuserid",{"_index":17053,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuserid(query.userid",{"_index":9072,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["byuserid(userid",{"_index":17058,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuseridquery",{"_index":19232,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byuseridquery(userid",{"_index":19235,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byusermatch",{"_index":13005,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byusermatch(user",{"_index":13022,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["c",{"_index":510,"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":20056,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished",{"_index":20075,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished()).map((c",{"_index":20055,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.user",{"_index":14312,"title":{},"body":{"injectables/LessonService.html":{}}}],["cache",{"_index":3894,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/OauthAdapterService.html":{},"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{},"dependencies.html":{}}}],["cache_manager",{"_index":13215,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachedstate",{"_index":16324,"title":{},"body":{"injectables/OauthUc.html":{}}}],["cacheexpiration",{"_index":17630,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["cachemanager",{"_index":13205,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachemodule",{"_index":3891,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemodule.registerasync",{"_index":3898,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemoduleoptions",{"_index":3892,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cacheservice",{"_index":3876,"title":{"injectables/CacheService.html":{}},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cacheservice.getstoretype",{"_index":3899,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachestoretype",{"_index":3880,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachestoretype.memory",{"_index":3886,"title":{},"body":{"injectables/CacheService.html":{}}}],["cachestoretype.redis",{"_index":3885,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachewrappermodule",{"_index":1357,"title":{"modules/CacheWrapperModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CacheWrapperModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["caf",{"_index":13037,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["cafe",{"_index":13039,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["calculatenumberofsubmitters(submissions",{"_index":12527,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["calculations",{"_index":23203,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["calendareventdto",{"_index":3908,"title":{"classes/CalendarEventDto.html":{}},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["calendarmapper",{"_index":3918,"title":{"injectables/CalendarMapper.html":{}},"body":{"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarmodule",{"_index":3933,"title":{"modules/CalendarModule.html":{}},"body":{"modules/CalendarModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["calendarservice",{"_index":3937,"title":{"injectables/CalendarService.html":{}},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarservice:findevent",{"_index":3961,"title":{},"body":{"injectables/CalendarService.html":{}}}],["call",{"_index":478,"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":2170,"title":{},"body":{"injectables/BBBService.html":{}}}],["callback",{"_index":23467,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["callback_uri",{"_index":1191,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["callbackuri",{"_index":1185,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["calld",{"_index":23512,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["called",{"_index":475,"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":8230,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["calling",{"_index":16644,"title":{},"body":{"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callkcadminclient",{"_index":13255,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["callname",{"_index":2162,"title":{},"body":{"injectables/BBBService.html":{}}}],["calls",{"_index":16880,"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":23299,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["can't",{"_index":1397,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cancel",{"_index":16579,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["cancelbuttonurl",{"_index":16545,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["caninline",{"_index":5215,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["canmap",{"_index":2447,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["canmap(element",{"_index":2448,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["cant",{"_index":23235,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["capabilities",{"_index":23093,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["caption",{"_index":3219,"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":9925,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["card",{"_index":2795,"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/ColumnUc.html":{},"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.'})@apiextramodels(externaltoolelementresponse",{"_index":3995,"title":{},"body":{"controllers/CardController.html":{}}}],["card.'})@apiresponse({status",{"_index":4001,"title":{},"body":{"controllers/CardController.html":{}}}],["card.addchild(text1",{"_index":4871,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text2",{"_index":4887,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text3",{"_index":4899,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text4",{"_index":4906,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.body.params",{"_index":4970,"title":{},"body":{"controllers/ColumnController.html":{}}}],["card.body.params.ts",{"_index":7046,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:10",{"_index":15035,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:13",{"_index":7049,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["card.body.params.ts:18",{"_index":15037,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.children.map((element",{"_index":4094,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.constructor.name",{"_index":4998,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["card.createdat",{"_index":4096,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.do",{"_index":2818,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["card.height",{"_index":4093,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.id",{"_index":4091,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.response",{"_index":4065,"title":{},"body":{"classes/CardListResponse.html":{}}}],["card.title",{"_index":4092,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.updatedat",{"_index":4095,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["cardcontroller",{"_index":2701,"title":{"controllers/CardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{}}}],["cardid",{"_index":4112,"title":{},"body":{"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnUc.html":{}}}],["cardidparams",{"_index":4005,"title":{},"body":{"controllers/CardController.html":{}}}],["cardidparams.ids",{"_index":4032,"title":{},"body":{"controllers/CardController.html":{}}}],["cardids",{"_index":4030,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardidsparams",{"_index":4006,"title":{"classes/CardIdsParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardIdsParams.html":{}}}],["cardlistresponse",{"_index":4023,"title":{"classes/CardListResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardListResponse.html":{}}}],["cardlistresponse})@apiresponse({status",{"_index":4008,"title":{},"body":{"controllers/CardController.html":{}}}],["cardnode",{"_index":3136,"title":{"entities/CardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["cardnodefactory",{"_index":3493,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodefactory.build",{"_index":3517,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodeprops",{"_index":4070,"title":{"interfaces/CardNodeProps.html":{}},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["cardprops",{"_index":3986,"title":{"interfaces/CardProps.html":{}},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["cardresponse",{"_index":4063,"title":{"classes/CardResponse.html":{}},"body":{"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper",{"_index":4028,"title":{"classes/CardResponseMapper.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper.maptoresponse(card",{"_index":4035,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["cardresponses",{"_index":4034,"title":{},"body":{"controllers/CardController.html":{}}}],["cardresponse})@apiresponse({status",{"_index":4954,"title":{},"body":{"controllers/ColumnController.html":{}}}],["cards",{"_index":3210,"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":3510,"title":{},"body":{"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{}}}],["cards.some((card",{"_index":4126,"title":{},"body":{"injectables/CardService.html":{}}}],["cardservice",{"_index":3535,"title":{"injectables/CardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{}}}],["cardskeletonresponse",{"_index":4139,"title":{"classes/CardSkeletonResponse.html":{}},"body":{"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardspercolumn",{"_index":3503,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardspercolumn.flat",{"_index":3507,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["carduc",{"_index":2694,"title":{"injectables/CardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["cardurlparams",{"_index":3994,"title":{"classes/CardUrlParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardUrlParams.html":{}}}],["care",{"_index":23271,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["careful",{"_index":23587,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["carefully",{"_index":23535,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cares",{"_index":23365,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["carry",{"_index":22581,"title":{},"body":{"license.html":{}}}],["cartridge",{"_index":5044,"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":11865,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{}}}],["cartridge/common",{"_index":5146,"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":5083,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["cartridge_basiclti_link",{"_index":5224,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_bundle",{"_index":5238,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_icon",{"_index":5241,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cascading",{"_index":5388,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["case",{"_index":1246,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/AutoContextNameStrategy.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":5453,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["cases",{"_index":1765,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/TaskFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cast",{"_index":1450,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["catch",{"_index":1178,"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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":2209,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["catch(error",{"_index":10894,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["catcherror",{"_index":966,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["catcherror((e",{"_index":1083,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["catcherror((err",{"_index":17479,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["cause",{"_index":3859,"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":8478,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["caution",{"_index":13902,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["cc",{"_index":1312,"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":22743,"title":{},"body":{"license.html":{}}}],["ceating",{"_index":11945,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["centralldap",{"_index":18372,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["certain",{"_index":22706,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cessation",{"_index":22752,"title":{},"body":{"license.html":{}}}],["ch.id",{"_index":2775,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["chaining",{"_index":23373,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["chains",{"_index":22988,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["chalk",{"_index":22195,"title":{},"body":{"dependencies.html":{}}}],["challenge",{"_index":4198,"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":4196,"title":{"classes/ChallengeParams.html":{}},"body":{"classes/ChallengeParams.html":{},"controllers/OauthProviderController.html":{}}}],["change",{"_index":5106,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.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":10425,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"additional-documentation/nestjs-application.html":{}}}],["changefinishedforuser",{"_index":20024,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changefinishedforuser(userid",{"_index":20030,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changelanguage",{"_index":20922,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguage(params",{"_index":20923,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguageparams",{"_index":4200,"title":{"classes/ChangeLanguageParams.html":{}},"body":{"classes/ChangeLanguageParams.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["changes",{"_index":13852,"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":21159,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["channel",{"_index":17171,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["chapter",{"_index":2432,"title":{},"body":{"injectables/BaseRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["character",{"_index":745,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["characterized",{"_index":22683,"title":{},"body":{"license.html":{}}}],["characters",{"_index":10382,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/MongoPatterns.html":{}}}],["charge",{"_index":22389,"title":{},"body":{"license.html":{}}}],["chat",{"_index":1103,"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":17581,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.module.ts:7",{"_index":17582,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service",{"_index":17584,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service.ts",{"_index":961,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["chat.service.ts:42",{"_index":17579,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:44",{"_index":17578,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:47",{"_index":17577,"title":{},"body":{"classes/RocketChatError.html":{}}}],["check",{"_index":937,"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":10000,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["check.entity.ts",{"_index":10323,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["check.entity.ts:14",{"_index":10331,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:17",{"_index":10327,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:20",{"_index":10328,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:23",{"_index":10326,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:26",{"_index":10325,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.service.ts",{"_index":14932,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:15",{"_index":14937,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:8",{"_index":14935,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["checkallpermissions",{"_index":1800,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkallpermissions(user",{"_index":1806,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkandaddprefix",{"_index":20272,"title":{},"body":{"classes/TestApiClient.html":{}}}],["checkandaddprefix(inputpath",{"_index":1495,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["checkavaiblelanguages",{"_index":21727,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavaiblelanguages(settedlanguage",{"_index":21729,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavailablelanguages",{"_index":21670,"title":{},"body":{"injectables/UserService.html":{}}}],["checkavailablelanguages(language",{"_index":21676,"title":{},"body":{"injectables/UserService.html":{}}}],["checkbrutforce",{"_index":1519,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkbrutforce(account",{"_index":1528,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkcontextreadpermission",{"_index":18869,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcontextreadpermission(userid",{"_index":18875,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission",{"_index":18870,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission(userid",{"_index":18877,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcredentials",{"_index":13809,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["checkcredentials(account",{"_index":13814,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkcredentials(enteredpassword",{"_index":14402,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["checkcustomparameterentries",{"_index":5412,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkcustomparameterentries(loadedexternaltool",{"_index":5420,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkdestinationcourseauthorisation",{"_index":19711,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorisation(authorizableuser",{"_index":19718,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorization",{"_index":14167,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationcourseauthorization(user",{"_index":14171,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationlessonauthorization",{"_index":19712,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationlessonauthorization(authorizableuser",{"_index":19720,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkduplicateincontext",{"_index":6164,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checkduplicateincontext(contextexternaltool",{"_index":6169,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checked",{"_index":1398,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/HydraSsoService.html":{}}}],["checkentitypermissions",{"_index":9668,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkentitypermissions(userid",{"_index":9673,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkerror",{"_index":10699,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkerror(response",{"_index":10708,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkexpired",{"_index":18837,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkexpired(sharetoken",{"_index":18844,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkfeatureenabled",{"_index":6766,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["checkfeatureenabled(parenttype",{"_index":18879,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkforduplicateparameters",{"_index":5413,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkforduplicateparameters(validatabletool",{"_index":5424,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkifpreviewpossible",{"_index":16778,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checkifpreviewpossible(filerecord",{"_index":16784,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checking",{"_index":10950,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkinputisvalid",{"_index":23845,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["checkldapcredentials",{"_index":13777,"title":{},"body":{"injectables/LdapService.html":{}}}],["checkldapcredentials(system",{"_index":13779,"title":{},"body":{"injectables/LdapService.html":{}}}],["checklist",{"_index":22341,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checklistscontainingequalentities(first",{"_index":2661,"title":{},"body":{"entities/Board.html":{}}}],["checkofficialschoolnumbersmatch",{"_index":18393,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkofficialschoolnumbersmatch(schooldo",{"_index":18402,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkoneofpermissions",{"_index":1801,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoneofpermissions(user",{"_index":1808,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoptionalparameter",{"_index":5414,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoptionalparameter(param",{"_index":5426,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoriginallessonauthorization",{"_index":14168,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginallessonauthorization(user",{"_index":14174,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginaltaskauthorization",{"_index":19713,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkoriginaltaskauthorization(authorizableuser",{"_index":19723,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkout",{"_index":22345,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checkparameterregex",{"_index":5415,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparameterregex(foundentry",{"_index":5429,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype",{"_index":5416,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype(foundentry",{"_index":5431,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparentwritepermission",{"_index":18871,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkparentwritepermission(userid",{"_index":18881,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkpermission",{"_index":1802,"title":{},"body":{"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkpermission(user",{"_index":1810,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermission(userid",{"_index":2461,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["checkpermissionbyreferences",{"_index":1782,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpermissionbyreferences(userid",{"_index":1786,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpreconditions",{"_index":18984,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checkpreconditions(userid",{"_index":18986,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checks",{"_index":11628,"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":14109,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkschoolauthorization(authorizableuser",{"_index":14111,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkscopeandvalidateparameter",{"_index":5417,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkscopeandvalidateparameter(validatabletool",{"_index":5433,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkshorttitle",{"_index":7552,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["checkstream",{"_index":1143,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstream(stream",{"_index":1150,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstreamresponsive",{"_index":17902,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checkstreamresponsive(stream",{"_index":17909,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checksubmissionitemwritepermission",{"_index":2456,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["checksubmissionitemwritepermission(userid",{"_index":2465,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["checksum",{"_index":2160,"title":{},"body":{"injectables/BBBService.html":{}}}],["checkvalue",{"_index":13810,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkvalue(value",{"_index":13816,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkversionmatch",{"_index":18326,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["checkversionmatch(schoolexternaltoolversion",{"_index":18328,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["child",{"_index":2747,"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":17354,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["child.acceptasync(this",{"_index":17271,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["child.constructor.name",{"_index":2766,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["child.id",{"_index":2776,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["childcopy",{"_index":17278,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childid",{"_index":3301,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["children",{"_index":2735,"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/SubmissionItemResponseMapper.html":{}}}],["children.length",{"_index":3245,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["children.map((element",{"_index":19182,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["children.sort((a",{"_index":3241,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["childrenmap",{"_index":3168,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["childrenmap[boardnode.pathofchildren",{"_index":3325,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["childstatus",{"_index":17274,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses",{"_index":17272,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses.push(childstatus",{"_index":17276,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["choose",{"_index":22886,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["choosing",{"_index":22888,"title":{},"body":{"license.html":{}}}],["chunk",{"_index":22263,"title":{},"body":{"dependencies.html":{}}}],["circumstances",{"_index":22532,"title":{},"body":{"license.html":{}}}],["circumvention",{"_index":22540,"title":{},"body":{"license.html":{}}}],["civil",{"_index":22926,"title":{},"body":{"license.html":{}}}],["cjs",{"_index":13245,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["cjs/keycloak",{"_index":13244,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["claim",{"_index":13488,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["claim.name",{"_index":13497,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["claims",{"_index":22804,"title":{},"body":{"license.html":{}}}],["clamconnection",{"_index":1148,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["clamdscan",{"_index":1130,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["clamscan",{"_index":1112,"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/BaseUc.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/ClassFilterParams.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/GetMetaTagDataBody.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/MetaTagExtractorResponse.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/UnknownQueryTypeLoggableException.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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":4320,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classattributenamemapping",{"_index":12415,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classentity",{"_index":4259,"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":{}}}],["classentityfactory",{"_index":4305,"title":{"classes/ClassEntityFactory.html":{}},"body":{"classes/ClassEntityFactory.html":{}}}],["classentityfactory.define(classentity",{"_index":4312,"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/BaseUc.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/ClassFilterParams.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/GetMetaTagDataBody.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":{},"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/MetaTagExtractorResponse.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/UnknownQueryTypeLoggableException.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((clazz",{"_index":4490,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classes.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13049,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["classesrepo",{"_index":4427,"title":{"injectables/ClassesRepo.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{}}}],["classfactory",{"_index":4315,"title":{"classes/ClassFactory.html":{}},"body":{"classes/ClassFactory.html":{}}}],["classfactory.define(class",{"_index":4321,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classfilterparams",{"_index":4322,"title":{"classes/ClassFilterParams.html":{}},"body":{"classes/ClassFilterParams.html":{},"controllers/GroupController.html":{}}}],["classid",{"_index":4497,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classids",{"_index":6548,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["classinfo",{"_index":11211,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.externalsourcename",{"_index":11223,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.id",{"_index":11220,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.isupgradable",{"_index":11226,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.name",{"_index":11222,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.schoolyear",{"_index":11225,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.studentcount",{"_index":11227,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.teachernames",{"_index":11224,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.type",{"_index":11221,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfodto",{"_index":4330,"title":{"classes/ClassInfoDto.html":{}},"body":{"classes/ClassInfoDto.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["classinforesponse",{"_index":4358,"title":{"classes/ClassInfoResponse.html":{}},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfos",{"_index":11208,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.data.map((classinfo",{"_index":11217,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.total",{"_index":11219,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse",{"_index":4372,"title":{"classes/ClassInfoSearchListResponse.html":{}},"body":{"classes/ClassInfoSearchListResponse.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse})@apiresponse({status",{"_index":11039,"title":{},"body":{"controllers/GroupController.html":{}}}],["classmap",{"_index":4489,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmap.get(entity.id",{"_index":4502,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper",{"_index":4374,"title":{"classes/ClassMapper.html":{}},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{}}}],["classmapper.maptodos(classes",{"_index":4488,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper.maptoentity(updateddomainobject",{"_index":4504,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmodule",{"_index":4422,"title":{"modules/ClassModule.html":{}},"body":{"modules/ClassModule.html":{},"modules/GroupApiModule.html":{},"modules.html":{}}}],["classname",{"_index":9701,"title":{},"body":{"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["classnames",{"_index":12020,"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":12405,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classprops",{"_index":4245,"title":{"interfaces/ClassProps.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{}}}],["classroottype",{"_index":4345,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupUcMapper.html":{}}}],["classroottype.class",{"_index":11310,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classroottype.group",{"_index":11299,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classserializerinterceptor",{"_index":13059,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["classservice",{"_index":4426,"title":{"injectables/ClassService.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{}}}],["classsortby",{"_index":4454,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["classsortparams",{"_index":4451,"title":{"classes/ClassSortParams.html":{}},"body":{"classes/ClassSortParams.html":{},"controllers/GroupController.html":{}}}],["classsourceoptions",{"_index":4243,"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":4268,"title":{"classes/ClassSourceOptionsEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["classsourceoptionsentityprops",{"_index":4469,"title":{"interfaces/ClassSourceOptionsEntityProps.html":{}},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["classsourceoptionsprops",{"_index":4462,"title":{"interfaces/ClassSourceOptionsProps.html":{}},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classvalidatormetadatastorage",{"_index":8358,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["clause",{"_index":763,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["clazz",{"_index":4492,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel",{"_index":11306,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel}${clazz.name",{"_index":11307,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.id",{"_index":4491,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/GroupUcMapper.html":{}}}],["clazz.name",{"_index":11308,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.source",{"_index":11311,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.successor",{"_index":11309,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.userids",{"_index":11314,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.userids.length",{"_index":11315,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clean",{"_index":10227,"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":11637,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["clean(pagesize",{"_index":13502,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["cleans",{"_index":11633,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleanup",{"_index":6600,"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":14398,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanupinput(username",{"_index":14406,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanuppath",{"_index":20273,"title":{},"body":{"classes/TestApiClient.html":{}}}],["cleanuppath(inputpath",{"_index":1498,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["clear",{"_index":11739,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"license.html":{}}}],["clearcollection",{"_index":7935,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearcollection(collectionname",{"_index":7943,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearly",{"_index":23236,"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":17995,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["cli",{"_index":23131,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["click",{"_index":21861,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["client",{"_index":3542,"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":18003,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.adapter.ts",{"_index":17900,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:111",{"_index":17922,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:134",{"_index":17924,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:155",{"_index":17912,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:179",{"_index":17917,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:199",{"_index":17919,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:21",{"_index":17908,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:226",{"_index":17910,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:32",{"_index":17915,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:49",{"_index":17920,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:82",{"_index":17914,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.bind(username",{"_index":13800,"title":{},"body":{"injectables/LdapService.html":{}}}],["client.body.ts",{"_index":15705,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:10",{"_index":15708,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:15",{"_index":15709,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:20",{"_index":15710,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:26",{"_index":15715,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:36",{"_index":15736,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:46",{"_index":15730,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:56",{"_index":15725,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:65",{"_index":15713,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:71",{"_index":15714,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:77",{"_index":15716,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.getsigningkey",{"_index":15682,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["client.histogram",{"_index":17458,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["client.interface",{"_index":16905,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["client.mapper",{"_index":10059,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["client.mapper.ts",{"_index":10533,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:17",{"_index":10541,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:27",{"_index":10549,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:39",{"_index":10543,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:49",{"_index":10551,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:62",{"_index":10545,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:7",{"_index":10547,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.module.ts",{"_index":10574,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"modules/S3ClientModule.html":{}}}],["client.module.ts:25",{"_index":18002,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.on('connect",{"_index":3905,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.on('error",{"_index":3903,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.response",{"_index":5582,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["client.send(deletioncommand",{"_index":8079,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["client.service",{"_index":6378,"title":{},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{}}}],["client.service.ts",{"_index":10512,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:11",{"_index":10518,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:16",{"_index":10520,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:23",{"_index":10524,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:31",{"_index":10522,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.ts",{"_index":1436,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["client.ts:104",{"_index":20288,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:110",{"_index":20279,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:120",{"_index":20280,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:129",{"_index":20285,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:136",{"_index":20287,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:142",{"_index":20284,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:26",{"_index":20277,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:28",{"_index":20278,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:30",{"_index":20276,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:38",{"_index":20283,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:45",{"_index":20281,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:54",{"_index":20292,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:64",{"_index":20290,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:74",{"_index":20291,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:84",{"_index":20289,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client/dto",{"_index":18494,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["client/dto/copy",{"_index":6238,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["client/dto/file.dto.ts",{"_index":9886,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:10",{"_index":9891,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:12",{"_index":9888,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:6",{"_index":9889,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:8",{"_index":9890,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/files",{"_index":10573,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["client/interface/index.ts",{"_index":6332,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/S3Config-1.html":{}}}],["client/interfaces/copy",{"_index":11936,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["client/interfaces/file",{"_index":11976,"title":{},"body":{"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{}}}],["client/interfaces/files",{"_index":12002,"title":{},"body":{"interfaces/IFilesStorageClientConfig.html":{}}}],["client/lib/defs/authenticationexecutioninforepresentation",{"_index":13380,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/authenticationflowrepresentation",{"_index":13382,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/clientrepresentation",{"_index":13384,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityprovidermapperrepresentation",{"_index":13385,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityproviderrepresentation",{"_index":13386,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["client/lib/defs/protocolmapperrepresentation",{"_index":13387,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/userrepresentation",{"_index":13587,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["client/mapper/copy",{"_index":6347,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["client/mapper/files",{"_index":10055,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["client/s3",{"_index":17899,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["client/service/copy",{"_index":6360,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["client/service/files",{"_index":10511,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["client_id",{"_index":1330,"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":5586,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ListOauthClientsParams.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{}}}],["client_secret",{"_index":1331,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["client_secret_basic",{"_index":15734,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client_secret_post",{"_index":15733,"title":{},"body":{"classes/OauthClientBody.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["clientauthmethod",{"_index":16406,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["clientid",{"_index":5590,"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":13291,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clientname",{"_index":5588,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["clientrepresentation",{"_index":13383,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["clients",{"_index":8060,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["clients.map",{"_index":16029,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["clients.params.ts",{"_index":14382,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:16",{"_index":14387,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:27",{"_index":14390,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:36",{"_index":14383,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:45",{"_index":14391,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients_configuration_path='/tmp/config/clients",{"_index":23633,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["clientsecret",{"_index":7348,"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":13295,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clienttype",{"_index":2125,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["clienturl",{"_index":4902,"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":458,"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":501,"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":2420,"title":{},"body":{"classes/BaseFactory.html":{}}}],["close",{"_index":17177,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed",{"_index":19868,"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":21111,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["closedat",{"_index":21113,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["closeddraftsforcreator",{"_index":19872,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.addquery(parentsopen.query",{"_index":19873,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.bycreatorid(parentids.creatorid",{"_index":19875,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.byfinished(parentids.creatorid",{"_index":19874,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons",{"_index":19861,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.addquery(parentsopen.query",{"_index":19862,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.bydraft(false",{"_index":19863,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.byfinished(parentids.creatorid",{"_index":19864,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator",{"_index":19869,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byfinished(parentids.creatorid",{"_index":19870,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byonlycreatorid(parentids.creatorid",{"_index":19871,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closely",{"_index":22923,"title":{},"body":{"license.html":{}}}],["closemigration",{"_index":4511,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["closemigration(@currentuser",{"_index":21207,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(currentuser",{"_index":21131,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(schoolid",{"_index":21344,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["closemigration(userid",{"_index":4518,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["closeuserloginmigrationuc",{"_index":4507,"title":{"injectables/CloseUserLoginMigrationUc.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["closing",{"_index":23550,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cloud",{"_index":15373,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["cloud.github.io/schulcloud",{"_index":23006,"title":{},"body":{"todo.html":{}}}],["cloud/commons",{"_index":2023,"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":3881,"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":23679,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["cloud/erwin",{"_index":23053,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/node",{"_index":22232,"title":{},"body":{"dependencies.html":{}}}],["cloud/sc",{"_index":23641,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/schulcloud",{"_index":22983,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cluster_accountapimodule",{"_index":210,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_imports",{"_index":211,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_providers",{"_index":212,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountmodule",{"_index":612,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_exports",{"_index":613,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_imports",{"_index":614,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_providers",{"_index":615,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_authenticationapimodule",{"_index":1316,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_imports",{"_index":1317,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_providers",{"_index":1318,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationmodule",{"_index":1353,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_exports",{"_index":1355,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_imports",{"_index":1356,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_providers",{"_index":1354,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authorizationmodule",{"_index":1693,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_exports",{"_index":1694,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_imports",{"_index":1696,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_providers",{"_index":1695,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationreferencemodule",{"_index":1738,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_exports",{"_index":1741,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_imports",{"_index":1739,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_providers",{"_index":1740,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_boardapimodule",{"_index":2690,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_imports",{"_index":2692,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_providers",{"_index":2691,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardmodule",{"_index":3527,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_exports",{"_index":3530,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_imports",{"_index":3528,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_providers",{"_index":3529,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_cachewrappermodule",{"_index":3887,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_exports",{"_index":3889,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_providers",{"_index":3888,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_calendarmodule",{"_index":3934,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_exports",{"_index":3935,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_providers",{"_index":3936,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_classmodule",{"_index":4423,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_exports",{"_index":4425,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_providers",{"_index":4424,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_collaborativestorageadaptermodule",{"_index":4611,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_exports",{"_index":4614,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_imports",{"_index":4613,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_providers",{"_index":4612,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestoragemodule",{"_index":4663,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_exports",{"_index":4666,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_imports",{"_index":4664,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_providers",{"_index":4665,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_commontoolmodule",{"_index":5377,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_exports",{"_index":5380,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_imports",{"_index":5379,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_providers",{"_index":5378,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_consolewritermodule",{"_index":5597,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_exports",{"_index":5599,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_providers",{"_index":5598,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_contextexternaltoolmodule",{"_index":5878,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_exports",{"_index":5881,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_imports",{"_index":5879,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_providers",{"_index":5880,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_copyhelpermodule",{"_index":6407,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_exports",{"_index":6408,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_providers",{"_index":6409,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_coremodule",{"_index":6491,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_exports",{"_index":6492,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_imports",{"_index":6493,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_databasemanagementmodule",{"_index":7927,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_exports",{"_index":7929,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_providers",{"_index":7928,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_encryptionmodule",{"_index":8337,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_encryptionmodule_imports",{"_index":8338,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_errormodule",{"_index":8446,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_errormodule_imports",{"_index":8447,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_externaltoolmodule",{"_index":8913,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_exports",{"_index":8914,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_imports",{"_index":8916,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_providers",{"_index":8915,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_feathersmodule",{"_index":9702,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_exports",{"_index":9704,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_providers",{"_index":9703,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_filesmodule",{"_index":10441,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_imports",{"_index":10443,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_providers",{"_index":10442,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesstorageamqpmodule",{"_index":10495,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_imports",{"_index":10496,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_providers",{"_index":10497,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageapimodule",{"_index":10504,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_imports",{"_index":10505,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_providers",{"_index":10506,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageclientmodule",{"_index":10569,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_exports",{"_index":10571,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_imports",{"_index":10570,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_providers",{"_index":10572,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstoragemodule",{"_index":10656,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_exports",{"_index":10657,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_imports",{"_index":10658,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_providers",{"_index":10659,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragetestmodule",{"_index":10728,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesstoragetestmodule_imports",{"_index":10729,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesystemmodule",{"_index":10430,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_exports",{"_index":10432,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_providers",{"_index":10431,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_fwulearningcontentsmodule",{"_index":10831,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_imports",{"_index":10833,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_providers",{"_index":10832,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentstestmodule",{"_index":10842,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_imports",{"_index":10844,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_providers",{"_index":10843,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_groupapimodule",{"_index":11026,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_imports",{"_index":11028,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_providers",{"_index":11027,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupmodule",{"_index":11145,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_exports",{"_index":11146,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_providers",{"_index":11147,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_h5peditormodule",{"_index":11404,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_imports",{"_index":11405,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_providers",{"_index":11406,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditortestmodule",{"_index":11413,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_h5peditortestmodule_imports",{"_index":11414,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_identitymanagementmodule",{"_index":12668,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_exports",{"_index":12669,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_imports",{"_index":12670,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_importusermodule",{"_index":12933,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_imports",{"_index":12934,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_providers",{"_index":12935,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_keycloakadministrationmodule",{"_index":13237,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_exports",{"_index":13239,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_providers",{"_index":13238,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakconfigurationmodule",{"_index":13311,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_exports",{"_index":13312,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_imports",{"_index":13313,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_providers",{"_index":13314,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakmodule",{"_index":13696,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_exports",{"_index":13698,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_imports",{"_index":13699,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_providers",{"_index":13697,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_learnroomapimodule",{"_index":13859,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_imports",{"_index":13861,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_providers",{"_index":13860,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroommodule",{"_index":13877,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_exports",{"_index":13880,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_imports",{"_index":13878,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_providers",{"_index":13879,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_legacyschoolapimodule",{"_index":13924,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_imports",{"_index":13926,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_providers",{"_index":13925,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolmodule",{"_index":14019,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_exports",{"_index":14020,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_imports",{"_index":14022,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_providers",{"_index":14021,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_lessonapimodule",{"_index":14143,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_imports",{"_index":14144,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_providers",{"_index":14145,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonmodule",{"_index":14219,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_exports",{"_index":14220,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_imports",{"_index":14221,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_providers",{"_index":14222,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_loggermodule",{"_index":14446,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_exports",{"_index":14447,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_providers",{"_index":14448,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_ltitoolmodule",{"_index":14702,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_exports",{"_index":14704,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_providers",{"_index":14703,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_managementmodule",{"_index":14780,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_imports",{"_index":14782,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_providers",{"_index":14781,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementservermodule",{"_index":14794,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservermodule_imports",{"_index":14795,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservertestmodule",{"_index":14801,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_managementservertestmodule_imports",{"_index":14802,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_metatagextractorapimodule",{"_index":14822,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["cluster_metatagextractorapimodule_imports",{"_index":14823,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["cluster_metatagextractorapimodule_providers",{"_index":14824,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["cluster_metatagextractormodule",{"_index":14846,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_metatagextractormodule_exports",{"_index":14849,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_metatagextractormodule_imports",{"_index":14847,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_metatagextractormodule_providers",{"_index":14848,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["cluster_newsmodule",{"_index":15183,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_exports",{"_index":15186,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_imports",{"_index":15185,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_providers",{"_index":15184,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_oauthapimodule",{"_index":15694,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_imports",{"_index":15695,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_providers",{"_index":15696,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthmodule",{"_index":15869,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_exports",{"_index":15872,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_imports",{"_index":15870,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_providers",{"_index":15871,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthproviderapimodule",{"_index":15876,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_imports",{"_index":15877,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_providers",{"_index":15878,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthprovidermodule",{"_index":16128,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_exports",{"_index":16131,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_imports",{"_index":16129,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_providers",{"_index":16130,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthproviderservicemodule",{"_index":16185,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_oauthproviderservicemodule_exports",{"_index":16186,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_previewgeneratoramqpmodule",{"_index":16692,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratoramqpmodule_imports",{"_index":16693,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratorproducermodule",{"_index":16729,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_exports",{"_index":16730,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_imports",{"_index":16731,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_providers",{"_index":16732,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_provisioningmodule",{"_index":16919,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_exports",{"_index":16921,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_imports",{"_index":16920,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_providers",{"_index":16922,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_pseudonymapimodule",{"_index":16999,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_imports",{"_index":17000,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_providers",{"_index":17001,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymmodule",{"_index":17036,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_exports",{"_index":17039,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_imports",{"_index":17038,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_providers",{"_index":17037,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_redismodule",{"_index":17397,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_redismodule_imports",{"_index":17398,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_rolemodule",{"_index":17606,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_exports",{"_index":17608,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_providers",{"_index":17607,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_schoolexternaltoolmodule",{"_index":18183,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_exports",{"_index":18184,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_imports",{"_index":18186,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_providers",{"_index":18185,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_serverconsolemodule",{"_index":18570,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_serverconsolemodule_imports",{"_index":18571,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_servermodule",{"_index":18584,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servermodule_imports",{"_index":18585,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servertestmodule",{"_index":18666,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_servertestmodule_imports",{"_index":18667,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_sharingapimodule",{"_index":18940,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_imports",{"_index":18942,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_providers",{"_index":18941,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingmodule",{"_index":18947,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_exports",{"_index":18950,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_imports",{"_index":18948,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_providers",{"_index":18949,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_systemapimodule",{"_index":19354,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_imports",{"_index":19355,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_providers",{"_index":19356,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemmodule",{"_index":19476,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_exports",{"_index":19477,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_imports",{"_index":19479,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_providers",{"_index":19478,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_taskapimodule",{"_index":19613,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_imports",{"_index":19615,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_providers",{"_index":19614,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskmodule",{"_index":19818,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_exports",{"_index":19820,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_imports",{"_index":19821,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_providers",{"_index":19819,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_teamsapimodule",{"_index":20247,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsapimodule_imports",{"_index":20248,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsmodule",{"_index":20252,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_exports",{"_index":20254,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_providers",{"_index":20253,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_toolapimodule",{"_index":20381,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_imports",{"_index":20383,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_providers",{"_index":20382,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toollaunchmodule",{"_index":20630,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_exports",{"_index":20633,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_imports",{"_index":20632,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_providers",{"_index":20631,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toolmodule",{"_index":20698,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_exports",{"_index":20700,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_imports",{"_index":20701,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_providers",{"_index":20699,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_userapimodule",{"_index":20915,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_imports",{"_index":20917,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_providers",{"_index":20916,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userloginmigrationapimodule",{"_index":21116,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_imports",{"_index":21118,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_providers",{"_index":21117,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationmodule",{"_index":21285,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_exports",{"_index":21288,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_imports",{"_index":21287,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_providers",{"_index":21286,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_usermodule",{"_index":21575,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_exports",{"_index":21578,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_imports",{"_index":21577,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_providers",{"_index":21576,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_videoconferenceapimodule",{"_index":21780,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_imports",{"_index":21782,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_providers",{"_index":21781,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferencemodule",{"_index":22054,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_exports",{"_index":22055,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_imports",{"_index":22056,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_providers",{"_index":22057,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["code",{"_index":950,"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":15500,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["codebase",{"_index":23221,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["coded",{"_index":11853,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["coersion",{"_index":10956,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["cohesion",{"_index":23247,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["collaborative",{"_index":4548,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/NextcloudStrategy.html":{}}}],["collaborativestorage",{"_index":11672,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["collaborativestorageadapter",{"_index":4542,"title":{"injectables/CollaborativeStorageAdapter.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["collaborativestorageadaptermapper",{"_index":4560,"title":{"injectables/CollaborativeStorageAdapterMapper.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["collaborativestorageadaptermodule",{"_index":4610,"title":{"modules/CollaborativeStorageAdapterModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules.html":{}}}],["collaborativestoragecontroller",{"_index":4630,"title":{"controllers/CollaborativeStorageController.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["collaborativestoragemodule",{"_index":4662,"title":{"modules/CollaborativeStorageModule.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["collaborativestorageservice",{"_index":4667,"title":{"injectables/CollaborativeStorageService.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collaborativestorageuc",{"_index":4651,"title":{"injectables/CollaborativeStorageUc.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collect",{"_index":22864,"title":{},"body":{"license.html":{}}}],["collectdefaultmetrics",{"_index":16826,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collected",{"_index":16878,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting",{"_index":16877,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_default_metrics_disabled",{"_index":16876,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_metrics_route_metrics_disabled",{"_index":16879,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collection",{"_index":1657,"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":2614,"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":7970,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.find({}).toarray",{"_index":7968,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.insertmany(jsondocuments",{"_index":7965,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.name",{"_index":7975,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionexists",{"_index":7936,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionexists(collectionname",{"_index":7945,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname",{"_index":7906,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter",{"_index":11722,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter.length",{"_index":11729,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter?.includes(collectionname",{"_index":11732,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnames",{"_index":7973,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname}.json",{"_index":11714,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionname}:${data.length",{"_index":11752,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections",{"_index":7866,"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":7977,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.includes(data.collectionname",{"_index":11747,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.length",{"_index":11746,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.map((collection",{"_index":7974,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.map((collectionname",{"_index":11712,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport",{"_index":11781,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport.map(async",{"_index":11783,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed",{"_index":11760,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed.map(async",{"_index":11762,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionswithfilepaths",{"_index":11711,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectmetricsroutemetrics",{"_index":16827,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collects",{"_index":23803,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["color",{"_index":6537,"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":2633,"title":{"classes/Column.html":{}},"body":{"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":4953,"title":{},"body":{"controllers/ColumnController.html":{}}}],["column.addchild(card",{"_index":4854,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["column.body.params.ts",{"_index":15038,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:11",{"_index":15040,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:19",{"_index":15041,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.children.map((card",{"_index":4996,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.constructor.name",{"_index":3676,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["column.createdat",{"_index":5000,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.do",{"_index":2820,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["column.id",{"_index":4994,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.response",{"_index":3664,"title":{},"body":{"classes/BoardResponse.html":{}}}],["column.title",{"_index":4995,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.updatedat",{"_index":4999,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["columnboard",{"_index":1866,"title":{"classes/ColumnBoard.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.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":4848,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["columnboard.context",{"_index":17360,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.id",{"_index":17356,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.title",{"_index":17357,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboardboardelement",{"_index":2632,"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":2947,"title":{"injectables/ColumnBoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["columnboardelement",{"_index":3046,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["columnboardelements",{"_index":3654,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["columnboardfactory",{"_index":4794,"title":{"classes/ColumnBoardFactory.html":{}},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardfactory.define(columnboard",{"_index":4800,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardid",{"_index":2713,"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":4932,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardids.length",{"_index":17819,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardids.map((id",{"_index":4939,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardids.push(columnboard.id",{"_index":17821,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardinfo",{"_index":17719,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.columnboardid",{"_index":17722,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.createdat",{"_index":17725,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.id",{"_index":17721,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.published",{"_index":17724,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.title",{"_index":17723,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.updatedat",{"_index":17726,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardmetadata",{"_index":8162,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardnode",{"_index":3142,"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":3494,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodefactory.build",{"_index":3499,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodeprops",{"_index":4807,"title":{"interfaces/ColumnBoardNodeProps.html":{}},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["columnboardprops",{"_index":4765,"title":{"interfaces/ColumnBoardProps.html":{}},"body":{"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{}}}],["columnboardservice",{"_index":1854,"title":{"injectables/ColumnBoardService.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget",{"_index":2634,"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":3038,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.createdat",{"_index":8210,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.id",{"_index":8208,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.published",{"_index":8212,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.title",{"_index":8209,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.updatedat",{"_index":8211,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtargetprops",{"_index":4916,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["columnboardtargets",{"_index":4938,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardtargetservice",{"_index":4923,"title":{"injectables/ColumnBoardTargetService.html":{}},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["columncontroller",{"_index":2700,"title":{"controllers/ColumnController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ColumnController.html":{}}}],["columnid",{"_index":3793,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{},"classes/ColumnUrlParams.html":{}}}],["columnnode",{"_index":3139,"title":{"entities/ColumnNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnnodefactory",{"_index":3495,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnnodefactory.build",{"_index":3516,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnprops",{"_index":4748,"title":{"interfaces/ColumnProps.html":{}},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["columnresponse",{"_index":2906,"title":{"classes/ColumnResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper",{"_index":2910,"title":{"classes/ColumnResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper.maptoresponse(column",{"_index":2931,"title":{},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["columnresponse})@apiresponse({status",{"_index":2877,"title":{},"body":{"controllers/BoardController.html":{}}}],["columns",{"_index":3202,"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":3504,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnservice",{"_index":3536,"title":{"injectables/ColumnService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{}}}],["columnuc",{"_index":2695,"title":{"injectables/ColumnUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["columnurlparams",{"_index":4951,"title":{"classes/ColumnUrlParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{}}}],["colums",{"_index":7561,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["combination",{"_index":17167,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["combinations",{"_index":23654,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["combine",{"_index":22875,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["combined",{"_index":18958,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["combineduri",{"_index":21547,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.pathname",{"_index":21549,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.tostring",{"_index":21550,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combines",{"_index":23836,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["come",{"_index":22418,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["comes",{"_index":22587,"title":{},"body":{"license.html":{}}}],["coming",{"_index":23755,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["command",{"_index":3455,"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":3451,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/KeycloakConsole.html":{},"classes/ServerConsole.html":{}}}],["commander",{"_index":22199,"title":{},"body":{"dependencies.html":{}}}],["commandname",{"_index":13527,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["commandoption",{"_index":11603,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["commandoutput",{"_index":17956,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["commandresponse",{"_index":20313,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["commands",{"_index":11616,"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":8976,"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":23596,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["commercial",{"_index":22665,"title":{},"body":{"license.html":{}}}],["commit",{"_index":22349,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["commitment",{"_index":22816,"title":{},"body":{"license.html":{}}}],["commits",{"_index":23593,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["committing",{"_index":22343,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common",{"_index":5080,"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":5781,"title":{},"body":{"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":5852,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["common/enum",{"_index":1870,"title":{},"body":{"injectables/AutoContextNameStrategy.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":5782,"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":6032,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["common/service",{"_index":6172,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["common/uc/tool",{"_index":6140,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["commoncartridgeexportservice",{"_index":5042,"title":{"injectables/CommonCartridgeExportService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomModule.html":{}}}],["commoncartridgefilebuilder",{"_index":5056,"title":{"classes/CommonCartridgeFileBuilder.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeintendedusetype",{"_index":5078,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeintendedusetype.assignment",{"_index":5144,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeintendedusetype.unspecified",{"_index":5119,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeltiresource",{"_index":5211,"title":{"classes/CommonCartridgeLtiResource.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeltiresource(props",{"_index":5347,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgemanifestelement",{"_index":5174,"title":{"classes/CommonCartridgeManifestElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgemetadataelement",{"_index":5276,"title":{"classes/CommonCartridgeMetadataElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["commoncartridgemetadataelement(this.metadataprops).transform",{"_index":5293,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeorganizationbuilder",{"_index":5180,"title":{"classes/CommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationbuilder(props",{"_index":5191,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement",{"_index":5178,"title":{"classes/CommonCartridgeOrganizationItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement(this.props",{"_index":5181,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationwrapperelement",{"_index":5277,"title":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["commoncartridgeorganizationwrapperelement(this.organizations).transform",{"_index":5294,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeresourceitemelement",{"_index":5176,"title":{"classes/CommonCartridgeResourceItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(props",{"_index":5186,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(resourceprops",{"_index":5183,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourcetype",{"_index":5079,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.lti",{"_index":5222,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeresourcetype.web_content",{"_index":5117,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeresourcetype.web_link_v1",{"_index":5126,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.web_link_v3",{"_index":5125,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcewrapperelement",{"_index":5279,"title":{"classes/CommonCartridgeResourceWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["commoncartridgeresourcewrapperelement(this.resources).transform",{"_index":5295,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeversion",{"_index":5058,"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":5143,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeversion.v_1_3_0",{"_index":5124,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgewebcontentresource",{"_index":5342,"title":{"classes/CommonCartridgeWebContentResource.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgewebcontentresource(props",{"_index":5348,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeweblinkresourceelement",{"_index":5344,"title":{"classes/CommonCartridgeWebLinkResourceElement.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeweblinkresourceelement(props",{"_index":5349,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commonobject",{"_index":5223,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$.xmlns",{"_index":5244,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:blti",{"_index":5246,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticm",{"_index":5248,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticp",{"_index":5250,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xsi:schemalocation",{"_index":5252,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonprops",{"_index":5110,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commontags",{"_index":5366,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commontoolmodule",{"_index":5376,"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":5382,"title":{"injectables/CommonToolService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["commontoolvalidationservice",{"_index":5383,"title":{"injectables/CommonToolValidationService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["commontoolvalidationservice.typecheckers[type",{"_index":5451,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["communicate",{"_index":23819,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["communication",{"_index":22512,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["community",{"_index":22376,"title":{},"body":{"license.html":{}}}],["comparator",{"_index":23303,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["comparealphabetic",{"_index":2663,"title":{},"body":{"entities/Board.html":{}}}],["compared",{"_index":23605,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["compareparameters",{"_index":9551,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["compareparameters(oldparams",{"_index":9559,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["comparepassword",{"_index":92,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["compass",{"_index":23558,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["compatible",{"_index":23039,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["compilation",{"_index":22593,"title":{},"body":{"license.html":{}}}],["compilation's",{"_index":22600,"title":{},"body":{"license.html":{}}}],["compilations",{"_index":22847,"title":{},"body":{"license.html":{}}}],["compile",{"_index":20311,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["compiler",{"_index":22501,"title":{},"body":{"license.html":{}}}],["complete",{"_index":14968,"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":3232,"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":19135,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["completed.loggable.ts",{"_index":14961,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:3",{"_index":14963,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:6",{"_index":14964,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completion",{"_index":23510,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["completly",{"_index":23802,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["complex",{"_index":13904,"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":23722,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["compliance",{"_index":22776,"title":{},"body":{"license.html":{}}}],["comply",{"_index":22527,"title":{},"body":{"license.html":{}}}],["compodoc",{"_index":23128,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["component",{"_index":5699,"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":5758,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["components",{"_index":22326,"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":5076,"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":5127,"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":5122,"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":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":{}}}],["componenttype.lernstore",{"_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":{}}}],["componenttype.nexboard",{"_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":{},"entities/LessonEntity.html":{}}}],["componenttype.text",{"_index":5116,"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":6446,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["composite",{"_index":2783,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["composite.do",{"_index":3978,"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":2729,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["composite.do.ts:11",{"_index":2758,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:15",{"_index":2760,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:19",{"_index":2746,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:33",{"_index":2751,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:35",{"_index":2753,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:39",{"_index":2749,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:45",{"_index":2739,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:47",{"_index":2743,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:7",{"_index":2756,"title":{},"body":{"classes/BoardComposite.html":{}}}],["compression",{"_index":22201,"title":{},"body":{"dependencies.html":{}}}],["computer",{"_index":22458,"title":{},"body":{"license.html":{}}}],["concatenating",{"_index":15363,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["concept",{"_index":23260,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concepts",{"_index":23259,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concern",{"_index":23193,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["concerns",{"_index":22882,"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":23323,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concurrently",{"_index":22203,"title":{},"body":{"dependencies.html":{}}}],["cond",{"_index":19957,"title":{},"body":{"injectables/TaskRule.html":{}}}],["condition",{"_index":23409,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["conditioned",{"_index":22841,"title":{},"body":{"license.html":{}}}],["conditions",{"_index":22431,"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":2195,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference",{"_index":8082,"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":21808,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference.controller.ts",{"_index":21802,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:105",{"_index":21815,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:132",{"_index":21811,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:44",{"_index":21826,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:77",{"_index":21821,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.do.ts",{"_index":21919,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:19",{"_index":21922,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:21",{"_index":21923,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:23",{"_index":21920,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:5",{"_index":22072,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:7",{"_index":22073,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:9",{"_index":22071,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.entity",{"_index":22092,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.entity.ts",{"_index":21751,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:10",{"_index":22069,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:12",{"_index":22070,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:14",{"_index":22068,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:31",{"_index":21754,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:34",{"_index":21755,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:37",{"_index":21753,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.mapper",{"_index":21829,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference.mapper.ts",{"_index":22030,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:25",{"_index":22036,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:32",{"_index":22038,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:38",{"_index":22042,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:42",{"_index":22040,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.module",{"_index":21789,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["conference.module.ts",{"_index":22059,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo",{"_index":22062,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo.ts",{"_index":22085,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:20",{"_index":22090,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:28",{"_index":22088,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.ts",{"_index":21770,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:10",{"_index":21771,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:6",{"_index":21774,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:8",{"_index":21772,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference/bbb/bbb",{"_index":11592,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["conference/bbb/bbb.service.ts",{"_index":2130,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:107",{"_index":2166,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:136",{"_index":2157,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:14",{"_index":2142,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:150",{"_index":2175,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:167",{"_index":2168,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:21",{"_index":2179,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:25",{"_index":2181,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:29",{"_index":2183,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:39",{"_index":2145,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:61",{"_index":2164,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:72",{"_index":2172,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:84",{"_index":2152,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/builder/bbb",{"_index":2002,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["conference/bbb/builder/builder.ts",{"_index":3846,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:2",{"_index":3848,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:8",{"_index":3850,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/request/bbb",{"_index":1940,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["conference/bbb/response/bbb",{"_index":1950,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["conference/bbb/response/bbb.response.ts",{"_index":2128,"title":{},"body":{"interfaces/BBBResponse.html":{}}}],["conference/controller/dto/request/video",{"_index":21854,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference/controller/dto/response/video",{"_index":8081,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["conference/controller/video",{"_index":21801,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference/error/error",{"_index":21970,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/error/invalid",{"_index":13072,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["conference/interface/video",{"_index":12618,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["conference/mapper/vc",{"_index":22112,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference/mapper/video",{"_index":22029,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference/uc/dto/scope",{"_index":12241,"title":{},"body":{"interfaces/IScopeInfo.html":{},"classes/ScopeRef.html":{}}}],["conference/uc/dto/video",{"_index":21769,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["conference/uc/video",{"_index":21872,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/video",{"_index":18616,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["conferences",{"_index":22066,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["config",{"_index":1912,"title":{},"body":{"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":19454,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["config.allowmodstounmuteusers",{"_index":1998,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.attendeepw",{"_index":1996,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.builder.ts",{"_index":2003,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:10",{"_index":2086,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:11",{"_index":2019,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:15",{"_index":2088,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:16",{"_index":2013,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:21",{"_index":2017,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:5",{"_index":2084,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:6",{"_index":2015,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.clientid",{"_index":9814,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["config.connectionname",{"_index":18007,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["config.do",{"_index":2496,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts",{"_index":2490,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:11",{"_index":14594,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:13",{"_index":14595,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:15",{"_index":14592,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:17",{"_index":15637,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:4",{"_index":2492,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{}}}],["config.do.ts:5",{"_index":14593,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:6",{"_index":8579,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["config.do.ts:7",{"_index":14597,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:9",{"_index":14596,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.dto",{"_index":19408,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["config.dto.ts",{"_index":15757,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:1",{"_index":16367,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:10",{"_index":15763,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:12",{"_index":15771,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:14",{"_index":15760,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:16",{"_index":15769,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:18",{"_index":15770,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:2",{"_index":15761,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:20",{"_index":15767,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:22",{"_index":16368,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:24",{"_index":16371,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:25",{"_index":15766,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:26",{"_index":16370,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:27",{"_index":15765,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:28",{"_index":16372,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:29",{"_index":15759,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:30",{"_index":16369,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:4",{"_index":15762,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:6",{"_index":15764,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:8",{"_index":15768,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.entity",{"_index":2505,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts",{"_index":2501,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:10",{"_index":8584,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:11",{"_index":15655,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:12",{"_index":14618,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:15",{"_index":14617,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:18",{"_index":14615,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:21",{"_index":14616,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:24",{"_index":14613,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:6",{"_index":2502,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["config.entity.ts:7",{"_index":8585,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:8",{"_index":15656,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:9",{"_index":14614,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.frontchannellogouturi",{"_index":9447,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.fullname",{"_index":2070,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guest",{"_index":2075,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guestpolicy",{"_index":1992,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.json",{"_index":23631,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["config.logouturl",{"_index":1988,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.meetingid",{"_index":1948,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"injectables/BBBService.html":{}}}],["config.moderatorpw",{"_index":1994,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.module",{"_index":8927,"title":{},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{}}}],["config.module.ts",{"_index":20401,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["config.name",{"_index":1986,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.params",{"_index":2517,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["config.params.ts",{"_index":2511,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:4",{"_index":8582,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:6",{"_index":8581,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.redirect",{"_index":2077,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.redirecturis",{"_index":9445,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.response",{"_index":2526,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["config.response.ts",{"_index":2521,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:10",{"_index":2523,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["config.response.ts:13",{"_index":14621,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:16",{"_index":14624,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:19",{"_index":14622,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:22",{"_index":14623,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:23",{"_index":15796,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:25",{"_index":14620,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:28",{"_index":15660,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:30",{"_index":15791,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:37",{"_index":15799,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:4",{"_index":8588,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:44",{"_index":15789,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:51",{"_index":15797,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:58",{"_index":15798,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:6",{"_index":8587,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:65",{"_index":15795,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:72",{"_index":15794,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:79",{"_index":15793,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:86",{"_index":15788,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:9",{"_index":15790,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.role",{"_index":2072,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.scope",{"_index":9441,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.tokenendpointauthmethod",{"_index":9443,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.ts",{"_index":11590,"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":21800,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:14",{"_index":20403,"title":{},"body":{"classes/ToolConfiguration.html":{}}}],["config.ts:4",{"_index":13308,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["config.ts:5",{"_index":13235,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["config.ts:6",{"_index":21797,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.type",{"_index":8577,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["config.userid",{"_index":2073,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.welcome",{"_index":1990,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config/development.json",{"_index":11995,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config/test.json",{"_index":11996,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config['meta_bbb",{"_index":2000,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["configbuilder",{"_index":21906,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withguestpolicy(guestpolicy.ask_moderator",{"_index":21912,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withmuteonstart(true",{"_index":21914,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configmodule",{"_index":10667,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions",{"_index":16728,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(config",{"_index":10680,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(metatagextractorconfig",{"_index":14854,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(serverconfig",{"_index":14791,"title":{},"body":{"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configs",{"_index":13462,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/S3ClientModule.html":{}}}],["configs.flatmap((config",{"_index":18006,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["configservice",{"_index":584,"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":635,"title":{},"body":{"modules/AccountModule.html":{}}}],["configservice.get('incoming_request_timeout",{"_index":13062,"title":{},"body":{"modules/InterceptorModule.html":{},"injectables/PreviewProducer.html":{}}}],["configservice.get('incoming_request_timeout_copy_api",{"_index":10716,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["configservice.get('nest_log_level",{"_index":14456,"title":{},"body":{"modules/LoggerModule.html":{}}}],["configservice.get(aeskey",{"_index":8347,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["configtoupdate",{"_index":9496,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["configtype",{"_index":20613,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["configuration",{"_index":2020,"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":13321,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.console.ts",{"_index":11601,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:121",{"_index":13522,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:156",{"_index":13525,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:172",{"_index":13526,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:201",{"_index":13524,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:23",{"_index":13518,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:32",{"_index":13519,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:51",{"_index":13520,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:77",{"_index":13521,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:99",{"_index":13528,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.controller",{"_index":13328,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.controller.ts",{"_index":13644,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:109",{"_index":20420,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:19",{"_index":13648,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration.controller.ts:38",{"_index":20414,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:60",{"_index":20410,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:86",{"_index":20424,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.externaltoolid",{"_index":5819,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.get",{"_index":12256,"title":{},"body":{"interfaces/IServerConfig.html":{},"injectables/ShareTokenUC.html":{}}}],["configuration.get('antivirus_exchange",{"_index":10684,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('antivirus_routing_key",{"_index":10685,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('calendar_uri",{"_index":3954,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('clamav__service_hostname",{"_index":10686,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('clamav__service_port",{"_index":10687,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('column_board_feedback_link",{"_index":4890,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('column_board_help_link",{"_index":4874,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('cookie__expires_seconds",{"_index":16294,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__http_only",{"_index":16287,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__same_site",{"_index":16289,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__secure",{"_index":16293,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('ctl_tools__external_tool_max_logo_size_in_bytes",{"_index":12585,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('enable_file_security_check",{"_index":10682,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('feature_column_board_enabled",{"_index":8182,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["configuration.get('feature_copy_service_enabled",{"_index":6778,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["configuration.get('feature_course_share_new",{"_index":18932,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_ctl_context_configuration_enabled",{"_index":12584,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_ctl_tools_tab_enabled",{"_index":12582,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_fwu_content_enabled",{"_index":10812,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["configuration.get('feature_identity_management_enabled",{"_index":12258,"title":{},"body":{"interfaces/IServerConfig.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["configuration.get('feature_identity_management_login_enabled",{"_index":12260,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_identity_management_store_enabled",{"_index":12259,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_imscc_course_export_enabled",{"_index":12257,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_lesson_share",{"_index":18934,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_lti_tools_tab_enabled",{"_index":12583,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_prometheus_metrics_enabled",{"_index":16852,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('feature_sanis_group_provisioning_enabled",{"_index":16533,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["configuration.get('feature_task_share",{"_index":18935,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_videoconference_enabled",{"_index":21798,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('files_storage__exchange",{"_index":11932,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["configuration.get('files_storage__incoming_request_timeout",{"_index":11987,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__max_file_size",{"_index":11991,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_access_key_id",{"_index":12000,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_bucket",{"_index":11999,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_endpoint",{"_index":11997,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_region",{"_index":11998,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_secret_access_key",{"_index":12001,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__service_base_url",{"_index":10683,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('files_storage__use_stream_to_antivirus",{"_index":11992,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('host",{"_index":4903,"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":11438,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["configuration.get('i18n__available_languages",{"_index":12252,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('identity_management__admin_clientid",{"_index":13234,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_password",{"_index":13233,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_user",{"_index":13232,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__clientid",{"_index":13231,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__tenant",{"_index":13230,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__uri",{"_index":13229,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('incoming_request_timeout_api",{"_index":12250,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('incoming_request_timeout_copy_api",{"_index":11990,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('login_block_time",{"_index":12255,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('mail_send_exchange",{"_index":17175,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('mail_send_routing_key",{"_index":18625,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('migration_end_grace_period_ms",{"_index":21368,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["configuration.get('nest_log_level",{"_index":11985,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('nextcloud_scopes",{"_index":11583,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["configuration.get('nextcloud_sociallogin_oidc_internal_name",{"_index":4629,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["configuration.get('node_env",{"_index":12254,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_default_metrics",{"_index":16855,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_metrics_route_metrics",{"_index":16856,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_port",{"_index":16854,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_route",{"_index":16853,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('public_backend_url",{"_index":12586,"title":{},"body":{"interfaces/IToolFeatures.html":{},"injectables/OAuthService.html":{},"classes/ToolConfiguration.html":{},"injectables/UserMigrationService.html":{}}}],["configuration.get('rabbitmq_uri",{"_index":17176,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('redis_uri",{"_index":3901,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["configuration.get('request_option__timeout_ms",{"_index":3956,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('rocket_chat_admin_id",{"_index":18628,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_password",{"_index":18631,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_token",{"_index":18629,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_user",{"_index":18630,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_uri",{"_index":18627,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('s3_key",{"_index":19014,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["configuration.get('sc_domain",{"_index":2031,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('sc_theme",{"_index":4901,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('session__expires_seconds",{"_index":18634,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__http_only",{"_index":18653,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__name",{"_index":18647,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__proxy",{"_index":18650,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__same_site",{"_index":18652,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secret",{"_index":18643,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secure",{"_index":18651,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('videoconference_default_presentation",{"_index":21796,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_host",{"_index":21794,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_salt",{"_index":21795,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get(placeholder",{"_index":11833,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.has('column_board_feedback_link",{"_index":4888,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('column_board_help_link",{"_index":4872,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('redis_uri",{"_index":3884,"title":{},"body":{"injectables/CacheService.html":{},"modules/RedisModule.html":{}}}],["configuration.has('session__name",{"_index":18646,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has('session__proxy",{"_index":18649,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has(placeholder",{"_index":11832,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.logourl",{"_index":5824,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.mapper",{"_index":20427,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.mapper.ts",{"_index":20444,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:12",{"_index":20458,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:28",{"_index":20456,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:41",{"_index":20453,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:60",{"_index":20450,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.module",{"_index":14784,"title":{},"body":{"modules/ManagementModule.html":{}}}],["configuration.module.ts",{"_index":13318,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.name",{"_index":5822,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.parameters",{"_index":5825,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.schoolexternaltoolid",{"_index":5821,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.service",{"_index":13325,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.service.ts",{"_index":8591,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:108",{"_index":13353,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:12",{"_index":8598,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:128",{"_index":13354,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:15",{"_index":8611,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:155",{"_index":13355,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:167",{"_index":13350,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:191",{"_index":13372,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:214",{"_index":13358,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:224",{"_index":13376,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:235",{"_index":13363,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:24",{"_index":8607,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:240",{"_index":13378,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:254",{"_index":13360,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:26",{"_index":13347,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:262",{"_index":13367,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:277",{"_index":13364,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:34",{"_index":13352,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:46",{"_index":8602,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:77",{"_index":8613,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.uc",{"_index":11606,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["configuration.uc.ts",{"_index":8641,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:116",{"_index":8662,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:136",{"_index":8660,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:16",{"_index":13501,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:165",{"_index":8654,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:17",{"_index":8650,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:177",{"_index":8652,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:20",{"_index":13503,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:24",{"_index":13506,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:28",{"_index":8658,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:32",{"_index":13504,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:64",{"_index":8656,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:8",{"_index":13500,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.version",{"_index":5827,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration/console/keycloak",{"_index":11600,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration/controller/keycloak",{"_index":13643,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration/interface/json",{"_index":12071,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["configuration/interface/keycloak",{"_index":12077,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["configuration/keycloak",{"_index":13304,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{}}}],["configuration/mapper/identity",{"_index":16394,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["configuration/service/keycloak",{"_index":13331,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["configuration/uc/keycloak",{"_index":13498,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configurations",{"_index":11993,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configure",{"_index":11650,"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":18595,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configure(options",{"_index":11651,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configureaction",{"_index":13391,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.action",{"_index":13444,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.create",{"_index":13445,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.delete",{"_index":13449,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.update",{"_index":13447,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureactions",{"_index":13442,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurebrokerflows",{"_index":13333,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureclient",{"_index":13334,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configured",{"_index":14996,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["configureidentityproviders",{"_index":13335,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurerealm",{"_index":13336,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configures",{"_index":6499,"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":16624,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["confirmpassword",{"_index":16622,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["conflict",{"_index":6733,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["conflicts",{"_index":23258,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["conjunction",{"_index":23638,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["connect",{"_index":13435,"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":13781,"title":{},"body":{"injectables/LdapService.html":{}}}],["connected",{"_index":18343,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["connecting",{"_index":23059,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["connection",{"_index":11629,"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":13788,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error",{"_index":13785,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error.ts",{"_index":13771,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.error.ts:4",{"_index":13773,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.managedconnection.close",{"_index":17181,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["connection.unbind",{"_index":13789,"title":{},"body":{"injectables/LdapService.html":{}}}],["connectionname",{"_index":6336,"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":17178,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connectredis",{"_index":18620,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis(session",{"_index":18637,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis.redisstore",{"_index":18635,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connects",{"_index":13649,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["consent",{"_index":110,"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":17525,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.params.ts:7",{"_index":17526,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.response",{"_index":16910,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consent_request",{"_index":16909,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consentflowuc",{"_index":16017,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequest",{"_index":16050,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequestbody",{"_index":5489,"title":{"classes/ConsentRequestBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["consentresponse",{"_index":5540,"title":{"classes/ConsentResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consentresponse.client?.client_id",{"_index":15954,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentresponse.requested_scope",{"_index":15953,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentsessionresponse",{"_index":5583,"title":{"classes/ConsentSessionResponse.html":{}},"body":{"classes/ConsentSessionResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consequence",{"_index":22763,"title":{},"body":{"license.html":{}}}],["consequential",{"_index":22907,"title":{},"body":{"license.html":{}}}],["considerations",{"_index":23245,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["considered",{"_index":22731,"title":{},"body":{"license.html":{}}}],["consistent",{"_index":2033,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/GlobalErrorFilter.html":{},"license.html":{}}}],["console",{"_index":3456,"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":5607,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["console/board",{"_index":14785,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/database",{"_index":14787,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/keycloak",{"_index":13320,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["consolelogger",{"_index":13910,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["consolemodule",{"_index":18577,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["consolewriter",{"_index":3449,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{}}}],["consolewritermodule",{"_index":3531,"title":{"modules/ConsoleWriterModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["consolewriterservice",{"_index":3446,"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":22569,"title":{},"body":{"license.html":{}}}],["const",{"_index":437,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"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":{},"injectables/RecursiveDeleteVisitor.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":{},"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/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":1384,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{},"injectables/S3ClientAdapter.html":{}}}],["constitutes",{"_index":22521,"title":{},"body":{"license.html":{}}}],["constraint",{"_index":17170,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["constructor",{"_index":379,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"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/ColumnUc.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":{},"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/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorUc.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/UnknownQueryTypeLoggableException.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":16401,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(@inject(mikroorm",{"_index":15019,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["constructor(@inject(request",{"_index":9837,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["constructor(@inject(toolfeatures",{"_index":8614,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["constructor(@inject(winston_module_provider",{"_index":8426,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["constructor(_em",{"_index":2251,"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":855,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["constructor(adapter",{"_index":4682,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["constructor(amqpconnection",{"_index":1146,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["constructor(apivalidationerror",{"_index":1235,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["constructor(app",{"_index":1462,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["constructor(authenticationservice",{"_index":14399,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["constructor(authorisation",{"_index":14169,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["constructor(authorisationservice",{"_index":17665,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["constructor(authorization",{"_index":6767,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["constructor(authorizationhelper",{"_index":3353,"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":2458,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["constructor(authservice",{"_index":14563,"title":{},"body":{"injectables/LoginUc.html":{}}}],["constructor(bbbservice",{"_index":21878,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["constructor(bbbsettings",{"_index":2139,"title":{},"body":{"injectables/BBBService.html":{}}}],["constructor(boarddorepo",{"_index":3090,"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":13203,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["constructor(classesrepo",{"_index":4433,"title":{},"body":{"injectables/ClassService.html":{}}}],["constructor(client",{"_index":17907,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["constructor(clientid",{"_index":5587,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/IdTokenCreationLoggableException.html":{}}}],["constructor(columnboardservice",{"_index":4928,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["constructor(config",{"_index":1944,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["constructor(configuration",{"_index":5809,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["constructor(consentresponse",{"_index":5548,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["constructor(console",{"_index":13517,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["constructor(consolewriter",{"_index":3445,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ServerConsole.html":{}}}],["constructor(content",{"_index":5695,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["constructor(contextexternaltool",{"_index":14992,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["constructor(contextexternaltoolrepo",{"_index":5796,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{}}}],["constructor(contextexternaltoolservice",{"_index":6166,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolReferenceUc.html":{}}}],["constructor(copyhelperservice",{"_index":6365,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["constructor(county",{"_index":6518,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["constructor(courseexportservice",{"_index":6782,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["constructor(courserepo",{"_index":6714,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{},"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["constructor(courserule",{"_index":17871,"title":{},"body":{"injectables/RuleManager.html":{}}}],["constructor(courseservice",{"_index":1851,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/CommonCartridgeExportService.html":{}}}],["constructor(customkey",{"_index":19006,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["constructor(dashboardrepo",{"_index":7833,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["constructor(data",{"_index":816,"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":16397,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(deletefilesuc",{"_index":7985,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["constructor(descendants",{"_index":3173,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["constructor(descriptionoroptions",{"_index":13739,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["constructor(details",{"_index":13772,"title":{},"body":{"classes/LdapConnectionError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["constructor(domainobject",{"_index":7252,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(dto",{"_index":3912,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["constructor(e",{"_index":995,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["constructor(em",{"_index":3282,"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":2386,"title":{},"body":{"classes/BaseFactory.html":{}}}],["constructor(entityname",{"_index":8353,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["constructor(error",{"_index":8362,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["constructor(externaltoolid",{"_index":8835,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["constructor(externaltoollogo",{"_index":8812,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["constructor(externaltoolrepo",{"_index":9366,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["constructor(externaltoolservice",{"_index":8648,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["constructor(externaluserid",{"_index":21585,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["constructor(feathersauthprovider",{"_index":9671,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["constructor(feathersserviceprovider",{"_index":8483,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/NexboardService.html":{}}}],["constructor(federalstaterepo",{"_index":9866,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["constructor(field",{"_index":21745,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(file",{"_index":9877,"title":{},"body":{"classes/FileDto.html":{}}}],["constructor(filecopyservice",{"_index":17203,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["constructor(filerecord",{"_index":6261,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["constructor(filesrepo",{"_index":8013,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["constructor(filesstorageclientadapterservice",{"_index":18497,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["constructor(filesstorageservice",{"_index":10580,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["constructor(group",{"_index":11184,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["constructor(grouprepo",{"_index":11261,"title":{},"body":{"injectables/GroupService.html":{}}}],["constructor(groupuser",{"_index":21103,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["constructor(httpservice",{"_index":3945,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/OauthAdapterService.html":{}}}],["constructor(id",{"_index":2238,"title":{},"body":{"classes/BaseDO.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/ScopeRef.html":{}}}],["constructor(idmservice",{"_index":582,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["constructor(info",{"_index":1291,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["constructor(init",{"_index":3847,"title":{},"body":{"classes/Builder.html":{}}}],["constructor(inusermigration",{"_index":14962,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["constructor(jwtservice",{"_index":1525,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["constructor(jwtvalidationadapter",{"_index":13177,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["constructor(kcadmin",{"_index":13345,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["constructor(kcadminclient",{"_index":13263,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["constructor(kcadminservice",{"_index":13532,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["constructor(key",{"_index":7245,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["constructor(ldapconfig",{"_index":12373,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(lessonrepo",{"_index":14294,"title":{},"body":{"injectables/LessonService.html":{}}}],["constructor(loader",{"_index":1784,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["constructor(logger",{"_index":2943,"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":14536,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["constructor(logourl",{"_index":8821,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["constructor(logouturl",{"_index":13074,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["constructor(ltirepo",{"_index":11501,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["constructor(ltitoolrepo",{"_index":14760,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["constructor(ltitoolservice",{"_index":16070,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["constructor(message",{"_index":1631,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/ForbiddenOperationError.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/PreviewActionsLoggable.html":{},"classes/ValidationError.html":{}}}],["constructor(newsrepo",{"_index":15268,"title":{},"body":{"injectables/NewsUc.html":{}}}],["constructor(oauthconfig",{"_index":12350,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oauthconfigdto",{"_index":15758,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["constructor(oauthconfigresponse",{"_index":15787,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["constructor(oauthproviderloginflowservice",{"_index":12639,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["constructor(oauthproviderservice",{"_index":15900,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["constructor(oauthservice",{"_index":11427,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["constructor(officialschoolnumber",{"_index":18476,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["constructor(oidcconfig",{"_index":12417,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oidcconfigdto",{"_index":16366,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["constructor(oidcprovisioningservice",{"_index":16522,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["constructor(operation",{"_index":15112,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["constructor(operator",{"_index":18539,"title":{},"body":{"classes/Scope.html":{}}}],["constructor(options",{"_index":5154,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(organizationelements",{"_index":5326,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["constructor(parametertype",{"_index":16599,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["constructor(params",{"_index":13976,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["constructor(payload",{"_index":18796,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["constructor(previewgeneratorservice",{"_index":16704,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["constructor(private",{"_index":345,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"controllers/MetaTagExtractorController.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":{},"classes/UnknownQueryTypeLoggableException.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":181,"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":2294,"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":16916,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["constructor(pseudonym",{"_index":20377,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["constructor(pseudonymrepo",{"_index":17070,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["constructor(pseudonymservice",{"_index":17115,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["constructor(readonly",{"_index":1222,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(redirectreponse",{"_index":17388,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["constructor(relation",{"_index":11243,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["constructor(repo",{"_index":6866,"title":{},"body":{"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/FilesService.html":{}}}],["constructor(req",{"_index":17421,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(request",{"_index":9848,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["constructor(requesttimeout",{"_index":20331,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["constructor(res",{"_index":17441,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(resourceelements",{"_index":5354,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["constructor(resourcename",{"_index":15444,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["constructor(resp",{"_index":8086,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["constructor(response",{"_index":5999,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["constructor(responsemapper",{"_index":18054,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["constructor(rolerepo",{"_index":17644,"title":{},"body":{"injectables/RoleService.html":{}}}],["constructor(roleservice",{"_index":17661,"title":{},"body":{"injectables/RoleUc.html":{}}}],["constructor(rulemanager",{"_index":1804,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["constructor(schoolexternaltoolrepo",{"_index":18275,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["constructor(schoolexternaltoolservice",{"_index":18307,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["constructor(schoolid",{"_index":18480,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["constructor(schoolname",{"_index":18364,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["constructor(schoolrepo",{"_index":14083,"title":{},"body":{"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["constructor(schoolservice",{"_index":1899,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["constructor(schoolyearrepo",{"_index":18532,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["constructor(service",{"_index":4723,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["constructor(sharetokenservice",{"_index":18873,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["constructor(state",{"_index":16861,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["constructor(storageclient",{"_index":16740,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["constructor(strategy",{"_index":4558,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["constructor(submissionitemsresponse",{"_index":19333,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["constructor(submissionrepo",{"_index":19286,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["constructor(submissionservice",{"_index":19314,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["constructor(successful",{"_index":19342,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["constructor(system",{"_index":17149,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{}}}],["constructor(systemrepo",{"_index":13812,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["constructor(systemresponses",{"_index":17145,"title":{},"body":{"classes/PublicSystemListResponse.html":{}}}],["constructor(systemservice",{"_index":16936,"title":{},"body":{"injectables/ProvisioningService.html":{},"injectables/SystemUc.html":{}}}],["constructor(task",{"_index":12462,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["constructor(taskrepo",{"_index":19679,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["constructor(taskservice",{"_index":17803,"title":{},"body":{"injectables/RoomsService.html":{}}}],["constructor(teamsrepo",{"_index":20207,"title":{},"body":{"injectables/TeamService.html":{}}}],["constructor(timetowait",{"_index":3821,"title":{},"body":{"classes/BruteForceError.html":{}}}],["constructor(tokengenerator",{"_index":18841,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["constructor(toolfeatures",{"_index":8596,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{}}}],["constructor(toollaunchservice",{"_index":20691,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["constructor(toolpermissionhelper",{"_index":6123,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["constructor(toolreference",{"_index":20721,"title":{},"body":{"classes/ToolReference.html":{}}}],["constructor(toolreferenceresponse",{"_index":20759,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["constructor(total",{"_index":16589,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["constructor(type",{"_index":8456,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["constructor(undefined",{"_index":773,"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/MetaTagExtractorResponse.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(unknownquerytype",{"_index":20856,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["constructor(user",{"_index":11331,"title":{},"body":{"classes/GroupUserResponse.html":{},"classes/UserDto.html":{}}}],["constructor(userid",{"_index":10780,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["constructor(userloginmigrationid",{"_index":21112,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["constructor(userloginmigrationservice",{"_index":4513,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["constructor(usermatchschoolid",{"_index":18350,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["constructor(usermigrationdto",{"_index":14946,"title":{},"body":{"classes/MigrationDto.html":{}}}],["constructor(usermigrationservice",{"_index":21398,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["constructor(username",{"_index":20852,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["constructor(userrepo",{"_index":17404,"title":{},"body":{"injectables/ReferenceLoader.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["constructor(userservice",{"_index":9732,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["constructor(validationerrors",{"_index":1209,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["construed",{"_index":22851,"title":{},"body":{"license.html":{}}}],["consumer",{"_index":14582,"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":14590,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["consumer.module.ts",{"_index":16720,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["consumer.module.ts:13",{"_index":16723,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["contact",{"_index":22940,"title":{},"body":{"license.html":{}}}],["contain",{"_index":535,"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":5071,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["container",{"_index":2825,"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":3698,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["container.url.params.ts",{"_index":19077,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["container.url.params.ts:11",{"_index":19079,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["containing",{"_index":15717,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["contains",{"_index":5462,"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":2196,"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/SubmissionItemResponseMapper.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":8241,"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:100",{"_index":19066,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["content.body.params.ts:107",{"_index":8695,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["content.body.params.ts:116",{"_index":8738,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["content.body.params.ts:14",{"_index":8243,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["content.body.params.ts:150",{"_index":20861,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:20",{"_index":9875,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:24",{"_index":9874,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:33",{"_index":9938,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["content.body.params.ts:39",{"_index":14334,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:44",{"_index":14332,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:49",{"_index":14330,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:54",{"_index":14331,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:63",{"_index":14362,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["content.body.params.ts:69",{"_index":17538,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:73",{"_index":17537,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:82",{"_index":17561,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["content.body.params.ts:91",{"_index":19051,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["content.component",{"_index":5115,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.description",{"_index":5129,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.url",{"_index":5128,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.dto",{"_index":16559,"title":{},"body":{"injectables/PageContentMapper.html":{},"injectables/UserMigrationService.html":{}}}],["content.dto.ts",{"_index":16544,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:2",{"_index":16548,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:4",{"_index":16547,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.identifier",{"_index":5325,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.mapper.ts",{"_index":16555,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.mapper.ts:7",{"_index":16556,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.numberofdrafttasks",{"_index":8203,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.numberofplannedtasks",{"_index":8205,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.response.ts",{"_index":16577,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:12",{"_index":16578,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:7",{"_index":16582,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.title",{"_index":5114,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.title}${content.content.text",{"_index":5121,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content/:contentid/:file",{"_index":11398,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["content_developer",{"_index":7175,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdeveloper",{"_index":7176,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdisposition",{"_index":1297,"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":3538,"title":{"injectables/ContentElementFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["contentelementid",{"_index":5762,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"injectables/ElementUc.html":{}}}],["contentelementresponsefactory",{"_index":3714,"title":{"classes/ContentElementResponseFactory.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["contentelementresponsefactory.mapsubmissioncontenttoresponse(element",{"_index":3735,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["contentelementresponsefactory.maptoresponse(element",{"_index":4055,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ElementController.html":{}}}],["contentelementservice",{"_index":1853,"title":{"injectables/ContentElementService.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contentelementtype",{"_index":4104,"title":{},"body":{"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnUc.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":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.external_tool",{"_index":5630,"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":5622,"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":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.link",{"_index":5624,"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":5626,"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":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.submission_container",{"_index":5628,"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":5678,"title":{"injectables/ContentElementUpdateVisitor.html":{}},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["contentelementupdatevisitor(content",{"_index":5689,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["contentelementurlparams",{"_index":5759,"title":{"classes/ContentElementUrlParams.html":{}},"body":{"classes/ContentElementUrlParams.html":{},"controllers/ElementController.html":{}}}],["contentid",{"_index":1302,"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":6344,"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":6345,"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":10845,"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":10840,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["contents.controller",{"_index":10839,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.controller.ts",{"_index":10799,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.controller.ts:25",{"_index":10804,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.module.ts",{"_index":10835,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["contents.params",{"_index":10809,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.params.ts",{"_index":10863,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.params.ts:11",{"_index":10869,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.push(element",{"_index":14217,"title":{},"body":{"classes/LessonFactory.html":{}}}],["contents.uc",{"_index":10807,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.uc.ts",{"_index":10848,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:15",{"_index":10852,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:7",{"_index":10851,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents/controller/dto/fwu",{"_index":10862,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents/controller/fwu",{"_index":10798,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents/fwu",{"_index":10834,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents/interface/config.ts",{"_index":18009,"title":{},"body":{"interfaces/S3Config.html":{}}}],["contents/uc/fwu",{"_index":10847,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contenttype",{"_index":6343,"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":8864,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["contenttypedetector[imagesignature",{"_index":8904,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["context",{"_index":131,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BaseUc.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/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/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":20409,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["context(context",{"_index":4762,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["context.action",{"_index":3365,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["context.builder",{"_index":23812,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["context.builder.ts",{"_index":1617,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:11",{"_index":1625,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:17",{"_index":1623,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:5",{"_index":1621,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.contextid",{"_index":18927,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["context.controller.ts",{"_index":20467,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:122",{"_index":20482,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:146",{"_index":20490,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:44",{"_index":20473,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:70",{"_index":20477,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:89",{"_index":20486,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.getclass",{"_index":20340,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.gethandler",{"_index":20339,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.interface",{"_index":16907,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/Rule.html":{}}}],["context.interface.ts",{"_index":1611,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/ProviderOidcContext.html":{}}}],["context.params.ts",{"_index":5830,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:18",{"_index":5836,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:8",{"_index":5834,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.reponse",{"_index":2908,"title":{},"body":{"controllers/BoardController.html":{}}}],["context.reponse.ts",{"_index":2856,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:13",{"_index":2861,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:16",{"_index":2864,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:4",{"_index":2857,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.requiredpermissions",{"_index":3361,"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":5580,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["context.response.ts",{"_index":16383,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:12",{"_index":16390,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:15",{"_index":16391,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:19",{"_index":16393,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:6",{"_index":16388,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:9",{"_index":16389,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.switchtohttp().getrequest",{"_index":17472,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["context_external_tools",{"_index":5855,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextcanwrite",{"_index":14199,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextconfigurationenabled",{"_index":12577,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["contextdo",{"_index":20713,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool",{"_index":1840,"title":{"classes/ContextExternalTool.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":20476,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltool(contextexternaltooldto",{"_index":6148,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.contextref",{"_index":6181,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref.id",{"_index":1846,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltool.contextref.type",{"_index":1873,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool.displayname",{"_index":6035,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.id",{"_index":6033,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltool.schooltoolref",{"_index":6180,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.schooltoolref.schoolid",{"_index":6154,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.schooltoolref.schooltoolid",{"_index":6034,"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":6036,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltoolauthorizableservice",{"_index":5794,"title":{"injectables/ContextExternalToolAuthorizableService.html":{}},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse",{"_index":5800,"title":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20466,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplateresponse",{"_index":5802,"title":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolcontextparams",{"_index":5828,"title":{"classes/ContextExternalToolContextParams.html":{}},"body":{"classes/ContextExternalToolContextParams.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltooldto",{"_index":5983,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltooldto.schooltoolref.schoolid",{"_index":6147,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltooldto.schooltoolref.schooltoolid",{"_index":6145,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltoolentity",{"_index":5839,"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":5948,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltoolfactory",{"_index":5862,"title":{"classes/ContextExternalToolFactory.html":{}},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolfactory.define(contextexternaltool",{"_index":5871,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolid",{"_index":3235,"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":8725,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["contextexternaltoolidparams",{"_index":5872,"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":3532,"title":{"modules/ContextExternalToolModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["contextexternaltoolpostparams",{"_index":5888,"title":{"classes/ContextExternalToolPostParams.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolprops",{"_index":5771,"title":{"interfaces/ContextExternalToolProps.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["contextexternaltoolquery",{"_index":5915,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{}}}],["contextexternaltoolrepo",{"_index":5384,"title":{"injectables/ContextExternalToolRepo.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{}}}],["contextexternaltoolrequestmapper",{"_index":5976,"title":{"classes/ContextExternalToolRequestMapper.html":{}},"body":{"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolrequestmapper.mapcontextexternaltoolrequest(body",{"_index":20494,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse",{"_index":5997,"title":{"classes/ContextExternalToolResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper",{"_index":6018,"title":{"classes/ContextExternalToolResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(contextexternaltool",{"_index":20508,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(createdtool",{"_index":20496,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(tool",{"_index":20504,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(updatedtool",{"_index":20511,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponse(toolreference",{"_index":20747,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponses(toolreferences",{"_index":20750,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiunprocessableentityresponse()@apioperation({summary",{"_index":20489,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20471,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apioperation({summary",{"_index":20480,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolrule",{"_index":1701,"title":{"injectables/ContextExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/RuleManager.html":{}}}],["contextexternaltools",{"_index":6107,"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":9817,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltools.map",{"_index":20503,"title":{},"body":{"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolscope",{"_index":5917,"title":{"classes/ContextExternalToolScope.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["contextexternaltoolsearchlistresponse",{"_index":6087,"title":{"classes/ContextExternalToolSearchListResponse.html":{}},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse(mappedtools",{"_index":20505,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse})@apioperation({summary",{"_index":20485,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolservice",{"_index":5884,"title":{"injectables/ContextExternalToolService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/RecursiveDeleteVisitor.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":8606,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["contextexternaltoolsinuse.some",{"_index":8625,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["contextexternaltooltemplateinfo",{"_index":8604,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltooltype",{"_index":5844,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltooltype.board_element",{"_index":5974,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooltype.course",{"_index":5973,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooluc",{"_index":6115,"title":{"injectables/ContextExternalToolUc.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolvalidationservice",{"_index":5885,"title":{"injectables/ContextExternalToolValidationService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["contextid",{"_index":5831,"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":7374,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["contextreadwithtopiccreate",{"_index":14193,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextref",{"_index":5767,"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":9819,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextrefparams",{"_index":6193,"title":{"classes/ContextRefParams.html":{}},"body":{"classes/ContextRefParams.html":{},"controllers/ToolConfigurationController.html":{}}}],["contexttoolid",{"_index":6043,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["contexttype",{"_index":4804,"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":22689,"title":{},"body":{"license.html":{}}}],["continued",{"_index":22673,"title":{},"body":{"license.html":{}}}],["contractual",{"_index":22728,"title":{},"body":{"license.html":{}}}],["contradict",{"_index":22858,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contrast",{"_index":22382,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contributor",{"_index":22801,"title":{},"body":{"license.html":{}}}],["contributor's",{"_index":22803,"title":{},"body":{"license.html":{}}}],["control",{"_index":20570,"title":{},"body":{"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controlled",{"_index":22806,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controller",{"_index":259,"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/MetaTagExtractorController.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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.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":344,"title":{},"body":{"controllers/AccountController.html":{}}}],["controller('authentication",{"_index":14509,"title":{},"body":{"controllers/LoginController.html":{}}}],["controller('board",{"_index":3716,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["controller('boards",{"_index":2912,"title":{},"body":{"controllers/BoardController.html":{}}}],["controller('cards",{"_index":4029,"title":{},"body":{"controllers/CardController.html":{}}}],["controller('collaborative",{"_index":4657,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["controller('columns",{"_index":4971,"title":{},"body":{"controllers/ColumnController.html":{}}}],["controller('courses",{"_index":6694,"title":{},"body":{"controllers/CourseController.html":{}}}],["controller('dashboard",{"_index":7453,"title":{},"body":{"controllers/DashboardController.html":{}}}],["controller('elements",{"_index":8285,"title":{},"body":{"controllers/ElementController.html":{}}}],["controller('fwu",{"_index":10811,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["controller('groups",{"_index":11056,"title":{},"body":{"controllers/GroupController.html":{}}}],["controller('h5p",{"_index":11387,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["controller('lessons",{"_index":14159,"title":{},"body":{"controllers/LessonController.html":{}}}],["controller('management/database",{"_index":7918,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["controller('management/idm",{"_index":13657,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["controller('meta",{"_index":14842,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["controller('news",{"_index":15092,"title":{},"body":{"controllers/NewsController.html":{}}}],["controller('oauth2",{"_index":16015,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["controller('pseudonyms",{"_index":17019,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["controller('rooms",{"_index":17784,"title":{},"body":{"controllers/RoomsController.html":{}}}],["controller('school",{"_index":13962,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["controller('sharetoken",{"_index":18731,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["controller('sso",{"_index":16248,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["controller('submissions",{"_index":19094,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["controller('systems",{"_index":19385,"title":{},"body":{"controllers/SystemController.html":{}}}],["controller('tasks",{"_index":19656,"title":{},"body":{"controllers/TaskController.html":{}}}],["controller('team",{"_index":20159,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["controller('tools",{"_index":20429,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolLaunchController.html":{}}}],["controller('tools/context",{"_index":20493,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["controller('tools/external",{"_index":20542,"title":{},"body":{"controllers/ToolController.html":{}}}],["controller('tools/school",{"_index":20820,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["controller('tools/tool",{"_index":20744,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["controller('user",{"_index":20930,"title":{},"body":{"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["controller('user/import",{"_index":12800,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["controller('videoconference",{"_index":21946,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["controller('videoconference2",{"_index":21835,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["controller.ts",{"_index":23270,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["controller/account.controller",{"_index":229,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["controller/api",{"_index":23565,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["controller/collaborative",{"_index":4678,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["controller/course.controller",{"_index":13870,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/dashboard.controller",{"_index":13871,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/database",{"_index":14788,"title":{},"body":{"modules/ManagementModule.html":{}}}],["controller/dto",{"_index":789,"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":21452,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["controller/dto/password",{"_index":809,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["controller/dto/response/video",{"_index":22043,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["controller/dto/single",{"_index":17680,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["controller/dto/target",{"_index":19594,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["controller/dto/task",{"_index":20015,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["controller/dto/team",{"_index":4733,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["controller/fwu",{"_index":10838,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["controller/h5p",{"_index":11409,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["controller/import",{"_index":12939,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["controller/keycloak",{"_index":13327,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["controller/legacy",{"_index":13934,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["controller/news.controller",{"_index":15190,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/oauth",{"_index":15701,"title":{},"body":{"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{}}}],["controller/pseudonym.controller",{"_index":17006,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["controller/rooms.controller",{"_index":13872,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/server.controller",{"_index":18621,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["controller/share",{"_index":18945,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["controller/team",{"_index":15191,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/transformer/sanitize",{"_index":17533,"title":{},"body":{"classes/RichText.html":{}}}],["controller/user",{"_index":21122,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["controllers",{"_index":223,"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.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":13824,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["controllers/login.controller",{"_index":1324,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["convenient",{"_index":22476,"title":{},"body":{"license.html":{}}}],["convention",{"_index":23404,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["conventions",{"_index":23253,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["conversion",{"_index":594,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convert",{"_index":561,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["converted",{"_index":592,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convertedteamuserids",{"_index":15407,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter((userid",{"_index":15421,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter(boolean",{"_index":15414,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.includes(userid",{"_index":15417,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["converter/bson.converter",{"_index":11683,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["converterutil",{"_index":2141,"title":{"injectables/ConverterUtil.html":{}},"body":{"injectables/BBBService.html":{},"injectables/ConverterUtil.html":{},"modules/VideoConferenceModule.html":{}}}],["converts",{"_index":589,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["converttodatabasevalue",{"_index":19004,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttodatabasevalue(value",{"_index":19009,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue",{"_index":19005,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue(value",{"_index":19011,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["convey",{"_index":22464,"title":{},"body":{"license.html":{}}}],["conveyance",{"_index":22836,"title":{},"body":{"license.html":{}}}],["conveyed",{"_index":22684,"title":{},"body":{"license.html":{}}}],["conveying",{"_index":22471,"title":{},"body":{"license.html":{}}}],["conveys",{"_index":22727,"title":{},"body":{"license.html":{}}}],["cookie",{"_index":11543,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["cookie.parse(request.headers.cookie",{"_index":13173,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookie.startswith('oauth2",{"_index":11559,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["cookiedefaultoptions",{"_index":16285,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookieoptions",{"_index":16235,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookies",{"_index":11469,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{}}}],["cookies[name",{"_index":13174,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookiesdto",{"_index":6206,"title":{"classes/CookiesDto.html":{}},"body":{"classes/CookiesDto.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["cooperation",{"_index":22375,"title":{},"body":{"license.html":{}}}],["copied",{"_index":1394,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/LessonCopyApiParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/TaskCopyApiParams.html":{}}}],["copies",{"_index":17277,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"license.html":{}}}],["copies.push(childcopy",{"_index":17280,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy",{"_index":2421,"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":17206,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy(params",{"_index":3263,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy(paths",{"_index":17911,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copy(userid",{"_index":10157,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["copy.id",{"_index":17253,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.interface",{"_index":3270,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.interface.ts",{"_index":18490,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.interface.ts:18",{"_index":18493,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.params",{"_index":6469,"title":{},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{}}}],["copy.params.ts",{"_index":14164,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:14",{"_index":14165,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:22",{"_index":19675,"title":{},"body":{"classes/TaskCopyApiParams.html":{}}}],["copy.service",{"_index":2981,"title":{},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/CourseCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["copy.service.ts",{"_index":2934,"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":2960,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:120",{"_index":2963,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:128",{"_index":2958,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:14",{"_index":3265,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.service.ts:143",{"_index":2967,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:15",{"_index":6716,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.service.ts:16",{"_index":4770,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copy.service.ts:164",{"_index":2973,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:177",{"_index":2970,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:18",{"_index":19680,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:25",{"_index":4772,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:36",{"_index":2949,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:42",{"_index":19685,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:46",{"_index":2952,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:56",{"_index":6720,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:63",{"_index":19690,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:70",{"_index":19688,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:72",{"_index":6725,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:78",{"_index":2955,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["copy.service.ts:9",{"_index":18503,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.uc",{"_index":17780,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/TaskController.html":{}}}],["copy.uc.ts",{"_index":6765,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:10",{"_index":6768,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:102",{"_index":19732,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:11",{"_index":19717,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:112",{"_index":19722,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:12",{"_index":14170,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:16",{"_index":6771,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:21",{"_index":14178,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:27",{"_index":6769,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:55",{"_index":14175,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:61",{"_index":19724,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:63",{"_index":14172,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:68",{"_index":14173,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:69",{"_index":19719,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:74",{"_index":19721,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:81",{"_index":19727,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:92",{"_index":19730,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.visitor",{"_index":3268,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.visitor.ts",{"_index":17197,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:126",{"_index":17225,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:146",{"_index":17227,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:165",{"_index":17229,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:183",{"_index":17231,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:192",{"_index":17221,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:21",{"_index":17205,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:210",{"_index":17215,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:214",{"_index":17211,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:227",{"_index":17209,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:23",{"_index":17204,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:27",{"_index":17207,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:38",{"_index":17219,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:59",{"_index":17217,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:77",{"_index":17213,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:96",{"_index":17223,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy_files_of_parent",{"_index":11933,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["copyapiresponse",{"_index":6216,"title":{"classes/CopyApiResponse.html":{}},"body":{"classes/CopyApiResponse.html":{},"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copyapiresponse})@apiresponse({status",{"_index":18715,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["copyboard",{"_index":2935,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboard(params",{"_index":2950,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements",{"_index":2936,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements(boardelements",{"_index":2953,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard",{"_index":2937,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["copycolumnboard(columnboardtarget",{"_index":2957,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard(props",{"_index":4771,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copycourse",{"_index":6710,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourse(currentuser",{"_index":17764,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copycourse(undefined",{"_index":6717,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourse(userid",{"_index":6770,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourseentity",{"_index":6711,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourseentity(params",{"_index":6718,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copydict",{"_index":3050,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copydictionary",{"_index":6421,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copyelementtype",{"_index":2982,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.board",{"_index":2996,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.card",{"_index":17245,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.column",{"_index":17243,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.columnboard",{"_index":17240,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.content",{"_index":19706,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.course",{"_index":6762,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.coursegroup_group",{"_index":6759,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.external_tool_element",{"_index":17269,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file",{"_index":6399,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_element",{"_index":17259,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_group",{"_index":6404,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.lesson",{"_index":3056,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.link_element",{"_index":17262,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.ltitool_group",{"_index":6754,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.metadata",{"_index":6752,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.richtext_element",{"_index":17265,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_container_element",{"_index":17267,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_group",{"_index":19707,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.submission_item",{"_index":17268,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.task",{"_index":19709,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.time_group",{"_index":6755,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.user_group",{"_index":6753,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyentity",{"_index":2998,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyentity.course?.id",{"_index":6481,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyentity.id",{"_index":6479,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyfiledto",{"_index":6236,"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":17256,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.name",{"_index":17257,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.sourceid",{"_index":17258,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfilelistresponse",{"_index":6249,"title":{"classes/CopyFileListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse.map((response",{"_index":10555,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["copyfileparams",{"_index":6288,"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":6252,"title":{"classes/CopyFileResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["copyfileresponsebuilder",{"_index":6325,"title":{"classes/CopyFileResponseBuilder.html":{}},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["copyfiles",{"_index":6330,"title":{"interfaces/CopyFiles.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["copyfilesofentity",{"_index":6362,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofentity(originalentity",{"_index":6368,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparent",{"_index":10513,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(param",{"_index":10519,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["copyfilesofparent(params",{"_index":18491,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(payload",{"_index":10584,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:finished",{"_index":10720,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:started",{"_index":10718,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparentparambuilder",{"_index":6346,"title":{"classes/CopyFilesOfParentParamBuilder.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparambuilder.build(userid",{"_index":6385,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparams",{"_index":6310,"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":6311,"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":6359,"title":{"injectables/CopyFilesService.html":{}},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["copyhelpermodule",{"_index":6406,"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":2948,"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":6900,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"license.html":{}}}],["copyingsince",{"_index":6538,"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":22371,"title":{},"body":{"license.html":{}}}],["copylesson",{"_index":2938,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copylesson(currentuser",{"_index":17767,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copylesson(originallesson",{"_index":2959,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copylesson(userid",{"_index":14176,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copymap",{"_index":17198,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copymapper",{"_index":6454,"title":{"classes/CopyMapper.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maplessoncopytodomain(params",{"_index":17799,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copymapper.maptaskcopytodomain(params",{"_index":19672,"title":{},"body":{"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(copystatus",{"_index":17796,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(element",{"_index":6485,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyname",{"_index":6727,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copyobjectcommand",{"_index":17926,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyobjectcommandoutput",{"_index":17927,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths",{"_index":17962,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths.map((p",{"_index":17972,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyprops",{"_index":1608,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["copyrequest",{"_index":17966,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyrequests",{"_index":17976,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyright",{"_index":22361,"title":{},"body":{"license.html":{}}}],["copyrightable",{"_index":22438,"title":{},"body":{"license.html":{}}}],["copyrighted",{"_index":22531,"title":{},"body":{"license.html":{}}}],["copyrightowners",{"_index":5085,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["copysource",{"_index":17978,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copystatus",{"_index":2966,"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":6477,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.copyentity.context",{"_index":4791,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copystatus.elements",{"_index":6482,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.status",{"_index":6476,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.title",{"_index":6474,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.type",{"_index":6475,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatusenum",{"_index":2983,"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":3006,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copystatusenum.not_doing",{"_index":6435,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.not_implemented",{"_index":6760,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copystatusenum.partial",{"_index":6429,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copystatusenum.success",{"_index":6400,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copytask",{"_index":2939,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copytask(currentuser",{"_index":19629,"title":{},"body":{"controllers/TaskController.html":{}}}],["copytask(originaltask",{"_index":2962,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copytask(params",{"_index":19681,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytask(userid",{"_index":18885,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copytaskentity",{"_index":19677,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytaskentity(params",{"_index":19683,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["core",{"_index":6498,"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":23608,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["core/error",{"_index":23366,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["core/logger/logger.module",{"_index":231,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["coremodule",{"_index":6490,"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":4645,"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":22902,"title":{},"body":{"license.html":{}}}],["correctly",{"_index":23397,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["correctness",{"_index":23152,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["corresponding",{"_index":14540,"title":{},"body":{"classes/LoginResponse-1.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["cors",{"_index":22206,"title":{},"body":{"dependencies.html":{}}}],["cost",{"_index":22621,"title":{},"body":{"license.html":{}}}],["count",{"_index":5949,"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":12979,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["countednewslist",{"_index":15212,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["countedtasklist",{"_index":19886,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["counterclaim",{"_index":22793,"title":{},"body":{"license.html":{}}}],["counties",{"_index":6525,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countpipeline",{"_index":21629,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countpipeline.push",{"_index":21630,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countries",{"_index":22461,"title":{},"body":{"license.html":{}}}],["country",{"_index":22829,"title":{},"body":{"license.html":{}}}],["counts",{"_index":6898,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["county",{"_index":6513,"title":{"classes/County.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.antareskey",{"_index":6530,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.countyid",{"_index":6528,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.name",{"_index":6526,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countyid",{"_index":6517,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["coupling",{"_index":23248,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["course",{"_index":1867,"title":{"entities/Course.html":{}},"body":{"injectables/AutoContextNameStrategy.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":5088,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.description",{"_index":23781,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.entity",{"_index":2624,"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":6630,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.substitutionteachers",{"_index":6634,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.teachers",{"_index":6631,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractuserlist(users",{"_index":6642,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.factory",{"_index":6839,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["course.getmetadata",{"_index":6882,"title":{},"body":{"classes/CourseMapper.html":{}}}],["course.getstudentslist().map((user",{"_index":3121,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getsubstitutionteacherslist().map((user",{"_index":3119,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getteacherslist().map((user",{"_index":3114,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.id",{"_index":9776,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.name",{"_index":1882,"title":{},"body":{"injectables/AutoContextNameStrategy.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":7035,"title":{},"body":{"injectables/CourseService.html":{}}}],["course.rule",{"_index":6858,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["course.school",{"_index":23779,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.school.id",{"_index":4785,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["course.service",{"_index":5081,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.students.contains(user",{"_index":17749,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.students.length",{"_index":9777,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.students.loaditems",{"_index":9783,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.substitutionteachers.contains(user",{"_index":17747,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.substitutionteachers.loaditems",{"_index":9785,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.teachers",{"_index":5130,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.teachers.contains(user",{"_index":17748,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.teachers.loaditems",{"_index":9784,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursecolumnboardtargets",{"_index":17813,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursecontroller",{"_index":6671,"title":{"controllers/CourseController.html":{}},"body":{"controllers/CourseController.html":{},"modules/LearnroomApiModule.html":{}}}],["coursecopy",{"_index":6722,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.copyingsince",{"_index":6750,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.name",{"_index":6761,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyparams",{"_index":6719,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyservice",{"_index":6708,"title":{"injectables/CourseCopyService.html":{}},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenUC.html":{}}}],["coursecopyuc",{"_index":6763,"title":{"injectables/CourseCopyUC.html":{}},"body":{"injectables/CourseCopyUC.html":{},"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["courseexportservice",{"_index":6784,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["courseexportuc",{"_index":6687,"title":{"injectables/CourseExportUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomApiModule.html":{}}}],["coursefactory",{"_index":6791,"title":{"classes/CourseFactory.html":{}},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.build",{"_index":6841,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.define(course",{"_index":6812,"title":{},"body":{"classes/CourseFactory.html":{}}}],["coursefeatures",{"_index":6558,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["coursegroup",{"_index":6586,"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":14238,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["coursegroup.entity",{"_index":6587,"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":6874,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupfactory",{"_index":6836,"title":{"classes/CourseGroupFactory.html":{}},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupfactory.define(coursegroup",{"_index":6840,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupid",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["coursegroupmemberids",{"_index":12308,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["coursegrouppermission",{"_index":14250,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouppermission(user",{"_index":14256,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouprepo",{"_index":1743,"title":{"injectables/CourseGroupRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["coursegrouprule",{"_index":1702,"title":{"injectables/CourseGroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{}}}],["coursegroups",{"_index":6539,"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":6873,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupservice",{"_index":6862,"title":{"injectables/CourseGroupService.html":{}},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupsexist",{"_index":6756,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursegroupsofuser",{"_index":19249,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["courseid",{"_index":1861,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":6846,"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":17810,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursemapper",{"_index":6691,"title":{"classes/CourseMapper.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMapper.html":{}}}],["coursemapper.maptometadataresponse(course",{"_index":6698,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadata",{"_index":6881,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.copyingsince",{"_index":6889,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.displaycolor",{"_index":6886,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.id",{"_index":6883,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.shorttitle",{"_index":6885,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.startdate",{"_index":6887,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.title",{"_index":6884,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.untildate",{"_index":6888,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadatalistresponse",{"_index":6690,"title":{"classes/CourseMetadataListResponse.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursemetadatalistresponse(courseresponses",{"_index":6699,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadataresponse",{"_index":6880,"title":{"classes/CourseMetadataResponse.html":{}},"body":{"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursename",{"_index":1889,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":6912,"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":6945,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["coursepermission",{"_index":14251,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursepermission(user",{"_index":14258,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursequeryparams",{"_index":6676,"title":{"classes/CourseQueryParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseQueryParams.html":{}}}],["coursereference",{"_index":4826,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/RoomsService.html":{}}}],["courserepo",{"_index":1744,"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":6696,"title":{},"body":{"controllers/CourseController.html":{}}}],["courserule",{"_index":1703,"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":4779,"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":20054,"title":{},"body":{"injectables/TaskUC.html":{}}}],["courses.foreach((course",{"_index":7034,"title":{},"body":{"injectables/CourseService.html":{}}}],["courses.map((course",{"_index":6697,"title":{},"body":{"controllers/CourseController.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["courses.map(async",{"_index":9809,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursescope",{"_index":6981,"title":{"classes/CourseScope.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["courseservice",{"_index":1852,"title":{"injectables/CourseService.html":{}},"body":{"injectables/AutoContextNameStrategy.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":6743,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursetasks",{"_index":17812,"title":{},"body":{"injectables/RoomsService.html":{}}}],["courseuc",{"_index":6685,"title":{"injectables/CourseUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"modules/LearnroomApiModule.html":{}}}],["courseurlparams",{"_index":6675,"title":{"classes/CourseUrlParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseUrlParams.html":{}}}],["coursevalue",{"_index":1875,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["court",{"_index":22857,"title":{},"body":{"license.html":{}}}],["courts",{"_index":22922,"title":{},"body":{"license.html":{}}}],["covenant",{"_index":22819,"title":{},"body":{"license.html":{}}}],["cover",{"_index":23400,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["coverage",{"_index":934,"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":22448,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["cp",{"_index":23663,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cr",{"_index":13432,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["create",{"_index":685,"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":{},"controllers/BoardSubmissionController.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":15093,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["create(config",{"_index":2144,"title":{},"body":{"injectables/BBBService.html":{}}}],["create(context",{"_index":4820,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["create(currentuser",{"_index":15069,"title":{},"body":{"controllers/NewsController.html":{}}}],["create(currentuserid",{"_index":21881,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create(data",{"_index":9825,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["create(entity",{"_index":711,"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":4102,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["create(path",{"_index":17913,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["create(userid",{"_index":15270,"title":{},"body":{"injectables/NewsUc.html":{},"injectables/SubmissionItemService.html":{}}}],["create.config.ts",{"_index":1958,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:23",{"_index":1977,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:25",{"_index":1971,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:27",{"_index":1975,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:29",{"_index":1973,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:31",{"_index":1978,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:33",{"_index":1972,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:35",{"_index":1976,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:37",{"_index":1970,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:39",{"_index":1974,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:9",{"_index":1969,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.params.ts",{"_index":8698,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:14",{"_index":21858,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:16",{"_index":19759,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:17",{"_index":8706,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:19",{"_index":21866,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:21",{"_index":14608,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:22",{"_index":8709,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:25",{"_index":15650,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{}}}],["create.params.ts:26",{"_index":14607,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:27",{"_index":8705,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:30",{"_index":14604,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:33",{"_index":19764,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:34",{"_index":14606,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:35",{"_index":15649,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:38",{"_index":14602,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:39",{"_index":15648,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:41",{"_index":19761,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:43",{"_index":15652,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:48",{"_index":8703,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:49",{"_index":19757,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:55",{"_index":8708,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:57",{"_index":19763,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:59",{"_index":8704,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:63",{"_index":8707,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:9",{"_index":21857,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.response.ts",{"_index":2045,"title":{},"body":{"interfaces/BBBCreateResponse.html":{}}}],["create.uc.ts",{"_index":21873,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:19",{"_index":21880,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:26",{"_index":21884,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:40",{"_index":21882,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:67",{"_index":21887,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:88",{"_index":21891,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:92",{"_index":21889,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create_tokens_for_users=true",{"_index":23686,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["createaccount",{"_index":12692,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createaccount(account",{"_index":12701,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createandjoin",{"_index":21932,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandjoin(currentuser",{"_index":21933,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandstartprometheusmetricsappifenabled",{"_index":16887,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createapiresponsetimemetricmiddleware",{"_index":16865,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["createauthenticationcodegranttokenrequestpayload",{"_index":20364,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createauthenticationcodegranttokenrequestpayload(clientid",{"_index":20366,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createboard",{"_index":3444,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboard(courseid",{"_index":3450,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboardelementfor(boardelementtarget",{"_index":2686,"title":{},"body":{"entities/Board.html":{}}}],["createboardforcourse",{"_index":3624,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createboardforcourse(courseid",{"_index":3628,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createbucket",{"_index":17903,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createbucketcommand",{"_index":17928,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createcard",{"_index":4947,"title":{},"body":{"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["createcard(urlparams",{"_index":4950,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcard(userid",{"_index":5020,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["createcardbodyparams",{"_index":4952,"title":{"classes/CreateCardBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["createcardbodyparams})@post(':columnid/cards",{"_index":4956,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcards",{"_index":3470,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcards(amount",{"_index":3478,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createclient",{"_index":8009,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["createclient(storageprovider",{"_index":8017,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["createcollection",{"_index":7937,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcollection(collectionname",{"_index":7947,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcolumn",{"_index":2867,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["createcolumn(urlparams",{"_index":2872,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumn(userid",{"_index":3784,"title":{},"body":{"injectables/BoardUc.html":{}}}],["createcolumns",{"_index":3471,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcolumns(amount",{"_index":3480,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createconfigmoduleoptions",{"_index":10677,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["createcontentelementbodyparams",{"_index":3689,"title":{"classes/CreateContentElementBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CreateContentElementBodyParams.html":{}}}],["createcontextexternaltool",{"_index":6118,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(currentuser",{"_index":20469,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(userid",{"_index":6127,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["createcourse",{"_index":6963,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["createcourse(course",{"_index":6967,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["createcourse(userid",{"_index":23783,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["created",{"_index":2309,"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":21825,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["created.id",{"_index":2312,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["createdaccountid",{"_index":13691,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdaccountid.id",{"_index":13693,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdat",{"_index":376,"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":11791,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createdate",{"_index":2046,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createddate",{"_index":549,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createdir",{"_index":10363,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdir(folderpath",{"_index":10372,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdmodel",{"_index":7768,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["createdschoolexternaltool",{"_index":18298,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["createdschoolexternaltooldo",{"_index":20835,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createdto",{"_index":8219,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createdto(undefined",{"_index":17667,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["createdtool",{"_index":6151,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createelement",{"_index":3684,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["createelement(urlparams",{"_index":3687,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{}}}],["createelement(userid",{"_index":4160,"title":{},"body":{"injectables/CardUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["createelements",{"_index":3472,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createelements(amount",{"_index":3482,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createemptyelements",{"_index":4098,"title":{},"body":{"injectables/CardService.html":{}}}],["createemptyelements(card",{"_index":4106,"title":{},"body":{"injectables/CardService.html":{}}}],["createentity",{"_index":2242,"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":2257,"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":10886,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorloggable(error",{"_index":10897,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse",{"_index":10887,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse(error",{"_index":10899,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror",{"_index":10888,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror(error",{"_index":10901,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror",{"_index":10889,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror(error",{"_index":10903,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception",{"_index":10890,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception(exception",{"_index":10905,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforunknownerror",{"_index":10891,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createetherpad",{"_index":8482,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createetherpad(userid",{"_index":8486,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createexternaltool",{"_index":9358,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["createexternaltool(currentuser",{"_index":20515,"title":{},"body":{"controllers/ToolController.html":{}}}],["createexternaltool(externaltool",{"_index":9373,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["createexternaltool(userid",{"_index":9478,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["createfile",{"_index":20317,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileresponse",{"_index":20318,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileurlreplacements",{"_index":6363,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createfileurlreplacements(filedtos",{"_index":6370,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createflowrequest",{"_index":13410,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["creategridelement",{"_index":7713,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategridelement(elementwithposition",{"_index":7724,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategroup(name",{"_index":1056,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createhttpexceptionoptions",{"_index":8463,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createhttpexceptionoptions(error",{"_index":8467,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createidentifier",{"_index":5082,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["createidentifier(content._id",{"_index":5111,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(courseid",{"_index":5084,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lesson.id",{"_index":5097,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lessonid)}/${createidentifier(content._id)}.html",{"_index":5113,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(task.id",{"_index":5139,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentityprovider",{"_index":13337,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidentityprovider(oidcconfig",{"_index":13356,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper",{"_index":13338,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper(idpalias",{"_index":13359,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidtoken",{"_index":12637,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createidtoken(userid",{"_index":12644,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createifnotrunning",{"_index":21874,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createifnotrunning(currentuserid",{"_index":21883,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createiframesubject",{"_index":12638,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createiframesubject(user",{"_index":12646,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createinstance(targetmodel",{"_index":6943,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["createjwt",{"_index":13196,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["createjwt(params",{"_index":7077,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtparams",{"_index":7058,"title":{"interfaces/CreateJwtParams.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtpayload",{"_index":1531,"title":{"interfaces/CreateJwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/JwtPayload.html":{},"injectables/LoginUc.html":{}}}],["createlaunchdata",{"_index":2542,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchdata(userid",{"_index":2576,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest",{"_index":2543,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdata",{"_index":2578,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdatado",{"_index":12592,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["createlesson",{"_index":14226,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(lesson",{"_index":14228,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(userid",{"_index":23787,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createlogmessageforvalidationerrors",{"_index":8359,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createlogmessageforvalidationerrors(error",{"_index":8366,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createmessage",{"_index":13886,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessage(message",{"_index":13890,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessagewithcontext",{"_index":14471,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmessagewithcontext(loggable",{"_index":14474,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmikroormmodule",{"_index":15013,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["createmock",{"_index":20299,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["createnewaccount",{"_index":16462,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["createnewentityfromdo",{"_index":2243,"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":2260,"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":21338,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewmigration(school",{"_index":21346,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewsparams",{"_index":7099,"title":{"classes/CreateNewsParams.html":{}},"body":{"classes/CreateNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["createnexboard",{"_index":15337,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createnexboard(userid",{"_index":15339,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createoauth2client",{"_index":15895,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["createoauth2client(currentuser",{"_index":15902,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["createoauth2client(data",{"_index":16164,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["createorupdate",{"_index":9018,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdate(domainobject",{"_index":9027,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdateboardnode",{"_index":17324,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateboardnode(boardnode",{"_index":17329,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateidmaccount",{"_index":13666,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdateidmaccount(account",{"_index":13668,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createpath",{"_index":16676,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpath(schoolid",{"_index":16680,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewdirectorypath",{"_index":16795,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewdirectorypath(filerecord.getschoolid",{"_index":16802,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewfilepath",{"_index":16677,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewfilepath(schoolid",{"_index":16683,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash",{"_index":16678,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash(id",{"_index":16682,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createprometheusmetricsapp",{"_index":16866,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createprometheusmetricsapp(route",{"_index":16895,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createqueryordermap",{"_index":20981,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createqueryordermap(sort",{"_index":20983,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createredisidentifierfromjwtdata",{"_index":13218,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createredisidentifierfromjwtdata(accountid",{"_index":13224,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createrequest",{"_index":10700,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrequest(event",{"_index":10710,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrichtextelement",{"_index":4815,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createrichtextelement(text",{"_index":4822,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creates",{"_index":2146,"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":18004,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["creates3clientadapter(config",{"_index":18008,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["createschoolbysuperhero(userid",{"_index":23768,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createschoolexternaltool",{"_index":18303,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(currentuser",{"_index":20802,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(userid",{"_index":18309,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["createsharetoken",{"_index":18703,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["createsharetoken(currentuser",{"_index":18706,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["createsharetoken(userid",{"_index":18887,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["createstudentstatusforuser(user",{"_index":12547,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createsubmissionitem",{"_index":8263,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["createsubmissionitem(urlparams",{"_index":8266,"title":{},"body":{"controllers/ElementController.html":{}}}],["createsubmissionitem(userid",{"_index":8304,"title":{},"body":{"injectables/ElementUc.html":{}}}],["createsubmissionitembodyparams",{"_index":7122,"title":{"classes/CreateSubmissionItemBodyParams.html":{}},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{}}}],["createsubmissionitembodyparams})@post(':contentelementid/submissions",{"_index":8269,"title":{},"body":{"controllers/ElementController.html":{}}}],["createtask",{"_index":19824,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtask(task",{"_index":19829,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtaskstatus",{"_index":8129,"title":{},"body":{"classes/DtoCreator.html":{}}}],["createtaskstatus(task",{"_index":8146,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createteacherstatusforuser(user",{"_index":12538,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createteam",{"_index":4553,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createteam(team",{"_index":4562,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createtestingmodule",{"_index":23511,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["createtime",{"_index":2047,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createtmpdir",{"_index":10364,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtmpdir(dirnameprefix",{"_index":10376,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtoken",{"_index":18838,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createtoken(payload",{"_index":18846,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createuser(email",{"_index":1062,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createuserbyadmin(userid",{"_index":23771,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createusermigrationdto",{"_index":21498,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusermigrationdto(urlpath",{"_index":21502,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusersearchindex",{"_index":11800,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createusertoken(userid",{"_index":1026,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createwelcomecolumnboard",{"_index":4816,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createwelcomecolumnboard(coursereference",{"_index":4824,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creating",{"_index":7102,"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":3467,"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":5087,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["creator",{"_index":6922,"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":9969,"title":{},"body":{"entities/FileEntity.html":{}}}],["creatorid",{"_index":6284,"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":13598,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["credentialdata",{"_index":13685,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["credentialhash",{"_index":158,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{}}}],["credentials",{"_index":8065,"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":8410,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["crit(loggable",{"_index":8416,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["criteria",{"_index":314,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["criterion",{"_index":22484,"title":{},"body":{"license.html":{}}}],["cross",{"_index":6500,"title":{},"body":{"modules/CoreModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["crossing",{"_index":23330,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["crud",{"_index":2348,"title":{},"body":{"classes/BaseDomainObject.html":{},"controllers/CollaborativeStorageController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["crud.uc",{"_index":16012,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crud.uc.ts",{"_index":15893,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:15",{"_index":15913,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:22",{"_index":15909,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:41",{"_index":15907,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:50",{"_index":15903,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:59",{"_index":15911,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:72",{"_index":15905,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:9",{"_index":15901,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crudoperation",{"_index":15113,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["cruduc",{"_index":16019,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crypto",{"_index":1550,"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":2223,"title":{},"body":{"injectables/BBBService.html":{}}}],["crypto.generatekeypairsync('rsa",{"_index":7067,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["cryptojs",{"_index":14578,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(data",{"_index":19353,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(value",{"_index":19021,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.aes.encrypt(data",{"_index":19352,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.encrypt(value",{"_index":19018,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.hmacsha1(base_string",{"_index":14588,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["cryptojs.sha256(saveduser.id",{"_index":16477,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["ctl",{"_index":9717,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["ctltoolstabenabled",{"_index":12578,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["cumbersome",{"_index":2364,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["cure",{"_index":22755,"title":{},"body":{"license.html":{}}}],["curl",{"_index":13654,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currenlty",{"_index":17755,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["current",{"_index":4649,"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":18527,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["currentdatetime",{"_index":11704,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["currentldapid",{"_index":13144,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["currently",{"_index":569,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BaseRepo.html":{},"modules/BoardModule.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currentredirect",{"_index":11467,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{}}}],["currentrooms",{"_index":7588,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentrooms.foreach((room",{"_index":7590,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentteacher",{"_index":5136,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["currentuser",{"_index":294,"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/MetaTagExtractorController.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":7155,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.impersonated",{"_index":7159,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.isexternaluser",{"_index":7160,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.roles",{"_index":7157,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.schoolid",{"_index":7156,"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":7158,"title":{},"body":{"classes/CurrentUserMapper.html":{},"controllers/OauthSSOController.html":{}}}],["currentuser.userid",{"_index":3720,"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":4702,"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":7130,"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":13194,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["currentusermapper.mapcurrentusertocreatejwtpayload(userinfo",{"_index":14568,"title":{},"body":{"injectables/LoginUc.html":{}}}],["currentusermapper.maptooauthcurrentuser",{"_index":15635,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["currentusermapper.maptooauthcurrentuser(account.id",{"_index":21707,"title":{},"body":{"injectables/UserService.html":{}}}],["currentusermapper.usertoicurrentuser(account.id",{"_index":13837,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["currentyear",{"_index":12219,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["custom",{"_index":1241,"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":23363,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["customarily",{"_index":22613,"title":{},"body":{"license.html":{}}}],["customary",{"_index":22872,"title":{},"body":{"license.html":{}}}],["customer",{"_index":22618,"title":{},"body":{"license.html":{}}}],["customfields",{"_index":979,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["customizations",{"_index":18662,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["customizing",{"_index":6503,"title":{},"body":{"modules/CoreModule.html":{}}}],["customkey",{"_index":19008,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["customltiproperty",{"_index":7169,"title":{"interfaces/CustomLtiProperty.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["customltipropertydo",{"_index":7243,"title":{"classes/CustomLtiPropertyDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["customltipropertydo('key",{"_index":14697,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["customparam",{"_index":7384,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter",{"_index":2557,"title":{"classes/CustomParameter.html":{}},"body":{"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":8999,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regex",{"_index":8995,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regexcomment",{"_index":8996,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.scope",{"_index":8997,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some",{"_index":8987,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some((item",{"_index":8985,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameterdo.default",{"_index":9331,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.description",{"_index":9330,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.displayname",{"_index":9329,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.isoptional",{"_index":9337,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.name",{"_index":9328,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regex",{"_index":9332,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regexcomment",{"_index":9333,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdos",{"_index":2556,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["customparameterdto",{"_index":9213,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterentity",{"_index":7300,"title":{"classes/CustomParameterEntity.html":{}},"body":{"classes/CustomParameterEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["customparameterentityfactory",{"_index":8796,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentityfactory.build",{"_index":8803,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentry",{"_index":2583,"title":{"classes/CustomParameterEntry.html":{}},"body":{"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":5847,"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":5896,"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":6005,"title":{"classes/CustomParameterEntryResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterfactory",{"_index":7331,"title":{"classes/CustomParameterFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.buildlist(number",{"_index":7385,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.define(customparameter",{"_index":7375,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterlocation",{"_index":2562,"title":{},"body":{"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":7377,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.path",{"_index":8799,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.query",{"_index":9244,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocationparams",{"_index":7403,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.body",{"_index":9245,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.path",{"_index":9242,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.query",{"_index":9243,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterparam",{"_index":6039,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparam.defaultvalue",{"_index":9280,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.description",{"_index":9279,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.displayname",{"_index":9278,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.isoptional",{"_index":9286,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.name",{"_index":5995,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparam.regex",{"_index":9281,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.regexcomment",{"_index":9282,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.value",{"_index":5996,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams",{"_index":5986,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams.map",{"_index":6038,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparams.map((customparameterparam",{"_index":5994,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterpostparams",{"_index":7393,"title":{"classes/CustomParameterPostParams.html":{}},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["customparameterresponse",{"_index":5814,"title":{"classes/CustomParameterResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["customparameters",{"_index":9124,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameters.map",{"_index":9182,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["customparameters.map((customparameterdo",{"_index":9327,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscope",{"_index":5450,"title":{},"body":{"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":5470,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.global",{"_index":7372,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.school",{"_index":5468,"title":{},"body":{"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":7409,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.context",{"_index":9240,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.global",{"_index":9238,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.school",{"_index":9239,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype",{"_index":1868,"title":{},"body":{"injectables/AutoContextNameStrategy.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":5444,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_contextname",{"_index":5445,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_contextname}/${contextexternaltool.contextref.type",{"_index":1880,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["customparametertype.auto_schoolid",{"_index":5446,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_schoolnumber",{"_index":5447,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.boolean",{"_index":5443,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.number",{"_index":5441,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.string",{"_index":5440,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparametertypeparams",{"_index":7412,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextid",{"_index":9250,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextname",{"_index":9251,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolid",{"_index":9252,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolnumber",{"_index":9253,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.boolean",{"_index":9248,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.number",{"_index":9249,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.string",{"_index":9247,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customproviderclass.name",{"_index":13901,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["customs",{"_index":7191,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["customtoparameterlocationmapping",{"_index":20616,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["customtoparameterlocationmapping[location",{"_index":20625,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["cycle",{"_index":3548,"title":{},"body":{"modules/BoardModule.html":{}}}],["cycles",{"_index":1547,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["d",{"_index":6443,"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":22905,"title":{},"body":{"license.html":{}}}],["das",{"_index":4859,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["dash",{"_index":22336,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dashboard",{"_index":7434,"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":7853,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.getid",{"_index":7688,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboard.getuserid",{"_index":7855,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.model.mapper",{"_index":7810,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboard.moveelement(from",{"_index":7852,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.setlearnrooms(courses",{"_index":7848,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard_repo",{"_index":13876,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardcontroller",{"_index":7432,"title":{"controllers/DashboardController.html":{}},"body":{"controllers/DashboardController.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardelement",{"_index":7632,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardentity",{"_index":7466,"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":7761,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["dashboardentity(new",{"_index":7813,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardgridelementmodel",{"_index":7619,"title":{"entities/DashboardGridElementModel.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementmodelproperties",{"_index":7630,"title":{"interfaces/DashboardGridElementModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementresponse",{"_index":7651,"title":{"classes/DashboardGridElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse",{"_index":7659,"title":{"classes/DashboardGridSubElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse(metadata",{"_index":7707,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardid",{"_index":7457,"title":{},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{}}}],["dashboardmapper",{"_index":7447,"title":{"classes/DashboardMapper.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{}}}],["dashboardmapper.mapgridelement(elementwithposition",{"_index":7690,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maplearnroom(groupmetadata",{"_index":7706,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maptoresponse(dashboard",{"_index":7456,"title":{},"body":{"controllers/DashboardController.html":{}}}],["dashboardmodel",{"_index":7821,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelentity",{"_index":7631,"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":7711,"title":{"injectables/DashboardModelMapper.html":{}},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardprops",{"_index":7483,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["dashboardrepo",{"_index":7796,"title":{"injectables/DashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardresponse",{"_index":7451,"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":7449,"title":{"injectables/DashboardUc.html":{}},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardurl",{"_index":15576,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["dashboardurl.tostring",{"_index":15584,"title":{},"body":{"injectables/OAuthService.html":{}}}],["dashboardurlparams",{"_index":7438,"title":{"classes/DashboardUrlParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardUrlParams.html":{}}}],["data",{"_index":284,"title":{},"body":{"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":{},"injectables/MetaTagExtractorService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"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/UnknownQueryTypeLoggableException.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":1286,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.body",{"_index":17945,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentlength",{"_index":17948,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentrange",{"_index":17949,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents.map((p",{"_index":17986,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents?.length",{"_index":17985,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contenttype",{"_index":17947,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.dto.ts",{"_index":15813,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:11",{"_index":15816,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:13",{"_index":15815,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:7",{"_index":15819,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:9",{"_index":15817,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.etag",{"_index":17950,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.externalgroups",{"_index":16535,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalgroups.map((externalgroup",{"_index":16536,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalschool",{"_index":16345,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.externalid",{"_index":16348,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.officialschoolnumber",{"_index":16349,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool?.officialschoolnumber",{"_index":15554,"title":{},"body":{"injectables/OAuthService.html":{}}}],["data.externaluser",{"_index":16531,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externaluser.externalid",{"_index":15553,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externaluser?.externalid",{"_index":13139,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["data.gridelement.getcontent",{"_index":7692,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.id",{"_index":6245,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.mountsdescription",{"_index":1288,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.name",{"_index":6248,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.port",{"_index":1284,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.pos",{"_index":7693,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.response",{"_index":19337,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["data.response.ts",{"_index":21047,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:11",{"_index":21049,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:14",{"_index":21050,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:17",{"_index":21051,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:3",{"_index":21048,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.result?.ogdescription",{"_index":14894,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["data.result?.ogimage",{"_index":14895,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["data.result?.ogtitle",{"_index":14893,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["data.sourceid",{"_index":6247,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.system.systemid",{"_index":16529,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.ts",{"_index":16899,"title":{},"body":{"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["data.ts:11",{"_index":20593,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:4",{"_index":16901,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:5",{"_index":20594,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:6",{"_index":16902,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:7",{"_index":20597,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:8",{"_index":16900,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:9",{"_index":20595,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data/generateseeddata",{"_index":11685,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["database",{"_index":1762,"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":10693,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["database.module.ts",{"_index":15005,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:31",{"_index":15006,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:42",{"_index":15008,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/mongo",{"_index":15004,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/types",{"_index":10737,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["databasemanagementconsole",{"_index":7858,"title":{"classes/DatabaseManagementConsole.html":{}},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["databasemanagementcontroller",{"_index":7896,"title":{"controllers/DatabaseManagementController.html":{}},"body":{"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementmodule",{"_index":7926,"title":{"modules/DatabaseManagementModule.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["databasemanagementservice",{"_index":7930,"title":{"injectables/DatabaseManagementService.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementuc",{"_index":7863,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["dataformats",{"_index":23561,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["datamodel",{"_index":23220,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["datawithdefaults",{"_index":15921,"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":1573,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["date(2020",{"_index":14011,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["date(date.now",{"_index":6809,"title":{},"body":{"classes/CourseFactory.html":{},"classes/FileRecordFactory.html":{},"controllers/OauthSSOController.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"injectables/UserLoginMigrationService.html":{}}}],["date(now.gettime",{"_index":21378,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["date(user.createdtimestamp",{"_index":13634,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["date.now",{"_index":4540,"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":18929,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["days",{"_index":7992,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"license.html":{}}}],["dayssincedeletion",{"_index":7995,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["db",{"_index":574,"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":629,"title":{},"body":{"modules/AccountModule.html":{}}}],["db.service.ts",{"_index":853,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:13",{"_index":856,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:134",{"_index":867,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:142",{"_index":860,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db_password",{"_index":10674,"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":10675,"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":10676,"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":12709,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["dbcaccountid",{"_index":13593,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcaccountid:${accountdbcaccountid",{"_index":13609,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbcsystemid",{"_index":13595,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid",{"_index":13594,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid:${accountdbcuserid",{"_index":13613,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbildungscloud",{"_index":22954,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["dbname",{"_index":15010,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["dd",{"_index":14466,"title":{},"body":{"modules/LoggerModule.html":{}}}],["de",{"_index":7369,"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":23222,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["debug",{"_index":5520,"title":{},"body":{"classes/ConsentRequestBody.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["debug(loggable",{"_index":14433,"title":{},"body":{"injectables/Logger.html":{}}}],["debug(message",{"_index":12094,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["debugger",{"_index":22327,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["debugging",{"_index":10695,"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":1129,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["december",{"_index":22553,"title":{},"body":{"license.html":{}}}],["decide",{"_index":4693,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"todo.html":{}}}],["decides",{"_index":13373,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["decisions",{"_index":23187,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["declarations",{"_index":206,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":17165,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["declared",{"_index":3869,"title":{},"body":{"classes/BusinessError.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declining",{"_index":22721,"title":{},"body":{"license.html":{}}}],["decodedjwt",{"_index":1567,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/OAuthService.html":{}}}],["decodedjwt.accountid",{"_index":1570,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodedjwt.jti",{"_index":1569,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodehtmlentities",{"_index":2723,"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/MetaTagExtractorResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["decodehtmlentities()@apiproperty({description",{"_index":7665,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["decorated",{"_index":10960,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["decorator",{"_index":8394,"title":{},"body":{"classes/ErrorLoggable.html":{},"controllers/LoginController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["decorators",{"_index":138,"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/ClassFilterParams.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/GetMetaTagDataBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.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":23559,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["decrypt",{"_index":11962,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decrypt(data",{"_index":11964,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decryptedclientsecret",{"_index":15601,"title":{},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["decryptedstring",{"_index":19020,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["deemed",{"_index":22541,"title":{},"body":{"license.html":{}}}],["deepmocked",{"_index":23500,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["deeppartial",{"_index":489,"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":486,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/AutoContextNameStrategy.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/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":{},"injectables/MetaTagExtractorService.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"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":6597,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.color",{"_index":6550,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.description",{"_index":6556,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.name",{"_index":6563,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.schema.json",{"_index":23029,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["default_errorcode",{"_index":15458,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["default_language",{"_index":11819,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["default_message",{"_index":15459,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["defaultclientinternalid",{"_index":13351,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultcolumns",{"_index":7523,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["defaultconfig",{"_index":11983,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["defaultencryptionservice",{"_index":8340,"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":11607,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultmapper",{"_index":13454,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper.id",{"_index":13480,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper?.id",{"_index":13457,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmessage",{"_index":1226,"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":10689,"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":15894,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["defaultoptions",{"_index":15020,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["defaults",{"_index":842,"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":16404,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["defaultscopes",{"_index":12433,"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":11689,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["defaulttestpassword",{"_index":531,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["defaulttestpasswordhash",{"_index":533,"title":{},"body":{"classes/AccountFactory.html":{}}}],["defaultvalue",{"_index":7396,"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":21867,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everyattendeejoinsmuted",{"_index":21868,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everybodyjoinsasmoderator",{"_index":21869,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.moderatormustapprovejoinrequests",{"_index":21870,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defective",{"_index":22898,"title":{},"body":{"license.html":{}}}],["defending",{"_index":22407,"title":{},"body":{"license.html":{}}}],["defenses",{"_index":22854,"title":{},"body":{"license.html":{}}}],["define",{"_index":459,"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":504,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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/GetMetaTagDataBody.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":23065,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["defining",{"_index":2373,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definition",{"_index":1232,"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":11797,"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":11625,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["delay(ms",{"_index":13523,"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/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":2926,"title":{},"body":{"controllers/BoardController.html":{}}}],["delete(':cardid",{"_index":4046,"title":{},"body":{"controllers/CardController.html":{}}}],["delete(':columnid",{"_index":4978,"title":{},"body":{"controllers/ColumnController.html":{}}}],["delete(':contentelementid",{"_index":8294,"title":{},"body":{"controllers/ElementController.html":{}}}],["delete(':contextexternaltoolid",{"_index":20498,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20475,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':externaltoolid",{"_index":20563,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':externaltoolid')@apiforbiddenresponse({description",{"_index":20520,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':id",{"_index":369,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':id')@apioperation({summary",{"_index":272,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':importuserid/match",{"_index":12770,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["delete(':lessonid",{"_index":14156,"title":{},"body":{"controllers/LessonController.html":{}}}],["delete(':newsid",{"_index":15072,"title":{},"body":{"controllers/NewsController.html":{}}}],["delete(':schoolexternaltoolid",{"_index":20833,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20806,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':scope/:scopeid",{"_index":21963,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':scope/:scopeid')@apioperation({summary",{"_index":21937,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':submissionid",{"_index":19084,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["delete(':taskid",{"_index":19632,"title":{},"body":{"controllers/TaskController.html":{}}}],["delete('auth/sessions/consent",{"_index":16061,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete('clients/:id",{"_index":16034,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete(@param",{"_index":14160,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(board",{"_index":4827,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["delete(card",{"_index":4108,"title":{},"body":{"injectables/CardService.html":{}}}],["delete(column",{"_index":5004,"title":{},"body":{"injectables/ColumnService.html":{}}}],["delete(domainobject",{"_index":2335,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{}}}],["delete(domainobjects",{"_index":2262,"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":5666,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["delete(entities",{"_index":713,"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":11263,"title":{},"body":{"injectables/GroupService.html":{}}}],["delete(id",{"_index":25,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/NewsUc.html":{}}}],["delete(path",{"_index":1475,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(paths",{"_index":17916,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["delete(submission",{"_index":19288,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["delete(subpath",{"_index":1473,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(task",{"_index":19999,"title":{},"body":{"injectables/TaskService.html":{}}}],["delete(urlparams",{"_index":14154,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(userid",{"_index":14317,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{}}}],["delete.vistor",{"_index":3312,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["delete.vistor.ts",{"_index":17282,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:22",{"_index":17285,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:29",{"_index":17292,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:34",{"_index":17291,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:39",{"_index":17288,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:44",{"_index":17294,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:51",{"_index":17295,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:57",{"_index":17296,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:62",{"_index":17297,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:67",{"_index":17298,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:72",{"_index":17293,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:86",{"_index":17287,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:90",{"_index":17290,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete_files_of_parent",{"_index":11935,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["deleteaccountbyid",{"_index":263,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteaccountbyid(accountid",{"_index":12705,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["deleteaccountbyid(currentuser",{"_index":269,"title":{},"body":{"controllers/AccountController.html":{}}}],["deleteaccountbyid(id",{"_index":13568,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteboard",{"_index":2868,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["deleteboard(@param",{"_index":2927,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(urlparams",{"_index":2883,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(userid",{"_index":3786,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletebyexternaltoolid",{"_index":18200,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyexternaltoolid(toolid",{"_index":18206,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyid",{"_index":680,"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":688,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["deletebyid(id",{"_index":2266,"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":6089,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":6095,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolids",{"_index":5910,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":5918,"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":3989,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["deletecard(@param",{"_index":4047,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(urlparams",{"_index":4000,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(userid",{"_index":4162,"title":{},"body":{"injectables/CardUc.html":{}}}],["deletecolumn",{"_index":4948,"title":{},"body":{"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["deletecolumn(@param",{"_index":4979,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(urlparams",{"_index":4958,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(userid",{"_index":5022,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["deletecontextexternaltool",{"_index":6090,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(contextexternaltool",{"_index":6097,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletecontextexternaltool(currentuser",{"_index":20474,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(userid",{"_index":6129,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["deleted",{"_index":280,"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":9961,"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":7969,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["deletedexternaltoolpseudonyms",{"_index":17102,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedfoldername",{"_index":17901,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedid",{"_index":15107,"title":{},"body":{"controllers/NewsController.html":{}}}],["deletedirectory",{"_index":17904,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedirectory(path",{"_index":17918,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedpseudonyms",{"_index":17101,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedsince",{"_index":6286,"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":21649,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deletedusers",{"_index":13722,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["deleteelement",{"_index":8264,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["deleteelement(urlparams",{"_index":8271,"title":{},"body":{"controllers/ElementController.html":{}}}],["deleteelement(userid",{"_index":8306,"title":{},"body":{"injectables/ElementUc.html":{}}}],["deleteentitybyid",{"_index":2244,"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":2268,"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":9359,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["deleteexternaltool(currentuser",{"_index":20519,"title":{},"body":{"controllers/ToolController.html":{}}}],["deleteexternaltool(toolid",{"_index":9375,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["deleteexternaltool(userid",{"_index":9480,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["deleteexternaltoolpseudonymsbyuserid",{"_index":17063,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deleteexternaltoolpseudonymsbyuserid(userid",{"_index":17074,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletefile",{"_index":8010,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefile(file",{"_index":8022,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage",{"_index":8011,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage(file",{"_index":8025,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefilesconsole",{"_index":7981,"title":{"classes/DeleteFilesConsole.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{}}}],["deletefilesofparent",{"_index":10514,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent(@rabbitpayload",{"_index":10613,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["deletefilesofparent(parentid",{"_index":10521,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["deletefilesofparent(payload",{"_index":10590,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:finished",{"_index":10726,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:started",{"_index":10724,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesuc",{"_index":7986,"title":{"injectables/DeleteFilesUc.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["deletegroup(groupname",{"_index":1060,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteidentityprovider",{"_index":13339,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteidentityprovider(alias",{"_index":13362,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteimportusersbyschool",{"_index":12943,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deleteimportusersbyschool(school",{"_index":12947,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deletelesson",{"_index":14291,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletelesson(lesson",{"_index":14296,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletemarkedfiles",{"_index":7984,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["deletemarkedfiles(dayssincedeletion",{"_index":7988,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["deletemarkedfiles(thresholddate",{"_index":8027,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletenode",{"_index":17283,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deletenode(domainobject",{"_index":17286,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deleteoauth2client",{"_index":15896,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["deleteoauth2client(@currentuser",{"_index":16035,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(currentuser",{"_index":15904,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(id",{"_index":16166,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["deleteobjectcommand",{"_index":8030,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deleteobjects",{"_index":17971,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deleteobjectscommand",{"_index":17929,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletepreviews",{"_index":16779,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepreviews(filerecords",{"_index":16786,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepseudonymsbyuserid",{"_index":9019,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletepseudonymsbyuserid(userid",{"_index":9029,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletes",{"_index":273,"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":18304,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(currentuser",{"_index":20805,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(userid",{"_index":18311,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["deleteschoolexternaltoolbyid",{"_index":18269,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18276,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deletesubmissions",{"_index":19997,"title":{},"body":{"injectables/TaskService.html":{}}}],["deletesubmissions(task",{"_index":20001,"title":{},"body":{"injectables/TaskService.html":{}}}],["deleteteam",{"_index":4554,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteteam(teamid",{"_index":4566,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteuser",{"_index":21594,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(userid",{"_index":21597,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(username",{"_index":1065,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteuserdatafromclasses",{"_index":4430,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromclasses(userid",{"_index":4435,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromcourse",{"_index":7022,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcourse(userid",{"_index":7025,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcoursegroup",{"_index":6864,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromcoursegroup(userid",{"_index":6868,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromlessons",{"_index":14292,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromlessons(userid",{"_index":14298,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromteams",{"_index":20205,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserdatafromteams(userid",{"_index":20209,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserloginmigration",{"_index":21339,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deleteuserloginmigration(userloginmigration",{"_index":21348,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deletevisitor",{"_index":3284,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["deletewithdescendants",{"_index":3370,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deletewithdescendants(domainobject",{"_index":3373,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deleting",{"_index":7998,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["deletion",{"_index":5387,"title":{},"body":{"modules/CommonToolModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/S3ClientAdapter.html":{}}}],["deletioncommand",{"_index":8076,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletions",{"_index":8050,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["dem",{"_index":4851,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["demand",{"_index":15437,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["denied",{"_index":22690,"title":{},"body":{"license.html":{}}}],["denominated",{"_index":22817,"title":{},"body":{"license.html":{}}}],["depend",{"_index":23171,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependencies",{"_index":204,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":1546,"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":23685,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["depending",{"_index":10398,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["depends",{"_index":10384,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deployment",{"_index":13650,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["deployments",{"_index":23241,"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":21931,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:106",{"_index":21938,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:46",{"_index":21936,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:86",{"_index":21940,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.response",{"_index":21945,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecated.response.ts",{"_index":8083,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:10",{"_index":21791,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:12",{"_index":21790,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:25",{"_index":8107,"title":{},"body":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["deprecated.response.ts:37",{"_index":8089,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:43",{"_index":8087,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:8",{"_index":21792,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecatedvideoconferenceinforesponse",{"_index":8080,"title":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecatedvideoconferencejoinresponse",{"_index":8099,"title":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprive",{"_index":22825,"title":{},"body":{"license.html":{}}}],["depth",{"_index":3290,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["der",{"_index":4864,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["derivecopyname",{"_index":6417,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopyname(name",{"_index":6422,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopystatus",{"_index":6364,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filecopystatus",{"_index":19686,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filedtos",{"_index":6374,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["derivecoursestatus",{"_index":6712,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivecoursestatus(originalcourse",{"_index":6721,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivestatusfromelements",{"_index":6418,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivestatusfromelements(elements",{"_index":6425,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["des",{"_index":4882,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["desc",{"_index":3617,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["descendant",{"_index":3608,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendant.path.match(`^${n.pathofchildren",{"_index":3616,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendants",{"_index":3175,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["describe",{"_index":23218,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"course",{"_index":23413,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"when",{"_index":23415,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('[method",{"_index":23444,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('createcourse",{"_index":23414,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('somefunction",{"_index":23518,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('when",{"_index":23445,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["described",{"_index":15719,"title":{},"body":{"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["describes",{"_index":2357,"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":153,"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/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.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":{},"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":14351,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["description.a",{"_index":23389,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["descriptioncommit",{"_index":23591,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["descriptioninputformat",{"_index":12448,"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":13741,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["descriptions",{"_index":12552,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptive",{"_index":12027,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["deserialize",{"_index":3828,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["deserialize(bsondocuments",{"_index":3830,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["deserializes",{"_index":3832,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["design",{"_index":22956,"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":22628,"title":{},"body":{"license.html":{}}}],["designed",{"_index":22374,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["desireable",{"_index":16083,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["desired",{"_index":23443,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["destination",{"_index":6224,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["destinationcourse",{"_index":2954,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destinationcourse).then((status",{"_index":3015,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourse.id",{"_index":3040,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourseid",{"_index":6222,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["destinationexternalreference",{"_index":3039,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["destinationlesson",{"_index":19684,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destroyed",{"_index":17179,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["detail",{"_index":22880,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["detail.response",{"_index":1255,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["detail.response.ts",{"_index":21744,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detail.response.ts:1",{"_index":21746,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detailed",{"_index":23154,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["details",{"_index":1206,"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":11758,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["detectable",{"_index":20640,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["detectcontenttypeorthrow",{"_index":8841,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detectcontenttypeorthrow(imagebuffer",{"_index":8849,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detected",{"_index":10233,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["detection",{"_index":75,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["determine",{"_index":23151,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["determineinput",{"_index":16932,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determineinput(systemid",{"_index":16941,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determinelaunchrequestmethod",{"_index":2535,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinelaunchrequestmethod(properties",{"_index":2552,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinenewroomsin",{"_index":7470,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["determinenewroomsin(rooms",{"_index":7493,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["determinestatus",{"_index":18270,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinestatus(tool",{"_index":18278,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinetoolconfigurationstatus",{"_index":5394,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determinetoolconfigurationstatus(externaltool",{"_index":5396,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determining",{"_index":16630,"title":{},"body":{"classes/PatchOrderParams.html":{},"license.html":{}}}],["deubg",{"_index":23572,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["dev",{"_index":23077,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["develop",{"_index":13651,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["developer",{"_index":5524,"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":22396,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["development",{"_index":11627,"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":4149,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["dfsdfsf",{"_index":22354,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["di",{"_index":23282,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dialnumber",{"_index":2048,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["dictionary",{"_index":10662,"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":23603,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["diffenrent",{"_index":23013,"title":{},"body":{"todo.html":{}}}],["differ",{"_index":22879,"title":{},"body":{"license.html":{}}}],["different",{"_index":4148,"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":23740,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["differently",{"_index":22712,"title":{},"body":{"license.html":{}}}],["differs",{"_index":23433,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dir",{"_index":11698,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["direct",{"_index":13393,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["direction",{"_index":22529,"title":{},"body":{"license.html":{}}}],["directions",{"_index":22634,"title":{},"body":{"license.html":{}}}],["directly",{"_index":762,"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":10005,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["directory",{"_index":10374,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dirnameprefix",{"_index":10380,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["dirpath",{"_index":10420,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["disable",{"_index":997,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"injectables/SystemRepo.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserRepo.html":{},"todo.html":{}}}],["disabled",{"_index":15565,"title":{},"body":{"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["disallow",{"_index":23743,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["disclaim",{"_index":22563,"title":{},"body":{"license.html":{}}}],["disclaimer",{"_index":22889,"title":{},"body":{"license.html":{}}}],["disclaiming",{"_index":22709,"title":{},"body":{"license.html":{}}}],["discovery",{"_index":2362,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"todo.html":{}}}],["discriminator",{"_index":8254,"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":3398,"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":2506,"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":22839,"title":{},"body":{"license.html":{}}}],["discussed",{"_index":2430,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["discussion",{"_index":23205,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["discussion_enabled=false",{"_index":23705,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["display",{"_index":9719,"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":6921,"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":3738,"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":7109,"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":5768,"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":22473,"title":{},"body":{"license.html":{}}}],["disposable",{"_index":22210,"title":{},"body":{"dependencies.html":{}}}],["disposition",{"_index":6706,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["dist",{"_index":22281,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["distinguish",{"_index":15375,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["distinguished",{"_index":23425,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["distinguishing",{"_index":22883,"title":{},"body":{"license.html":{}}}],["distingush",{"_index":23745,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["distribute",{"_index":22368,"title":{},"body":{"license.html":{}}}],["distributed",{"_index":22938,"title":{},"body":{"license.html":{}}}],["distributing",{"_index":22842,"title":{},"body":{"license.html":{}}}],["distribution",{"_index":22432,"title":{},"body":{"license.html":{}}}],["dn",{"_index":4313,"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":3166,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["do.builder.ts",{"_index":3125,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:23",{"_index":3143,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:24",{"_index":3140,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:25",{"_index":3137,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:26",{"_index":3149,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:27",{"_index":3152,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:28",{"_index":3155,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:29",{"_index":3158,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:30",{"_index":3161,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:31",{"_index":3146,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.mapper",{"_index":13115,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["do.mapper.ts",{"_index":13082,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:13",{"_index":13089,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:5",{"_index":13086,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.repo",{"_index":21581,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["do.repo.ts",{"_index":3275,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/UserDORepo.html":{}}}],["do.repo.ts:11",{"_index":3286,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:141",{"_index":20984,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:151",{"_index":20993,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:18",{"_index":3293,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:25",{"_index":20994,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:26",{"_index":3291,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:33",{"_index":20987,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:39",{"_index":3295,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:53",{"_index":3305,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:65",{"_index":3298,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:71",{"_index":20990,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:75",{"_index":3300,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:79",{"_index":20988,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:82",{"_index":3303,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:87",{"_index":3308,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:93",{"_index":3288,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.rule.ts",{"_index":3351,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:11",{"_index":3357,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:17",{"_index":3355,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:8",{"_index":3354,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.service",{"_index":4122,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["do.service.ts",{"_index":3369,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:20",{"_index":3378,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:6",{"_index":3372,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:9",{"_index":3374,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["dobasefactory",{"_index":4317,"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":7343,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["dobasefactory.define(lti11toolconfig",{"_index":7362,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["docker",{"_index":23032,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/mongo",{"_index":23672,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/rocketchat/rocket.chat:4.7.2envs",{"_index":23714,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["doclass",{"_index":3292,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["doclass.name",{"_index":3320,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["docs",{"_index":23001,"title":{},"body":{"todo.html":{}}}],["document",{"_index":6220,"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":22294,"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":22695,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["documents",{"_index":3833,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doe",{"_index":21059,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["doe${sequence",{"_index":12842,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["doescourseexist",{"_index":3473,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doescourseexist(courseid",{"_index":3484,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doesn't",{"_index":14321,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/OAuthService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doesnt",{"_index":17383,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["doing",{"_index":23202,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["domain",{"_index":1718,"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":{},"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":23751,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain.mapper",{"_index":11167,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["domain.mapper.ts",{"_index":11071,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:15",{"_index":11078,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:43",{"_index":11081,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:60",{"_index":11085,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:72",{"_index":11083,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:81",{"_index":11090,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:90",{"_index":11088,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain/class",{"_index":4388,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domain/external",{"_index":8861,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["domain/rules",{"_index":1717,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["domainentity",{"_index":7747,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["domainerror",{"_index":17860,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["domainobject",{"_index":1604,"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":3349,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["domainobject.closedat",{"_index":21282,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.context",{"_index":18759,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.context?.contextid",{"_index":18824,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.context?.contexttype",{"_index":18823,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.createdat",{"_index":20958,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.customs",{"_index":7263,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.email",{"_index":20960,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.emailsearchvalues",{"_index":20972,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.expiresat",{"_index":18760,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.externalid",{"_index":20964,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.finishedat",{"_index":21283,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.firstname",{"_index":20961,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.firstnamesearchvalues",{"_index":20968,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.forcepasswordchange",{"_index":20974,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.friendlyurl",{"_index":7269,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.frontchannel_logout_uri",{"_index":7272,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.gradelevel",{"_index":4413,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.id",{"_index":2300,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.importhash",{"_index":20966,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.invitationlink",{"_index":4410,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.ishidden",{"_index":7273,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.islocal",{"_index":7265,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.istemplate",{"_index":7264,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.key",{"_index":7255,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.language",{"_index":20973,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastloginsystemchange",{"_index":20976,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastname",{"_index":20962,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastnamesearchvalues",{"_index":20970,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.ldapdn",{"_index":4414,"title":{},"body":{"classes/ClassMapper.html":{},"classes/UserDO.html":{}}}],["domainobject.logo_url",{"_index":7257,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_message_type",{"_index":7258,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_version",{"_index":7259,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.mandatorysince",{"_index":21284,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.name",{"_index":4405,"title":{},"body":{"classes/ClassMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.oauthclientid",{"_index":7268,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.opennewtab",{"_index":7271,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.options",{"_index":21929,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.organizationid",{"_index":11258,"title":{},"body":{"injectables/GroupRule.html":{}}}],["domainobject.origintoolid",{"_index":7267,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.outdatedsince",{"_index":20977,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.payload",{"_index":18758,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.payload.parentid",{"_index":18822,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.payload.parenttype",{"_index":18821,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.preferences",{"_index":20975,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.previousexternalid",{"_index":20978,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.privacy_permission",{"_index":7262,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.removeuser(userid",{"_index":4448,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.resource_link_id",{"_index":7260,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.roles",{"_index":7261,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["domainobject.schoolid",{"_index":20963,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.secret",{"_index":7256,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.skipconsent",{"_index":7270,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.source",{"_index":4417,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourceoptions",{"_index":4418,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourcesystemid",{"_index":21279,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.startedat",{"_index":21281,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.successor",{"_index":4415,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.target",{"_index":21927,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetmodel",{"_index":21928,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetsystemid",{"_index":21280,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.teacherids.map((teacherid",{"_index":4407,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.token",{"_index":18757,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.updatedat",{"_index":20959,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.url",{"_index":7254,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.userids",{"_index":4447,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.userids?.map((userid",{"_index":4409,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.year",{"_index":4411,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject/share",{"_index":12269,"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":2754,"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":2736,"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":8115,"title":{"classes/DomainObjectFactory.html":{}},"body":{"classes/DomainObjectFactory.html":{}}}],["domainobjects",{"_index":2264,"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":17352,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["domainobjects.map((domainobject",{"_index":4420,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassService.html":{}}}],["domainrolenames",{"_index":21459,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles",{"_index":21457,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles.map((role",{"_index":21460,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domains",{"_index":22211,"title":{},"body":{"dependencies.html":{}}}],["domigration",{"_index":18394,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["domigration(externalid",{"_index":18405,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["domigration(userdo",{"_index":21505,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["don't",{"_index":2372,"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":8393,"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":19749,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["dos",{"_index":2328,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["dos.map((domainobj",{"_index":2330,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["dosomethingcrazy",{"_index":23454,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z",{"_index":23459,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).catch(err",{"_index":23474,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).then(result",{"_index":23469,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazysync(wrong",{"_index":23477,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["doubtful",{"_index":22659,"title":{},"body":{"license.html":{}}}],["down",{"_index":23178,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["download",{"_index":16780,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download(filerecord",{"_index":16788,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download_uri",{"_index":1190,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downloadbysecuritytoken",{"_index":10335,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(@param('token",{"_index":10348,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(token",{"_index":10337,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadfileparams",{"_index":6305,"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":16738,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloadoriginfile(pathtofile",{"_index":16742,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloaduri",{"_index":1183,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downstream",{"_index":22773,"title":{},"body":{"license.html":{}}}],["draft",{"_index":12500,"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":2429,"title":{},"body":{"injectables/BaseRepo.html":{},"properties.html":{}}}],["driver",{"_index":757,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drivers",{"_index":770,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drop/create",{"_index":11769,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dropcollection",{"_index":7938,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollection(collectionname",{"_index":7949,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollectionifexists(collectionname",{"_index":11737,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dry",{"_index":23191,"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":{},"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":{},"controllers/MetaTagExtractorController.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":23265,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dto.availabledate",{"_index":19804,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.bbbresponse",{"_index":21778,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["dto.builder.ts",{"_index":9896,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:13",{"_index":9905,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:19",{"_index":9902,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:7",{"_index":9900,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.cancelbuttonurl",{"_index":16561,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.classes",{"_index":12905,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.cookies",{"_index":11546,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["dto.createdat",{"_index":17495,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.currentredirect",{"_index":11475,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.description",{"_index":19802,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.descriptioninputformat",{"_index":19817,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.destinationcourseid",{"_index":6480,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.displaycolor",{"_index":19808,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.duedate",{"_index":19806,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.elements",{"_index":6483,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.enablemigrationstart",{"_index":14958,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.factory",{"_index":17836,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["dto.factory.ts",{"_index":8125,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:102",{"_index":8160,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:121",{"_index":8158,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:129",{"_index":8147,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:139",{"_index":8156,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:158",{"_index":8154,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:173",{"_index":8144,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:186",{"_index":17666,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:192",{"_index":17668,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:28",{"_index":8140,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:30",{"_index":8139,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:32",{"_index":8141,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:34",{"_index":8138,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:36",{"_index":8137,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:58",{"_index":8152,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:67",{"_index":8149,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:89",{"_index":8150,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:95",{"_index":8151,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.firstname",{"_index":12893,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.flagged",{"_index":12912,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.groupelements",{"_index":7704,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.groupid",{"_index":7703,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.id",{"_index":6478,"title":{},"body":{"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lastname",{"_index":12896,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lessonhidden",{"_index":19812,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.lessonname",{"_index":19811,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.loginname",{"_index":12899,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.mapper",{"_index":930,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["dto.mapper.abstract",{"_index":548,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.abstract.ts",{"_index":542,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.abstract.ts:7",{"_index":544,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.db.ts",{"_index":546,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{}}}],["dto.mapper.idm.ts",{"_index":555,"title":{},"body":{"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.ts",{"_index":412,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:22",{"_index":420,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:28",{"_index":418,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:5",{"_index":423,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.match",{"_index":12891,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.matchedby",{"_index":21464,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["dto.matches",{"_index":12908,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.oauthmigrationfinalfinish",{"_index":14957,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationfinished",{"_index":14956,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationmandatory",{"_index":14955,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationpossible",{"_index":14954,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.options",{"_index":21983,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["dto.permission",{"_index":21779,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.permissions",{"_index":15384,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.proceedbuttonurl",{"_index":16560,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.provisioningstrategy",{"_index":16983,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.provisioningurl",{"_index":16985,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.redirect",{"_index":21492,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["dto.response",{"_index":11478,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.response.status",{"_index":11474,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.role",{"_index":12902,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.rolename",{"_index":15440,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.roles",{"_index":17501,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.schoolid",{"_index":17499,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.state",{"_index":21776,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.target",{"_index":15173,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.teamid",{"_index":3917,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto.teamname",{"_index":15439,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.title",{"_index":3915,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["dto.unpublished",{"_index":15175,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.updatedat",{"_index":17497,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.updater",{"_index":15170,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.url",{"_index":22009,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["dto/board/board",{"_index":2907,"title":{},"body":{"controllers/BoardController.html":{}}}],["dto/board/set",{"_index":4026,"title":{},"body":{"controllers/CardController.html":{}}}],["dto/card/create",{"_index":4969,"title":{},"body":{"controllers/ColumnController.html":{}}}],["dto/class",{"_index":11298,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["dto/context",{"_index":6142,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["dto/copy.response",{"_index":6473,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto/element/rich",{"_index":17573,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["dto/file.dto",{"_index":9907,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto/fwu",{"_index":10808,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["dto/migration.dto",{"_index":21525,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/oauth",{"_index":14118,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{}}}],["dto/oauth2",{"_index":21181,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/page",{"_index":21526,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/pseudonym",{"_index":17017,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["dto/public",{"_index":19378,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["dto/request/school",{"_index":21183,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/request/user",{"_index":21184,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/response/consent.response",{"_index":16011,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/redirect.response",{"_index":16013,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/video",{"_index":21944,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["dto/role.dto",{"_index":17651,"title":{},"body":{"injectables/RoleService.html":{}}}],["dto/school",{"_index":18320,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["dto/stateless",{"_index":16245,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dto/submission",{"_index":3710,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["dto/system",{"_index":19380,"title":{},"body":{"controllers/SystemController.html":{}}}],["dto/task",{"_index":19654,"title":{},"body":{"controllers/TaskController.html":{}}}],["dto/team",{"_index":4599,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto/team.dto",{"_index":4707,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["dto/user",{"_index":16239,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dtocreator",{"_index":8123,"title":{"classes/DtoCreator.html":{}},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dtolist",{"_index":12807,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["dtos",{"_index":4597,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/GlobalValidationPipe.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["due",{"_index":3547,"title":{},"body":{"modules/BoardModule.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/News.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["duedate",{"_index":3230,"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":19056,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["dummy",{"_index":11374,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["dummypasswd!1",{"_index":532,"title":{},"body":{"classes/AccountFactory.html":{}}}],["dummyresponse",{"_index":11384,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["duplicate",{"_index":6178,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["duplicate.filter",{"_index":6184,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.id",{"_index":8984,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["duplicate.length",{"_index":6188,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.loggable",{"_index":18475,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["duplicates",{"_index":16650,"title":{},"body":{"injectables/PermissionService.html":{}}}],["duplicatetool",{"_index":6185,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.displayname",{"_index":6187,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.id",{"_index":6186,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplication",{"_index":2371,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["durable",{"_index":22612,"title":{},"body":{"license.html":{}}}],["duration",{"_index":2049,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/DurationLoggingInterceptor.html":{}}}],["durationlogginginterceptor",{"_index":8222,"title":{"injectables/DurationLoggingInterceptor.html":{}},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["during",{"_index":7095,"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":22658,"title":{},"body":{"license.html":{}}}],["dynamically",{"_index":22508,"title":{},"body":{"license.html":{}}}],["dynamicmodule",{"_index":1110,"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":2259,"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":2365,"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":8389,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.response.data",{"_index":1015,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.data.errortype",{"_index":1017,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.statuscode",{"_index":1012,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.target",{"_index":8395,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.value",{"_index":8397,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["each",{"_index":2347,"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":12043,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolExternalToolEntity.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["earlier",{"_index":22447,"title":{},"body":{"license.html":{}}}],["ease",{"_index":23811,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["easier",{"_index":23534,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["easily",{"_index":23437,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["easy",{"_index":23147,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["eathers",{"_index":9828,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["edit",{"_index":6930,"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":23777,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["editor",{"_index":3071,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/UserBoardRoles.html":{}}}],["editor.config",{"_index":11411,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller",{"_index":11410,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller.ts",{"_index":11370,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:33",{"_index":11380,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:44",{"_index":11378,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.module",{"_index":11417,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["editor.module.ts",{"_index":11408,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor/controller/h5p",{"_index":11369,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor/h5p",{"_index":11407,"title":{},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["editusernameallowed",{"_index":13451,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["effect",{"_index":22919,"title":{},"body":{"license.html":{}}}],["effected",{"_index":22560,"title":{},"body":{"license.html":{}}}],["effective",{"_index":22542,"title":{},"body":{"license.html":{}}}],["effectively",{"_index":22935,"title":{},"body":{"license.html":{}}}],["effects",{"_index":2150,"title":{},"body":{"injectables/BBBService.html":{}}}],["efficient",{"_index":3611,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["effortless",{"_index":23399,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["efforts",{"_index":22787,"title":{},"body":{"license.html":{}}}],["einsatz",{"_index":4881,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ejson",{"_index":3842,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.deserialize(bsondocuments",{"_index":3845,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.serialize(documents",{"_index":3843,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["el",{"_index":3650,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CopyHelperService.html":{}}}],["el.getreferences()).flat",{"_index":7601,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["el.status",{"_index":6432,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["el.target.id",{"_index":2655,"title":{},"body":{"entities/Board.html":{}}}],["elapsedtimemilliseconds",{"_index":13302,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["electronic",{"_index":22941,"title":{},"body":{"license.html":{}}}],["element",{"_index":1883,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"interfaces/BaseResponseMapper.html":{},"entities/Board.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"controllers/BoardSubmissionController.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":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["element.'})@apiextramodels(fileelementcontentbody",{"_index":8280,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiextramodels(submissionitemresponse)@apiresponse({status",{"_index":8267,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiresponse({status",{"_index":8272,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.acceptasync(updater",{"_index":5690,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.alternativetext",{"_index":9955,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.boardelementtype",{"_index":3011,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.body.params.ts",{"_index":7051,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:10",{"_index":15044,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:12",{"_index":15052,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:14",{"_index":7057,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:17",{"_index":15053,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:18",{"_index":15045,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:23",{"_index":15051,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:25",{"_index":7055,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:29",{"_index":15048,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.body.params.ts:33",{"_index":15049,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.caption",{"_index":9954,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.constructor.name",{"_index":5657,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["element.contextexternaltoolid",{"_index":8761,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["element.createdat",{"_index":8760,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.description",{"_index":14378,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.do",{"_index":2821,"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":8716,"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":17544,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:13",{"_index":9921,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:14",{"_index":17546,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:17",{"_index":9923,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:18",{"_index":17548,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:21",{"_index":14342,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:25",{"_index":14344,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:29",{"_index":14346,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:33",{"_index":14348,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:5",{"_index":8721,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:6",{"_index":17542,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:9",{"_index":8723,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.duedate",{"_index":19074,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.factory.ts",{"_index":5609,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:13",{"_index":5616,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:43",{"_index":5618,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:56",{"_index":5619,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:68",{"_index":5620,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:81",{"_index":5621,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:93",{"_index":5617,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.getreferences",{"_index":7589,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.getreferences().length",{"_index":7593,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.gridelement",{"_index":7571,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.id",{"_index":8758,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.imageurl",{"_index":14379,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.inputformat",{"_index":17576,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["element.interface",{"_index":5173,"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":11867,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.interface.ts:2",{"_index":11868,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.publish",{"_index":17845,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.removereference(room",{"_index":7592,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.removereferencebyindex(position.groupindex",{"_index":7614,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.response",{"_index":17574,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["element.response.ts",{"_index":3402,"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":8733,"title":{},"body":{"classes/ExternalToolElementContent.html":{}}}],["element.response.ts:12",{"_index":9935,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{}}}],["element.response.ts:14",{"_index":8748,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:15",{"_index":9934,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:17",{"_index":3409,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:18",{"_index":9947,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:20",{"_index":14360,"title":{},"body":{"classes/LinkElementContent.html":{}}}],["element.response.ts:22",{"_index":3406,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:23",{"_index":8750,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:26",{"_index":8752,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementResponse.html":{}}}],["element.response.ts:27",{"_index":9949,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:29",{"_index":8749,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:30",{"_index":9951,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:32",{"_index":8751,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:33",{"_index":9948,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:35",{"_index":14370,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:36",{"_index":9950,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:38",{"_index":14372,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:41",{"_index":14369,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:44",{"_index":14371,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:5",{"_index":8732,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/FileElementContent.html":{},"classes/LinkElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:7",{"_index":3403,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.service",{"_index":4123,"title":{},"body":{"injectables/CardService.html":{}}}],["element.service.ts",{"_index":5663,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:18",{"_index":5664,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:25",{"_index":5669,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:35",{"_index":5671,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:43",{"_index":5665,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:50",{"_index":5667,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:54",{"_index":5673,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:58",{"_index":5676,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.status",{"_index":6487,"title":{},"body":{"classes/CopyMapper.html":{}}}],["element.target",{"_index":2645,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.text",{"_index":4908,"title":{},"body":{"injectables/ColumnBoardService.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["element.title",{"_index":14377,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.ts",{"_index":5270,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:11",{"_index":5274,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:12",{"_index":5322,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:14",{"_index":5302,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:15",{"_index":5323,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:19",{"_index":5275,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["element.ts:21",{"_index":5338,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:3",{"_index":5327,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:38",{"_index":5339,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:42",{"_index":5340,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:46",{"_index":5341,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:6",{"_index":5329,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.type",{"_index":17687,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["element.unpublish",{"_index":17846,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.updatedat",{"_index":8759,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.url",{"_index":14376,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.url.params.ts",{"_index":5761,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:11",{"_index":5763,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:19",{"_index":17729,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["elementcontentbody",{"_index":8239,"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:112",{"_index":8739,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["elementcontentbody:29",{"_index":9939,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["elementcontentbody:59",{"_index":14363,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["elementcontentbody:78",{"_index":17562,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["elementcontentbody:96",{"_index":19067,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["elementcontroller",{"_index":2702,"title":{"controllers/ElementController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ElementController.html":{}}}],["elementcopystatus",{"_index":3058,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementcopystatus.type",{"_index":3055,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementdata",{"_index":7691,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.copyingsince",{"_index":7699,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.displaycolor",{"_index":7696,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group",{"_index":7701,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group.map((groupmetadata",{"_index":7705,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.groupid",{"_index":7702,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.referencedid",{"_index":7700,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.shorttitle",{"_index":7695,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.title",{"_index":7694,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementid",{"_index":1858,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{}}}],["elementmapper",{"_index":5653,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmapper.maptoresponse(element",{"_index":5658,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmodel",{"_index":7746,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.dashboard",{"_index":7783,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.references.set(references",{"_index":7782,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.title",{"_index":7778,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.xpos",{"_index":7773,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.ypos",{"_index":7775,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elements",{"_index":848,"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":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/TaskCopyService.html":{}}}],["elements.filter((el",{"_index":3649,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["elements.filter((element",{"_index":8175,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.foreach((element",{"_index":8185,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.map((el",{"_index":6431,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elements.map((elementcopystatus",{"_index":3054,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elements.push",{"_index":6758,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["elements.push(this.mapcolumnboard(element.content",{"_index":17690,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maplesson(element.content",{"_index":17689,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maptask(element.content",{"_index":17688,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elementservice",{"_index":4158,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["elementspercard",{"_index":3509,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementspercard.flat",{"_index":3512,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementsstatuses",{"_index":6430,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementsstatuses.filter((status",{"_index":6434,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementstoadd",{"_index":2682,"title":{},"body":{"entities/Board.html":{}}}],["elementtomove",{"_index":7577,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.getreferences",{"_index":7610,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.isgroup",{"_index":7609,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementuc",{"_index":2696,"title":{"injectables/ElementUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["elementwithposition",{"_index":7726,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.x",{"_index":7774,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.y",{"_index":7776,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elemmatch",{"_index":10465,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["em",{"_index":3287,"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":23556,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["em.getreference(role",{"_index":11123,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(schoolentity",{"_index":11107,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(systementity",{"_index":11118,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(user",{"_index":11122,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["email",{"_index":653,"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":23215,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["emailsearchvalues",{"_index":11816,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["embeddable",{"_index":2503,"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":4275,"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":4269,"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":19416,"title":{},"body":{"entities/SystemEntity.html":{}}}],["embodied",{"_index":22609,"title":{},"body":{"license.html":{}}}],["emerg",{"_index":8411,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["emerg(loggable",{"_index":8418,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["employer",{"_index":22947,"title":{},"body":{"license.html":{}}}],["empty",{"_index":1671,"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":15253,"title":{},"body":{"classes/NewsScope.html":{},"classes/Scope.html":{}}}],["emptyresultquerytype",{"_index":6081,"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":12601,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["enable",{"_index":10953,"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":21487,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable.loggable.ts:4",{"_index":21488,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable_ldap_sync_during_migration",{"_index":12212,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enabled",{"_index":1117,"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":10958,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["enableldapsyncduringmigration",{"_index":12213,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enablemigrationstart",{"_index":14137,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["enableoauthmigrationfeature",{"_index":21340,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enableoauthmigrationfeature(schooldo",{"_index":21350,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enables",{"_index":22466,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["encapsulates",{"_index":4650,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/ConverterUtil.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["encoded",{"_index":2159,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FileSystemAdapter.html":{}}}],["encodeuricomponent(token",{"_index":1197,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["encoding",{"_index":10362,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["encouraged",{"_index":22414,"title":{},"body":{"license.html":{}}}],["encrypt",{"_index":11963,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application.html":{}}}],["encrypt(data",{"_index":11966,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encrypted",{"_index":981,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["encryptedstring",{"_index":19017,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["encryption",{"_index":12674,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.interface",{"_index":8342,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.service",{"_index":8344,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryption.service.ts",{"_index":14574,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryption.service.ts:7",{"_index":14577,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryptionmodule",{"_index":8336,"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":8345,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryptionservice",{"_index":9368,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["encryptpassword",{"_index":854,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptpassword(password",{"_index":859,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptsecrets(collectionname",{"_index":11837,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["encryptsecretsinsystems(systems",{"_index":11839,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["end",{"_index":2131,"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":21852,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["end(config",{"_index":2151,"title":{},"body":{"injectables/BBBService.html":{}}}],["end(currentuser",{"_index":21804,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["end(currentuserid",{"_index":21968,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.loggable.ts",{"_index":18363,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:3",{"_index":18365,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:6",{"_index":18366,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.uc.ts",{"_index":21966,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:11",{"_index":21967,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:18",{"_index":21969,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end2end",{"_index":23577,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["enddate",{"_index":12236,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["ended",{"_index":21863,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["endings",{"_index":23607,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["endpoint",{"_index":2035,"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":11392,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["endpointurl",{"_index":12275,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["ends",{"_index":2153,"title":{},"body":{"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["endschoolinmaintenance",{"_index":12751,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(@currentuser",{"_index":12828,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(currentuser",{"_index":12759,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endtime",{"_index":2107,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["enforce",{"_index":20160,"title":{},"body":{"controllers/TeamNewsController.html":{},"license.html":{}}}],["enforces",{"_index":23434,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["enforcing",{"_index":22565,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["enities",{"_index":17600,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enities.map((entity",{"_index":17604,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enrichdatafromexternaltool",{"_index":18271,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichdatafromexternaltool(tool",{"_index":18280,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichedtools",{"_index":18293,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools",{"_index":18272,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools(tools",{"_index":18282,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["ensure",{"_index":9675,"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":3171,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureboardnodetype(boardnode",{"_index":3189,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurecontextpermissions",{"_index":8642,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensurecontextpermissions(userid",{"_index":8651,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureleafnode",{"_index":3172,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureleafnode(boardnode",{"_index":3192,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurepermission",{"_index":9473,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensurepermission(userid",{"_index":9482,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensures",{"_index":22309,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ensureschoolpermissions",{"_index":8643,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureschoolpermissions(userid",{"_index":8653,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensuretokeniswhitelisted",{"_index":13219,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["ensuretoolpermissions",{"_index":20780,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["ensuretoolpermissions(userid",{"_index":20783,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["entered",{"_index":22848,"title":{},"body":{"license.html":{}}}],["enteredpassword",{"_index":14405,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["entire",{"_index":22585,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["entirely",{"_index":22867,"title":{},"body":{"license.html":{}}}],["entities",{"_index":155,"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":10489,"title":{},"body":{"injectables/FilesService.html":{}}}],["entities.length",{"_index":10488,"title":{},"body":{"injectables/FilesService.html":{},"injectables/LtiToolRepo.html":{}}}],["entities.map((entity",{"_index":2305,"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":10057,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["entitiyids",{"_index":9696,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entity",{"_index":154,"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":19471,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.closedat",{"_index":21306,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.config.type",{"_index":9146,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.contextid",{"_index":5961,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["entity.contexttype",{"_index":18818,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.course",{"_index":6861,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["entity.coursegroup",{"_index":14279,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.createdat",{"_index":4403,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.customs",{"_index":14735,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.displayname",{"_index":5963,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.email",{"_index":21020,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.emailsearchvalues",{"_index":21026,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.expiresat",{"_index":18820,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.externalid",{"_index":11120,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.externalsource",{"_index":11113,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.factory.ts",{"_index":8783,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:21",{"_index":8792,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:28",{"_index":8789,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:38",{"_index":8794,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:50",{"_index":8790,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:66",{"_index":8788,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.features",{"_index":14048,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{}}}],["entity.features.includes(feature",{"_index":14098,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["entity.federalstate",{"_index":14057,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.finishedat",{"_index":21307,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.firstname",{"_index":21021,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.firstnamesearchvalues",{"_index":21024,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.forcepasswordchange",{"_index":21028,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.friendlyurl",{"_index":14740,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.frontchannel_logout_uri",{"_index":14742,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.getgrid().map((elementwithposition",{"_index":7786,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getid",{"_index":7793,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getuserid",{"_index":7795,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.gradelevel",{"_index":4398,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.hidden",{"_index":14275,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.id",{"_index":4389,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.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":21023,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.inmaintenancesince",{"_index":14049,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.inusermigration",{"_index":14050,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.invitationlink",{"_index":4396,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.isdraft",{"_index":19955,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.ishidden",{"_index":9155,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.islocal",{"_index":14737,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.istemplate",{"_index":14736,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.key",{"_index":14727,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.language",{"_index":21027,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastloginsystemchange",{"_index":21030,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastname",{"_index":21022,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastnamesearchvalues",{"_index":21025,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.ldapconfig?.active",{"_index":19475,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.ldapdn",{"_index":4399,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lesson",{"_index":19958,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.logo_url",{"_index":14729,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.logobase64",{"_index":9153,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.logourl",{"_index":9152,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.lti_message_type",{"_index":14730,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.lti_version",{"_index":14731,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.mandatorysince",{"_index":21304,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.markfordeletion",{"_index":10493,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.name",{"_index":4390,"title":{},"body":{"classes/ClassMapper.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RoleMapper.html":{}}}],["entity.oauthclientid",{"_index":14739,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.officialschoolnumber",{"_index":14052,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.oidcconfig",{"_index":19492,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["entity.opennewtab",{"_index":9156,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.options.everyattendejoinsmuted",{"_index":22105,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.everybodyjoinsasmoderator",{"_index":22104,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.moderatormustapprovejoinrequests",{"_index":22106,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.organization?.id",{"_index":11116,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.origintoolid",{"_index":14738,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.outdatedsince",{"_index":21031,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.parentid",{"_index":18817,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.parenttype",{"_index":18816,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.permissions",{"_index":17603,"title":{},"body":{"classes/RoleMapper.html":{}}}],["entity.preferences",{"_index":21029,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.previousexternalid",{"_index":14051,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.privacy_permission",{"_index":14734,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.provisioningstrategy",{"_index":19472,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.provisioningurl",{"_index":19473,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.pseudonym",{"_index":9063,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.removepermissionsbyrefid(userid",{"_index":10490,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.resource_link_id",{"_index":14732,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.role.id",{"_index":11126,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.roles",{"_index":14733,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.roles.getitems().map((role",{"_index":21441,"title":{},"body":{"classes/UserMapper.html":{}}}],["entity.roles.isinitialized",{"_index":21032,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.school.id",{"_index":18221,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{}}}],["entity.schoolid",{"_index":18264,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["entity.schoolid.tohexstring",{"_index":4391,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.schooltool.id",{"_index":5960,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltool.school.id",{"_index":6056,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schooltool.school?.id",{"_index":5959,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltoolref.schoolid",{"_index":6057,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schoolyear",{"_index":14053,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.secret",{"_index":14728,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.skipconsent",{"_index":14741,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.source",{"_index":4401,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourceoptions?.tspuid",{"_index":4402,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourcesystem?.id",{"_index":21302,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.startedat",{"_index":21305,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.successor?.tohexstring",{"_index":4400,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.system.id",{"_index":11121,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.systems.getitems().map((system",{"_index":14055,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.systems.isinitialized",{"_index":14054,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.target",{"_index":22102,"title":{},"body":{"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetmodel",{"_index":23799,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetsystem.id",{"_index":21303,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.teacherids.map((teacherid",{"_index":4394,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.teamusers.find((teamuser",{"_index":20201,"title":{},"body":{"injectables/TeamRule.html":{}}}],["entity.token",{"_index":18819,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.tool.id",{"_index":18220,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entity.toolid.tohexstring",{"_index":9064,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.toolversion",{"_index":5964,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entity.ts",{"_index":23264,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["entity.type",{"_index":19470,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.updatedat",{"_index":4404,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.url",{"_index":9151,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.user.id",{"_index":11125,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.userid.tohexstring",{"_index":9065,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.userids?.map((userid",{"_index":4392,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.userloginmigration?.id",{"_index":14056,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.users.map((groupuser",{"_index":11108,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod",{"_index":11110,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.from",{"_index":11111,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.until",{"_index":11112,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.version",{"_index":9157,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.year?.tohexstring",{"_index":4397,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity/course.entity",{"_index":11946,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/import",{"_index":12067,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["entity/pseudonym.scope",{"_index":9047,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["entity/role.entity",{"_index":16648,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity/school.entity",{"_index":11947,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/share",{"_index":18812,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity/team.entity",{"_index":11948,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/user.entity",{"_index":16649,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity[key",{"_index":2327,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entity[prop",{"_index":1680,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["entity_not_found",{"_index":3823,"title":{},"body":{"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{}}}],["entityclass",{"_index":505,"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":10459,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["entitydo",{"_index":2276,"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":21313,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.config.type",{"_index":9170,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.contextref.id",{"_index":5966,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.customs",{"_index":14751,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.displayname",{"_index":5968,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.email",{"_index":21035,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.externalid",{"_index":14058,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.features",{"_index":14059,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.federalstate",{"_index":14070,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.finishedat",{"_index":21314,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.firstname",{"_index":21036,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.forcepasswordchange",{"_index":21042,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.friendlyurl",{"_index":14756,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.frontchannel_logout_uri",{"_index":14758,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.id",{"_index":17142,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["entitydo.inmaintenancesince",{"_index":14060,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.inusermigration",{"_index":14061,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.ishidden",{"_index":9179,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.islocal",{"_index":14753,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.istemplate",{"_index":14752,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.key",{"_index":14743,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.language",{"_index":21041,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastloginsystemchange",{"_index":21044,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastname",{"_index":21037,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.ldapdn",{"_index":21040,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.logo",{"_index":9177,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.logo_url",{"_index":14745,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.logourl",{"_index":9176,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.lti_message_type",{"_index":14746,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.lti_version",{"_index":14747,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.mandatorysince",{"_index":21311,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.name",{"_index":9174,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.oauthclientid",{"_index":14755,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.officialschoolnumber",{"_index":14063,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.opennewtab",{"_index":9180,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.options.everyattendeejoinsmuted",{"_index":22110,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.everybodyjoinsasmoderator",{"_index":22109,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.moderatormustapprovejoinrequests",{"_index":22111,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.origintoolid",{"_index":14754,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.outdatedsince",{"_index":21045,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.preferences",{"_index":21043,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.previousexternalid",{"_index":14062,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.privacy_permission",{"_index":14750,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.pseudonym",{"_index":9066,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entitydo.resource_link_id",{"_index":14748,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles",{"_index":14749,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles.map((roleref",{"_index":21038,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.schoolid",{"_index":18224,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.schooltoolref.schooltoolid",{"_index":5970,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.schoolyear",{"_index":14064,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.secret",{"_index":14744,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.skipconsent",{"_index":14757,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.sourcesystemid",{"_index":21309,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.startedat",{"_index":21312,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.systems",{"_index":14065,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.systems.map((systemid",{"_index":14066,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.target",{"_index":22107,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.targetsystemid",{"_index":21310,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.toolid",{"_index":18226,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.toolversion",{"_index":5971,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.url",{"_index":9175,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.userloginmigrationid",{"_index":14068,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.version",{"_index":9181,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydos",{"_index":2287,"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":2299,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entityfactory",{"_index":2245,"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":2270,"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":{},"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/AutoContextNameStrategy.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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/MetaTagExtractorUc.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":2252,"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":687,"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":291,"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":885,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror('user",{"_index":21015,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitynotfounderror(`account",{"_index":913,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror(`user",{"_index":13626,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["entitynotfounderror(systementity.name",{"_index":19507,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["entitypermissions",{"_index":9690,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entitypermissions.includes(p",{"_index":9694,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entityprops",{"_index":2319,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entityschema",{"_index":2369,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["entitytype",{"_index":15181,"title":{},"body":{"classes/NewsMapper.html":{}}}],["entitywithembeddedfiles",{"_index":6376,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["entitywithid",{"_index":2409,"title":{},"body":{"classes/BaseFactory.html":{}}}],["entries",{"_index":9127,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entries.map",{"_index":9186,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry",{"_index":5486,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/JwtStrategy.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.do.ts",{"_index":7314,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:2",{"_index":7316,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:4",{"_index":7315,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.entity.ts",{"_index":7319,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:6",{"_index":7321,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:9",{"_index":7320,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.name",{"_index":9187,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.params",{"_index":18194,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["entry.params.ts",{"_index":7324,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:12",{"_index":7326,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:7",{"_index":7325,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.response",{"_index":18241,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["entry.response.ts",{"_index":7327,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:5",{"_index":7329,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:9",{"_index":7328,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.value",{"_index":9188,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["enum",{"_index":838,"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/ClassFilterParams.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":14664,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({fieldname",{"_index":12741,"title":{},"body":{"entities/ImportUser.html":{}}}],["enum({items",{"_index":14661,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({nullable",{"_index":6559,"title":{},"body":{"entities/Course.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"entities/ShareToken.html":{}}}],["enumname",{"_index":2863,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ClassFilterParams.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":5171,"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":15015,"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":22975,"title":{},"body":{"todo.html":{}}}],["envirement",{"_index":19755,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["envirements",{"_index":6777,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["envirment",{"_index":18930,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["environment",{"_index":13652,"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":10370,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["eq",{"_index":14289,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["equal",{"_index":19919,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["equivalent",{"_index":22524,"title":{},"body":{"license.html":{}}}],["eric",{"_index":23383,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["erorr",{"_index":19747,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["err",{"_index":1179,"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":23475,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["err?.cause?.name",{"_index":17968,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["err?.code",{"_index":17951,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["error",{"_index":990,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.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":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":3246,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["error('broken",{"_index":3009,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error('error",{"_index":11668,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('gradelevel",{"_index":4282,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["error('idm",{"_index":11608,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('invalid",{"_index":12927,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["error('multiple",{"_index":13611,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error('not",{"_index":2688,"title":{},"body":{"entities/Board.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["error('nothing",{"_index":17234,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["error('resource",{"_index":5350,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["error('rocket",{"_index":1102,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["error('roles",{"_index":12176,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["error('root",{"_index":3111,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["error('unexpected",{"_index":13047,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["error('unknown",{"_index":5975,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["error('user",{"_index":530,"title":{},"body":{"classes/AccountFactory.html":{}}}],["error(`${jwtconstants.jwtoptions.algorithm",{"_index":1416,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["error(`${testreqestconst.errormessage",{"_index":1515,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(`account",{"_index":13604,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error(`boardcopyservice",{"_index":3026,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error(`cannot",{"_index":5757,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["error(`duplicate",{"_index":13694,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["error(`login",{"_index":14421,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["error(`mapping",{"_index":10565,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["error(`metatagextractorservice",{"_index":14888,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["error(`no",{"_index":13791,"title":{},"body":{"injectables/LdapService.html":{}}}],["error(`system",{"_index":19524,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["error(error",{"_index":1512,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(json.stringify(cause",{"_index":3874,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(json.stringify(error",{"_index":8479,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["error(loggable",{"_index":8420,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["error(message",{"_index":12096,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["error(string(cause",{"_index":3875,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(util.inspect(error",{"_index":10921,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.enum",{"_index":1735,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error.exception",{"_index":6578,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["error.filter",{"_index":8453,"title":{},"body":{"modules/ErrorModule.html":{}}}],["error.filter.ts",{"_index":10884,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"todo.html":{}}}],["error.filter.ts:102",{"_index":10907,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:15",{"_index":10893,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:19",{"_index":10896,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:34",{"_index":10898,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:49",{"_index":10909,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:56",{"_index":10900,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:72",{"_index":10904,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:80",{"_index":10902,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:92",{"_index":10906,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getresponse",{"_index":10939,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getstatus",{"_index":8895,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["error.interface.ts",{"_index":9700,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["error.mapper",{"_index":17853,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["error.officialschoolnumberfromsource",{"_index":21424,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.officialschoolnumberfromtarget",{"_index":21425,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.response",{"_index":1254,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts",{"_index":1230,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:10",{"_index":1236,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:21",{"_index":1253,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.ts",{"_index":20902,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.ts:3",{"_index":20903,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.validationerrors.map((e",{"_index":8387,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["error/error",{"_index":21893,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["error/id",{"_index":12648,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["error_debug",{"_index":5492,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_description",{"_index":1723,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error_hint",{"_index":5493,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_uri",{"_index":1724,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["errorcode",{"_index":15460,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["errorhandler",{"_index":16201,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorhandler(error",{"_index":16208,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorloggable",{"_index":8356,"title":{"classes/ErrorLoggable.html":{}},"body":{"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LdapStrategy.html":{}}}],["errorloggable(error",{"_index":10919,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorloggable(unknownerror",{"_index":10922,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorlogger",{"_index":8406,"title":{"injectables/ErrorLogger.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"modules/LoggerModule.html":{}}}],["errorlogmessage",{"_index":8369,"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/UnknownQueryTypeLoggableException.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":8432,"title":{"classes/ErrorMapper.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["errormapper.maprpcerrorresponsetodomainerror(error",{"_index":17861,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["errormessage",{"_index":1448,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["errormessages",{"_index":8386,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errormodule",{"_index":6494,"title":{"modules/ErrorModule.html":{}},"body":{"modules/CoreModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules.html":{}}}],["errorobj",{"_index":8438,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorobj.status",{"_index":8440,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorredirect",{"_index":16255,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('error",{"_index":16257,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('provider",{"_index":16259,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('sourceschoolnumber",{"_index":16265,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('targetschoolnumber",{"_index":16266,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorresponse",{"_index":1219,"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":10937,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorresponse:10",{"_index":1247,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:15",{"_index":1244,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:20",{"_index":1242,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:25",{"_index":1238,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:30",{"_index":1239,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse})@apiresponse({status",{"_index":11041,"title":{},"body":{"controllers/GroupController.html":{}}}],["errorresponse})@get('/class",{"_index":11043,"title":{},"body":{"controllers/GroupController.html":{}}}],["errors",{"_index":1233,"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":13784,"title":{},"body":{"injectables/LdapService.html":{}}}],["errors/school",{"_index":15627,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["errorstatus",{"_index":21892,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["errorstatus.guests_cannot_join_conference",{"_index":22024,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["errortype",{"_index":994,"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":21564,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('sourcesystem",{"_index":21566,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('targetsystem",{"_index":21567,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.tostring",{"_index":21568,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorutils",{"_index":1163,"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":1180,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(error",{"_index":2210,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["errorutils.createhttpexceptionoptions(errorobj",{"_index":8445,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorutils.isbusinesserror(error",{"_index":10930,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isbusinesserror(this.error",{"_index":8382,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isfeatherserror(error",{"_index":10928,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isfeatherserror(this.error",{"_index":8380,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isnesthttpexception(error",{"_index":10932,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isnesthttpexception(this.error",{"_index":8383,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["erweitern",{"_index":4858,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["erwin",{"_index":23047,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["erwinidm",{"_index":23048,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["es",{"_index":12602,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["es256",{"_index":1408,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es384",{"_index":1409,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es512",{"_index":1410,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es6",{"_index":22213,"title":{},"body":{"dependencies.html":{}}}],["escape",{"_index":15027,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["escaped",{"_index":11829,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["escapedclasses",{"_index":13048,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedfirstname",{"_index":13032,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedlastname",{"_index":13040,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedloginname",{"_index":13043,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedname",{"_index":21621,"title":{},"body":{"injectables/UserRepo.html":{}}}],["escapedusername",{"_index":749,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["escapes",{"_index":744,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["eslint",{"_index":996,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{}}}],["eslint/ban",{"_index":21625,"title":{},"body":{"injectables/UserRepo.html":{}}}],["eslint/dot",{"_index":2424,"title":{},"body":{"classes/BaseFactory.html":{}}}],["eslint/no",{"_index":1000,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{}}}],["eslint/restrict",{"_index":1076,"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":23118,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["especially",{"_index":23250,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["essential",{"_index":22497,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["etag",{"_index":6342,"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":22311,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["etherpad",{"_index":8498,"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":8480,"title":{"injectables/EtherpadService.html":{}},"body":{"injectables/EtherpadService.html":{},"modules/LessonModule.html":{}}}],["evaluate",{"_index":23367,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evaluated",{"_index":23368,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evans",{"_index":23384,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["even",{"_index":22351,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["event",{"_index":3923,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"license.html":{}}}],["event.data[0",{"_index":3929,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["event.dto",{"_index":3927,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.dto.ts",{"_index":3910,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:2",{"_index":3914,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:4",{"_index":3913,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.interface",{"_index":3925,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.interface.ts",{"_index":11596,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["eventid",{"_index":3948,"title":{},"body":{"injectables/CalendarService.html":{}}}],["events",{"_index":11658,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["everyattendeejoinsmuted",{"_index":8102,"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":21756,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everybodyjoinsasmoderator",{"_index":8103,"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":22366,"title":{},"body":{"license.html":{}}}],["everything",{"_index":23735,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exact",{"_index":12732,"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":21446,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exactmatch",{"_index":705,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["example",{"_index":2433,"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":23645,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["exampleapimodule",{"_index":23240,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplecolor",{"_index":7557,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["examplecontroller",{"_index":23239,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplemodule",{"_index":23230,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examples",{"_index":23726,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exampleuc",{"_index":23238,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exceeded",{"_index":8905,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/HydraOauthUc.html":{}}}],["except",{"_index":15028,"title":{},"body":{"classes/MongoPatterns.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception",{"_index":4484,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"injectables/ClassesRepo.html":{},"injectables/ColumnBoardService.html":{},"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":10943,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.getstatus",{"_index":10940,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.loggable",{"_index":12649,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["exception.loggable.ts",{"_index":12627,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:4",{"_index":12628,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:9",{"_index":12629,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.message",{"_index":10941,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.ts",{"_index":8820,"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/UnknownQueryTypeLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:10",{"_index":18481,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["exception.ts:14",{"_index":15448,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:16",{"_index":10782,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["exception.ts:17",{"_index":8823,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:18",{"_index":20379,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:20",{"_index":8907,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["exception.ts:26",{"_index":14993,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:4",{"_index":8836,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.html":{}}}],["exception.ts:5",{"_index":8822,"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":20378,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:7",{"_index":10781,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:9",{"_index":8837,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.html":{}}}],["exception/not",{"_index":15442,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exceptionfactory",{"_index":10965,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["exceptionfilter",{"_index":10885,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptionname",{"_index":10942,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptions",{"_index":22700,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exceptionshandler",{"_index":19152,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["exchange",{"_index":1121,"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":17174,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["excluded",{"_index":22649,"title":{},"body":{"license.html":{}}}],["excludedraftsofothers",{"_index":19967,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludedraftsofothers(creatorid",{"_index":19983,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers",{"_index":19968,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers(creatorid",{"_index":19985,"title":{},"body":{"classes/TaskScope.html":{}}}],["excluding",{"_index":22852,"title":{},"body":{"license.html":{}}}],["exclusion",{"_index":22936,"title":{},"body":{"license.html":{}}}],["exclusive",{"_index":22811,"title":{},"body":{"license.html":{}}}],["exclusively",{"_index":18694,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["excuse",{"_index":22859,"title":{},"body":{"license.html":{}}}],["exec",{"_index":23656,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["executable",{"_index":22493,"title":{},"body":{"license.html":{}}}],["execute",{"_index":20312,"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":21371,"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":23071,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["executing",{"_index":22457,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["execution",{"_index":13424,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["execution.id",{"_index":13425,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executioncontext",{"_index":8229,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["executionprovider",{"_index":13422,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executionproviders",{"_index":13400,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executions",{"_index":13423,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["exercise",{"_index":22788,"title":{},"body":{"license.html":{}}}],["exercising",{"_index":22561,"title":{},"body":{"license.html":{}}}],["exist",{"_index":1395,"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":2771,"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":13690,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["existingaccounts",{"_index":13687,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts.length",{"_index":13688,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts[0].id",{"_index":13689,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingcourses",{"_index":6734,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingcourses.map((course",{"_index":6736,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingelements",{"_index":2653,"title":{},"body":{"entities/Board.html":{}}}],["existingentities",{"_index":4493,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentities.find((entity",{"_index":4496,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentities.foreach((entity",{"_index":4500,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentities.length",{"_index":4495,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["existingentity",{"_index":11175,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["existinggroup",{"_index":16479,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.externalsource?.systemid",{"_index":16510,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.id",{"_index":16486,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.users",{"_index":16491,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupfromsystem.externalsource?.externalid",{"_index":16515,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser",{"_index":16506,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser.filter",{"_index":16509,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinglessons",{"_index":14188,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existinglessons.map((l",{"_index":14190,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existingmatch",{"_index":21616,"title":{},"body":{"injectables/UserRepo.html":{}}}],["existingnames",{"_index":6423,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["existingnames.includes(composedname",{"_index":6447,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingnames.includes(name",{"_index":6440,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingrooms",{"_index":7595,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingrooms.includes(room",{"_index":7598,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingschool",{"_index":16443,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingschool.externalid",{"_index":18445,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["existingschool.id",{"_index":16483,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existingschool.officialschoolnumber",{"_index":16449,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingtargets",{"_index":4935,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtargets.find((item",{"_index":4941,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtasks",{"_index":19750,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existingtasks.map((t",{"_index":19752,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existinguser",{"_index":15560,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["existinguser.email",{"_index":16468,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.firstname",{"_index":16464,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.lastname",{"_index":16466,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.roles",{"_index":16470,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.schoolid",{"_index":16471,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguserloginmigration",{"_index":14126,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["existinguserloginmigration?.closedat",{"_index":14130,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["exists",{"_index":2778,"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":10410,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["existssync(folderpath",{"_index":10418,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["exitonerror",{"_index":14457,"title":{},"body":{"modules/LoggerModule.html":{}}}],["exp",{"_index":7085,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["expect",{"_index":23211,"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":23476,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazy(x,y,z)).to",{"_index":23457,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazysync(wrong",{"_index":23479,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(mockservice.getuser).tohavebeencalled",{"_index":23522,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).to",{"_index":23460,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).toequal(resultuser",{"_index":23523,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expectation",{"_index":23449,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expected",{"_index":3113,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["expecting",{"_index":23465,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expects",{"_index":22663,"title":{},"body":{"license.html":{}}}],["expensive",{"_index":19927,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["expert",{"_index":23733,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["expiration",{"_index":7098,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtValidationAdapter.html":{}}}],["expire",{"_index":18687,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["expireafterseconds",{"_index":10139,"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":18433,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["expires",{"_index":10275,"title":{},"body":{"injectables/FileRecordRepo.html":{},"controllers/OauthSSOController.html":{}}}],["expiresat",{"_index":159,"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":1423,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{}}}],["expiresindays",{"_index":18684,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["explains",{"_index":23601,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["explanation",{"_index":23725,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicit",{"_index":1935,"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":1007,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":6787,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.service.ts",{"_index":5045,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:140",{"_index":5070,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:148",{"_index":5074,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:18",{"_index":5054,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:25",{"_index":5063,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:41",{"_index":5059,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:65",{"_index":5061,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:85",{"_index":5066,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.uc",{"_index":6689,"title":{},"body":{"controllers/CourseController.html":{}}}],["export.uc.ts",{"_index":6781,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:15",{"_index":6785,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:9",{"_index":6783,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["exportcollection",{"_index":7900,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(@param('collectionname",{"_index":7924,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(collectionname",{"_index":7903,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollections",{"_index":7860,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{}}}],["exportcollections(options",{"_index":7865,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["exportcollectionstofilesystem(collections",{"_index":11778,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportcourse",{"_index":5048,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(courseid",{"_index":5062,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(currentuser",{"_index":6674,"title":{},"body":{"controllers/CourseController.html":{}}}],["exported",{"_index":11756,"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":11782,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportedcollections.push(`${collectionname}:${sortedbsondocuments.length",{"_index":11796,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exporting",{"_index":23063,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["exports",{"_index":209,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":12325,"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":5526,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exposes",{"_index":23357,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["express",{"_index":6684,"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":22891,"title":{},"body":{"license.html":{}}}],["expressions",{"_index":761,"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":22738,"title":{},"body":{"license.html":{}}}],["ext",{"_index":13066,"title":{},"body":{"interfaces/IntrospectResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["ext_official_school_missing",{"_index":18442,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_mismatch",{"_index":18468,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_missing",{"_index":18438,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["extend",{"_index":472,"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":23148,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extended",{"_index":3834,"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":18979,"title":{},"body":{"classes/SortingParams.html":{}}}],["extends",{"_index":180,"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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.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":{},"injectables/ColumnUc.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":{},"injectables/ElementUc.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/SubmissionItemUc.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/UnknownQueryTypeLoggableException.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":23162,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extensions",{"_index":22596,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["extent",{"_index":22475,"title":{},"body":{"license.html":{}}}],["external",{"_index":564,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"modules/BoardModule.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":{},"injectables/RecursiveDeleteVisitor.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_sub",{"_index":7061,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["external_tool_logo_fetch_failed",{"_index":8824,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["external_tool_logo_fetched",{"_index":8833,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["external_tool_logo_not_found",{"_index":8838,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}}}],["external_tool_logo_size_exceeded",{"_index":8908,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["external_tool_logo_wrong_file_type",{"_index":8910,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["external_tools",{"_index":8778,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["externalauthconfig",{"_index":13153,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["externalgroup",{"_index":16430,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalid",{"_index":16481,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalorganizationid",{"_index":16482,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.from",{"_index":16489,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.name",{"_index":16487,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.type",{"_index":16488,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.until",{"_index":16490,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.map(async",{"_index":16495,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupdto",{"_index":8499,"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":18344,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroups",{"_index":15814,"title":{},"body":{"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalgroups.some",{"_index":16514,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuser",{"_index":16496,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuserdto",{"_index":8510,"title":{"classes/ExternalGroupUserDto.html":{}},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["externalid",{"_index":655,"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":7143,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginResponseMapper.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{}}}],["externalorganizationid",{"_index":8502,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalrolename",{"_index":11251,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["externalschool",{"_index":13134,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalschool.externalid",{"_index":16445,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.name",{"_index":16447,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.officialschoolnumber",{"_index":16448,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschooldto",{"_index":8530,"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":13843,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["externalsource",{"_index":8538,"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":11117,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsource.systemid",{"_index":11119,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsourceentity",{"_index":8543,"title":{"classes/ExternalSourceEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["externalsourceentityprops",{"_index":8546,"title":{"interfaces/ExternalSourceEntityProps.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["externalsourcename",{"_index":4333,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["externalsourceresponse",{"_index":8553,"title":{"classes/ExternalSourceResponse.html":{}},"body":{"classes/ExternalSourceResponse.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["externalsub",{"_index":7089,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["externaltool",{"_index":2568,"title":{"classes/ExternalTool.html":{}},"body":{"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":20524,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltool.config",{"_index":9319,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientid",{"_index":9541,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientsecret",{"_index":9544,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.secret",{"_index":9400,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.type",{"_index":9537,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.id",{"_index":8883,"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":8691,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.islti11config(externaltool.config",{"_index":9399,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(externaltool.config",{"_index":9402,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(loadedtool.config",{"_index":9536,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(tool.config",{"_index":9413,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.isoauth2config(toupdate.config",{"_index":9430,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.logo",{"_index":8878,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{}}}],["externaltool.logourl",{"_index":8675,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.name",{"_index":8962,"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":9325,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.parameters",{"_index":8636,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltool.parameters.filter",{"_index":8637,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltool.parameters.foreach((param",{"_index":8964,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["externaltool.url",{"_index":9324,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.version",{"_index":9326,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolconfig",{"_index":2491,"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":2495,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:6",{"_index":2493,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfigcreateparams",{"_index":2512,"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":2514,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:9",{"_index":2516,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigdo",{"_index":9310,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltoolconfigentity",{"_index":2504,"title":{"classes/ExternalToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigparams",{"_index":9209,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolconfigresponse",{"_index":2522,"title":{"classes/ExternalToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:10",{"_index":2524,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:7",{"_index":2525,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigurationservice",{"_index":8589,"title":{"injectables/ExternalToolConfigurationService.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"modules/ToolApiModule.html":{}}}],["externaltoolconfigurationuc",{"_index":8639,"title":{"injectables/ExternalToolConfigurationUc.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["externaltoolcontentbody",{"_index":5712,"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":9203,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams",{"_index":8696,"title":{"classes/ExternalToolCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams.config",{"_index":9268,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.ishidden",{"_index":9276,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.logourl",{"_index":9275,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.name",{"_index":9273,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.opennewtab",{"_index":9277,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.parameters",{"_index":9272,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.url",{"_index":9274,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltooldomapper",{"_index":20543,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolelement",{"_index":2802,"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":5755,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelement.id",{"_index":17378,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementcontent",{"_index":8730,"title":{"classes/ExternalToolElementContent.html":{}},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementcontentbody",{"_index":8252,"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":3145,"title":{"entities/ExternalToolElementNodeEntity.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementnodeentityprops",{"_index":8744,"title":{"interfaces/ExternalToolElementNodeEntityProps.html":{}},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["externaltoolelementprops",{"_index":8728,"title":{"interfaces/ExternalToolElementProps.html":{}},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["externaltoolelementresponse",{"_index":4024,"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":5648,"title":{"classes/ExternalToolElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementresponsemapper.getinstance",{"_index":5640,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["externaltoolelementresponsemapper.instance",{"_index":8757,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolentity",{"_index":8762,"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":9096,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolentityfactory",{"_index":8781,"title":{"classes/ExternalToolEntityFactory.html":{}},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolentityfactory.define",{"_index":8801,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolfactory",{"_index":7378,"title":{"classes/ExternalToolFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolfactory.define(externaltool",{"_index":7389,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolid",{"_index":5806,"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":8809,"title":{"classes/ExternalToolIdParams.html":{}},"body":{"classes/ExternalToolIdParams.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo",{"_index":8810,"title":{"classes/ExternalToolLogo.html":{}},"body":{"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.contenttype",{"_index":8817,"title":{},"body":{"classes/ExternalToolLogo.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.logo",{"_index":8815,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["externaltoollogofetchedloggable",{"_index":8830,"title":{"classes/ExternalToolLogoFetchedLoggable.html":{}},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchedloggable(logourl",{"_index":8890,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception",{"_index":8818,"title":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception(logourl",{"_index":8894,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception",{"_index":8834,"title":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception(toolid",{"_index":8898,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogoservice",{"_index":8649,"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":8862,"title":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["externaltoollogowrongfiletypeloggableexception",{"_index":8863,"title":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["externaltoolmodule",{"_index":5882,"title":{"modules/ExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["externaltoolparametervalidationservice",{"_index":8921,"title":{"injectables/ExternalToolParameterValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolparams",{"_index":20516,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolprops",{"_index":7338,"title":{"interfaces/ExternalToolProps.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolpseudonymentity",{"_index":9001,"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":9057,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["externaltoolpseudonympromise",{"_index":17106,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolpseudonymrepo",{"_index":9015,"title":{"injectables/ExternalToolPseudonymRepo.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["externaltoolpseudonyms",{"_index":17093,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolrepo",{"_index":8922,"title":{"injectables/ExternalToolRepo.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["externaltoolrepomapper",{"_index":5945,"title":{"classes/ExternalToolRepoMapper.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentrydostoentities(entitydo.parameters",{"_index":5972,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.parameters",{"_index":5965,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.schoolparameters",{"_index":18222,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapdotoentityproperties(entitydo",{"_index":9105,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapentitytodo(entity",{"_index":9104,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrequestmapper",{"_index":9189,"title":{"injectables/ExternalToolRequestMapper.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponse",{"_index":9291,"title":{"classes/ExternalToolResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper",{"_index":9302,"title":{"injectables/ExternalToolResponseMapper.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.mapcustomparametertoresponse(externaltool.parameters",{"_index":20459,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(created",{"_index":20546,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(externaltool",{"_index":20558,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(tool",{"_index":20553,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(updated",{"_index":20562,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20540,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20517,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltools",{"_index":8603,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltools.data",{"_index":8683,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["externaltools.data.filter((tool",{"_index":8616,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.find",{"_index":8629,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.map",{"_index":20461,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltools.map((tooldo",{"_index":18254,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["externaltoolscope",{"_index":9095,"title":{"classes/ExternalToolScope.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{}}}],["externaltoolsearchlistresponse",{"_index":9348,"title":{"classes/ExternalToolSearchListResponse.html":{}},"body":{"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20814,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":20528,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolsearchparams",{"_index":9205,"title":{"classes/ExternalToolSearchParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSearchParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolsearchquery",{"_index":9082,"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":6167,"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":5390,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["externaltoolservicemapper",{"_index":8923,"title":{"injectables/ExternalToolServiceMapper.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["externaltoolsortby",{"_index":18963,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["externaltoolsortingmapper",{"_index":9093,"title":{"classes/ExternalToolSortingMapper.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["externaltoolsortingmapper.mapdosortordertoqueryorder",{"_index":9098,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltooluc",{"_index":9472,"title":{"injectables/ExternalToolUc.html":{}},"body":{"injectables/ExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdate",{"_index":9236,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams",{"_index":9234,"title":{"classes/ExternalToolUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams.config",{"_index":9255,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.id",{"_index":9262,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.ishidden",{"_index":9266,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.logourl",{"_index":9265,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.name",{"_index":9263,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.opennewtab",{"_index":9267,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.parameters",{"_index":9261,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.url",{"_index":9264,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolvalidationservice",{"_index":8919,"title":{"injectables/ExternalToolValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolversion",{"_index":18329,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["externaltoolversionservice",{"_index":8920,"title":{"injectables/ExternalToolVersionService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["externaluser",{"_index":13132,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.email",{"_index":16467,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.externalid",{"_index":16472,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.firstname",{"_index":16463,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.lastname",{"_index":16465,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.roles",{"_index":16458,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.includes(rolename.administrator",{"_index":18074,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.push(rolename.teacher",{"_index":18075,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluserdto",{"_index":9620,"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":8523,"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":23798,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["extract",{"_index":12047,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["extractaccount",{"_index":13564,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractaccount(user",{"_index":13570,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue",{"_index":13565,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue(value",{"_index":13573,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractids(users",{"_index":6635,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extracting",{"_index":10963,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["extractjwt",{"_index":13182,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromauthheaderasbearertoken",{"_index":13186,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromextractors",{"_index":13185,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor",{"_index":13183,"title":{},"body":{"injectables/JwtStrategy.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["extractor.config",{"_index":14853,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["extractor.controller.ts",{"_index":14832,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["extractor.controller.ts:20",{"_index":14838,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["extractor.module",{"_index":14830,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{}}}],["extractor.module.ts",{"_index":14851,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["extractor.response.ts",{"_index":14856,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:15",{"_index":14862,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:19",{"_index":14860,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:23",{"_index":14858,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:27",{"_index":14859,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.response.ts:5",{"_index":14857,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor.service.ts",{"_index":14864,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:15",{"_index":14870,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:25",{"_index":14877,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:44",{"_index":14879,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.service.ts:58",{"_index":14874,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor.ts",{"_index":13167,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.ts:6",{"_index":13170,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.uc.ts",{"_index":14912,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractor.uc.ts:13",{"_index":14915,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractor.uc.ts:7",{"_index":14913,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractor/controller/dto/meta",{"_index":14855,"title":{},"body":{"classes/MetaTagExtractorResponse.html":{}}}],["extractor/controller/meta",{"_index":14831,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["extractor/controller/post",{"_index":10874,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["extractor/meta",{"_index":14827,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.html":{}}}],["extractor/service/meta",{"_index":14863,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["extractor/uc/meta",{"_index":14911,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["extractparamsfromrequest",{"_index":13811,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractparamsfromrequest(request",{"_index":13818,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractreferences",{"_index":2940,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extractreferences(statuses",{"_index":2965,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extracts",{"_index":2176,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["extractuserlist(users",{"_index":6647,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extractvalidationerrordetails",{"_index":1234,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["extractvalidationerrordetails(validationerror",{"_index":1251,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["f",{"_index":502,"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":2859,"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":23411,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["facilitating",{"_index":22873,"title":{},"body":{"license.html":{}}}],["facilities",{"_index":22526,"title":{},"body":{"license.html":{}}}],["factories",{"_index":7882,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["factory",{"_index":463,"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":512,"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":2403,"title":{},"body":{"classes/BaseFactory.html":{}}}],["factory/account.factory",{"_index":1440,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["fail",{"_index":22417,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failafter",{"_index":13797,"title":{},"body":{"injectables/LdapService.html":{}}}],["failed",{"_index":595,"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":14422,"title":{},"body":{"injectables/LocalStrategy.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failingfileids",{"_index":8040,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.length",{"_index":8041,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.push(result.fileid",{"_index":8048,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.tostring",{"_index":8053,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["fails",{"_index":11622,"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":11365,"title":{},"body":{"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"license.html":{}}}],["fair",{"_index":22523,"title":{},"body":{"license.html":{}}}],["fallback",{"_index":20070,"title":{},"body":{"injectables/TaskUC.html":{}}}],["fallbackhostname",{"_index":5734,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["fallbackimage",{"_index":14908,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["false",{"_index":145,"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":{},"classes/BaseUc.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/GetMetaTagDataBody.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":{},"injectables/SubmissionItemFactory.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":9974,"title":{},"body":{"entities/FileEntity.html":{}}}],["false})@isoptional",{"_index":21865,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["false})@sanitizehtml",{"_index":17412,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["familiar",{"_index":23731,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["familienname",{"_index":18037,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["family",{"_index":22654,"title":{},"body":{"license.html":{}}}],["fantasy",{"_index":22338,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["far",{"_index":13729,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fashion",{"_index":22445,"title":{},"body":{"license.html":{}}}],["fast",{"_index":23408,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["favicon",{"_index":22273,"title":{},"body":{"dependencies.html":{}}}],["favor",{"_index":22660,"title":{},"body":{"license.html":{}}}],["featherjs",{"_index":7097,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathers",{"_index":1719,"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":9839,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersapp.service(path",{"_index":9846,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersauthorizationservice",{"_index":1699,"title":{"injectables/FeathersAuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/NewsUc.html":{}}}],["feathersauthprovider",{"_index":1704,"title":{"injectables/FeathersAuthProvider.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["featherserror",{"_index":8474,"title":{"interfaces/FeathersError.html":{}},"body":{"classes/ErrorUtils.html":{},"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["featherserror)?.type",{"_index":8477,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["feathersexpress",{"_index":9844,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersexpress.services['nest",{"_index":23325,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersjs/authentication",{"_index":22138,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/configuration",{"_index":22141,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/errors",{"_index":7843,"title":{},"body":{"injectables/DashboardUc.html":{},"dependencies.html":{}}}],["feathersjs/express",{"_index":9833,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"dependencies.html":{}}}],["feathersjs/feathers",{"_index":22142,"title":{},"body":{"dependencies.html":{}}}],["feathersmodule",{"_index":1697,"title":{"modules/FeathersModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/FeathersModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersrosterservice",{"_index":9713,"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":9822,"title":{"interfaces/FeathersService.html":{}},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceparams",{"_index":9826,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceprovider",{"_index":8484,"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":9835,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feature",{"_index":6780,"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":22347,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature/sc",{"_index":22337,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature_disabled_app_will_not_be_created",{"_index":16875,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_disabled_middlewares_will_not_be_created",{"_index":16868,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_identity_management_enabled",{"_index":12015,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_login_enabled",{"_index":12016,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_store_enabled",{"_index":12017,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_imscc_course_export_enabled",{"_index":11866,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["features",{"_index":6540,"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":23502,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["federal",{"_index":12202,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolFactory.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstate",{"_index":9872,"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":6532,"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":14004,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatefactory.build",{"_index":14017,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatenames",{"_index":16439,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstatenames.niedersachen",{"_index":16453,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstaterepo",{"_index":9855,"title":{"injectables/FederalStateRepo.html":{}},"body":{"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{}}}],["federalstates",{"_index":6531,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["federalstateservice",{"_index":9861,"title":{"injectables/FederalStateService.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{}}}],["fee",{"_index":22579,"title":{},"body":{"license.html":{}}}],["feedback",{"_index":4896,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feedbacklink",{"_index":4889,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feel",{"_index":1456,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fetch",{"_index":2659,"title":{},"body":{"entities/Board.html":{},"injectables/CourseCopyService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["fetchbase64logo",{"_index":8842,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchbase64logo(logourl",{"_index":8852,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetched",{"_index":8825,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["fetchedentity",{"_index":2314,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["fetchlogo",{"_index":8843,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchlogo(externaltool",{"_index":8854,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchmetadata",{"_index":14865,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["fetchmetadata(url",{"_index":14869,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["fetchmetadata(userid",{"_index":14914,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["fetchoptions",{"_index":14891,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["few",{"_index":23839,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["ffd8ffe0",{"_index":8865,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffd8ffe1",{"_index":8867,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffffff",{"_index":6813,"title":{},"body":{"classes/CourseFactory.html":{}}}],["field",{"_index":12056,"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":2611,"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":2032,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":8073,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.collectionname",{"_index":11736,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["file.data",{"_index":9884,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.dto.ts",{"_index":6239,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:5",{"_index":6243,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:7",{"_index":6244,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:9",{"_index":6242,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.id",{"_index":8071,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.interface",{"_index":5221,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["file.interface.ts",{"_index":11869,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:2",{"_index":11870,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:3",{"_index":11871,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.isdirectory",{"_index":8068,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.mimetype",{"_index":9885,"title":{},"body":{"classes/FileDto.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.name",{"_index":9883,"title":{},"body":{"classes/FileDto.html":{}}}],["file.storagefilename",{"_index":8075,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.storageprovider",{"_index":8077,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file_could_not_be_copied_hint",{"_index":6379,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filecontent",{"_index":11763,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filecontentbody",{"_index":5713,"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":17248,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopy.map((copyfiledto",{"_index":17255,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservice",{"_index":3272,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservicefactory",{"_index":4769,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["filecopystatus",{"_index":6389,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["filecouldnotbecopied",{"_index":6380,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedto",{"_index":6392,"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":9894,"title":{"classes/FileDtoBuilder.html":{}},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(fileinfo.filename",{"_index":9908,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(name",{"_index":9913,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtos",{"_index":6372,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map",{"_index":6398,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map((filedto",{"_index":6391,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileelement",{"_index":2805,"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":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["fileelement.alternativetext",{"_index":5723,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.caption",{"_index":5720,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.id",{"_index":17365,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["fileelementcontent",{"_index":9932,"title":{"classes/FileElementContent.html":{}},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementcontentbody",{"_index":8245,"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":3148,"title":{"entities/FileElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelementnodeprops",{"_index":9943,"title":{"interfaces/FileElementNodeProps.html":{}},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["fileelementprops",{"_index":9930,"title":{"interfaces/FileElementProps.html":{}},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["fileelementresponse",{"_index":3712,"title":{"classes/FileElementResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{}}}],["fileelementresponse)@apiresponse({status",{"_index":3691,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["fileelementresponsemapper",{"_index":5649,"title":{"classes/FileElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper.getinstance",{"_index":5636,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["fileelementresponsemapper.instance",{"_index":9953,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["fileentity",{"_index":8023,"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":10002,"title":{"interfaces/FileEntityProps.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["filegroupstatus",{"_index":6403,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileid",{"_index":6402,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/DeleteFilesUc.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["fileinfo",{"_index":9904,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfo.mimetype",{"_index":9909,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfos",{"_index":10528,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filename",{"_index":6302,"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":11719,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filename=\"${encodeuri(fileresponse.name",{"_index":10654,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filename=\"${encodeuri(params.fwulearningcontent",{"_index":10828,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["filenameobj",{"_index":10195,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameobj.name",{"_index":10197,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameprefix",{"_index":6290,"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":10392,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filenames.map((filename",{"_index":11717,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filenamewithoutextension",{"_index":10194,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["fileownermodel",{"_index":9984,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["fileownermodel.user",{"_index":10463,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["fileparambuilder",{"_index":6377,"title":{"classes/FileParamBuilder.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileParamBuilder.html":{}}}],["fileparambuilder.build(copyentity.getschoolid",{"_index":6384,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparambuilder.build(originalentity.getschoolid",{"_index":6383,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparams",{"_index":6303,"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":10397,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filepermissionentity",{"_index":9982,"title":{"classes/FilePermissionEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionentityprops",{"_index":10068,"title":{"interfaces/FilePermissionEntityProps.html":{}},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionreferencemodel",{"_index":10073,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filerecord",{"_index":6255,"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":6273,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.deletedsince",{"_index":6279,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.getpreviewstatus",{"_index":6281,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.id",{"_index":6262,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.mimetype",{"_index":6275,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name",{"_index":6263,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.parentid",{"_index":6271,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.parenttype",{"_index":6277,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.schoolid",{"_index":10650,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filerecord.securitycheck.status",{"_index":6269,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.size",{"_index":6267,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordcopy",{"_index":10159,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordcopy.securitycheck",{"_index":10161,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordfactory",{"_index":10198,"title":{"classes/FileRecordFactory.html":{}},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordfactory.define(filerecord",{"_index":10205,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordid",{"_index":6306,"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":6287,"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":10226,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse.map((record",{"_index":10553,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordmapper",{"_index":10210,"title":{"classes/FileRecordMapper.html":{}},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordmapper.maptofilerecordresponse(filerecord",{"_index":10225,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordparams",{"_index":6293,"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":6256,"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":10237,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["filerecordparenttype.boardnode",{"_index":17254,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filerecordparenttype.course",{"_index":10207,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordparenttype.lesson",{"_index":10566,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.submission",{"_index":10568,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.task",{"_index":10567,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordrepo",{"_index":10240,"title":{"injectables/FileRecordRepo.html":{}},"body":{"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{}}}],["filerecordresponse",{"_index":6260,"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":10222,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse.id",{"_index":10558,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.name",{"_index":10559,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.parentid",{"_index":10560,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecords",{"_index":10133,"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":10224,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/PreviewService.html":{}}}],["filerecordscanstatus",{"_index":6282,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordscope",{"_index":10251,"title":{"classes/FileRecordScope.html":{}},"body":{"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(false",{"_index":10268,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(true",{"_index":10270,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byparentid(parentid).bymarkedfordelete(false",{"_index":10271,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(false",{"_index":10273,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(true",{"_index":10274,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().bysecuritycheckrequesttoken(token",{"_index":10277,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordsecuritycheck",{"_index":10106,"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":6354,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["fileresponse",{"_index":10322,"title":{},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"classes/TestHelper.html":{}}}],["fileresponse.contentlength",{"_index":10655,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponse.contenttype",{"_index":10653,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponsebuilder",{"_index":10318,"title":{"classes/FileResponseBuilder.html":{}},"body":{"classes/FileResponseBuilder.html":{},"injectables/PreviewService.html":{}}}],["fileresponsebuilder.build(file",{"_index":16813,"title":{},"body":{"injectables/PreviewService.html":{}}}],["files",{"_index":6259,"title":{},"body":{"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":7983,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:15",{"_index":7994,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:6",{"_index":7987,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.interface",{"_index":13309,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["files.interface.ts",{"_index":12078,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["files.length",{"_index":8049,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.map((file",{"_index":8043,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.service",{"_index":10575,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["files.service.ts",{"_index":6361,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:17",{"_index":6367,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:23",{"_index":6369,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:42",{"_index":6371,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:58",{"_index":6375,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.uc.ts",{"_index":8007,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:106",{"_index":8026,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:12",{"_index":8016,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:22",{"_index":8028,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:66",{"_index":8029,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:76",{"_index":8019,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:91",{"_index":8024,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files_storage_s3_connection",{"_index":11982,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{}}}],["filesdto",{"_index":10552,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesecuritycheckentity",{"_index":9986,"title":{"classes/FileSecurityCheckEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckentityprops",{"_index":10324,"title":{"interfaces/FileSecurityCheckEntityProps.html":{}},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus",{"_index":10329,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus.pending",{"_index":10330,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycontroller",{"_index":10332,"title":{"controllers/FileSecurityController.html":{}},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filesmodule",{"_index":10440,"title":{"modules/FilesModule.html":{}},"body":{"modules/FilesModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["filespreviewevents",{"_index":16710,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{}}}],["filespreviewevents.generate_preview",{"_index":16715,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["filespreviewexchange",{"_index":16708,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["filesrepo",{"_index":8014,"title":{"injectables/FilesRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{}}}],["filesservice",{"_index":10472,"title":{"injectables/FilesService.html":{}},"body":{"injectables/FilesService.html":{}}}],["filesservicebaseurl",{"_index":1119,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["filesstorageamqpmodule",{"_index":10494,"title":{"modules/FilesStorageAMQPModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules.html":{}}}],["filesstorageapimodule",{"_index":10503,"title":{"modules/FilesStorageApiModule.html":{}},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filesstorageclientadapterservice",{"_index":6366,"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":10058,"title":{"classes/FilesStorageClientMapper.html":{}},"body":{"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapcopyfilelistresponsetocopyfilesdto(response",{"_index":10529,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapcopyfileresponsetocopyfiledto(response",{"_index":10556,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapentitytoparenttype(parent",{"_index":10060,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["filesstorageclientmapper.mapfilerecordlistresponsetodomainfilesdto(response",{"_index":10531,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapfilerecordresponsetofiledto(record",{"_index":10554,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapstringtoparenttype(filerecordresponse.parenttype",{"_index":10557,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmodule",{"_index":3533,"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":10499,"title":{"injectables/FilesStorageConsumer.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageConsumer.html":{}}}],["filesstoragecontroller",{"_index":10507,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["filesstorageevents",{"_index":10599,"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":10606,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.delete_files_of_parent",{"_index":10612,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.list_files_of_parent",{"_index":10608,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageexchange",{"_index":10586,"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":1166,"title":{},"body":{"injectables/AntivirusService.html":{},"controllers/FileSecurityController.html":{}}}],["filesstoragemapper",{"_index":10603,"title":{"classes/FilesStorageMapper.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{}}}],["filesstoragemapper.maptofilerecordlistresponse(filerecords",{"_index":10611,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstoragemapper.maptofilerecordresponse(filerecord",{"_index":10651,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filesstoragemodule",{"_index":10498,"title":{"modules/FilesStorageModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["filesstorageproducer",{"_index":10517,"title":{"injectables/FilesStorageProducer.html":{}},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{}}}],["filesstorageservice",{"_index":10581,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["filesstoragetestmodule",{"_index":10727,"title":{"modules/FilesStorageTestModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules.html":{}}}],["filesstorageuc",{"_index":10345,"title":{},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filestatuses",{"_index":6397,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filestorageauthorizationcontext",{"_index":23761,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["filestorageconfig",{"_index":11988,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["filestoragemqproducer",{"_index":10516,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesystem",{"_index":7867,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["filesystemadapter",{"_index":10358,"title":{"injectables/FileSystemAdapter.html":{}},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filesystemmodule",{"_index":10429,"title":{"modules/FileSystemModule.html":{}},"body":{"modules/FileSystemModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filetype",{"_index":17187,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["filetyperesult",{"_index":17190,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["fileupload_enabled=false",{"_index":23706,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["fileurlparams",{"_index":6301,"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":6373,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements",{"_index":6387,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements.foreach",{"_index":19702,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["fill",{"_index":23554,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["filled",{"_index":8973,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["filledtemplate",{"_index":8875,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["filter",{"_index":4324,"title":{},"body":{"classes/ClassFilterParams.html":{},"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":11745,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filter((element",{"_index":6486,"title":{},"body":{"classes/CopyMapper.html":{}}}],["filter((entity",{"_index":19496,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["filter((group",{"_index":18132,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((groupuser",{"_index":11301,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["filter((key",{"_index":9469,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["filter((match",{"_index":13053,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["filter((rolename",{"_index":21462,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["filter((sanisgroupuser",{"_index":18121,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((user",{"_index":13725,"title":{},"body":{"classes/KeycloakSeedService.html":{},"injectables/SanisResponseMapper.html":{}}}],["filter(issubmissionitem",{"_index":8331,"title":{},"body":{"injectables/ElementUc.html":{}}}],["filter.ts",{"_index":15261,"title":{},"body":{"interfaces/NewsTargetFilter.html":{}}}],["filter/global",{"_index":8452,"title":{},"body":{"modules/ErrorModule.html":{}}}],["filterallowed",{"_index":4155,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterallowed(userid",{"_index":4164,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterbypermission",{"_index":8130,"title":{},"body":{"classes/DtoCreator.html":{}}}],["filterbypermission(elements",{"_index":8148,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtercoursesbytoolavailability",{"_index":9721,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["filtercoursesbytoolavailability(courses",{"_index":9735,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["filtered",{"_index":6433,"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":6437,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filtered.length",{"_index":6436,"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":6439,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filteredaccounts",{"_index":942,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts.length",{"_index":946,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts[0].id.tostring",{"_index":953,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredcollectionswithfilepaths",{"_index":11730,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredcollectionswithfilepaths.length",{"_index":11733,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredpathobjects",{"_index":17988,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["filteredtoolreferences",{"_index":20795,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["filteredusers",{"_index":16503,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["filterforavailableexternaltools",{"_index":8592,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableexternaltools(externaltools",{"_index":8600,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools",{"_index":8593,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools(schoolexternaltools",{"_index":8605,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools",{"_index":8594,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools(externaltools",{"_index":8609,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterimportuserparams",{"_index":10740,"title":{"classes/FilterImportUserParams.html":{}},"body":{"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["filtermatchtype",{"_index":10753,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.auto",{"_index":12921,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.manual",{"_index":12923,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.none",{"_index":12925,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filternewsparams",{"_index":10766,"title":{"classes/FilterNewsParams.html":{}},"body":{"classes/FilterNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["filterparametersforscope",{"_index":8595,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparametersforscope(externaltool",{"_index":8612,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparams",{"_index":11038,"title":{},"body":{"controllers/GroupController.html":{},"controllers/SystemController.html":{}}}],["filterparams.onlyoauth",{"_index":19390,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterparams.type",{"_index":11060,"title":{},"body":{"controllers/GroupController.html":{}}}],["filterquery",{"_index":2291,"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":10758,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/RoleNameMapper.html":{}}}],["filterroletype.admin",{"_index":17623,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.student",{"_index":17625,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.teacher",{"_index":17624,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filters",{"_index":6969,"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":19908,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.classes",{"_index":12973,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.finished.value",{"_index":19901,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.firstname",{"_index":12965,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.flagged",{"_index":12977,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.lastname",{"_index":12967,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.loginname",{"_index":12969,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.matches",{"_index":12975,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.name.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":21622,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters.role",{"_index":12971,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters?.afterduedateornone",{"_index":19904,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.availableon",{"_index":19906,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.draft",{"_index":19912,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.finished",{"_index":19899,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.hidden",{"_index":14240,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["filters?.name",{"_index":21619,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters?.nofutureavailabledate",{"_index":19914,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.onlyactivecourses",{"_index":6996,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["filtersubmissionsbypermission",{"_index":19313,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtersubmissionsbypermission(submissions",{"_index":19317,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtertoolswithpermissions",{"_index":6119,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filtertoolswithpermissions(userid",{"_index":6131,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filterundefined",{"_index":14645,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["filteruserparams",{"_index":10777,"title":{"classes/FilterUserParams.html":{}},"body":{"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/UserMatchMapper.html":{}}}],["final",{"_index":11394,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["finally",{"_index":14971,"title":{},"body":{"classes/MigrationResponse.html":{},"license.html":{}}}],["find",{"_index":4692,"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":{},"injectables/SubmissionItemUc.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":8332,"title":{},"body":{"injectables/ElementUc.html":{}}}],["find(@query",{"_index":19387,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(filterparams",{"_index":19365,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(params",{"_index":9829,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["find(query",{"_index":5922,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["findaccountbydbcaccountid",{"_index":12693,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcaccountid(accountdbcaccountid",{"_index":12707,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid",{"_index":12694,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid(accountdbcuserid",{"_index":12711,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid",{"_index":264,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid(accountid",{"_index":12714,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["findaccountbyid(currentuser",{"_index":295,"title":{},"body":{"controllers/AccountController.html":{}}}],["findaccountbyid(id",{"_index":13577,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername",{"_index":12695,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername(username",{"_index":12716,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findall",{"_index":15068,"title":{},"body":{"controllers/NewsController.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findall(currentuser",{"_index":15074,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TaskController.html":{}}}],["findall(userid",{"_index":20033,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallbyconfigtype",{"_index":9077,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbyconfigtype(type",{"_index":9084,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbycontext",{"_index":6091,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycontext(contextref",{"_index":6099,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycourseids",{"_index":14227,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbycourseids(courseids",{"_index":14230,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbyparentids",{"_index":19825,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyparentids(parentids",{"_index":19831,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyschoolid",{"_index":4474,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbyschoolid(schoolid",{"_index":4477,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbytask",{"_index":19285,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{}}}],["findallbytask(taskid",{"_index":19290,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findallbytask(userid",{"_index":19319,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["findallbytaskids",{"_index":19233,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbytaskids(taskids",{"_index":19237,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbyuser",{"_index":7038,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuser(userid",{"_index":7040,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuserid",{"_index":4431,"title":{},"body":{"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallbyuserid(userid",{"_index":4437,"title":{},"body":{"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallcoursegroupsbyuserid",{"_index":6865,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursegroupsbyuserid(userid",{"_index":6870,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursesbyuserid",{"_index":7023,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallcoursesbyuserid(userid",{"_index":7028,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallfinished",{"_index":19625,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findallfinished(currentuser",{"_index":19635,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallfinished(userid",{"_index":20035,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallfinishedbyparentids",{"_index":19826,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallfinishedbyparentids(parentids",{"_index":19835,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallforstudent",{"_index":20025,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforstudent(user",{"_index":20037,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher",{"_index":6964,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/TaskUC.html":{}}}],["findallforteacher(user",{"_index":20039,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher(userid",{"_index":6972,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher",{"_index":6965,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher(userid",{"_index":6974,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findallforteam",{"_index":20154,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforteam(urlparams",{"_index":20155,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforuser",{"_index":15263,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallforuser(userid",{"_index":15273,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallimportusers",{"_index":12752,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallimportusers(currentuser",{"_index":12762,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findalllessonsbyuserid",{"_index":14293,"title":{},"body":{"injectables/LessonService.html":{}}}],["findalllessonsbyuserid(userid",{"_index":14300,"title":{},"body":{"injectables/LessonService.html":{}}}],["findallpublished",{"_index":15195,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallpublished(targets",{"_index":15198,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findalltasks",{"_index":19626,"title":{},"body":{"controllers/TaskController.html":{}}}],["findalltasks(currentuser",{"_index":19638,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallunmatchedusers",{"_index":12753,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunmatchedusers(currentuser",{"_index":12765,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunpublishedbyuser",{"_index":15196,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallunpublishedbyuser(targets",{"_index":15201,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findandcount",{"_index":10242,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findandcount(scope",{"_index":10250,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findboard",{"_index":3780,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboard(userid",{"_index":3788,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext",{"_index":3781,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext(userid",{"_index":3790,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findbyclassandid",{"_index":3276,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclassandid(doclass",{"_index":3289,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclientidandislocal",{"_index":14709,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(clientid",{"_index":14762,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(oauthclientid",{"_index":14712,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbycourseid",{"_index":3625,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseid(courseid",{"_index":3630,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseids",{"_index":6843,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbycourseids(courseids",{"_index":6844,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbydescendant",{"_index":4817,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbydescendant(boarddo",{"_index":4829,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyemail",{"_index":21595,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyemail(email",{"_index":21599,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid",{"_index":14029,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid(externalid",{"_index":14033,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalidorfail",{"_index":20982,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalidorfail(externalid",{"_index":20989,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalsource",{"_index":11156,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternalsource(externalid",{"_index":11160,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternaltoolid",{"_index":18201,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyexternaltoolid(toolid",{"_index":18210,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyfilter",{"_index":19511,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyfilter(type",{"_index":19513,"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":4831,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyid(cardid",{"_index":4110,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyid(columnid",{"_index":5006,"title":{},"body":{"injectables/ColumnService.html":{}}}],["findbyid(contextexternaltoolid",{"_index":6101,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findbyid(courseid",{"_index":7030,"title":{},"body":{"injectables/CourseService.html":{}}}],["findbyid(elementid",{"_index":5668,"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":14303,"title":{},"body":{"injectables/LessonService.html":{}}}],["findbyid(schoolexternaltoolid",{"_index":18284,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findbyid(submissionid",{"_index":19293,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findbyid(taskid",{"_index":20003,"title":{},"body":{"injectables/TaskService.html":{}}}],["findbyids",{"_index":3277,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyids(cardids",{"_index":4113,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyids(ids",{"_index":3294,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyname",{"_index":9078,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbyname(name",{"_index":9086,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbynames",{"_index":17631,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbynames(names",{"_index":17634,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbyoauth2configclientid",{"_index":9079,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauth2configclientid(clientid",{"_index":9088,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauthclientid",{"_index":14710,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyoauthclientid(oauthclientid",{"_index":14715,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyowneruserid",{"_index":10446,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyowneruserid(owneruserid",{"_index":10450,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyparentid",{"_index":10243,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyparentid(parentid",{"_index":10253,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbypermissionrefid",{"_index":10447,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbypermissionrefid(permissionrefid",{"_index":10453,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyschoolid",{"_index":18202,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolid(schoolid",{"_index":18212,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolidandparentid",{"_index":10244,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentid(schoolid",{"_index":10255,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete",{"_index":10245,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete(schoolid",{"_index":10257,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolnumber",{"_index":14030,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyschoolnumber(officialschoolnumber",{"_index":14035,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyscopeandscopeid",{"_index":22086,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbyscopeandscopeid(scopeid",{"_index":22087,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbysecuritycheckrequesttoken",{"_index":10246,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysecuritycheckrequesttoken(token",{"_index":10259,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysingleparent",{"_index":19827,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbysingleparent(creatorid",{"_index":19837,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbytype",{"_index":19543,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbytype(type",{"_index":19547,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbyuser",{"_index":11157,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuser(user",{"_index":11163,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuserandtoolorthrow",{"_index":17064,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findbyuserandtoolorthrow(user",{"_index":15411,"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":9020,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolid(userid",{"_index":9032,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail",{"_index":9021,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail(userid",{"_index":9034,"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":4156,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcards(userid",{"_index":4167,"title":{},"body":{"injectables/CardUc.html":{}}}],["findclasses",{"_index":11036,"title":{},"body":{"controllers/GroupController.html":{}}}],["findclasses(pagination",{"_index":11037,"title":{},"body":{"controllers/GroupController.html":{}}}],["findclassesforschool",{"_index":4432,"title":{},"body":{"injectables/ClassService.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findclassesforschool(schoolid",{"_index":4439,"title":{},"body":{"injectables/ClassService.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findcontextexternaltools",{"_index":6092,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcontextexternaltools(query",{"_index":6103,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcurrentyear",{"_index":18524,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["finddescendants",{"_index":3586,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendants(node",{"_index":3590,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany",{"_index":3587,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany(nodes",{"_index":3592,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddocumentsofcollection",{"_index":7939,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["finddocumentsofcollection(collectionname",{"_index":7951,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["findevent",{"_index":3944,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findevent(userid",{"_index":3947,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findexistinggridelement",{"_index":7714,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistinggridelement(elementwithposition",{"_index":7727,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistingtargets",{"_index":4926,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexistingtargets(columnboardids",{"_index":4930,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexternaltool",{"_index":9474,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["findexternaltool(currentuser",{"_index":20526,"title":{},"body":{"controllers/ToolController.html":{}}}],["findexternaltool(userid",{"_index":9484,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["findexternaltoolbyname",{"_index":9360,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname(name",{"_index":9378,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid",{"_index":9361,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid(clientid",{"_index":9380,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolpseudonymsbyuserid",{"_index":17065,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltoolpseudonymsbyuserid(userid",{"_index":17079,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltools",{"_index":9362,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltools(query",{"_index":9382,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findfederalstatebyname",{"_index":9865,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfederalstatebyname(name",{"_index":9868,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfilesaccessiblebyuser",{"_index":10474,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesaccessiblebyuser(userid",{"_index":10479,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser",{"_index":10475,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser(userid",{"_index":10481,"title":{},"body":{"injectables/FilesService.html":{}}}],["findforcleanup",{"_index":10448,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforcleanup(thresholddate",{"_index":10456,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforuser",{"_index":6673,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findforuser(@currentuser",{"_index":7454,"title":{},"body":{"controllers/DashboardController.html":{}}}],["findforuser(currentuser",{"_index":6679,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findidsbyexternalreference",{"_index":3278,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findidsbyexternalreference(reference",{"_index":3296,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findimportusers",{"_index":12944,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusers(school",{"_index":12950,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount",{"_index":12945,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount(query",{"_index":12952,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["finding",{"_index":3605,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["findlegacyltitool",{"_index":15347,"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":21341,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyschool(schoolid",{"_index":21352,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser",{"_index":21342,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser(userid",{"_index":21354,"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":15197,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnewsandcount(query",{"_index":15203,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnextcloudtool",{"_index":15348,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findone",{"_index":6966,"title":{},"body":{"injectables/CourseRepo.html":{},"controllers/NewsController.html":{}}}],["findone(@param",{"_index":15102,"title":{},"body":{"controllers/NewsController.html":{}}}],["findone(courseid",{"_index":6977,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findone(urlparams",{"_index":15077,"title":{},"body":{"controllers/NewsController.html":{}}}],["findonebyid",{"_index":10247,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyid(id",{"_index":10261,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyidforuser",{"_index":15264,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidforuser(id",{"_index":15278,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidmarkedfordelete",{"_index":10248,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebyidmarkedfordelete(id",{"_index":10263,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebytoken",{"_index":18805,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findonebytoken(token",{"_index":18806,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findoneorfail",{"_index":10249,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfail(scope",{"_index":10265,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfailhandler",{"_index":10690,"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":17066,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatepseudonym(user",{"_index":17081,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatetargets",{"_index":4927,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findorcreatetargets(columnboardids",{"_index":4933,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findparentofid",{"_index":3279,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{}}}],["findparentofid(childid",{"_index":3299,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findparentofid(elementid",{"_index":5670,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["findpseudonym",{"_index":9022,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonym(query",{"_index":9036,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonymbypseudonym",{"_index":9023,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{}}}],["findpseudonymbypseudonym(pseudonym",{"_index":9039,"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":17117,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["findpseudonymsbyuserid",{"_index":17067,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findpseudonymsbyuserid(userid",{"_index":17085,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["finds",{"_index":692,"title":{},"body":{"injectables/AccountRepo.html":{},"controllers/SystemController.html":{},"injectables/TeamsRepo.html":{}}}],["findschoolexternaltools",{"_index":18273,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["findschoolexternaltools(query",{"_index":18285,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findschoolexternaltools(userid",{"_index":18314,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["findstatusesbytask",{"_index":19082,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findstatusesbytask(currentuser",{"_index":19086,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findsubmissionitems",{"_index":19200,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsubmissionitems(userid",{"_index":19204,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findtasksandcount",{"_index":19828,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findtasksandcount(query",{"_index":19839,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findteambyid",{"_index":4681,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findteambyid(teamid",{"_index":4689,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findtoolbyclientid",{"_index":16068,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["findtoolbyclientid(clientid",{"_index":16072,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["finduserafterprovisioningorthrow",{"_index":15504,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserafterprovisioningorthrow(externaluserid",{"_index":15521,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserdatafromteams",{"_index":20206,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserdatafromteams(userid",{"_index":20211,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserloginmigrationbyschool",{"_index":21128,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["finduserloginmigrationbyschool(user",{"_index":21141,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["finduserloginmigrationbyschool(userid",{"_index":21400,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["findusers",{"_index":21671,"title":{},"body":{"injectables/UserService.html":{}}}],["findusers(query",{"_index":21682,"title":{},"body":{"injectables/UserService.html":{}}}],["findwithoutimportuser",{"_index":21596,"title":{},"body":{"injectables/UserRepo.html":{}}}],["findwithoutimportuser(school",{"_index":21603,"title":{},"body":{"injectables/UserRepo.html":{}}}],["fine",{"_index":23442,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["finish",{"_index":19627,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(@param",{"_index":19665,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(urlparams",{"_index":19640,"title":{},"body":{"controllers/TaskController.html":{}}}],["finishcoursecopying",{"_index":6713,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishcoursecopying(coursecopy",{"_index":6724,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finished",{"_index":8005,"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":19768,"title":{},"body":{"classes/TaskFactory.html":{}}}],["finishedat",{"_index":18434,"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":6741,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishedcourseids",{"_index":19852,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["finishedids",{"_index":12497,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids",{"_index":12495,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids.map((id",{"_index":12498,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserid",{"_index":12509,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids",{"_index":12505,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids.some((finisheduserid",{"_index":12508,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishforuser(user",{"_index":12558,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishing",{"_index":18432,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["first",{"_index":359,"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":16402,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["firstchar",{"_index":6658,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["firstclass",{"_index":12844,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["firstname",{"_index":651,"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":13033,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["firstnamesearchvalues",{"_index":11814,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["firstvaluefrom",{"_index":2186,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["firstvaluefrom(observable",{"_index":2200,"title":{},"body":{"injectables/BBBService.html":{}}}],["firstvaluefrom(respobservable",{"_index":11588,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["fishery",{"_index":525,"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":5487,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["fitness",{"_index":22894,"title":{},"body":{"license.html":{}}}],["fix",{"_index":1688,"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":23114,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["fixed",{"_index":6955,"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":22986,"title":{},"body":{"todo.html":{}}}],["fixing",{"_index":23831,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["fixme",{"_index":4443,"title":{},"body":{"injectables/ClassService.html":{},"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":23537,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fixups",{"_index":23604,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["flag",{"_index":10775,"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":20863,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flag.params.ts:7",{"_index":20865,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flagged",{"_index":10743,"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":7880,"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":18389,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["flexible",{"_index":23189,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["flow",{"_index":13395,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["flow.id",{"_index":13409,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flow.service",{"_index":12652,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["flow.service.ts",{"_index":16067,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:11",{"_index":16071,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:18",{"_index":16073,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:39",{"_index":16075,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.uc",{"_index":16010,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["flow.uc.ts",{"_index":15927,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:106",{"_index":16097,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:15",{"_index":15933,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:19",{"_index":16089,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:21",{"_index":15937,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:26",{"_index":15939,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:28",{"_index":16093,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:33",{"_index":16095,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:48",{"_index":16091,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:50",{"_index":15942,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:58",{"_index":15935,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:6",{"_index":16123,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:80",{"_index":15945,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:9",{"_index":16125,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:94",{"_index":16099,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flowalias",{"_index":13392,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["flows",{"_index":13405,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flows.find((tempflow",{"_index":13407,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flush",{"_index":681,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["fn",{"_index":3487,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fn(i",{"_index":3523,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fname",{"_index":976,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["folder",{"_index":7891,"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":11349,"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":15381,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foldername",{"_index":15392,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["folderpath",{"_index":10375,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["folders",{"_index":15395,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["folgendem",{"_index":4898,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["follow",{"_index":5515,"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":8052,"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":23627,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["foo",{"_index":23133,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["foractivecourses",{"_index":6987,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forallgrouptypes",{"_index":7012,"title":{},"body":{"classes/CourseScope.html":{}}}],["forallgrouptypes(userid",{"_index":6982,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forbid",{"_index":22559,"title":{},"body":{"license.html":{}}}],["forbidden",{"_index":10792,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/ToolLaunchController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["forbidden'})@apibadrequestresponse({description",{"_index":20581,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["forbidden_exception",{"_index":10785,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["forbidden_operation",{"_index":10791,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["forbiddenexception",{"_index":2471,"title":{},"body":{"classes/BaseUc.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/ErrorMapper.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/H5PEditorController.html":{},"injectables/LessonCopyUC.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/RoomsUc.html":{},"controllers/ShareTokenController.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":15962,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["forbiddenexception('accessing",{"_index":21411,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["forbiddenexception('could",{"_index":14198,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["forbiddenexception('some",{"_index":23375,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["forbiddenexception('user",{"_index":2481,"title":{},"body":{"classes/BaseUc.html":{}}}],["forbiddenexception('you",{"_index":17842,"title":{},"body":{"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["forbiddenexception(`cannot",{"_index":2765,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["forbiddenexception(errorobj.message",{"_index":8442,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["forbiddenexception(errorstatus.guests_cannot_join_conference",{"_index":22001,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["forbiddenexception(errorstatus.insufficient_permission",{"_index":21916,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["forbiddenexception})@apiresponse({status",{"_index":2879,"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":4009,"title":{},"body":{"controllers/CardController.html":{}}}],["forbiddenexception})@get(':submissioncontainerid",{"_index":3700,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["forbiddenloggableexception",{"_index":1792,"title":{"classes/ForbiddenLoggableException.html":{}},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenloggableexception(user.id",{"_index":1823,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenloggableexception(userid",{"_index":1795,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenoperationerror",{"_index":288,"title":{"classes/ForbiddenOperationError.html":{}},"body":{"controllers/AccountController.html":{},"classes/ForbiddenOperationError.html":{},"controllers/LoginController.html":{}}}],["forbidnonwhitelisted",{"_index":10962,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["forbidunknownvalues",{"_index":10964,"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":3820,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force.error.ts:5",{"_index":3822,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force_subject_identifier",{"_index":132,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["forcepasswordchange",{"_index":12597,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["forcepathstyle",{"_index":8062,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["forceserverobjectid",{"_index":7966,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["forceupdate",{"_index":6320,"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":7013,"title":{},"body":{"classes/CourseScope.html":{}}}],["forcourseid(courseid",{"_index":6991,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["foreach((key",{"_index":9471,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["foreign",{"_index":13849,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["foreignfield",{"_index":21627,"title":{},"body":{"injectables/UserRepo.html":{}}}],["form",{"_index":13560,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"license.html":{}}}],["format",{"_index":348,"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":20472,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["format.'})@apiresponse({status",{"_index":286,"title":{},"body":{"controllers/AccountController.html":{},"controllers/LoginController.html":{}}}],["format.types",{"_index":12457,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/RichText.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["formatted",{"_index":571,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["formattedjwt",{"_index":1461,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["formatting",{"_index":23112,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["forms",{"_index":22605,"title":{},"body":{"license.html":{}}}],["forroot",{"_index":1106,"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":1107,"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":18655,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forteacher",{"_index":7014,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacher(userid",{"_index":6986,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher",{"_index":7015,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher(userid",{"_index":6985,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forwardref",{"_index":1767,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/MetaTagExtractorApiModule.html":{},"modules/PseudonymModule.html":{},"injectables/SubmissionItemUc.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["found",{"_index":292,"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":8352,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.error.ts:4",{"_index":8354,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.exception",{"_index":8664,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["found.loggable",{"_index":15443,"title":{},"body":{"classes/NotFoundLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["found.loggable.ts",{"_index":18339,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:4",{"_index":18340,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:7",{"_index":18341,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["foundaccount.systemid",{"_index":944,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{}}}],["foundaccounts",{"_index":438,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/KeycloakMigrationService.html":{}}}],["foundation",{"_index":22363,"title":{},"body":{"license.html":{}}}],["foundentry",{"_index":5427,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.name",{"_index":5481,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.value",{"_index":5478,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry?.value",{"_index":5474,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundpseudonym",{"_index":17119,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundpseudonym.userid",{"_index":17121,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundschool",{"_index":18517,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundschool.id",{"_index":18519,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundtools",{"_index":15433,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools.length",{"_index":15435,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools[0",{"_index":15438,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundusers",{"_index":931,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["foundusers.length",{"_index":945,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers[0].id.tostring",{"_index":951,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["frame",{"_index":11382,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["free",{"_index":1457,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["freedom",{"_index":22381,"title":{},"body":{"license.html":{}}}],["freejoin",{"_index":2126,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["freeport",{"_index":22223,"title":{},"body":{"dependencies.html":{}}}],["freuen",{"_index":4892,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["friendly",{"_index":7376,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["friendlyurl",{"_index":7200,"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":21864,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["from.options",{"_index":22123,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.permission",{"_index":22121,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.url",{"_index":22122,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["fromcookie",{"_index":13168,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromcookie(name",{"_index":13169,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromgroup",{"_index":10970,"title":{},"body":{"classes/GridElement.html":{}}}],["fromgroup(title",{"_index":7547,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedgroup",{"_index":10971,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedgroup(id",{"_index":7545,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedreference",{"_index":10972,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedreference(id",{"_index":7544,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["fromsinglereference",{"_index":10973,"title":{},"body":{"classes/GridElement.html":{}}}],["fromsinglereference(reference",{"_index":7546,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["front",{"_index":14548,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["frontchannel",{"_index":15712,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["frontchannel_logout_uri",{"_index":7203,"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":7351,"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":10411,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.accountsfile",{"_index":13732,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.usersfile",{"_index":13734,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.rm",{"_index":10424,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fsp",{"_index":10409,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fulfil",{"_index":23564,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fulfill",{"_index":23200,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fulfilling",{"_index":22545,"title":{},"body":{"license.html":{}}}],["fulfills",{"_index":23387,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["fulfils",{"_index":23843,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["full",{"_index":10383,"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":17445,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fullname",{"_index":2058,"title":{},"body":{"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["fullpath",{"_index":17418,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fully",{"_index":21420,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["function",{"_index":474,"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":6501,"title":{},"body":{"modules/CoreModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["functionalities",{"_index":23611,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["functionality",{"_index":20117,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["functioning",{"_index":22674,"title":{},"body":{"license.html":{}}}],["functions",{"_index":21358,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["funktionen",{"_index":4863,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["further",{"_index":22630,"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":23501,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fut.somefunction",{"_index":23521,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["future",{"_index":1755,"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":{},"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":10800,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["fwu_content_s3_connection",{"_index":10853,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["fwulearningcontent",{"_index":10864,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["fwulearningcontentscontroller",{"_index":10795,"title":{"controllers/FwuLearningContentsController.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["fwulearningcontentsmodule",{"_index":10830,"title":{"modules/FwuLearningContentsModule.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules.html":{}}}],["fwulearningcontentstestmodule",{"_index":10841,"title":{"modules/FwuLearningContentsTestModule.html":{}},"body":{"modules/FwuLearningContentsTestModule.html":{},"modules.html":{}}}],["fwulearningcontentsuc",{"_index":10805,"title":{"injectables/FwuLearningContentsUc.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["g",{"_index":6395,"title":{},"body":{"injectables/CopyFilesService.html":{},"additional-documentation/nestjs-application.html":{}}}],["gates",{"_index":23115,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["general",{"_index":20118,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["generall",{"_index":2350,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["generally",{"_index":22507,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["generate",{"_index":500,"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":16771,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generatearray",{"_index":3474,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatearray(length",{"_index":3486,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatebrokersystems",{"_index":19544,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatebrokersystems(systems",{"_index":19549,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatechecksum",{"_index":2132,"title":{},"body":{"injectables/BBBService.html":{}}}],["generatechecksum(callname",{"_index":2154,"title":{},"body":{"injectables/BBBService.html":{}}}],["generateconfig",{"_index":11497,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generateconfig(oauthclientid",{"_index":11505,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generated",{"_index":6318,"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":2408,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedid.tohexstring",{"_index":2411,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedsystem",{"_index":19577,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.id",{"_index":19579,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig",{"_index":19580,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.idphint",{"_index":19581,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.redirecturi",{"_index":19583,"title":{},"body":{"injectables/SystemService.html":{}}}],["generateemptydashboard",{"_index":7811,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generateemptydashboard(userid",{"_index":7824,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generategroupfoldername",{"_index":15349,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupfoldername(teamid",{"_index":15360,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid",{"_index":15350,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid(dto",{"_index":15364,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generatejwt",{"_index":1520,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatejwt(user",{"_index":1530,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatelaunchrequest",{"_index":20660,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatelaunchrequest(toollaunchdata",{"_index":20665,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatepreview",{"_index":16703,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(@rabbitpayload",{"_index":16716,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generatepreview(params",{"_index":16745,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(payload",{"_index":16707,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generates",{"_index":15362,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generateseeddata",{"_index":11684,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generateseeddata((s",{"_index":11743,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generatesharetoken",{"_index":20360,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generating",{"_index":23123,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["generator",{"_index":506,"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":16751,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.builder.ts",{"_index":16698,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.builder.ts:6",{"_index":16700,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.consumer",{"_index":16724,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["generator.consumer.ts",{"_index":16702,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:10",{"_index":16706,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:20",{"_index":16709,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.service",{"_index":16713,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/ShareTokenService.html":{}}}],["generator.service.ts",{"_index":16736,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/TokenGenerator.html":{}}}],["generator.service.ts:12",{"_index":16741,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:18",{"_index":16746,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:37",{"_index":16743,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:43",{"_index":16748,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:7",{"_index":20361,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generator/interface/preview",{"_index":16686,"title":{},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["generator/interface/preview.ts",{"_index":16689,"title":{},"body":{"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["generator/loggable/preview",{"_index":16659,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["generator/preview",{"_index":16697,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["generator/preview.producer.ts",{"_index":16769,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:11",{"_index":16770,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:23",{"_index":16772,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generatorfn",{"_index":507,"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":23827,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["generic",{"_index":23165,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["genericdata",{"_index":987,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["genericsortfunction",{"_index":18970,"title":{},"body":{"classes/SortHelper.html":{}}}],["genericsortfunction(a",{"_index":18971,"title":{},"body":{"classes/SortHelper.html":{}}}],["geogebra",{"_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":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["geschlecht",{"_index":18044,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["get('*/:fwulearningcontent",{"_index":10803,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get('/:contentid/edit",{"_index":11391,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contentid/play",{"_index":11388,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contexttype/:contextid",{"_index":20748,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:contexttype/:contextid')@apioperation({summary",{"_index":20740,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:externaltoolid/logo",{"_index":20565,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo')@apioperation({summary",{"_index":20534,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:groupid",{"_index":11065,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/:groupid')@apioperation({summary",{"_index":11047,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/class",{"_index":11058,"title":{},"body":{"controllers/GroupController.html":{}}}],["get(':boardid",{"_index":2913,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':boardid/context",{"_index":2917,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':contextexternaltoolid",{"_index":20506,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apinotfoundresponse()@apiokresponse({description",{"_index":20479,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid",{"_index":20501,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid')@apiforbiddenresponse()@apiunauthorizedresponse()@apiokresponse({description",{"_index":20484,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid/available",{"_index":20407,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get(':courseid/export",{"_index":6677,"title":{},"body":{"controllers/CourseController.html":{}}}],["get(':externaltoolid",{"_index":20555,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':externaltoolid')@apioperation({summary",{"_index":20531,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':id",{"_index":351,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':id')@apioperation({summary",{"_index":296,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':newsid",{"_index":15078,"title":{},"body":{"controllers/NewsController.html":{}}}],["get(':pseudonym",{"_index":17020,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':pseudonym')@apifoundresponse({description",{"_index":17010,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':roomid/board",{"_index":17771,"title":{},"body":{"controllers/RoomsController.html":{}}}],["get(':schoolexternaltoolid",{"_index":20825,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20810,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolid/migration",{"_index":13972,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':schoolid/migration')@authenticate('jwt')@apifoundresponse({description",{"_index":13943,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':scope/:scopeid",{"_index":21961,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid')@apioperation({summary",{"_index":21939,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid/end",{"_index":21851,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/end')@apioperation({summary",{"_index":21807,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info",{"_index":21848,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info')@apioperation({summary",{"_index":21813,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join",{"_index":21845,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join')@apioperation({summary",{"_index":21817,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':submissioncontainerid",{"_index":3717,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["get(':teamid/news",{"_index":20157,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["get(':token",{"_index":18739,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["get('auth/:oauthclientid",{"_index":16302,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/:oauthclientid')@authenticate('jwt",{"_index":16227,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/sessions/consent",{"_index":16055,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('baseurl",{"_index":15987,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients",{"_index":16023,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients/:id",{"_index":16020,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('consentrequest/:challenge",{"_index":16048,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('context",{"_index":20416,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["get('context/:contextexternaltoolid/launch",{"_index":20588,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('context/:contextexternaltoolid/launch')@apioperation({summary",{"_index":20577,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('finished",{"_index":19636,"title":{},"body":{"controllers/TaskController.html":{}}}],["get('hydra/:oauthclientid",{"_index":16298,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('hydra/:oauthclientid')@authenticate('jwt",{"_index":16217,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('login/:systemid",{"_index":16213,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('loginrequest/:challenge",{"_index":15983,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('me",{"_index":20927,"title":{},"body":{"controllers/UserController.html":{}}}],["get('oauth",{"_index":16232,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration",{"_index":16308,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration')@authenticate('jwt')@apiokresponse({description",{"_index":16220,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('page",{"_index":21474,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["get('public",{"_index":19386,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public')@apioperation({summary",{"_index":19367,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid",{"_index":19392,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid')@apioperation({summary",{"_index":19373,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('school",{"_index":20422,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('school/:schoolid/available",{"_index":20412,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('schools/:schoolid",{"_index":21194,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('schools/:schoolid')@apiforbiddenresponse()@apiokresponse({description",{"_index":21142,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('status/task/:taskid",{"_index":19088,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["get('unassigned",{"_index":12766,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["get()@apiforbiddenresponse()@apioperation({summary",{"_index":21148,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get()@apifoundresponse({description",{"_index":20527,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["get()@apioperation({summary",{"_index":312,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(`${this.options.uri}${path",{"_index":1078,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10347,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["get(id",{"_index":9831,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["get(path",{"_index":1074,"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":10801,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get(subpath",{"_index":1468,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["get(url",{"_index":11507,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["get/post",{"_index":11402,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getadditionalerrorinfo",{"_index":13099,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadditionalerrorinfo(email",{"_index":13105,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadminidandtoken",{"_index":1088,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getadminuser",{"_index":13256,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getallaccounts",{"_index":12696,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getalternativetext",{"_index":9920,"title":{},"body":{"classes/FileElement.html":{}}}],["getancestorids",{"_index":3280,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getancestorids(boarddo",{"_index":3302,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getandpseudonyms",{"_index":9722,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getandpseudonyms(users",{"_index":9738,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getapiresponsetimemetriclabels",{"_index":17447,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getapiresponsetimemetriclabels(req",{"_index":17463,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getasadmin(path",{"_index":1072,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getauthenticationurl",{"_index":15505,"title":{},"body":{"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{}}}],["getauthenticationurl(oauthconfig",{"_index":15523,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getauthenticationurl(session",{"_index":16210,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getavailabletoolsforcontext",{"_index":8644,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(currentuser",{"_index":20406,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(userid",{"_index":8655,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getavailabletoolsforschool",{"_index":8645,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(currentuser",{"_index":20411,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(userid",{"_index":8657,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getbaseurl",{"_index":2178,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig",{"_index":2133,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig(presentationurl",{"_index":2163,"title":{},"body":{"injectables/BBBService.html":{}}}],["getboard",{"_index":17824,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboard(roomid",{"_index":17828,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboardauthorizable",{"_index":3088,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardauthorizable(boarddo",{"_index":3094,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardcontext",{"_index":2869,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardcontext(urlparams",{"_index":2887,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardobjecttitlesbyid",{"_index":4818,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardobjecttitlesbyid(boardids",{"_index":4834,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardskeleton",{"_index":2870,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardskeleton(urlparams",{"_index":2891,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardvalue",{"_index":1849,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getboardvalue(elementid",{"_index":1856,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getbydraftforcreatorquery",{"_index":19969,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftforcreatorquery(creatorid",{"_index":19987,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery",{"_index":19970,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery(isdraft",{"_index":19989,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbyid(externaltoolpseudonymentity.name",{"_index":9055,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["getbyid(pseudonymentity.name",{"_index":17139,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["getbytargetid(id",{"_index":2643,"title":{},"body":{"entities/Board.html":{}}}],["getcaption",{"_index":9918,"title":{},"body":{"classes/FileElement.html":{}}}],["getcards",{"_index":3990,"title":{},"body":{"controllers/CardController.html":{}}}],["getcards(currentuser",{"_index":4004,"title":{},"body":{"controllers/CardController.html":{}}}],["getchildren",{"_index":2755,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["getchildren(boardnode",{"_index":3194,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["getclientid",{"_index":13257,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getclientsecret",{"_index":13258,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getcollectdefaultmetrics",{"_index":16842,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcollectionnames",{"_index":7940,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getcollectmetricsroutemetrics",{"_index":16844,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcompleted",{"_index":19125,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["getconfigurationtemplateforcontext",{"_index":20404,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforcontext(currentuser",{"_index":20415,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool",{"_index":20405,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool(currentuser",{"_index":20421,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconsentrequest",{"_index":15929,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(@param",{"_index":16049,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getconsentrequest(challenge",{"_index":15936,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(params",{"_index":15979,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getcontent",{"_index":7526,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getcontentfile",{"_index":11397,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getcontext",{"_index":4757,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["getcontextexternaltool",{"_index":6120,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(currentuser",{"_index":20478,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(userid",{"_index":6134,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcontextexternaltoolid",{"_index":8720,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["getcontextexternaltoolsforcontext",{"_index":6121,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(currentuser",{"_index":20483,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(userid",{"_index":6136,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcopiesforchildrenof",{"_index":17200,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopiesforchildrenof(original",{"_index":17208,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopyname",{"_index":19714,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopyname(originaltaskname",{"_index":19725,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopystatusesforchildrenof",{"_index":17201,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopystatusesforchildrenof(original",{"_index":17210,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcoursegroupitems",{"_index":6651,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getcoursegroupstudentids",{"_index":12307,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getcoursesfromuserspseudonym",{"_index":9723,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getcoursesfromuserspseudonym(pseudonym",{"_index":9740,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getcoursevalue",{"_index":1850,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getcoursevalue(courseid",{"_index":1859,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["getcreatedat",{"_index":2757,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["getcurrentschoolyear",{"_index":18531,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["getdashboardbyid",{"_index":7798,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdashboardbyid(id",{"_index":7802,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdata",{"_index":13100,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(currentuser",{"_index":14833,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["getdata(input",{"_index":13107,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(systemid",{"_index":16943,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getdatabasecollection",{"_index":7941,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdatabasecollection(collectionname",{"_index":7954,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdb",{"_index":7958,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdefaultmaxduedate",{"_index":20026,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getdescription",{"_index":14341,"title":{},"body":{"classes/LinkElement.html":{}}}],["getdestinationcourse",{"_index":19715,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationcourse(courseid",{"_index":19729,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson",{"_index":19716,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson(lessonid",{"_index":19731,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdisplayname",{"_index":21672,"title":{},"body":{"injectables/UserService.html":{}}}],["getdisplayname(user",{"_index":21684,"title":{},"body":{"injectables/UserService.html":{}}}],["getduedate",{"_index":19053,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["geteditor",{"_index":11372,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getelement",{"_index":7471,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getelement(position",{"_index":7496,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getelements",{"_index":2646,"title":{},"body":{"entities/Board.html":{}}}],["getelementwithwritepermission",{"_index":8301,"title":{},"body":{"injectables/ElementUc.html":{}}}],["getelementwithwritepermission(userid",{"_index":8308,"title":{},"body":{"injectables/ElementUc.html":{}}}],["getentityname",{"_index":718,"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":9669,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getentitypermissions(userid",{"_index":9677,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["geteol",{"_index":10407,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["getestet",{"_index":4869,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getexternalid",{"_index":580,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalid(id",{"_index":587,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalsource",{"_index":11008,"title":{},"body":{"classes/Group.html":{}}}],["getexternalsubclientmapperconfiguration",{"_index":13340,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getexternaltool",{"_index":9475,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["getexternaltool(currentuser",{"_index":20530,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltool(userid",{"_index":9486,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["getexternaltoolbinarylogo",{"_index":8844,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoolbinarylogo(toolid",{"_index":8856,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoollogo",{"_index":20514,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(@param",{"_index":20566,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(params",{"_index":20533,"title":{},"body":{"controllers/ToolController.html":{}}}],["getfile",{"_index":6341,"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":10321,"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":10579,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(@rabbitpayload",{"_index":10609,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(payload",{"_index":10592,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilteredgroupusers",{"_index":16422,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfilteredgroupusers(externalgroup",{"_index":16428,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfinisheduserids",{"_index":12492,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getfirstopenindex",{"_index":7472,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getflowexecutionsrequest",{"_index":13411,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getflowsrequest",{"_index":13401,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getformat",{"_index":16679,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getformat(previewparams.outputformat",{"_index":16681,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getfwulearningcontentparams",{"_index":10802,"title":{"classes/GetFwuLearningContentParams.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{}}}],["getgradedsubmissions",{"_index":12521,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getgradelevel",{"_index":4231,"title":{},"body":{"classes/Class.html":{}}}],["getgrid",{"_index":7473,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getgroup",{"_index":9724,"title":{},"body":{"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{}}}],["getgroup(courseid",{"_index":9742,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getgroup(currentuser",{"_index":11045,"title":{},"body":{"controllers/GroupController.html":{}}}],["getgroupdata(groupname",{"_index":1054,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmembers(groupname",{"_index":1052,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmoderators(groupname",{"_index":1050,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getheight",{"_index":3974,"title":{},"body":{"classes/Card.html":{}}}],["gethello",{"_index":18559,"title":{},"body":{"classes/ServerConsole.html":{},"controllers/ServerController.html":{}}}],["gethydraoauthtoken",{"_index":16202,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["gethydraoauthtoken(query",{"_index":16215,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getid",{"_index":7474,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getidpmapperconfiguration",{"_index":13341,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getidpmapperconfiguration(idpalias",{"_index":13366,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getiframesubject",{"_index":17068,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getiframesubject(pseudonym",{"_index":17087,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getimageurl",{"_index":14345,"title":{},"body":{"classes/LinkElement.html":{}}}],["getinout",{"_index":18560,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinout(whatever",{"_index":18563,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinputformat",{"_index":17545,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getinstance",{"_index":8754,"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":581,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinternalid(id",{"_index":596,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinvitationlink",{"_index":4227,"title":{},"body":{"classes/Class.html":{}}}],["getisenabled",{"_index":16836,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getitems",{"_index":21033,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["getjwtforuser",{"_index":16317,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtforuser(userid",{"_index":16321,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtfromresponse",{"_index":20274,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getjwtfromresponse(response",{"_index":1509,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getlaunchdata",{"_index":20661,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getlaunchdata(userid",{"_index":20667,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getldapdn",{"_index":4233,"title":{},"body":{"classes/Class.html":{}}}],["getlessoncomponents",{"_index":11920,"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":11921,"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":11922,"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":11395,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getlogindata",{"_index":14562,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getlogindata(userinfo",{"_index":14565,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getloginrequest",{"_index":15968,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(@param",{"_index":16037,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginrequest(challenge",{"_index":16092,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(params",{"_index":15982,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginurl",{"_index":21499,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getloginurl(system",{"_index":21507,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getlogmessage",{"_index":1281,"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/UnknownQueryTypeLoggableException.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":12499,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getmeetinginfo",{"_index":2134,"title":{},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["getmeetinginfo(config",{"_index":2165,"title":{},"body":{"injectables/BBBService.html":{}}}],["getmeetinginfo(currentuserid",{"_index":21990,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getmetadata",{"_index":6662,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"classes/UsersList.html":{}}}],["getmetadatastorage",{"_index":8364,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getmetatagdatabody",{"_index":10871,"title":{"classes/GetMetaTagDataBody.html":{}},"body":{"classes/GetMetaTagDataBody.html":{},"controllers/MetaTagExtractorController.html":{}}}],["getmigration",{"_index":13939,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolid",{"_index":14114,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolparams",{"_index":13941,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["getmigrationconsentpageredirect",{"_index":21500,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationconsentpageredirect(officialschoolnumber",{"_index":21509,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationpagedetails",{"_index":21472,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(@query",{"_index":21479,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(pagetypequery",{"_index":21473,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationredirecturi",{"_index":21501,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrations",{"_index":21129,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["getmigrations(user",{"_index":21146,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["getmigrations(userid",{"_index":21402,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["getname",{"_index":4219,"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":15265,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnewspermissions(userid",{"_index":15280,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnumberofdrafttasks",{"_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":{}}}],["getnumberofplannedtasks",{"_index":11918,"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":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":{}}}],["getoauth2client",{"_index":15897,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getoauth2client(currentuser",{"_index":15906,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["getoauth2client(id",{"_index":16170,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["getoauthconfig",{"_index":12683,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["getoauthtoken",{"_index":11424,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getoauthtoken(oauthclientid",{"_index":11431,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getobjectcommand",{"_index":17930,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["getobjectreference",{"_index":682,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getobjectreference(entityname",{"_index":700,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getorconstructdashboardmodelentity",{"_index":7715,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorconstructdashboardmodelentity(entity",{"_index":7729,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorcreatecourseboard",{"_index":3626,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorcreatecourseboard(courseid",{"_index":3633,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorganization",{"_index":5318,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getorganizationid",{"_index":11010,"title":{},"body":{"classes/Group.html":{}}}],["getpagecontent",{"_index":21396,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getpagecontent(pagetype",{"_index":21404,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getparametervalue",{"_index":2544,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparametervalue(customparameter",{"_index":2581,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparent",{"_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":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentdata",{"_index":12551,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentinfo",{"_index":10182,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpath",{"_index":20275,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getpath(routenameinput",{"_index":1501,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getpermittedcourses",{"_index":20027,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedcourses(user",{"_index":20042,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedentities",{"_index":9670,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedentities(userid",{"_index":9679,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedlessonids",{"_index":20084,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons",{"_index":20028,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons(user",{"_index":20045,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedschools",{"_index":9632,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedschools(userid",{"_index":9638,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedtargets",{"_index":9633,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getpermittedtargets(userid",{"_index":9640,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getplayer",{"_index":11373,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getport",{"_index":16840,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getpostloginredirecturl",{"_index":15506,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpostloginredirecturl(idtoken",{"_index":15525,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpresentationurl",{"_index":2182,"title":{},"body":{"injectables/BBBService.html":{}}}],["getpreviewfile",{"_index":16781,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile(params",{"_index":16791,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname",{"_index":16796,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname(filerecord",{"_index":16810,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewstatus",{"_index":10183,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpropertyvalue",{"_index":8360,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getpropertyvalue(e",{"_index":8371,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getprops",{"_index":1607,"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":17643,"title":{},"body":{"injectables/RoleService.html":{}}}],["getprovisioningstrategy",{"_index":16933,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getprovisioningstrategy(systemstrategy",{"_index":16945,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getpseudonym",{"_index":16987,"title":{},"body":{"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{}}}],["getpseudonym(params",{"_index":17008,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["getpublickey",{"_index":7076,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OauthAdapterService.html":{}}}],["getpublickey(jwksuri",{"_index":15669,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["getquery",{"_index":18545,"title":{},"body":{"classes/Scope.html":{}}}],["getredirecturi",{"_index":15507,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getredirecturi(migration",{"_index":15528,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getreferences",{"_index":7531,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getreferencesfromposition",{"_index":7475,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getreferencesfromposition(position",{"_index":7504,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getrepository",{"_index":17069,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrepository(tool",{"_index":17089,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrequiredpermissions",{"_index":15266,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequiredpermissions(unpublished",{"_index":15284,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequireduserrole",{"_index":3066,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getresolveduser",{"_index":21673,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolveduser(userid",{"_index":21686,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolvedvalues",{"_index":2986,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresolvedvalues(results",{"_index":3028,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresources",{"_index":5320,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getresponse",{"_index":1208,"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":17761,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroomboard(urlparams",{"_index":17770,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroute",{"_index":16838,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["gets",{"_index":481,"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":2180,"title":{},"body":{"injectables/BBBService.html":{}}}],["getschemapath",{"_index":3708,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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/SubmissionItemResponse.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(basictoolconfigparams",{"_index":8712,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(externaltoolelementcontentbody",{"_index":8261,"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":4049,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(fileelementcontentbody",{"_index":8257,"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":3732,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{}}}],["getschemapath(linkelementcontentbody",{"_index":8258,"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":4050,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(lti11toolconfigcreateparams",{"_index":8713,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(lti11toolconfigupdateparams",{"_index":9514,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(oauth2toolconfigcreateparams",{"_index":8714,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(oauth2toolconfigupdateparams",{"_index":9515,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(richtextelementcontentbody",{"_index":8259,"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":3731,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{}}}],["getschemapath(submissioncontainerelementcontentbody",{"_index":8260,"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":4051,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschool",{"_index":20231,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["getschoolbyexternalid",{"_index":14078,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyexternalid(externalid",{"_index":14085,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid",{"_index":14079,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid(id",{"_index":14087,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber",{"_index":14080,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber(schoolnumber",{"_index":14089,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolexternaltool",{"_index":18305,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(currentuser",{"_index":20809,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(userid",{"_index":18316,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["getschoolexternaltools",{"_index":20801,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltools(currentuser",{"_index":20812,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolid",{"_index":4221,"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":10156,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getseedfolder",{"_index":11699,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["getservice",{"_index":9847,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["getservice(path",{"_index":9838,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["getshorttitle",{"_index":6656,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["getsource",{"_index":4237,"title":{},"body":{"classes/Class.html":{}}}],["getsourceoptions",{"_index":4239,"title":{},"body":{"classes/Class.html":{}}}],["getstoretype",{"_index":3878,"title":{},"body":{"injectables/CacheService.html":{}}}],["getstudentids",{"_index":6628,"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":6639,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubmissionitems",{"_index":3685,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissionitems(currentuser",{"_index":3696,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["getsubmittedsubmissions",{"_index":12515,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmitterids",{"_index":12326,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getsubstitutionteacherids",{"_index":6632,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubstitutionteacherslist",{"_index":6645,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsuccessor",{"_index":4235,"title":{},"body":{"classes/Class.html":{}}}],["getsystem",{"_index":19364,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(@param",{"_index":19393,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(params",{"_index":19372,"title":{},"body":{"controllers/SystemController.html":{}}}],["gettargetfilters",{"_index":15267,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfilters(userid",{"_index":15287,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfolder(toseedfolder",{"_index":11701,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["gettasksitems",{"_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":{}}}],["getteacherids",{"_index":4225,"title":{},"body":{"classes/Class.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteacherslist",{"_index":6643,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteammemberids",{"_index":12310,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["gettempfile",{"_index":11399,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["gettemplateforcontextexternaltool",{"_index":8646,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforcontextexternaltool(userid",{"_index":8659,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool",{"_index":8647,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool(userid",{"_index":8661,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getter",{"_index":6595,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["gettext",{"_index":17541,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getting",{"_index":22292,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{}}],["gettitle",{"_index":3970,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/LinkElement.html":{}}}],["gettitlesbyids",{"_index":3281,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettitlesbyids(id",{"_index":3304,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettoolid",{"_index":16989,"title":{},"body":{"classes/Pseudonym.html":{}}}],["gettoollaunchrequest",{"_index":20574,"title":{},"body":{"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["gettoollaunchrequest(currentuser",{"_index":20575,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["gettoollaunchrequest(userid",{"_index":20693,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["gettoolreference",{"_index":20732,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreference(contextexternaltoolid",{"_index":20775,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["gettoolreference(currentuser",{"_index":20734,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreference(userid",{"_index":20785,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext",{"_index":20733,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext(currentuser",{"_index":20739,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreferencesforcontext(userid",{"_index":20787,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettspuid",{"_index":4464,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["gettype",{"_index":11012,"title":{},"body":{"classes/Group.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getunitofwork",{"_index":9054,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["getupdatedat",{"_index":2759,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["geturl",{"_index":1144,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/LinkElement.html":{},"controllers/OauthProviderController.html":{}}}],["geturl(callname",{"_index":2167,"title":{},"body":{"injectables/BBBService.html":{}}}],["geturl(path",{"_index":1155,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["getuser",{"_index":9634,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/TeamUserEntity.html":{},"injectables/UserService.html":{}}}],["getuser(id",{"_index":21688,"title":{},"body":{"injectables/UserService.html":{}}}],["getuser(userid",{"_index":9642,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserattribute",{"_index":12697,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserattribute(userid",{"_index":12720,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getusergroups",{"_index":9725,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusergroups(pseudonym",{"_index":9745,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getuserid",{"_index":7476,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/Pseudonym.html":{},"classes/SubmissionItem.html":{}}}],["getuserids",{"_index":4223,"title":{},"body":{"classes/Class.html":{}}}],["getuserlist(querystring",{"_index":1030,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getuserparams",{"_index":20906,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["getuserparams(params",{"_index":658,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["getuserrole",{"_index":9726,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getuserrole(user",{"_index":9747,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusers",{"_index":3064,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"classes/Group.html":{}}}],["getuserschoolpermissions",{"_index":9635,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserschoolpermissions(userid",{"_index":9644,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getusersdashboard",{"_index":7799,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersdashboard(userid",{"_index":7804,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersmetadata",{"_index":9727,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusersmetadata(pseudonym",{"_index":9749,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusertargetpermissions",{"_index":9636,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["getusertargetpermissions(userid",{"_index":9646,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserwithpermissions",{"_index":1803,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getuserwithpermissions(userid",{"_index":1812,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getvalue",{"_index":1837,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["getvalue(schoolexternaltool",{"_index":1838,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["getversion",{"_index":5770,"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":21988,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getvideoconferenceoptions(scope",{"_index":21992,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getwellknownurl",{"_index":13259,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getyear",{"_index":4229,"title":{},"body":{"classes/Class.html":{}}}],["ghcr.io/hpi",{"_index":23052,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ghcr.io/soluto/oidc",{"_index":23635,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["gi",{"_index":15025,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["gid",{"_index":11153,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["git",{"_index":22299,"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":22231,"title":{},"body":{"dependencies.html":{}}}],["git://github.com/leeroybrun/mongoose",{"_index":22247,"title":{},"body":{"dependencies.html":{}}}],["github",{"_index":22295,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["give",{"_index":22576,"title":{},"body":{"license.html":{}}}],["given",{"_index":274,"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":{},"injectables/MetaTagExtractorService.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["givenname",{"_index":12408,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["gives",{"_index":9706,"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":22582,"title":{},"body":{"license.html":{}}}],["global",{"_index":6507,"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":10878,"title":{"interfaces/GlobalConstants.html":{}},"body":{"interfaces/GlobalConstants.html":{}}}],["globalerrorfilter",{"_index":8451,"title":{"classes/GlobalErrorFilter.html":{}},"body":{"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["globally",{"_index":13058,"title":{},"body":{"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["globalparameter",{"_index":7370,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["globals",{"_index":10880,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["globalsetup",{"_index":23287,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalteardown",{"_index":23288,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalvalidationpipe",{"_index":10947,"title":{"classes/GlobalValidationPipe.html":{}},"body":{"classes/GlobalValidationPipe.html":{},"modules/ValidationModule.html":{}}}],["gm",{"_index":16750,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"dependencies.html":{}}}],["gnu",{"_index":22356,"title":{},"body":{"license.html":{}}}],["go",{"_index":21860,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["goal",{"_index":23009,"title":{},"body":{"todo.html":{}}}],["goals",{"_index":22427,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["golevelup",{"_index":23498,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["golevelup/nestjs",{"_index":1160,"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":20300,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["gonna",{"_index":23185,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["good",{"_index":13850,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["governed",{"_index":22702,"title":{},"body":{"license.html":{}}}],["gpl",{"_index":22428,"title":{},"body":{"license.html":{}}}],["grace",{"_index":18430,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["graceperiodduration",{"_index":21377,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["grade",{"_index":12118,"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":12288,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["graded",{"_index":3760,"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":12522,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradelevel",{"_index":4213,"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":1328,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/TokenRequestMapper.html":{},"license.html":{}}}],["grant_access_token_audience",{"_index":113,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_scope",{"_index":114,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_type",{"_index":1332,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/TokenRequestMapper.html":{}}}],["grant_types",{"_index":15706,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["granted",{"_index":22515,"title":{},"body":{"license.html":{}}}],["grants",{"_index":22766,"title":{},"body":{"license.html":{}}}],["granttype",{"_index":11573,"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":14882,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"dependencies.html":{},"modules.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["gratis",{"_index":22629,"title":{},"body":{"license.html":{}}}],["greatest",{"_index":22929,"title":{},"body":{"license.html":{}}}],["grep",{"_index":23683,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["grid",{"_index":6896,"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":7812,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["gridelement",{"_index":7536,"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":7755,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.fromsinglereference(referenceforindex",{"_index":7613,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.fromsinglereference(room",{"_index":7604,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.getcontent().title",{"_index":7779,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.getid",{"_index":7772,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.hasid",{"_index":7770,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.isgroup",{"_index":7777,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.setgroupname(params",{"_index":7854,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["gridelementcontent",{"_index":7527,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelements",{"_index":7643,"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":7502,"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":7477,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["gridindexfromposition(pos",{"_index":7508,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridposition",{"_index":7497,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridpositionwithgroupindex",{"_index":7505,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["group",{"_index":974,"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":{},"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":11170,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group(savedprops",{"_index":11181,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group.adduser(user",{"_index":16493,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.dto",{"_index":15822,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["group.dto.ts",{"_index":8501,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:10",{"_index":17486,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:11",{"_index":8505,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:12",{"_index":17487,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:13",{"_index":8509,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:14",{"_index":17483,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:15",{"_index":8508,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:16",{"_index":17482,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:17",{"_index":8503,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:5",{"_index":8504,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:6",{"_index":17484,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:7",{"_index":8506,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:8",{"_index":17485,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:9",{"_index":8511,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.externalsource",{"_index":11199,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.getprops",{"_index":11097,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["group.gruppe.bezeichnung",{"_index":18128,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.id",{"_index":18131,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.bis",{"_index":18130,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.von",{"_index":18129,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppenzugehoerigkeit.rollen",{"_index":18120,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.id",{"_index":11196,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.isempty",{"_index":16518,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.module",{"_index":11034,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["group.name",{"_index":1058,"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":11201,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.params.ts",{"_index":16605,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.params.ts:14",{"_index":16607,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.removeuser(user",{"_index":16517,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.rule",{"_index":14268,"title":{},"body":{"injectables/LessonRule.html":{}}}],["group.rule.ts",{"_index":6854,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:11",{"_index":6857,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:17",{"_index":6856,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:8",{"_index":6855,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.type",{"_index":11197,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.users",{"_index":11198,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group_id",{"_index":9765,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["groupapimodule",{"_index":11025,"title":{"modules/GroupApiModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["groupcontroller",{"_index":11032,"title":{"controllers/GroupController.html":{}},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{}}}],["groupdata",{"_index":7558,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupdomainmapper",{"_index":11069,"title":{"classes/GroupDomainMapper.html":{}},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapdomainobjecttoentityproperties(domainobject",{"_index":11173,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(entity",{"_index":11169,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(savedentity",{"_index":11180,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapgroupusertogroupuserentity(groupuser",{"_index":11105,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupelements",{"_index":7653,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["groupentity",{"_index":6582,"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":11174,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupentityprops",{"_index":11079,"title":{"interfaces/GroupEntityProps.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes",{"_index":11091,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes.class",{"_index":11094,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypestogrouptypesmapping",{"_index":11093,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping[entity.type",{"_index":11115,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupfolder",{"_index":15355,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupfolders",{"_index":11346,"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":11350,"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":11348,"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":7535,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"classes/GroupIdParams.html":{},"interfaces/IGridElement.html":{},"injectables/NextcloudStrategy.html":{}}}],["groupidparams",{"_index":11046,"title":{"classes/GroupIdParams.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupIdParams.html":{}}}],["groupids",{"_index":6561,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["groupindex",{"_index":7560,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["groupinfo",{"_index":1039,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupinfo.group._id",{"_index":1043,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["grouping",{"_index":3613,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["groupmetadata",{"_index":7555,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupmodule",{"_index":11029,"title":{"modules/GroupModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/ProvisioningModule.html":{},"modules.html":{}}}],["groupname",{"_index":1035,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupnameidtuple",{"_index":11151,"title":{"interfaces/GroupNameIdTuple.html":{}},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["groupprops",{"_index":11014,"title":{"interfaces/GroupProps.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{}}}],["grouprepo",{"_index":11149,"title":{"injectables/GroupRepo.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["groupresponse",{"_index":11053,"title":{"classes/GroupResponse.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper",{"_index":11054,"title":{"classes/GroupResponseMapper.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper.maptoclassinfostolistresponse",{"_index":11064,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponsemapper.maptogroupresponse(group",{"_index":11068,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponse})@apiresponse({status",{"_index":11049,"title":{},"body":{"controllers/GroupController.html":{}}}],["grouprolemapping",{"_index":18099,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprolemapping[relation.rollen[0",{"_index":18133,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable",{"_index":11240,"title":{"classes/GroupRoleUnknownLoggable.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable(relation",{"_index":18134,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprule",{"_index":1705,"title":{"injectables/GroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/GroupRule.html":{},"injectables/RuleManager.html":{}}}],["groups",{"_index":6541,"title":{},"body":{"entities/Course.html":{},"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"injectables/GroupService.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":11148,"title":{"injectables/GroupService.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupService.html":{},"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem",{"_index":16508,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem.filter((existinggroupfromsystem",{"_index":16512,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupswithoutuser",{"_index":16511,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupswithoutuser.map(async",{"_index":16516,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["grouptype",{"_index":18115,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping",{"_index":18102,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping[group.gruppe.typ",{"_index":18116,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptyperesponse",{"_index":11189,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["grouptyperesponse.class",{"_index":11215,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["grouptypes",{"_index":8507,"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":11095,"title":{},"body":{"classes/GroupDomainMapper.html":{},"classes/GroupResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypestogroupentitytypesmapping",{"_index":11096,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["grouptypestogroupentitytypesmapping[props.type",{"_index":11101,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuc",{"_index":11030,"title":{},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{}}}],["groupucmapper",{"_index":11281,"title":{"classes/GroupUcMapper.html":{}},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser",{"_index":11001,"title":{"classes/GroupUser.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["groupuser.role.name",{"_index":11302,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.roleid",{"_index":11124,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser.user.lastname",{"_index":11304,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.userid",{"_index":11020,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{}}}],["groupuserentity",{"_index":11087,"title":{"classes/GroupUserEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserentityprops",{"_index":11324,"title":{"interfaces/GroupUserEntityProps.html":{}},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserids",{"_index":15403,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.filter((userid",{"_index":15416,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.includes(userid",{"_index":15422,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserresponse",{"_index":11191,"title":{"classes/GroupUserResponse.html":{}},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{}}}],["groupusers",{"_index":11337,"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":11092,"title":{"classes/GroupValidPeriodEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["groupvalidperiodentityprops",{"_index":11352,"title":{"interfaces/GroupValidPeriodEntityProps.html":{}},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["gruppe",{"_index":18018,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["gruppen",{"_index":18026,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["gruppenzugehoerige",{"_index":18031,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["gruppenzugehoerigkeit",{"_index":18027,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["gruppenzugehoerigkeiten",{"_index":18124,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["gt",{"_index":3598,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/NewsScope.html":{}}}],["gte",{"_index":6990,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["guarantee",{"_index":577,"title":{},"body":{"injectables/AccountLookupService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guard",{"_index":23302,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["guardagainst",{"_index":11355,"title":{"classes/GuardAgainst.html":{}},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined",{"_index":14420,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(account.password",{"_index":14417,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(jwt",{"_index":14415,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(password",{"_index":14425,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(username",{"_index":14424,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guards",{"_index":11362,"title":{},"body":{"classes/GuardAgainst.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guest",{"_index":2059,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["guest:guest",{"_index":23038,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["guestpolicy",{"_index":1961,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["guests",{"_index":22025,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["guide",{"_index":23568,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["gzip",{"_index":18068,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["h5p",{"_index":11371,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["h5peditorcontroller",{"_index":11367,"title":{"controllers/H5PEditorController.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{}}}],["h5peditormodule",{"_index":11403,"title":{"modules/H5PEditorModule.html":{}},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["h5peditortestmodule",{"_index":11412,"title":{"modules/H5PEditorTestModule.html":{}},"body":{"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["halper",{"_index":20871,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["handed",{"_index":8250,"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":3025,"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":17801,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handlecolumnboardintegration(roomid",{"_index":17805,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handled",{"_index":3854,"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":115,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["handleexceptions",{"_index":14460,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handleparameterstoinclude",{"_index":2545,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handleparameterstoinclude(propertydata",{"_index":2585,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handler",{"_index":22998,"title":{},"body":{"todo.html":{}}}],["handlerejections",{"_index":14461,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handles",{"_index":23553,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handling",{"_index":6504,"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":15564,"title":{},"body":{"injectables/OAuthService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["happened",{"_index":23322,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["hard",{"_index":11852,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasaccesstoentity",{"_index":1639,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstoentity(user",{"_index":1644,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstosubmission",{"_index":19255,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasaccesstosubmission(user",{"_index":19261,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasallpermissions",{"_index":1640,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CourseGroupRule.html":{}}}],["hasallpermissions(user",{"_index":1648,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasallpermissionsbyrole",{"_index":1641,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasallpermissionsbyrole(role",{"_index":1650,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasbeenforciblyended",{"_index":2050,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasbodyproperty",{"_index":2603,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["haschangedparameternames",{"_index":9552,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameternames(oldparams",{"_index":9563,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex",{"_index":9553,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex(newparams",{"_index":9565,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope",{"_index":9554,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope(newparams",{"_index":9568,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes",{"_index":9555,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes(newparams",{"_index":9570,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters",{"_index":9556,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters(newparams",{"_index":9572,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschild",{"_index":2732,"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":2748,"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":8624,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["hascoursepermission",{"_index":17752,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{}}}],["hascoursereadpermission",{"_index":17734,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursereadpermission(user",{"_index":17738,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission",{"_index":17735,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission(user",{"_index":17740,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasduplicateattributes",{"_index":8928,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicateattributes(customparameter",{"_index":8939,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["haserror",{"_index":10172,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasfeature",{"_index":14081,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hasfeature(schoolid",{"_index":14092,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hash",{"_index":10859,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{}}}],["hash_function",{"_index":14585,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashiterations",{"_index":13686,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["hashiterations(310000",{"_index":13300,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["hashkey",{"_index":14587,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashkey).tostring(cryptojs.enc.base64",{"_index":14589,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hasid",{"_index":7525,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["hasjoinedvoice",{"_index":2123,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haslessonpermission",{"_index":14269,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["haslessonreadpermission",{"_index":17736,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["haslessonreadpermission(user",{"_index":17742,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasmatch",{"_index":12946,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmatch(user",{"_index":12954,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmigrated",{"_index":14943,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["hasname",{"_index":10168,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasname(name",{"_index":10167,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasnewrequiredparameter",{"_index":9557,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewrequiredparameter(oldparams",{"_index":9574,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewspermission",{"_index":23796,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasoneofpermissions",{"_index":1642,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasoneofpermissions(user",{"_index":1652,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasparent",{"_index":3580,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["hasparentpermission",{"_index":19947,"title":{},"body":{"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasparentpermission(user",{"_index":19949,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasparentreadpermission",{"_index":14276,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasparenttaskreadaccess",{"_index":19256,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskreadaccess(user",{"_index":19263,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess",{"_index":19257,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess(user",{"_index":19265,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparentwritepermission",{"_index":14278,"title":{},"body":{"injectables/LessonRule.html":{}}}],["haspath",{"_index":17420,"title":{},"body":{"classes/RequestInfo.html":{}}}],["haspath(reqroute",{"_index":17427,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["haspermission",{"_index":1675,"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":1816,"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":1783,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissionbyreferences(userid",{"_index":1789,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissions",{"_index":9692,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"injectables/PermissionService.html":{}}}],["hasreadaccess",{"_index":19258,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasreadaccess(user",{"_index":19268,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasrequiredpermission",{"_index":19954,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasscanstatuserror",{"_index":10171,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasscanstatuswontcheck",{"_index":10174,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasschoolmigrated",{"_index":18395,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrated(sourceexternalid",{"_index":18408,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser",{"_index":4536,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser(schoolid",{"_index":18412,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hastaskreadpermission",{"_index":17737,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hastaskreadpermission(user",{"_index":17744,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasuserallschoolpermissions",{"_index":16636,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserallschoolpermissions(user",{"_index":16638,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserjoined",{"_index":2051,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasusermigrated",{"_index":21391,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["hasuserpermission",{"_index":14273,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasvideo",{"_index":2124,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haswontcheckstatus",{"_index":10175,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["haswriteaccess",{"_index":19259,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["haswriteaccess(user",{"_index":19270,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["having",{"_index":3565,"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":1427,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"controllers/OauthSSOController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["headerconst",{"_index":1441,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headerconst.json",{"_index":1486,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headercookies",{"_index":11547,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["headers",{"_index":1079,"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/MetaTagExtractorService.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":22413,"title":{},"body":{"license.html":{}}}],["height",{"_index":3216,"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/CardUc.html":{},"injectables/ColumnBoardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SetHeightBodyParams.html":{}}}],["height(height",{"_index":3982,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["height.body.params",{"_index":4027,"title":{},"body":{"controllers/CardController.html":{}}}],["height.body.params.ts",{"_index":18671,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height.body.params.ts:10",{"_index":18673,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height=100",{"_index":5370,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hell",{"_index":6598,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["help",{"_index":5521,"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":2985,"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":19620,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["helper.module.ts",{"_index":6411,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service",{"_index":6413,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service.ts",{"_index":6415,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:10",{"_index":6426,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:28",{"_index":6424,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:45",{"_index":6420,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.ts",{"_index":18969,"title":{},"body":{"classes/SortHelper.html":{},"classes/TestHelper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:13",{"_index":20706,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:21",{"_index":20320,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper.ts:26",{"_index":20707,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:4",{"_index":18972,"title":{},"body":{"classes/SortHelper.html":{}}}],["helper.ts:51",{"_index":20708,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:6",{"_index":20319,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper/copy",{"_index":6410,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/TaskApiModule.html":{}}}],["helper/dto/copy.response.ts",{"_index":6218,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:17",{"_index":6230,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:22",{"_index":6233,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:29",{"_index":6234,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:34",{"_index":6225,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:41",{"_index":6232,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:47",{"_index":6229,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:7",{"_index":6223,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/mapper/copy.mapper.ts",{"_index":6455,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:10",{"_index":6467,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:30",{"_index":6460,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:39",{"_index":6464,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/service/copy",{"_index":6414,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper/types/copy.types",{"_index":6235,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helpers",{"_index":23286,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["helpful",{"_index":23466,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helplink",{"_index":4873,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["helps",{"_index":23451,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helpto",{"_index":23096,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["hendt/xml2json",{"_index":6204,"title":{},"body":{"injectables/ConverterUtil.html":{},"dependencies.html":{}}}],["here",{"_index":2368,"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":22808,"title":{},"body":{"license.html":{}}}],["hex",{"_index":575,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["hh:mm:ss.sss",{"_index":14467,"title":{},"body":{"modules/LoggerModule.html":{}}}],["hidden",{"_index":3417,"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":4868,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hierarchy",{"_index":5333,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["high",{"_index":23246,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["higher",{"_index":23173,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["highly",{"_index":23737,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hilfebereich",{"_index":4885,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hint",{"_index":5531,"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":22968,"title":{},"body":{"todo.html":{}}}],["historywindows",{"_index":23606,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["hmac",{"_index":14584,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["holder",{"_index":22745,"title":{},"body":{"license.html":{}}}],["holders",{"_index":22708,"title":{},"body":{"license.html":{}}}],["holds",{"_index":23815,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["homepage",{"_index":22957,"title":{},"body":{"properties.html":{}}}],["homework",{"_index":23263,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["homeworkid",{"_index":12291,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["homeworkid'})@index",{"_index":19048,"title":{},"body":{"entities/Submission.html":{}}}],["homeworks",{"_index":12466,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["hook",{"_index":23825,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hookfn",{"_index":470,"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":22218,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hope",{"_index":6599,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"license.html":{}}}],["horizontal",{"_index":23243,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["host",{"_index":1131,"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":10915,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host.switchtohttp",{"_index":10925,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host=http://localhost:4000",{"_index":23624,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["hostname",{"_index":1137,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["hosts",{"_index":22636,"title":{},"body":{"license.html":{}}}],["hosturl",{"_index":12619,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["hot",{"_index":23002,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["household",{"_index":22655,"title":{},"body":{"license.html":{}}}],["hpi",{"_index":2021,"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":5112,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hs256",{"_index":1402,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs384",{"_index":1403,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs512",{"_index":1404,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["html",{"_index":5120,"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":17534,"title":{},"body":{"classes/RichText.html":{}}}],["htmlcontent",{"_index":1307,"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":1309,"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":1231,"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":12099,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["http(s",{"_index":23823,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["http://:4011",{"_index":23622,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://fsf.org",{"_index":22365,"title":{},"body":{"license.html":{}}}],["http://localhost:3030",{"_index":13430,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["http://localhost:3030/api/v1/sync?target=ldap",{"_index":23644,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://localhost:3030/api/v3/sso/oauth",{"_index":13543,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["http://localhost:8080",{"_index":23615,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/manifest",{"_index":5297,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/resource",{"_index":5298,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/manifest",{"_index":5284,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/resource",{"_index":5286,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://mock.de",{"_index":19449,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/auth",{"_index":19438,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/jwks",{"_index":19442,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/logout",{"_index":19440,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/mock/auth/public/mocktoken",{"_index":19436,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mockhost:3030/api/v3/sso/oauth",{"_index":19437,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://www.gnu.org/licenses",{"_index":22950,"title":{},"body":{"license.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd",{"_index":5300,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lommanifest_v1p0.xsd",{"_index":5301,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lomresource_v1p0.xsd",{"_index":5299,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd",{"_index":5292,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd",{"_index":5290,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd",{"_index":5373,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lommanifest_v1p0.xsd",{"_index":5291,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lomresource_v1p0.xsd",{"_index":5289,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsbasiclti_v1p0",{"_index":5247,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1",{"_index":5296,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1",{"_index":5374,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2",{"_index":5288,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1",{"_index":5282,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3",{"_index":5372,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3",{"_index":5245,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3.xsd",{"_index":5253,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticm_v1p0",{"_index":5249,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticp_v1p0",{"_index":5251,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.w3.org/2001/xmlschema",{"_index":5230,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["httpargumenthost",{"_index":10924,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpargumenthost.getresponse",{"_index":10926,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpcode",{"_index":2902,"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":{},"controllers/UserLoginMigrationController.html":{}}}],["httpcode(201",{"_index":8290,"title":{},"body":{"controllers/ElementController.html":{}}}],["httpcode(204",{"_index":2922,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["httpcode(httpstatus.no_content",{"_index":20499,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(httpstatus.ok",{"_index":14511,"title":{},"body":{"controllers/LoginController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["httpexception",{"_index":3671,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoService.html":{},"classes/GlobalErrorFilter.html":{}}}],["httpexception(`unsupported",{"_index":4997,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["httpexceptionoptions",{"_index":8469,"title":{},"body":{"classes/ErrorUtils.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["httpexceptions",{"_index":23361,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["httpmodule",{"_index":3939,"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/MetaTagExtractorModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/RocketChatModule.html":{},"modules/VideoConferenceModule.html":{}}}],["httponly",{"_index":16286,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["https://${scdomain",{"_index":13431,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["https://${scdomain}/api/v3/sso/oauth",{"_index":13544,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["https://dbildungscloud.de",{"_index":22958,"title":{},"body":{"properties.html":{}}}],["https://docs.nestjs.com/first",{"_index":23290,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://example.com/tool",{"_index":20656,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["https://github.com/goldbergyoni/javascript",{"_index":23570,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["https://github.com/hpi",{"_index":22982,"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":10135,"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":2385,"title":{},"body":{"classes/BaseFactory.html":{}}}],["https://hpi",{"_index":23005,"title":{},"body":{"todo.html":{}}}],["https://jestjs.io",{"_index":23138,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://khalilstemmler.com/articles/software",{"_index":23331,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://logo.com",{"_index":7392,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://logourl.com",{"_index":8802,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["https://mikro",{"_index":23139,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://min.io",{"_index":23141,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://mock.tld/auth",{"_index":19444,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/logout",{"_index":19447,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/token",{"_index":19445,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/userinfo",{"_index":19446,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://nestjs.com",{"_index":23137,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://provisioningurl.de",{"_index":19451,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://stackoverflow.com/a/61909588",{"_index":22967,"title":{},"body":{"todo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/arc",{"_index":2333,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/bc",{"_index":17858,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/n21",{"_index":14119,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["https://url.com",{"_index":7390,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.basic",{"_index":7344,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.fallback",{"_index":5735,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["https://www.frontchannel.com",{"_index":7352,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.geogebra.org/m/${content.content.materialid",{"_index":5123,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd",{"_index":5375,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["https://www.lti11",{"_index":7364,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.npmjs.com/package/@golevelup/nestjs",{"_index":17162,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["https://www.oauth2",{"_index":7360,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.rabbitmq.com",{"_index":23142,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://www.redirect.com",{"_index":7354,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["httpservice",{"_index":962,"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":1220,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BoardResponseMapper.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.bad_gateway",{"_index":13775,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["httpstatus.bad_request",{"_index":1227,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.conflict",{"_index":3870,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["httpstatus.forbidden",{"_index":10794,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.internal_server_error",{"_index":8826,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.not_found",{"_index":8355,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["httpstatus.ok",{"_index":11057,"title":{},"body":{"controllers/GroupController.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.too_many_requests",{"_index":3824,"title":{},"body":{"classes/BruteForceError.html":{}}}],["httpstatus.unauthorized",{"_index":1636,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/SchoolInMigrationError.html":{}}}],["httpstatus.unprocessable_entity",{"_index":3677,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["human",{"_index":5529,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["hydra",{"_index":11580,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydra_public_uri",{"_index":11421,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraadapter",{"_index":16189,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["hydracookies",{"_index":6208,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydracookies.includes(cookie",{"_index":11560,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydracookies.push(cookie",{"_index":11561,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig",{"_index":11453,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig.redirecturi",{"_index":11457,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraoauthuc",{"_index":11418,"title":{"injectables/HydraOauthUc.html":{}},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["hydraredirectdto",{"_index":11443,"title":{"classes/HydraRedirectDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["hydraredirectdto(dto",{"_index":11532,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrassoservice",{"_index":11429,"title":{"injectables/HydraSsoService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"modules/OauthModule.html":{}}}],["hydrauc",{"_index":16249,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["hydrauri",{"_index":11569,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/.well",{"_index":11576,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/auth",{"_index":11571,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/sessions/logout",{"_index":11579,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/token",{"_index":11586,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["i...properties",{"_index":6602,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["i.name",{"_index":11808,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["i.width",{"_index":14907,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["iaccountconfig",{"_index":11589,"title":{"interfaces/IAccountConfig.html":{}},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["iat",{"_index":7084,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["ibbbsettings",{"_index":2140,"title":{"interfaces/IBbbSettings.html":{}},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["icalendarevent",{"_index":3921,"title":{"interfaces/ICalendarEvent.html":{}},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"interfaces/ICalendarEvent.html":{}}}],["iclassentityprops",{"_index":4278,"title":{"interfaces/IClassEntityProps.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"interfaces/IClassEntityProps.html":{}}}],["icleanoptions",{"_index":11597,"title":{"interfaces/ICleanOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["icollaborativestoragestrategy",{"_index":4559,"title":{"interfaces/ICollaborativeStorageStrategy.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["icollectionfilepath",{"_index":11680,"title":{"interfaces/ICollectionFilePath.html":{}},"body":{"interfaces/ICollectionFilePath.html":{}}}],["icolumnboardproperties",{"_index":4799,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["icommoncartridgeconfig",{"_index":11864,"title":{"interfaces/ICommonCartridgeConfig.html":{}},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icommoncartridgeelement",{"_index":5172,"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":5214,"title":{"interfaces/ICommonCartridgeFile.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["icommoncartridgefilebuilder",{"_index":5148,"title":{"interfaces/ICommonCartridgeFileBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefilebuilderoptions",{"_index":5155,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeltiresourceprops",{"_index":5216,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["icommoncartridgemanifestprops",{"_index":5271,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["icommoncartridgemetadataprops",{"_index":5273,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["icommoncartridgeorganizationbuilder",{"_index":5164,"title":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeorganizationprops",{"_index":5162,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeresourceprops",{"_index":5068,"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":5075,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["icommoncartridgeweblinkresourceprops",{"_index":5345,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["icomponentetherpadproperties",{"_index":11876,"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":11886,"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":11891,"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":11888,"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":11890,"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":5065,"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":11885,"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":23578,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["icontextexternaltoolproperties",{"_index":5854,"title":{"interfaces/IContextExternalToolProperties.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["icopyfiledo",{"_index":10600,"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":6241,"title":{"interfaces/ICopyFileDomainObjectProps.html":{}},"body":{"classes/CopyFileDto.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{}}}],["icopyfilesofparentparams",{"_index":10702,"title":{"interfaces/ICopyFilesOfParentParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfilesrequestinfo",{"_index":6352,"title":{"interfaces/ICopyFilesRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["icoremoduleconfig",{"_index":11939,"title":{"interfaces/ICoreModuleConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icoursegroupproperties",{"_index":6824,"title":{"interfaces/ICourseGroupProperties.html":{}},"body":{"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["icourseproperties",{"_index":6592,"title":{"interfaces/ICourseProperties.html":{}},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["icreatenews",{"_index":11943,"title":{"interfaces/ICreateNews.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["icurrentuser",{"_index":270,"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/MetaTagExtractorController.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/ClassesRepo.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":{},"injectables/SubmissionItemUc.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":{},"classes/UserLoginMigrationMapper.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":20578,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["id.'})@apiresponse({status",{"_index":11048,"title":{},"body":{"controllers/GroupController.html":{}}}],["id.body.params.ts",{"_index":234,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:15",{"_index":244,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:26",{"_index":242,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:35",{"_index":240,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.id",{"_index":13597,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["id.loggable.ts",{"_index":18349,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:11",{"_index":18354,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:4",{"_index":18352,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.params",{"_index":19381,"title":{},"body":{"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["id.params.ts",{"_index":256,"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":258,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/SystemIdParams.html":{}}}],["id.params.ts:7",{"_index":5874,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["id.params.ts:8",{"_index":5877,"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":23313,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["id.strategy.ts",{"_index":1836,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{}}}],["id.strategy.ts:8",{"_index":1841,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{}}}],["id.token.claim",{"_index":13495,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["id.tostring",{"_index":914,"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":5555,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["id/challenge",{"_index":5591,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["id='${child.id",{"_index":2772,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["id_token",{"_index":126,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["id_token_hint_claims",{"_index":16385,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["idashboardmodelproperties",{"_index":7642,"title":{"interfaces/IDashboardModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["idashboardrepo",{"_index":7815,"title":{"interfaces/IDashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["idea",{"_index":2345,"title":{},"body":{"classes/BaseDomainObject.html":{},"injectables/TaskUC.html":{}}}],["idempotent",{"_index":2147,"title":{},"body":{"injectables/BBBService.html":{}}}],["identical",{"_index":13212,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["identifiable",{"_index":22831,"title":{},"body":{"license.html":{}}}],["identified",{"_index":23370,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiedreference",{"_index":2359,"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":1249,"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":15445,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["identifierref",{"_index":5239,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["identifiers",{"_index":12026,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/JwtValidationAdapter.html":{}}}],["identifies",{"_index":18938,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["identify",{"_index":5556,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["identities",{"_index":23612,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["identity",{"_index":2777,"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":616,"title":{"modules/IdentityManagementModule.html":{}},"body":{"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/IdentityManagementModule.html":{},"modules/SystemModule.html":{},"modules.html":{}}}],["identitymanagementoauthservice",{"_index":12673,"title":{"classes/IdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["identitymanagementoauthservice:24",{"_index":13535,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:54",{"_index":13536,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:61",{"_index":13538,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementservice",{"_index":583,"title":{"classes/IdentityManagementService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:113",{"_index":13579,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:126",{"_index":13580,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:131",{"_index":13569,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:136",{"_index":13581,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:14",{"_index":13567,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:152",{"_index":13582,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:46",{"_index":13584,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:62",{"_index":13586,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:76",{"_index":13578,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:84",{"_index":13575,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:98",{"_index":13576,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identityprovideralias",{"_index":13485,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapper",{"_index":13484,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapperrepresentation",{"_index":13368,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityproviderrepresentation",{"_index":13371,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["idhierarchy",{"_index":4840,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["idhierarchy[0",{"_index":4841,"title":{},"body":{"injectables/ColumnBoardService.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":630,"title":{},"body":{"modules/AccountModule.html":{}}}],["idm/dev:latest",{"_index":23054,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idmaccount",{"_index":543,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmaccountproperties",{"_index":176,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{}}}],["idmaccountupdate",{"_index":12702,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmoauthservice",{"_index":14400,"title":{},"body":{"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["idmreferenceid",{"_index":378,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSaveDto.html":{}}}],["idmservice",{"_index":586,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["idmuserrepresentation",{"_index":13682,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["idp",{"_index":11954,"title":{},"body":{"interfaces/ICurrentUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OauthCurrentUser.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idpalias",{"_index":13361,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["idparams",{"_index":12622,"title":{"classes/IdParams.html":{}},"body":{"classes/IdParams.html":{},"controllers/OauthProviderController.html":{}}}],["idphint",{"_index":12372,"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":565,"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":4007,"title":{},"body":{"controllers/CardController.html":{}}}],["ids.map((id",{"_index":2650,"title":{},"body":{"entities/Board.html":{}}}],["ids.map(async",{"_index":2339,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["ids.params.ts",{"_index":4057,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids.params.ts:10",{"_index":4061,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids[0",{"_index":3105,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["idtoken",{"_index":121,"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":16417,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["idtoken.uuid",{"_index":13118,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["idtokencreationloggableexception",{"_index":12625,"title":{"classes/IdTokenCreationLoggableException.html":{}},"body":{"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{}}}],["idtokencreationloggableexception(clientid",{"_index":12665,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["idtokenservice",{"_index":12633,"title":{"injectables/IdTokenService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["iencryptionservice",{"_index":9369,"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":2352,"title":{"interfaces/IEntity.html":{}},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ientitywithschool",{"_index":6579,"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":11971,"title":{"interfaces/IEntityWithTimestamps.html":{}},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ierror",{"_index":8436,"title":{"interfaces/IError.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["ierrortype",{"_index":3858,"title":{"interfaces/IErrorType.html":{}},"body":{"classes/BusinessError.html":{},"interfaces/IErrorType.html":{}}}],["iexternaltoolproperties",{"_index":8777,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["iexternaltoolpseudonymentityprops",{"_index":9009,"title":{"interfaces/IExternalToolPseudonymEntityProps.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["if/else",{"_index":23435,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ifederalstateproperties",{"_index":6523,"title":{"interfaces/IFederalStateProperties.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ifiledo",{"_index":10601,"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":9887,"title":{"interfaces/IFileDomainObjectProps.html":{}},"body":{"classes/FileDto-1.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["ifilerecordparams",{"_index":10706,"title":{"interfaces/IFileRecordParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifilerecordproperties",{"_index":10131,"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":10123,"title":{"interfaces/IFileRecordSecurityCheckProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerequestinfo",{"_index":6350,"title":{"interfaces/IFileRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{}}}],["ifilesstorageclientconfig",{"_index":10714,"title":{"interfaces/IFilesStorageClientConfig.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IServerConfig.html":{}}}],["ifilestorageconfig",{"_index":11977,"title":{"interfaces/IFileStorageConfig.html":{}},"body":{"interfaces/IFileStorageConfig.html":{}}}],["ifindoptions",{"_index":6970,"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":11154,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["iframe_restrict_access=false",{"_index":23710,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["iframesubject",{"_index":12667,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/PseudonymService.html":{}}}],["ignore",{"_index":2281,"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":2376,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ignoreexpiration",{"_index":13188,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["igridelement",{"_index":7499,"title":{"interfaces/IGridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["iidentitymanagementconfig",{"_index":12012,"title":{"interfaces/IIdentityManagementConfig.html":{}},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{}}}],["iimportuserproperties",{"_index":12018,"title":{"interfaces/IImportUserProperties.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{}}}],["iimportuserrolename",{"_index":12024,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/RoleNameMapper.html":{}}}],["iimportuserscope",{"_index":12064,"title":{"interfaces/IImportUserScope.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["iinterceptorconfig",{"_index":11941,"title":{"interfaces/IInterceptorConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IInterceptorConfig.html":{},"modules/InterceptorModule.html":{}}}],["ijsonaccount",{"_index":12070,"title":{"interfaces/IJsonAccount.html":{}},"body":{"interfaces/IJsonAccount.html":{},"classes/KeycloakSeedService.html":{}}}],["ijsonuser",{"_index":12074,"title":{"interfaces/IJsonUser.html":{}},"body":{"interfaces/IJsonUser.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloakconfigurationinputfiles",{"_index":12076,"title":{"interfaces/IKeycloakConfigurationInputFiles.html":{}},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloaksettings",{"_index":12083,"title":{"interfaces/IKeycloakSettings.html":{}},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["ilearnroom",{"_index":6580,"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":2623,"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":12089,"title":{"interfaces/ILegacyLogger.html":{}},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["ilessonparent",{"_index":6588,"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":11880,"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":11942,"title":{"interfaces/ILoggerConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/ILoggerConfig.html":{},"modules/LoggerModule.html":{}}}],["iltitoolproperties",{"_index":7171,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["im",{"_index":4884,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["image",{"_index":14886,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["image/gif",{"_index":8871,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/jpeg",{"_index":8866,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/png",{"_index":8869,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["image/webp",{"_index":20323,"title":{},"body":{"classes/TestHelper.html":{}}}],["imagebuffer",{"_index":8851,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagebuffer.tostring('hex",{"_index":8903,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagemagick",{"_index":16737,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["imageobject",{"_index":14872,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["images",{"_index":14875,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["images[0",{"_index":14909,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["images[0].width",{"_index":14910,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["imagesignature",{"_index":8902,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imageurl",{"_index":3224,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["imageurl(value",{"_index":14353,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["imageurlobject",{"_index":5737,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["imageurlobject.origin",{"_index":5739,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["imateapotexception",{"_index":9834,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imateapotexception('this",{"_index":9845,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imaterialproperties",{"_index":12108,"title":{"interfaces/IMaterialProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["imigrationoptions",{"_index":11613,"title":{"interfaces/IMigrationOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["immediately",{"_index":9712,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["immutable",{"_index":9540,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["impact",{"_index":22313,"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":23598,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["impersonated",{"_index":7166,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impersonates",{"_index":11953,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impl",{"_index":3310,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["impl.ts",{"_index":3167,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:113",{"_index":3185,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:128",{"_index":3186,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:142",{"_index":3187,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:157",{"_index":3188,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:175",{"_index":3183,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:189",{"_index":3178,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:194",{"_index":3195,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:200",{"_index":3193,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:205",{"_index":3191,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:30",{"_index":3174,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:39",{"_index":3182,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:43",{"_index":3180,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:60",{"_index":3179,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:75",{"_index":3176,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:99",{"_index":3184,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["implemenation",{"_index":23832,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implement",{"_index":13909,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implementation",{"_index":2435,"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":23172,"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":13158,"title":{},"body":{"interfaces/JwtConstants.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implemented.loggable",{"_index":16598,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["implementing",{"_index":23204,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implements",{"_index":1280,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"classes/UnknownQueryTypeLoggableException.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":23342,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["implicit",{"_index":23728,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implicitly",{"_index":23749,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implied",{"_index":22853,"title":{},"body":{"license.html":{}}}],["implies",{"_index":5575,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["import",{"_index":95,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":18771,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:13",{"_index":18775,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:22",{"_index":18774,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.module.ts",{"_index":12938,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["import.uc",{"_index":12795,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["import/controller/dto/filter",{"_index":10741,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["import/controller/dto/import",{"_index":12845,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{}}}],["import/controller/dto/sort",{"_index":18974,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["import/controller/dto/update",{"_index":20862,"title":{},"body":{"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{}}}],["import/controller/dto/user",{"_index":21442,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["import/controller/import",{"_index":12748,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["import/export",{"_index":23658,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["import/loggable/migration",{"_index":14960,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["import/loggable/school",{"_index":18348,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["import/loggable/user",{"_index":21486,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["import/mapper/import",{"_index":12866,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["import/mapper/match.mapper.ts",{"_index":12913,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:12",{"_index":12919,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:5",{"_index":12917,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/role",{"_index":17613,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["import/mapper/user",{"_index":21447,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["import/uc/ldap",{"_index":13736,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["import/user",{"_index":12937,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["important",{"_index":353,"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":7901,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollection(@param('collectionname",{"_index":7921,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollection(collectionname",{"_index":7909,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollections",{"_index":7902,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(@query('with",{"_index":7919,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(withindexes",{"_index":7912,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["imported",{"_index":11776,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/ShareTokenImportBodyParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["importeddocumentsamount",{"_index":11773,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["importhash",{"_index":12604,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["importing",{"_index":22799,"title":{},"body":{"license.html":{}}}],["imports",{"_index":225,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":13646,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["importsharetoken",{"_index":18704,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["importsharetoken(currentuser",{"_index":18711,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["importsharetoken(userid",{"_index":18889,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["importuser",{"_index":12030,"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":12887,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.firstname",{"_index":12883,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.flagged",{"_index":12888,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.id",{"_index":12881,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.lastname",{"_index":12884,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.loginname",{"_index":12882,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.matchedby",{"_index":12890,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.rolenames.map((role",{"_index":12885,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.scope",{"_index":12959,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuser.user",{"_index":12889,"title":{},"body":{"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["importuser.user).filter((user",{"_index":12985,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importusercontroller",{"_index":12747,"title":{"controllers/ImportUserController.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["importuserentities",{"_index":12981,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserentities.map((importuser",{"_index":12984,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserfactory",{"_index":12830,"title":{"classes/ImportUserFactory.html":{}},"body":{"classes/ImportUserFactory.html":{}}}],["importuserfactory.define(importuser",{"_index":12838,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["importuserid",{"_index":12861,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserlist",{"_index":12805,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlist.map((importuser",{"_index":12808,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlistresponse",{"_index":12796,"title":{"classes/ImportUserListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["importuserlistresponse(dtolist",{"_index":12810,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper",{"_index":12787,"title":{"classes/ImportUserMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["importusermapper.mapimportuserfilterquerytodomain(scope",{"_index":12804,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.mapsortingquerytodomain(sortingquery",{"_index":12803,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(importuser",{"_index":12809,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(result",{"_index":12814,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermatchmapper",{"_index":12875,"title":{"classes/ImportUserMatchMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["importusermatchmapper.mapimportusermatchscopetodomain(match",{"_index":12910,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusermatchmapper.mapmatchcreatortoresponse(matchcreator",{"_index":21463,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["importusermodule",{"_index":12932,"title":{"modules/ImportUserModule.html":{}},"body":{"modules/ImportUserModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["importuserrepo",{"_index":12936,"title":{"injectables/ImportUserRepo.html":{}},"body":{"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{}}}],["importuserresponse",{"_index":12797,"title":{"classes/ImportUserResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{}}}],["importusers",{"_index":12029,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"injectables/UserRepo.html":{}}}],["importuserschoolid",{"_index":18351,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserscope",{"_index":12958,"title":{"classes/ImportUserScope.html":{}},"body":{"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{}}}],["importusersortorder",{"_index":12874,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["importusersortorder.firstname",{"_index":12878,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusersortorder.lastname",{"_index":12879,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuserurlparams",{"_index":12769,"title":{"classes/ImportUserUrlParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserUrlParams.html":{}}}],["impose",{"_index":22730,"title":{},"body":{"license.html":{}}}],["imposed",{"_index":22856,"title":{},"body":{"license.html":{}}}],["impossile",{"_index":15258,"title":{},"body":{"classes/NewsScope.html":{}}}],["improvements",{"_index":22408,"title":{},"body":{"license.html":{}}}],["improves",{"_index":23395,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ims",{"_index":5303,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["imsbasiclti_v1p0p1.xsd",{"_index":5256,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticm_v1p0.xsd",{"_index":5255,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticp_v1p0.xsd",{"_index":5254,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["in.'})@apioperation({summary",{"_index":20523,"title":{},"body":{"controllers/ToolController.html":{}}}],["in/out",{"_index":23266,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["inability",{"_index":22909,"title":{},"body":{"license.html":{}}}],["inaccurate",{"_index":22912,"title":{},"body":{"license.html":{}}}],["inamematch",{"_index":12068,"title":{"interfaces/INameMatch.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["inc",{"_index":22364,"title":{},"body":{"license.html":{}}}],["incidental",{"_index":22906,"title":{},"body":{"license.html":{}}}],["include",{"_index":2361,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["included",{"_index":6227,"title":{},"body":{"classes/CopyApiResponse.html":{},"license.html":{}}}],["includes",{"_index":15354,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["including",{"_index":10403,"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":22604,"title":{},"body":{"license.html":{}}}],["incoming",{"_index":10954,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["incoming_request_timeout",{"_index":11986,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["incoming_request_timeout_copy_api",{"_index":11989,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incomplete",{"_index":11393,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["incorporate",{"_index":22412,"title":{},"body":{"license.html":{}}}],["incorporated",{"_index":22874,"title":{},"body":{"license.html":{}}}],["incorporation",{"_index":22657,"title":{},"body":{"license.html":{}}}],["increase",{"_index":9595,"title":{},"body":{"injectables/ExternalToolVersionService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["increaseversionofnewtoolifnecessary",{"_index":9558,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["increaseversionofnewtoolifnecessary(oldtool",{"_index":9576,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["indefinitely",{"_index":5512,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["indemnification",{"_index":22726,"title":{},"body":{"license.html":{}}}],["independent",{"_index":22594,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["index",{"_index":7,"title":{"index.html":{}},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":10104,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@enum(undefined",{"_index":3557,"title":{},"body":{"entities/BoardNode.html":{}}}],["index()@manytomany('course",{"_index":7625,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytomany('user",{"_index":6570,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{}}}],["index()@manytomany({fieldname",{"_index":20896,"title":{},"body":{"entities/User.html":{}}}],["index()@manytoone('course",{"_index":6816,"title":{},"body":{"entities/CourseGroup.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone('dashboardmodelentity",{"_index":7623,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytoone('lessonentity",{"_index":19605,"title":{},"body":{"entities/Task.html":{}}}],["index()@manytoone('user",{"_index":7709,"title":{},"body":{"entities/DashboardModelEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone(undefined",{"_index":6565,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["index()@property",{"_index":14205,"title":{},"body":{"entities/LessonEntity.html":{}}}],["index()@property({fieldname",{"_index":10096,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@property({nullable",{"_index":3553,"title":{},"body":{"entities/BoardNode.html":{},"entities/Course.html":{}}}],["index({options",{"_index":10099,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["index.ts",{"_index":22964,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["indexes",{"_index":7873,"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":11807,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["indicate",{"_index":22770,"title":{},"body":{"license.html":{}}}],["indicating",{"_index":7127,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["individual",{"_index":22602,"title":{},"body":{"license.html":{}}}],["individuals",{"_index":22443,"title":{},"body":{"license.html":{}}}],["industrial",{"_index":22666,"title":{},"body":{"license.html":{}}}],["inestapplication",{"_index":1438,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inewsproperties",{"_index":6920,"title":{"interfaces/INewsProperties.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["inewsscope",{"_index":11951,"title":{"interfaces/INewsScope.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["inferrable",{"_index":12865,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["info",{"_index":3,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":21812,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["info(loggable",{"_index":14435,"title":{},"body":{"injectables/Logger.html":{}}}],["info(text",{"_index":5605,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["info.dto.ts",{"_index":4332,"title":{},"body":{"classes/ClassInfoDto.html":{},"interfaces/ShareTokenInfoDto.html":{}}}],["info.dto.ts:10",{"_index":4339,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:12",{"_index":4344,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:14",{"_index":4343,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:16",{"_index":4341,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:18",{"_index":4338,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:4",{"_index":4340,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:6",{"_index":4346,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:8",{"_index":4342,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.interface.ts",{"_index":12242,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["info.mapper",{"_index":15152,"title":{},"body":{"classes/NewsMapper.html":{}}}],["info.mapper.ts",{"_index":18375,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.mapper.ts:5",{"_index":18377,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.reponse.ts",{"_index":18779,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:13",{"_index":18783,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:16",{"_index":18782,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:20",{"_index":18781,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:5",{"_index":18780,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.response",{"_index":4373,"title":{},"body":{"classes/ClassInfoSearchListResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{}}}],["info.response.ts",{"_index":2103,"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":21985,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:12",{"_index":4365,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:13",{"_index":18383,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:14",{"_index":21109,"title":{},"body":{"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:15",{"_index":4362,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:18",{"_index":4367,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:19",{"_index":21108,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:21",{"_index":4366,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:24",{"_index":4364,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:27",{"_index":4361,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:3",{"_index":18382,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:6",{"_index":4363,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:9",{"_index":4368,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.ts",{"_index":11938,"title":{},"body":{"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"classes/VideoConferenceInfo.html":{}}}],["info.ts:6",{"_index":21978,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["info.uc.ts",{"_index":21987,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:12",{"_index":21989,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:19",{"_index":21991,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:74",{"_index":21993,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["infodto",{"_index":21951,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["infodto.state",{"_index":21953,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["inform",{"_index":22642,"title":{},"body":{"license.html":{}}}],["information",{"_index":1243,"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":4876,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["infra",{"_index":14792,"title":{},"body":{"modules/ManagementModule.html":{}}}],["infrastructure",{"_index":23276,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["infrastucture",{"_index":18661,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["infringe",{"_index":22768,"title":{},"body":{"license.html":{}}}],["infringed",{"_index":22796,"title":{},"body":{"license.html":{}}}],["infringement",{"_index":22454,"title":{},"body":{"license.html":{}}}],["inherit",{"_index":2363,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritance",{"_index":23732,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritances",{"_index":15223,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["inherited",{"_index":382,"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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Card.html":{},"injectables/CardUc.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":{},"injectables/ColumnUc.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":{},"injectables/ElementUc.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/SubmissionItemUc.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":3849,"title":{},"body":{"classes/Builder.html":{}}}],["initauth",{"_index":11498,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initauth(oauthconfig",{"_index":11509,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initialdelay",{"_index":13794,"title":{},"body":{"injectables/LdapService.html":{}}}],["initialized",{"_index":17166,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["initializes3clientmap",{"_index":8012,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["initiate",{"_index":22791,"title":{},"body":{"license.html":{}}}],["initiated",{"_index":11956,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["initresponse",{"_index":11435,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["initresponse.config",{"_index":11471,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["inject",{"_index":639,"title":{},"body":{"modules/AccountModule.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/ColumnUc.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":1170,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["inject('dashboard_repo",{"_index":7845,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["inject('icollaborativestoragestrategy",{"_index":4585,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["inject('mail_service_options",{"_index":14777,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["inject('rocket_chat_options",{"_index":1019,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["inject(bbbsettings",{"_index":2188,"title":{},"body":{"injectables/BBBService.html":{}}}],["inject(cache_manager",{"_index":13221,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["inject(defaultencryptionservice",{"_index":9398,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["inject(files_storage_s3_connection",{"_index":16797,"title":{},"body":{"injectables/PreviewService.html":{}}}],["inject(forwardref",{"_index":3098,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["inject(fwu_content_s3_connection",{"_index":10854,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["inject(keycloakconfigurationinputfiles",{"_index":13715,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inject(keycloaksettings",{"_index":13278,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["inject(ldapencryptionservice",{"_index":11692,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["inject(redis_client",{"_index":18656,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["inject(s3_client",{"_index":17937,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(s3_config",{"_index":17938,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(toolfeatures",{"_index":8872,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["inject(your_s3_uniq_connection_token",{"_index":23854,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injectable",{"_index":539,"title":{"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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/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/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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/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":541,"title":{},"body":{"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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/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":9708,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["injectenvvars(json",{"_index":11824,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["injecting",{"_index":23847,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injection",{"_index":13911,"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":23805,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inline",{"_index":1301,"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":1300,"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":12194,"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":5337,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["innerpermissions",{"_index":12180,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerrole.resolvepermissions",{"_index":12181,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles",{"_index":12177,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles.foreach((innerrole",{"_index":12179,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["input",{"_index":2161,"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":18067,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.dto.ts",{"_index":15829,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:4",{"_index":15831,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:6",{"_index":15832,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:8",{"_index":15830,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.mapper",{"_index":16955,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["input.mapper.ts",{"_index":16979,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.mapper.ts:6",{"_index":16982,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.system",{"_index":13137,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.provisioningurl",{"_index":18066,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.systemid",{"_index":13123,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["inputdto",{"_index":16963,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["inputfiles",{"_index":13704,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inputformat",{"_index":3227,"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":17552,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["inputformat.plain_text",{"_index":5722,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["inputformat.rich_text_ck4",{"_index":12472,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"classes/TaskWithStatusVo.html":{}}}],["inputformat.rich_text_ck5",{"_index":3521,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/TaskMapper.html":{}}}],["inputpath",{"_index":1497,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputpath.charat(pos",{"_index":1494,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputroles",{"_index":16647,"title":{},"body":{"injectables/PermissionService.html":{}}}],["insensitive",{"_index":13015,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["insertedcount",{"_index":7964,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["inside",{"_index":3856,"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":23682,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["inspired",{"_index":23569,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["install",{"_index":22503,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["installation",{"_index":22670,"title":{},"body":{"license.html":{}}}],["installed",{"_index":22687,"title":{},"body":{"license.html":{}}}],["instance",{"_index":5231,"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":604,"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":{},"injectables/ColumnBoardService.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":5754,"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":6601,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["instead",{"_index":2337,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseUc.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/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":23283,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["instructor",{"_index":7174,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["intact",{"_index":22571,"title":{},"body":{"license.html":{}}}],["integration",{"_index":11383,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["intend",{"_index":11854,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["intended",{"_index":4145,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["intendeduse",{"_index":5118,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["intention",{"_index":22564,"title":{},"body":{"license.html":{}}}],["interact",{"_index":22943,"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":22869,"title":{},"body":{"license.html":{}}}],["interaction",{"_index":22469,"title":{},"body":{"license.html":{}}}],["interactions",{"_index":23216,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interactive",{"_index":22472,"title":{},"body":{"license.html":{}}}],["intercept",{"_index":8226,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["intercept(context",{"_index":8228,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["interceptor",{"_index":6512,"title":{},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interceptormodule",{"_index":6495,"title":{"modules/InterceptorModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"modules.html":{}}}],["interchange",{"_index":22614,"title":{},"body":{"license.html":{}}}],["interest",{"_index":22784,"title":{},"body":{"license.html":{}}}],["interface",{"_index":105,"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/AutoParameterStrategy.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/AutoParameterStrategy.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":{},"classes/ClassFilterParams.html":{},"interfaces/ClassProps.html":{},"classes/ClassSortParams.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":3882,"title":{},"body":{"injectables/CacheService.html":{}}}],["interface/calendar",{"_index":3953,"title":{},"body":{"injectables/CalendarService.html":{}}}],["interface/json",{"_index":13712,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["interface/jwt",{"_index":1554,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{}}}],["interface/keycloak",{"_index":13236,"title":{},"body":{"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["interface/learnroom",{"_index":12458,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["interface/oauth",{"_index":1341,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["interface/oidc",{"_index":16906,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["interface/page",{"_index":16574,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["interface/preview",{"_index":10110,"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":17401,"title":{},"body":{"modules/RedisModule.html":{}}}],["interface/sso",{"_index":1733,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["interfaces",{"_index":107,"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/AutoParameterStrategy.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":6353,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{}}}],["interfaces/legacy",{"_index":13906,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["interfered",{"_index":22676,"title":{},"body":{"license.html":{}}}],["intermediate",{"_index":1754,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["internal",{"_index":563,"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",{"_index":20858,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["internal_server_error_exception",{"_index":12630,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["internalaxiosrequestconfig",{"_index":1916,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["internalid",{"_index":878,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["internally",{"_index":17940,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["internalmeetingid",{"_index":2052,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["internalrepo",{"_index":23227,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["internalservererrorexception",{"_index":1162,"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":{},"controllers/MetaTagExtractorController.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":{},"classes/UnknownQueryTypeLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["internalservererrorexception('cannot",{"_index":3564,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/UserLoginMigrationService.html":{}}}],["internalservererrorexception('copy",{"_index":6779,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["internalservererrorexception('courses",{"_index":6653,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["internalservererrorexception('expected",{"_index":4790,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["internalservererrorexception('feature",{"_index":10813,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["internalservererrorexception('import",{"_index":18933,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["internalservererrorexception('lessons",{"_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":{}}}],["internalservererrorexception('multiple_matches_are_not_allowed",{"_index":17897,"title":{},"body":{"injectables/RuleManager.html":{}}}],["internalservererrorexception('provisioning",{"_index":16968,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["internalservererrorexception('s3clientadapter:copy",{"_index":17982,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:create",{"_index":17961,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:delete",{"_index":17970,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:get",{"_index":17955,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:restore",{"_index":17975,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('submissions",{"_index":12490,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('task.finished",{"_index":12494,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('tool",{"_index":16109,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception('unknown",{"_index":7764,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["internalservererrorexception('user",{"_index":4445,"title":{},"body":{"injectables/ClassService.html":{},"injectables/PseudonymService.html":{}}}],["internalservererrorexception(`${bbbresp.response.messagekey",{"_index":2207,"title":{},"body":{"injectables/BBBService.html":{}}}],["internalservererrorexception(`cannot",{"_index":16107,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception(`multiple",{"_index":14044,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["internalservererrorexception(`redirect",{"_index":11477,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["internalservererrorexception(errorobj.message",{"_index":8444,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["internalservererrorexception(null",{"_index":1193,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/ErrorMapper.html":{}}}],["internalservererrorexception(oauthclientid",{"_index":11567,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["internalservererrorexception})@apiresponse({status",{"_index":18717,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@get('/:contentid/edit",{"_index":11377,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get('/:contentid/play",{"_index":11379,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get(':token",{"_index":18723,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@post",{"_index":14837,"title":{},"body":{"controllers/MetaTagExtractorController.html":{},"controllers/ShareTokenController.html":{}}}],["internalservice",{"_index":23228,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interpretation",{"_index":22918,"title":{},"body":{"license.html":{}}}],["interpreter",{"_index":22502,"title":{},"body":{"license.html":{}}}],["intimate",{"_index":22511,"title":{},"body":{"license.html":{}}}],["introduce",{"_index":9709,"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":23321,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introducing",{"_index":23022,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["introduction",{"_index":22961,"title":{},"body":{"todo.html":{}}}],["introspectoauth2token",{"_index":16157,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectoauth2token(token",{"_index":16172,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectresponse",{"_index":13064,"title":{"interfaces/IntrospectResponse.html":{}},"body":{"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{}}}],["inusermigration",{"_index":12195,"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":285,"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":13075,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["invalid_request",{"_index":5516,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["invalidate",{"_index":22591,"title":{},"body":{"license.html":{}}}],["invalidoriginforlogouturlloggableexception",{"_index":13071,"title":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/VideoConferenceController.html":{}}}],["invalidoriginforlogouturlloggableexception(params.logouturl",{"_index":21840,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["inversion",{"_index":23170,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["invitationlink",{"_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":{}}}],["inviteusertogroup(groupname",{"_index":1044,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["invoke",{"_index":23646,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["ip",{"_index":23681,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipaddress",{"_index":23684,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipagination",{"_index":9045,"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":10132,"title":{"interfaces/IParentInfo.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iprimarykey",{"_index":10663,"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":12115,"title":{"interfaces/IRelatedResourceProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["irepoloader",{"_index":12135,"title":{"interfaces/IRepoLoader.html":{}},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["iretryoptions",{"_index":11610,"title":{"interfaces/IRetryOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["iroleproperties",{"_index":12171,"title":{"interfaces/IRoleProperties.html":{}},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["irrevocable",{"_index":22517,"title":{},"body":{"license.html":{}}}],["isactive",{"_index":8181,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isallowedaschild",{"_index":2733,"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":19124,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isallowedaschild(domainobject",{"_index":2750,"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":5677,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isanycontentelement(element",{"_index":5681,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isapplicable",{"_index":3352,"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":3356,"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":8216,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["isarray",{"_index":5537,"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":15647,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isarray()@ismongoid({each",{"_index":16629,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["isarray()@isoptional()@isstring({each",{"_index":5552,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{}}}],["isarray()@isstring({each",{"_index":5495,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["isatleastpartialsuccessfull",{"_index":6428,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isatleastpartialsuccessfull(status",{"_index":6438,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isauthenticated",{"_index":23840,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["isauthenticationresponse",{"_index":1506,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthenticationresponse(body",{"_index":1505,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthorizedstudent",{"_index":2457,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["isauthorizedstudent(userid",{"_index":2468,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["isautoparameterglobal",{"_index":8929,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isautoparameterglobal(customparameter",{"_index":8941,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isblocked",{"_index":10169,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isboolean",{"_index":147,"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":7401,"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":7126,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["isboolean()@isoptional()@apiproperty({description",{"_index":5499,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/MigrationBody.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":139,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["isbreakout",{"_index":2108,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["isbusinesserror",{"_index":8464,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isbusinesserror(error",{"_index":8470,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["iscard(reference",{"_index":3987,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["ischoolexternaltoolproperties",{"_index":12184,"title":{"interfaces/ISchoolExternalToolProperties.html":{}},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["ischoolproperties",{"_index":12192,"title":{"interfaces/ISchoolProperties.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ischoolyearproperties",{"_index":12234,"title":{"interfaces/ISchoolYearProperties.html":{}},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["isclientidunique",{"_index":9516,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["isclientidunique(externaltool",{"_index":9521,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["iscolumn(reference",{"_index":4749,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["iscolumnboard",{"_index":4773,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(copystatus.copyentity",{"_index":4789,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(reference",{"_index":4766,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["iscolumnboardfeatureflagactive",{"_index":8131,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["iscolumnboardtarget",{"_index":2976,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(element.target",{"_index":3020,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(reference",{"_index":4922,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["iscopeinfo",{"_index":12240,"title":{"interfaces/IScopeInfo.html":{}},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["iscopyfrom",{"_index":10094,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iscoursefinished",{"_index":12510,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["iscreator",{"_index":17750,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iscustomparameternameempty",{"_index":8930,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iscustomparameternameempty(param",{"_index":8943,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdate",{"_index":806,"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":7106,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isdefaultvalueofvalidregex",{"_index":8931,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidregex(param",{"_index":8945,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype",{"_index":8932,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype(param",{"_index":8947,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdirectory",{"_index":9962,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["isdraft",{"_index":3761,"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":251,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/PatchMyAccountParams.html":{}}}],["isemail()@isoptional()@apiproperty({description",{"_index":16612,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["isempty",{"_index":10998,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["isemptyqueryallowed",{"_index":6085,"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":16825,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["isenum",{"_index":851,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassFilterParams.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":852,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(accountsearchtype)@apiproperty({description",{"_index":837,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(classsortby",{"_index":4459,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isenum(contentelementtype",{"_index":7047,"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":7056,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isenum(contentelementtype)@apiproperty({enum",{"_index":8242,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["isenum(customparameterlocationparams",{"_index":7416,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterlocationparams)@apiproperty",{"_index":7404,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams",{"_index":7415,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams)@apiproperty",{"_index":7410,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams",{"_index":7417,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams)@apiproperty",{"_index":7413,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(externaltoolsortby",{"_index":18966,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isenum(filerecordparenttype",{"_index":6300,"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":10764,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(filterroletype",{"_index":10765,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(importusersortorder",{"_index":18976,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isenum(inputformat",{"_index":8247,"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":17536,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["isenum(languagetype",{"_index":4206,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["isenum(ltimessagetype",{"_index":14610,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltimessagetype)@apiproperty",{"_index":14603,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission",{"_index":14611,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission)@apiproperty",{"_index":14605,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(newstargetmodel",{"_index":7121,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["isenum(newstargetmodel)@apiproperty({enum",{"_index":7114,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isenum(pagetypes",{"_index":16575,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["isenum(previewoutputmimetypes",{"_index":6313,"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":6315,"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(schoolyearquerytype",{"_index":4329,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["isenum(sharetokenparenttype",{"_index":18696,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sharetokenparenttype)@apiproperty({description",{"_index":18691,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sortorder",{"_index":18981,"title":{},"body":{"classes/SortingParams.html":{}}}],["isenum(ssoauthenticationerror",{"_index":1736,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isenum(subjecttypeenum",{"_index":15741,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(subjecttypeenum)@isoptional()@apiproperty({description",{"_index":15727,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(systemtypeenum",{"_index":19459,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["isenum(tokenauthmethod",{"_index":15740,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenauthmethod)@isoptional()@apiproperty({description",{"_index":15732,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenendpointauthmethod",{"_index":15653,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(tokenendpointauthmethod)@apiproperty",{"_index":15651,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype",{"_index":2518,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype)@apiproperty",{"_index":2515,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolcontexttype",{"_index":5838,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{}}}],["isenum(toolcontexttype)@apiproperty",{"_index":5892,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({enum",{"_index":5835,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({type",{"_index":6196,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["isenum(videoconferencescope",{"_index":22129,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["iserv",{"_index":13114,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{}}}],["iserverconfig",{"_index":601,"title":{"interfaces/IServerConfig.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["iservlogouturl",{"_index":15580,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('id_token_hint",{"_index":15582,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('post_logout_redirect_uri",{"_index":15583,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.tostring",{"_index":15585,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservmapper",{"_index":13080,"title":{"classes/IservMapper.html":{}},"body":{"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternalschooldto(ldapschool",{"_index":13135,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternaluserdto(ldapuser",{"_index":13133,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservprovisioningstrategy",{"_index":13097,"title":{"injectables/IservProvisioningStrategy.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["iservstrategy",{"_index":16938,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["isession",{"_index":15857,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["isexternaltoolelement(reference",{"_index":8729,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["isexternaluser",{"_index":7093,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["isfeatherserror",{"_index":8465,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfeatherserror(error",{"_index":8472,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfileelement",{"_index":19132,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isfileelement(child",{"_index":19137,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isfileelement(element",{"_index":19145,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isfileelement(reference",{"_index":9931,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["isfileelementresponse",{"_index":5645,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["isfileelementresponse(result",{"_index":5660,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["isfinished",{"_index":3762,"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":12512,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser(user",{"_index":12504,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isflagged",{"_index":13006,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isflagged(flagged",{"_index":13024,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isglobal",{"_index":9000,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid",{"_index":8933,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid(customparameter",{"_index":8949,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isgraceperiodexpired",{"_index":4512,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraceperiodexpired(userloginmigration",{"_index":4520,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraded",{"_index":12336,"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":12339,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isgradedforuser(user",{"_index":12337,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgroup",{"_index":7528,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["isguest",{"_index":21997,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["isharetokenproperties",{"_index":12262,"title":{"interfaces/IShareTokenProperties.html":{}},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{}}}],["ishidden",{"_index":7204,"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":11536,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["isinfected",{"_index":1171,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["isinstancealive",{"_index":16158,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["isinstanceofloggable",{"_index":14472,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isinstanceofloggable(object",{"_index":14477,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isint",{"_index":5538,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isint()@isoptional()@apiproperty({description",{"_index":5507,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["isint()@isoptional()@ispositive()@apiproperty({description",{"_index":18686,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isint()@min(0)@apipropertyoptional({description",{"_index":847,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["isint()@min(1)@max(100)@apipropertyoptional({description",{"_index":841,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["islatest",{"_index":5395,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islatest(tool1",{"_index":5399,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islesson",{"_index":2977,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(element.target",{"_index":3017,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(reference",{"_index":11929,"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":14357,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["islisteningonly",{"_index":2122,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["islocal",{"_index":7193,"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":14609,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocale()@apiproperty",{"_index":14601,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocalhost",{"_index":1125,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["islti11config",{"_index":8559,"title":{},"body":{"classes/ExternalTool.html":{}}}],["islti11config(config",{"_index":8570,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["ismandatory",{"_index":18390,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ismarked",{"_index":10303,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["ismarkedfordeletion",{"_index":10025,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ismatched",{"_index":3360,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/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":12319,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["ismongoid",{"_index":807,"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":5876,"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":3817,"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":5873,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/GroupIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["ismongoid()@apiproperty({pattern",{"_index":7111,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ImportUserResponse.html":{}}}],["ismongoid()@apiproperty({required",{"_index":15034,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["ismongoid()@isoptional()@apipropertyoptional",{"_index":8694,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["ismongoid({each",{"_index":4058,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["isnameunique",{"_index":8934,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnameunique(externaltool",{"_index":8951,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnan",{"_index":5449,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnan(number(val",{"_index":5442,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnesthttpexception",{"_index":8466,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnesthttpexception(error",{"_index":8475,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnextcloud",{"_index":16084,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool",{"_index":16069,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool(tool",{"_index":16074,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnotcontained",{"_index":2676,"title":{},"body":{"entities/Board.html":{}}}],["isnotempty",{"_index":808,"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":19033,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnotemptystring(value",{"_index":19034,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnumber",{"_index":3434,"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":5533,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["isnumber()@min(0)@apiproperty",{"_index":3431,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@apiproperty({required",{"_index":15036,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty",{"_index":3428,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty({description",{"_index":14388,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isnumber()@min(0)@isoptional()@apipropertyoptional({description",{"_index":15050,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@max(500)@isoptional()@apiproperty({description",{"_index":14384,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isoauth2config",{"_index":8560,"title":{},"body":{"classes/ExternalTool.html":{}}}],["isoauth2config(config",{"_index":8572,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["isoauthconfigavailable",{"_index":12684,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["isoauthprovisioningenabledforschool",{"_index":15508,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15530,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isolate",{"_index":23723,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["isolated",{"_index":23483,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isolation",{"_index":23418,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isopen",{"_index":6793,"title":{},"body":{"classes/CourseFactory.html":{}}}],["isoptional",{"_index":249,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/BoardLessonResponse.html":{},"classes/ClassFilterParams.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":5559,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@apiproperty({description",{"_index":5550,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@isboolean",{"_index":386,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isboolean()@apiproperty",{"_index":18012,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isboolean()@apiproperty({description",{"_index":235,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":10774,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/PreviewParams.html":{}}}],["isoptional()@isdate",{"_index":390,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isdate()@apipropertyoptional({description",{"_index":20875,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isenum(classsortby)@apipropertyoptional({enum",{"_index":4455,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isoptional()@isenum(externaltoolsortby)@apipropertyoptional({enum",{"_index":18964,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isoptional()@isenum(filterroletype)@apipropertyoptional({enum",{"_index":10759,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isenum(importusersortorder)@apipropertyoptional({enum",{"_index":18975,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isoptional()@isenum(schoolyearquerytype)@apipropertyoptional({enum",{"_index":4327,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["isoptional()@isenum(sortorder)@apipropertyoptional({enum",{"_index":4457,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["isoptional()@isenum(ssoauthenticationerror",{"_index":1728,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isint()@min(0)@apipropertyoptional({description",{"_index":7052,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isoptional()@ismongoid",{"_index":396,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@ismongoid()@apipropertyoptional({pattern",{"_index":10769,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["isoptional()@isstring",{"_index":388,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@apiproperty",{"_index":18014,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isstring()@apiproperty({description",{"_index":18772,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["isoptional()@isstring()@isemail()@apiproperty({description",{"_index":243,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isstring()@isenum(newstargetmodel)@apipropertyoptional({enum",{"_index":10772,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["isoptional()@isstring()@isnotempty",{"_index":1725,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@isnotempty()@apipropertyoptional({type",{"_index":10745,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isstring()@sanitizehtml()@apipropertyoptional({description",{"_index":20877,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isstring()@sanitizehtml(inputformat.rich_text)@apipropertyoptional({description",{"_index":20873,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoutdated",{"_index":18451,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserScope.html":{}}}],["isoutdated(isoutdated",{"_index":21660,"title":{},"body":{"classes/UserScope.html":{}}}],["isoutdated(query.isoutdated",{"_index":21002,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["isowner",{"_index":21655,"title":{},"body":{"injectables/UserRule.html":{}}}],["ispending",{"_index":10177,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isplanned",{"_index":12514,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["ispositive",{"_index":18674,"title":{},"body":{"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["ispositive()@apiproperty({required",{"_index":18672,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["ispossible",{"_index":18391,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ispresenter",{"_index":2121,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["ispreviewpossible",{"_index":10180,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ispropertyprivacyprotected",{"_index":8361,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["ispropertyprivacyprotected(target",{"_index":8373,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["isprotecteduser",{"_index":21716,"title":{},"body":{"injectables/UserService.html":{}}}],["ispublished",{"_index":12513,"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":8935,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexcommentmandatoryandfilled(customparameter",{"_index":8953,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid",{"_index":8936,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid(param",{"_index":8955,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isrelativeurl",{"_index":5733,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["isrelativeurl(this.content.imageurl",{"_index":5740,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["isrequiredtool",{"_index":9810,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["isrichtextelement",{"_index":19133,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isrichtextelement(child",{"_index":19138,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isrichtextelement(element",{"_index":19144,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["isrichtextelement(reference",{"_index":17556,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["isrichtextelementresponse",{"_index":5646,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["isrichtextelementresponse(result",{"_index":5661,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["iss",{"_index":7062,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["issatisfiedby(t",{"_index":23388,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["isschoolnumberunique",{"_index":18511,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isschoolnumberunique(school",{"_index":18513,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isslash",{"_index":1493,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isslash(inputpath",{"_index":1491,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isstring",{"_index":248,"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/MetaTagExtractorResponse.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":2513,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RichTextContentBody.html":{}}}],["isstring()@apiproperty({description",{"_index":257,"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":17043,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["isstring()@apiproperty({required",{"_index":17411,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["isstring()@ismongoid()@isoptional()@apipropertyoptional({description",{"_index":19758,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@isnotempty",{"_index":400,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{}}}],["isstring()@isnotempty()@apiproperty",{"_index":7399,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{}}}],["isstring()@isoptional()@apiproperty",{"_index":14329,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["isstring()@isoptional()@apiproperty({description",{"_index":5514,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{}}}],["isstring()@isoptional()@apipropertyoptional",{"_index":5894,"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":19760,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@matches(undefined)@apiproperty({description",{"_index":6959,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["isstring()@sanitizehtml()@apiproperty({description",{"_index":7117,"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":7104,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isstring(value",{"_index":19036,"title":{},"body":{"classes/StringValidator.html":{}}}],["isstudent",{"_index":6983,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["issubmissioncontainerelement",{"_index":8312,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(reference",{"_index":19060,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["issubmissioncontainerelement(submissioncontainerelement",{"_index":8324,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(submissioncontainterelement",{"_index":19196,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["issubmissionitem",{"_index":8313,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissionitem(child",{"_index":8328,"title":{},"body":{"injectables/ElementUc.html":{}}}],["issubmissionitem(parent",{"_index":8321,"title":{},"body":{"injectables/ElementUc.html":{}}}],["issubmissionitem(reference",{"_index":19142,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["issubmissionitemcontent",{"_index":19143,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["issubmitted",{"_index":12317,"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":12322,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["issubmittedforuser(user",{"_index":12318,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubstitutionteacher",{"_index":3763,"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":1425,"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":23111,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["istanbul",{"_index":3022,"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":2978,"title":{},"body":{"injectables/BoardCopyService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["istask(element.target",{"_index":3013,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["istask(reference",{"_index":12562,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isteacher",{"_index":6984,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isteamuser",{"_index":20200,"title":{},"body":{"injectables/TeamRule.html":{}}}],["istemplate",{"_index":7192,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["istoolstatuslatestorthrow",{"_index":20662,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istoolstatuslatestorthrow(userid",{"_index":20669,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istorageproviderproperties",{"_index":12273,"title":{"interfaces/IStorageProviderProperties.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["isubmissionproperties",{"_index":12286,"title":{"interfaces/ISubmissionProperties.html":{}},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{}}}],["isuniqueemail",{"_index":919,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemail(email",{"_index":923,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount",{"_index":920,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount(email",{"_index":925,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser",{"_index":921,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser(email",{"_index":927,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isupgradable",{"_index":4334,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["isurl",{"_index":8244,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/GetMetaTagDataBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MetaTagExtractorResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["isurl()@apiproperty",{"_index":14333,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["isurl()@apiproperty({required",{"_index":10876,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["isuserinfinisheduser",{"_index":12507,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isuseringroup",{"_index":16513,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["isuserreferenced",{"_index":1643,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isuserreferenced(user",{"_index":1654,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isusersubmitter(user",{"_index":12333,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isusersubstitutionteacher(user",{"_index":6649,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["isusersubstitutionteacherincourse(user",{"_index":12536,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isvalid",{"_index":3252,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isvaluevalidfortype",{"_index":5418,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isvaluevalidfortype(type",{"_index":5435,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isverified",{"_index":10178,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isvisible",{"_index":14274,"title":{},"body":{"injectables/LessonRule.html":{}}}],["iswhitelisted",{"_index":13201,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["iswhitelisted(accountid",{"_index":13208,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["isystemproperties",{"_index":12340,"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":23452,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["it(\"should",{"_index":23417,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('bad",{"_index":23456,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('good",{"_index":23458,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('should",{"_index":23520,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["itargetgroupproperties",{"_index":12116,"title":{"interfaces/ITargetGroupProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["itask",{"_index":12446,"title":{"interfaces/ITask.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["itaskcreate",{"_index":12450,"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":6590,"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":12451,"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":3756,"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":12449,"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":12563,"title":{"interfaces/ITeamProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{}}}],["iteamuserproperties",{"_index":12568,"title":{"interfaces/ITeamUserProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["item",{"_index":3163,"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":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["item.'})@apiextramodels(richtextelementresponse",{"_index":3690,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.'})@apiresponse({status",{"_index":3704,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.body.params.ts",{"_index":7125,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.body.params.ts:10",{"_index":7129,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.columnboardid",{"_index":4942,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["item.do",{"_index":2826,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"injectables/SubmissionItemFactory.html":{}}}],["item.do.ts",{"_index":19121,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["item.do.ts:10",{"_index":19128,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:14",{"_index":19129,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:18",{"_index":19131,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:6",{"_index":19126,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.factory.ts",{"_index":19147,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.factory.ts:7",{"_index":19148,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.name.tolocalelowercase",{"_index":8989,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["item.response",{"_index":19338,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item.response.ts",{"_index":19157,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:16",{"_index":19161,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:19",{"_index":19162,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:22",{"_index":19159,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:25",{"_index":19163,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:33",{"_index":19160,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:6",{"_index":19158,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.service",{"_index":8315,"title":{},"body":{"injectables/ElementUc.html":{}}}],["item.service.ts",{"_index":19184,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:11",{"_index":19185,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:14",{"_index":19188,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:24",{"_index":19187,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:44",{"_index":19190,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.split(';')[0",{"_index":11558,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["item.uc",{"_index":2708,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["item.uc.ts",{"_index":19199,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:27",{"_index":19201,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:38",{"_index":19205,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:64",{"_index":19207,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:76",{"_index":19203,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.url.params.ts",{"_index":19219,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.url.params.ts:11",{"_index":19220,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.userid",{"_index":8333,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["item/create",{"_index":7124,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{}}}],["item/submission",{"_index":19076,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["item/submissions.response",{"_index":3711,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item/submissions.response.ts",{"_index":19332,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:14",{"_index":19335,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:19",{"_index":19336,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:5",{"_index":19334,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/update",{"_index":20879,"title":{},"body":{"classes/UpdateSubmissionItemBodyParams.html":{}}}],["itemindex",{"_index":8986,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["items",{"_index":826,"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":{},"classes/SubmissionItemResponse.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["itemsperpage",{"_index":11344,"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":8597,"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":2547,"title":{"interfaces/IToolLaunchParams.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["itoollaunchstrategy",{"_index":12589,"title":{"interfaces/IToolLaunchStrategy.html":{}},"body":{"interfaces/IToolLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["itself",{"_index":1759,"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":11950,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["iuserconfig",{"_index":12245,"title":{"interfaces/IUserConfig.html":{}},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["iuserloginmigration",{"_index":21247,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["iuserproperties",{"_index":12595,"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":7388,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ivideoconferenceproperties",{"_index":21763,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ivideoconferencesettings",{"_index":12617,"title":{"interfaces/IVideoConferenceSettings.html":{}},"body":{"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["javascript",{"_index":2177,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BsonConverter.html":{}}}],["jest",{"_index":20301,"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":23120,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["jest.fn",{"_index":23531,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.resetallmocks",{"_index":23508,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.restoreallmocks",{"_index":23516,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.spyon",{"_index":23528,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jira",{"_index":22332,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["job",{"_index":7990,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["job_init_idm.yml.j2",{"_index":13653,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["john",{"_index":21058,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["john${sequence",{"_index":12841,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["join",{"_index":2079,"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":2171,"title":{},"body":{"injectables/BBBService.html":{}}}],["join(currentuser",{"_index":21816,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["join(currentuserid",{"_index":22013,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.config",{"_index":2091,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["join.config.ts",{"_index":2057,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:18",{"_index":2062,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:20",{"_index":2065,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:22",{"_index":2066,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:24",{"_index":2063,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:26",{"_index":2064,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:8",{"_index":2061,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.response.ts",{"_index":2096,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["join.response.ts:5",{"_index":22010,"title":{},"body":{"classes/VideoConferenceJoinResponse.html":{}}}],["join.ts",{"_index":22005,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:5",{"_index":22008,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:7",{"_index":22007,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:9",{"_index":22006,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.uc.ts",{"_index":22011,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:11",{"_index":22012,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:18",{"_index":22014,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder",{"_index":22016,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.asguest(true",{"_index":22023,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.withrole(bbbrole.moderator",{"_index":22021,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joining",{"_index":21819,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["joinpath",{"_index":10365,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(...paths",{"_index":10386,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(path",{"_index":3583,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["joins",{"_index":22076,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["jose",{"_index":22227,"title":{},"body":{"dependencies.html":{}}}],["jpeg",{"_index":8911,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["js",{"_index":6596,"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":1442,"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":13733,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["json.parse(filecontent",{"_index":11766,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace",{"_index":11826,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace(/\\\\\\$/g",{"_index":11830,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify",{"_index":11734,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(collections",{"_index":7889,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["json.stringify(e.constraints",{"_index":8390,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["json.stringify(payload",{"_index":2602,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["json.stringify(response.body",{"_index":1514,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(response.error",{"_index":1511,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(sortedbsondocuments",{"_index":11793,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(where",{"_index":18579,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["jsondocuments",{"_index":3844,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["jsondocuments.length",{"_index":7962,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["jsonwebtoken",{"_index":1382,"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":1562,"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":15678,"title":{},"body":{"injectables/OauthAdapterService.html":{},"classes/OauthConfigResponse.html":{},"dependencies.html":{}}}],["jwksendpoint",{"_index":11575,"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":15677,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.jwksclient",{"_index":15680,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.signingkey",{"_index":15681,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksuri",{"_index":15671,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwt",{"_index":1417,"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":13117,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwt.decode(jwttoken",{"_index":1568,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwt.sign",{"_index":7079,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwt.verify(idtoken",{"_index":15574,"title":{},"body":{"injectables/OAuthService.html":{}}}],["jwt=${jwt",{"_index":11470,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["jwtauthguard",{"_index":13146,"title":{"injectables/JwtAuthGuard.html":{}},"body":{"injectables/JwtAuthGuard.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["jwtconstants",{"_index":1383,"title":{"interfaces/JwtConstants.html":{}},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions",{"_index":13190,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions.algorithm",{"_index":1420,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.audience",{"_index":1422,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.expiresin",{"_index":1424,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.header",{"_index":1428,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.issuer",{"_index":1426,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.secret",{"_index":1431,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor",{"_index":13165,"title":{"classes/JwtExtractor.html":{}},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor.fromcookie('jwt",{"_index":13187,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequest",{"_index":13184,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequestfunction",{"_index":13171,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["jwtfromresponse",{"_index":1488,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["jwtid",{"_index":1565,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtmodule",{"_index":1370,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmodule.register(jwtmoduleoptions",{"_index":1433,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmoduleoptions",{"_index":1371,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtoptions",{"_index":13152,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["jwtpayload",{"_index":1551,"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":7161,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.isexternaluser",{"_index":7168,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.roles",{"_index":7163,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.schoolid",{"_index":7164,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.support",{"_index":7167,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.systemid",{"_index":7162,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.userid",{"_index":7165,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtservice",{"_index":1526,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtstrategy",{"_index":1362,"title":{"injectables/JwtStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwttestfactory",{"_index":7075,"title":{"classes/JwtTestFactory.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwttoicurrentuser",{"_index":7133,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoicurrentuser(jwtpayload",{"_index":7137,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoken",{"_index":1541,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtvalidationadapter",{"_index":1363,"title":{"injectables/JwtValidationAdapter.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["k",{"_index":1646,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["kann",{"_index":4867,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["kc",{"_index":13289,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.clients.addprotocolmapper",{"_index":13461,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.create(cr",{"_index":13437,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.find",{"_index":13292,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.getclientsecret",{"_index":13294,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kc.clients.listprotocolmappers",{"_index":13453,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.update",{"_index":13438,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.updateprotocolmapper",{"_index":13458,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.create",{"_index":13472,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.createmapper",{"_index":13483,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.del",{"_index":13477,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.find",{"_index":13440,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.findmappers",{"_index":13478,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.update",{"_index":13475,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.updatemapper",{"_index":13479,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realmname",{"_index":13406,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.makerequest",{"_index":13402,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.update",{"_index":13296,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.users.count",{"_index":13614,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create",{"_index":13589,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create(idmuserrepresentation",{"_index":13692,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.del",{"_index":13727,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.del(id",{"_index":13599,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.find",{"_index":13615,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.findone",{"_index":13625,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.resetpassword",{"_index":13596,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.update",{"_index":13630,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadmin",{"_index":13348,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadminclient",{"_index":13266,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["kcadminservice",{"_index":13534,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["kcsettings",{"_index":13264,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.baseurl",{"_index":13280,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.realmname",{"_index":13281,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kebab",{"_index":23590,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["keep",{"_index":11775,"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":8256,"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":23069,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["kennung",{"_index":18041,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{}}}],["kernel",{"_index":22498,"title":{},"body":{"license.html":{}}}],["key",{"_index":1925,"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":15683,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["keycloak",{"_index":568,"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":13243,"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":12678,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak/service/keycloak",{"_index":12680,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak:/tmp/realms",{"_index":23665,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloakadminclient",{"_index":13242,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakadministration",{"_index":13228,"title":{"classes/KeycloakAdministration.html":{}},"body":{"classes/KeycloakAdministration.html":{}}}],["keycloakadministrationmodule",{"_index":12671,"title":{"modules/KeycloakAdministrationModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules.html":{}}}],["keycloakadministrationservice",{"_index":13240,"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":13303,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["keycloakconfigservice",{"_index":13499,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfiguration",{"_index":13246,"title":{"classes/KeycloakConfiguration.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloakinputfiles",{"_index":13330,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloaksettings",{"_index":13249,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["keycloakconfigurationinputfiles",{"_index":12081,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakconfigurationmodule",{"_index":13310,"title":{"modules/KeycloakConfigurationModule.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["keycloakconfigurationservice",{"_index":13315,"title":{"injectables/KeycloakConfigurationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfigurationuc",{"_index":11604,"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":11617,"title":{"classes/KeycloakConsole.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakconsole.retryflags",{"_index":11634,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakidentitymanagementoauthservice",{"_index":12679,"title":{"injectables/KeycloakIdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakidentitymanagementservice",{"_index":12681,"title":{"injectables/KeycloakIdentityManagementService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakinputfiles",{"_index":13305,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["keycloakmanagementcontroller",{"_index":13319,"title":{"controllers/KeycloakManagementController.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakmanagementuc",{"_index":13658,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["keycloakmigrationservice",{"_index":13317,"title":{"injectables/KeycloakMigrationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{}}}],["keycloakmodule",{"_index":12672,"title":{"modules/KeycloakModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["keycloakseedservice",{"_index":13316,"title":{"classes/KeycloakSeedService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloaksettings",{"_index":12086,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakuser",{"_index":13602,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers",{"_index":13606,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.length",{"_index":13610,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.map((user",{"_index":13622,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keypair",{"_index":7066,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.privatekey.export",{"_index":7074,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.publickey.export",{"_index":7071,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypairkeyobjectresult",{"_index":7065,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keys",{"_index":567,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/JwtConstants.html":{},"license.html":{}}}],["keyvalue",{"_index":1592,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["keywords",{"_index":22955,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["kickuserfromgroup(groupname",{"_index":1038,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["kind",{"_index":22465,"title":{},"body":{"license.html":{}}}],["kinds",{"_index":22372,"title":{},"body":{"license.html":{}}}],["kiss",{"_index":23176,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["know",{"_index":22394,"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":23217,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["knowingly",{"_index":22821,"title":{},"body":{"license.html":{}}}],["knowledge",{"_index":22828,"title":{},"body":{"license.html":{}}}],["known",{"_index":11850,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["known/jwks.json",{"_index":11577,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["known/openid",{"_index":13286,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kontinuierlich",{"_index":4860,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ktid",{"_index":18118,"title":{},"body":{"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["kurse",{"_index":6604,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["l.course.isfinished()).map((l",{"_index":20058,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.id",{"_index":20059,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.name",{"_index":14191,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["label",{"_index":22340,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["labelnames",{"_index":17460,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["labels",{"_index":17462,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["language",{"_index":4202,"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":11823,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["languagetype",{"_index":4203,"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":4204,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["largely",{"_index":23432,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["larger",{"_index":22597,"title":{},"body":{"license.html":{}}}],["last",{"_index":7054,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{}}}],["lastauthorizationtime",{"_index":13253,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["lastloginsystemchange",{"_index":12598,"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":18470,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangebetweenstart",{"_index":18469,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangesmallerthan",{"_index":18452,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastmodifytimestamp",{"_index":12398,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastname",{"_index":652,"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":13041,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["lastnamesearchvalues",{"_index":11815,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["lastsuccessfulfullsync",{"_index":12396,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsuccessfulpartialsync",{"_index":12397,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsyncattempt",{"_index":12395,"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":3678,"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":964,"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":15690,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["lastvaluefrom(this.httpservice.get>(wellknownurl))).data",{"_index":13542,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["later",{"_index":3396,"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":15277,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/ToolConfigurationController.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["laufzeit",{"_index":18020,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["launch",{"_index":2592,"title":{},"body":{"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":20398,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch.controller.ts",{"_index":20573,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.controller.ts:28",{"_index":20584,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.mapper.ts",{"_index":20601,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:24",{"_index":20607,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:29",{"_index":20612,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:34",{"_index":20609,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:39",{"_index":20615,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.module.ts",{"_index":20637,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch.params.ts",{"_index":20642,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.params.ts:7",{"_index":20643,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.service.ts",{"_index":20659,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:22",{"_index":20664,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:38",{"_index":20666,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:51",{"_index":20668,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:73",{"_index":20672,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:86",{"_index":20670,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.strategy",{"_index":2591,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts",{"_index":2530,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.uc.ts",{"_index":20690,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:11",{"_index":20692,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:18",{"_index":20694,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch/controller/dto/tool",{"_index":20641,"title":{},"body":{"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launch/controller/tool",{"_index":20397,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["launch/error/missing",{"_index":14990,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["launch/error/parameter",{"_index":16597,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launch/error/tool",{"_index":20838,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launch/mapper/lti",{"_index":14630,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["launch/mapper/tool",{"_index":20600,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch/service/auto",{"_index":1834,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["launch/service/launch",{"_index":2528,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch/service/lti11",{"_index":14573,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["launch/service/tool",{"_index":20658,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch/settings",{"_index":22981,"title":{},"body":{"todo.html":{}}}],["launch/tool",{"_index":20636,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch/types/authentication",{"_index":1590,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["launch/types/property",{"_index":16898,"title":{},"body":{"classes/PropertyData.html":{}}}],["launch/types/tool",{"_index":20592,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{}}}],["launch/uc",{"_index":20399,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch/uc/tool",{"_index":20689,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch_presentation_locale",{"_index":7368,"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":5235,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["launchdata",{"_index":20685,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launchdatatype",{"_index":20610,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launched",{"_index":20583,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launching",{"_index":16602,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launchrequest",{"_index":20680,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["launchrequestmethod",{"_index":2554,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.get",{"_index":2606,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.post",{"_index":2605,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["law",{"_index":22456,"title":{},"body":{"license.html":{}}}],["laws",{"_index":22435,"title":{},"body":{"license.html":{}}}],["lawsuit",{"_index":22794,"title":{},"body":{"license.html":{}}}],["lax",{"_index":16290,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["layer",{"_index":20709,"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":23329,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["layers",{"_index":22963,"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":16643,"title":{},"body":{"injectables/PermissionService.html":{}}}],["ldap",{"_index":12941,"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":14491,"title":{},"body":{"controllers/LoginController.html":{}}}],["ldap_connection_failed",{"_index":13774,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["ldap_password_encryption_key",{"_index":8350,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["ldap_univention_migration",{"_index":12206,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapactive",{"_index":19397,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{}}}],["ldapalreadypersistedexception",{"_index":13735,"title":{"classes/LdapAlreadyPersistedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["ldapauthorizationbodyparams",{"_index":13749,"title":{"classes/LdapAuthorizationBodyParams.html":{}},"body":{"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{}}}],["ldapconfig",{"_index":12343,"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":12375,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.federalstate",{"_index":12376,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastmodifytimestamp",{"_index":12384,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulfullsync",{"_index":12380,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulpartialsync",{"_index":12382,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsyncattempt",{"_index":12378,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provider",{"_index":12392,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provideroptions",{"_index":12394,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.rootpath",{"_index":12387,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuser",{"_index":12389,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuserpassword",{"_index":12391,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.url",{"_index":12385,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconnectionerror",{"_index":13769,"title":{"classes/LdapConnectionError.html":{}},"body":{"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{}}}],["ldapdn",{"_index":4214,"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":8341,"title":{},"body":{"modules/EncryptionModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{}}}],["ldapid",{"_index":12053,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["ldapjs",{"_index":13783,"title":{},"body":{"injectables/LdapService.html":{},"dependencies.html":{}}}],["ldapjs.git",{"_index":22233,"title":{},"body":{"dependencies.html":{}}}],["ldaps:mock.de:389",{"_index":19443,"title":{},"body":{"classes/SystemFactory.html":{}}}],["ldapschool",{"_index":13128,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapschoolidentifier",{"_index":12218,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapservice",{"_index":1364,"title":{"injectables/LdapService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{}}}],["ldapservice:connect",{"_index":13802,"title":{},"body":{"injectables/LdapService.html":{}}}],["ldapstrategy",{"_index":1365,"title":{"injectables/LdapStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["ldapuniventionmigrationschool",{"_index":12207,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapuser",{"_index":13121,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapuser.roles.map((roleref",{"_index":13130,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapusermigrationexception",{"_index":13738,"title":{"classes/LdapUserMigrationException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["lead",{"_index":4150,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{}}}],["leads",{"_index":19923,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["leaf",{"_index":3247,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["lean",{"_index":22242,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["learn",{"_index":23058,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["learner",{"_index":7173,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["learning",{"_index":10797,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{}}}],["learningmodules",{"_index":5334,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["learnroom",{"_index":3546,"title":{},"body":{"modules/BoardModule.html":{},"injectables/DashboardModelMapper.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["learnroom.module",{"_index":13873,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["learnroomapimodule",{"_index":13858,"title":{"modules/LearnroomApiModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["learnroommetadata",{"_index":6584,"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":13862,"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":6585,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["learnroomtypes.course",{"_index":6663,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["leave",{"_index":6182,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["leaves",{"_index":20329,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["left",{"_index":23244,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["legacy",{"_index":949,"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":23801,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/feathers",{"_index":23124,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/feathers/mocha",{"_index":23101,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/nest",{"_index":23010,"title":{},"body":{"todo.html":{}}}],["legacylogger",{"_index":2254,"title":{"injectables/LegacyLogger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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":13923,"title":{"modules/LegacySchoolApiModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["legacyschoolcontroller",{"_index":13932,"title":{"controllers/LegacySchoolController.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["legacyschooldo",{"_index":1905,"title":{"classes/LegacySchoolDo.html":{}},"body":{"injectables/AutoSchoolNumberStrategy.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":14008,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory",{"_index":14001,"title":{"classes/LegacySchoolFactory.html":{}},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory.define(legacyschooldo",{"_index":14009,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolmodule",{"_index":5381,"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":1366,"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":1706,"title":{"injectables/LegacySchoolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/RuleManager.html":{}}}],["legacyschoolservice",{"_index":1900,"title":{"injectables/LegacySchoolService.html":{}},"body":{"injectables/AutoSchoolNumberStrategy.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":13928,"title":{"injectables/LegacySchoolUc.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["legal",{"_index":22402,"title":{},"body":{"license.html":{}}}],["legayschoolrule",{"_index":17872,"title":{},"body":{"injectables/RuleManager.html":{}}}],["legend",{"_index":205,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":3489,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GroupUcMapper.html":{}}}],["lernstore",{"_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":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lernstore_view",{"_index":12216,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["lesson",{"_index":2637,"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":23789,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson.contents.foreach((content",{"_index":5100,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lesson.contents.map((c",{"_index":14311,"title":{},"body":{"injectables/LessonService.html":{}}}],["lesson.course",{"_index":17759,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRepo.html":{}}}],["lesson.course.name",{"_index":8201,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.coursegroup",{"_index":19846,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["lesson.coursename",{"_index":17718,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.createdat",{"_index":8199,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.entity",{"_index":2626,"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":8204,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofplannedtasks",{"_index":8206,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofpublishedtasks",{"_index":8202,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.hidden",{"_index":8198,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["lesson.id",{"_index":8197,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.module",{"_index":14149,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["lesson.name",{"_index":5098,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofdrafttasks",{"_index":17716,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofplannedtasks",{"_index":17717,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofpublishedtasks",{"_index":17715,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.response",{"_index":3412,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["lesson.response.ts",{"_index":3416,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:27",{"_index":3426,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:31",{"_index":3427,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:35",{"_index":3423,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:40",{"_index":3432,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:46",{"_index":3429,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:5",{"_index":3421,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:52",{"_index":3430,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:55",{"_index":3424,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:58",{"_index":3433,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:61",{"_index":3425,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.rule",{"_index":19953,"title":{},"body":{"injectables/TaskRule.html":{}}}],["lesson.updatedat",{"_index":8200,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson/task",{"_index":18773,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["lessonapimodule",{"_index":14142,"title":{"modules/LessonApiModule.html":{}},"body":{"modules/LessonApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["lessonboardelement",{"_index":2636,"title":{"entities/LessonBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/LessonBoardElement.html":{}}}],["lessoncontroller",{"_index":14148,"title":{"controllers/LessonController.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{}}}],["lessoncopyapiparams",{"_index":6459,"title":{"classes/LessonCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"classes/LessonCopyApiParams.html":{},"controllers/RoomsController.html":{}}}],["lessoncopyparentparams",{"_index":6461,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/LessonCopyUC.html":{}}}],["lessoncopyservice",{"_index":2946,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/ShareTokenUC.html":{}}}],["lessoncopyuc",{"_index":13864,"title":{"injectables/LessonCopyUC.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{}}}],["lessonelement",{"_index":3044,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["lessonelements",{"_index":3652,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["lessonentity",{"_index":2625,"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":14211,"title":{"classes/LessonFactory.html":{}},"body":{"classes/LessonFactory.html":{}}}],["lessonfactory.define",{"_index":14213,"title":{},"body":{"classes/LessonFactory.html":{}}}],["lessonhidden",{"_index":12465,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonid",{"_index":5067,"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":19888,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["lessonidsoffinishedcourses",{"_index":19853,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonidsofopencourses",{"_index":19851,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonmetadata",{"_index":8163,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lessonmodule",{"_index":13863,"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":12464,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonreadpermission",{"_index":14252,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonreadpermission(user",{"_index":14262,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonrepo",{"_index":1745,"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":1707,"title":{"injectables/LessonRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{}}}],["lessons",{"_index":5092,"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":20057,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.foreach((lesson",{"_index":5094,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lessons.map((l",{"_index":20080,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.map((lesson",{"_index":14310,"title":{},"body":{"injectables/LessonService.html":{}}}],["lessonscope",{"_index":14235,"title":{"classes/LessonScope.html":{}},"body":{"injectables/LessonRepo.html":{},"classes/LessonScope.html":{}}}],["lessonservice",{"_index":5052,"title":{"injectables/LessonService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/ShareTokenService.html":{}}}],["lessonuc",{"_index":14146,"title":{"injectables/LessonUC.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonUC.html":{}}}],["lessonurlparams",{"_index":14155,"title":{"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{}},"body":{"controllers/LessonController.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"controllers/RoomsController.html":{}}}],["lessonwritepermission",{"_index":14253,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonwritepermission(user",{"_index":14264,"title":{},"body":{"injectables/LessonRule.html":{}}}],["letter",{"_index":748,"title":{},"body":{"injectables/AccountRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["letters",{"_index":23584,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["letting",{"_index":22420,"title":{},"body":{"license.html":{}}}],["level",{"_index":3551,"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":3597,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["levels",{"_index":14454,"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":22711,"title":{},"body":{"license.html":{}}}],["liable",{"_index":22453,"title":{},"body":{"license.html":{}}}],["libraries",{"_index":22492,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["libraries/:ubername/:file",{"_index":11396,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["library",{"_index":22650,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["license",{"_index":12110,"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":22439,"title":{},"body":{"license.html":{}}}],["licensee",{"_index":22440,"title":{},"body":{"license.html":{}}}],["licensees",{"_index":22442,"title":{},"body":{"license.html":{}}}],["licenses",{"_index":22378,"title":{},"body":{"license.html":{}}}],["licensing",{"_index":22772,"title":{},"body":{"license.html":{}}}],["licensors",{"_index":22719,"title":{},"body":{"license.html":{}}}],["likes",{"_index":23594,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["likewise",{"_index":22764,"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/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":22903,"title":{},"body":{"license.html":{}}}],["limited",{"_index":22892,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["limiting",{"_index":22710,"title":{},"body":{"license.html":{}}}],["line",{"_index":998,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"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":23155,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["link",{"_index":2173,"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":{},"classes/GetMetaTagDataBody.html":{},"modules/ImportUserModule.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/MetaTagExtractorController.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":5714,"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":22509,"title":{},"body":{"license.html":{}}}],["linkedtool",{"_index":17316,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["linkelement",{"_index":2808,"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":5730,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["linkelement.id",{"_index":17367,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.imageurl",{"_index":5741,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.title",{"_index":5728,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.url",{"_index":5726,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementcontent",{"_index":14358,"title":{"classes/LinkElementContent.html":{}},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementcontentbody",{"_index":8246,"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":8281,"title":{},"body":{"controllers/ElementController.html":{}}}],["linkelementnode",{"_index":3151,"title":{"entities/LinkElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementnodeprops",{"_index":14366,"title":{"interfaces/LinkElementNodeProps.html":{}},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["linkelementprops",{"_index":14356,"title":{"interfaces/LinkElementProps.html":{}},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["linkelementresponse",{"_index":3996,"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":5650,"title":{"classes/LinkElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementresponsemapper.getinstance",{"_index":5637,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["linkelementresponsemapper.instance",{"_index":14375,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["linkid",{"_index":7367,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["linter",{"_index":22997,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["liskov",{"_index":23163,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["list",{"_index":319,"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":19379,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["list.response.ts",{"_index":813,"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":4064,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:4",{"_index":4062,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:5",{"_index":817,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["list.response.ts:6",{"_index":5803,"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":9349,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list_files_of_parent",{"_index":11934,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["listconsentsessions",{"_index":15969,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["listconsentsessions(@currentuser",{"_index":16056,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(currentuser",{"_index":15989,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(user",{"_index":16175,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listconsentsessions(userid",{"_index":16193,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["listenercount",{"_index":2109,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["listening",{"_index":1290,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["listfilesofparent",{"_index":10515,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent(param",{"_index":10523,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["listfilesofparent(payload",{"_index":10705,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:finished",{"_index":10723,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:started",{"_index":10721,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listoauth2clients",{"_index":15898,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["listoauth2clients(currentuser",{"_index":15908,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["listoauth2clients(limit",{"_index":16177,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listoauthclientsparams",{"_index":14380,"title":{"classes/ListOauthClientsParams.html":{}},"body":{"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{}}}],["listobjectscommand",{"_index":17931,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["listresponse",{"_index":19100,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["lists",{"_index":10391,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/ToolConfigurationController.html":{}}}],["listsequal",{"_index":2656,"title":{},"body":{"entities/Board.html":{}}}],["literal",{"_index":120,"title":{},"body":{"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":22792,"title":{},"body":{"license.html":{}}}],["load",{"_index":1761,"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":22974,"title":{},"body":{"todo.html":{}}}],["load/persist",{"_index":23272,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["loadaccount",{"_index":1521,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccount(username",{"_index":1533,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccounts",{"_index":13702,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["loadallcollectionsfromdatabase(targetfolder",{"_index":11709,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadallcollectionsfromfilesystem(basedir",{"_index":11715,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadauthorizableobject",{"_index":12165,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["loadauthorizableobject(objectname",{"_index":17406,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11723,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loaded",{"_index":4060,"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":9497,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loaded.version",{"_index":9498,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loadedexternaltool",{"_index":5423,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedexternaltool.parameters",{"_index":5463,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["loadedexternaltool.version",{"_index":18336,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedoauthclient",{"_index":9394,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedoauthclient.client_id",{"_index":9436,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedpseudonym",{"_index":9767,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["loadedschoolexternaltool",{"_index":6175,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedtool",{"_index":9385,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.clientid",{"_index":9542,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.type",{"_index":9538,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loader",{"_index":1683,"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":20710,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loadings",{"_index":20712,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["loads",{"_index":4549,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{}}}],["loadtoolhierarchy",{"_index":20663,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadtoolhierarchy(schoolexternaltoolid",{"_index":20671,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadusers",{"_index":13703,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["local",{"_index":1451,"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":14393,"title":{"classes/LocalAuthorizationBodyParams.html":{}},"body":{"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{}}}],["localcookies",{"_index":6209,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["localcookies.includes(cookie",{"_index":11562,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localcookies.push(cookie",{"_index":11563,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto",{"_index":11531,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig",{"_index":11555,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig.headers",{"_index":11550,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies",{"_index":11544,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.hydracookies.join",{"_index":11548,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.localcookies.join",{"_index":11549,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.currentredirect",{"_index":11556,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.referer",{"_index":11551,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response",{"_index":11553,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers",{"_index":11534,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers.location",{"_index":11533,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers['set",{"_index":11542,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localfallback",{"_index":1135,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["localfield",{"_index":21626,"title":{},"body":{"injectables/UserRepo.html":{}}}],["localhost",{"_index":1127,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["localhost:15672",{"_index":23037,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["localhost:27017\"}]})start",{"_index":23678,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["localhost:3030",{"_index":23074,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["locally",{"_index":10694,"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":1367,"title":{"injectables/LocalStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LocalStrategy.html":{}}}],["locate",{"_index":23340,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["located",{"_index":23254,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["location",{"_index":7276,"title":{},"body":{"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":11535,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["location.startswith(configuration.get('hydra_public_uri",{"_index":11537,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["locationmapping",{"_index":9241,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterdo.location",{"_index":9335,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterparam.location",{"_index":9284,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["locations",{"_index":11538,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["lockid",{"_index":9971,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["lodash",{"_index":646,"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":8391,"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":12102,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["log/response",{"_index":22999,"title":{},"body":{"todo.html":{}}}],["loggable",{"_index":1275,"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/UnknownQueryTypeLoggableException.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":21256,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:13",{"_index":21258,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:8",{"_index":21257,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.getlogmessage",{"_index":14481,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["loggable.ts",{"_index":1271,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:10",{"_index":1292,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:13",{"_index":1293,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:3",{"_index":8831,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:6",{"_index":8832,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable/error.loggable",{"_index":10912,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["loggable/news",{"_index":15292,"title":{},"body":{"injectables/NewsUc.html":{}}}],["loggable/oauth",{"_index":11446,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{}}}],["loggable/preview",{"_index":16711,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["loggables",{"_index":12092,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logged",{"_index":20522,"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":2253,"title":{"injectables/Logger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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/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":16883,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.error(error",{"_index":3904,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.info",{"_index":16897,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.info(`could",{"_index":23470,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["logger.interface",{"_index":13907,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.interface.ts",{"_index":12091,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:11",{"_index":12101,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:12",{"_index":12103,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:13",{"_index":12098,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:14",{"_index":12105,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:15",{"_index":12095,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.log(msg",{"_index":3907,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.service",{"_index":14452,"title":{},"body":{"modules/LoggerModule.html":{}}}],["logger.service.ts",{"_index":13885,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:22",{"_index":13889,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:26",{"_index":13895,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:30",{"_index":13900,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:34",{"_index":13892,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:38",{"_index":13894,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:42",{"_index":13893,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:50",{"_index":13897,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:54",{"_index":13891,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:58",{"_index":13899,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.setcontext(durationlogginginterceptor.name",{"_index":8234,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logger.setcontext(redismodule.name",{"_index":17402,"title":{},"body":{"modules/RedisModule.html":{}}}],["logger.setcontext(servermodule.name",{"_index":18657,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.setcontext(servertestmodule.name",{"_index":18665,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.ts",{"_index":8408,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:12",{"_index":8419,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:17",{"_index":8415,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:22",{"_index":8417,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:27",{"_index":8421,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:9",{"_index":8413,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.warn",{"_index":18639,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger/interfaces",{"_index":8375,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logger/types",{"_index":8376,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["loggermodule",{"_index":214,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":6505,"title":{"additional-documentation/nestjs-application/logging.html":{}},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logging.error",{"_index":17480,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts",{"_index":8224,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:10",{"_index":8227,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:12",{"_index":17468,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:15",{"_index":8231,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:9",{"_index":17467,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.utils",{"_index":8425,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils",{"_index":8424,"title":{"classes/LoggingUtils.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{}}}],["loggingutils.createmessagewithcontext(loggable",{"_index":8427,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils.isinstanceofloggable(error",{"_index":10918,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["logic",{"_index":12324,"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":128,"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":1483,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["login.query.ts",{"_index":18011,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:13",{"_index":18013,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:8",{"_index":18015,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.response",{"_index":15837,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts",{"_index":15834,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts:9",{"_index":15835,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login_block_time",{"_index":1576,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["login_challenge",{"_index":5542,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["login_hint",{"_index":16386,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["login_required",{"_index":5517,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["login_session_id",{"_index":5543,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["loginchallenge",{"_index":5562,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["logincontroller",{"_index":1322,"title":{"controllers/LoginController.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["logindto",{"_index":1556,"title":{"classes/LoginDto.html":{}},"body":{"injectables/AuthenticationService.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{}}}],["logindto.accesstoken",{"_index":14560,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["loginldap",{"_index":14485,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(@currentuser",{"_index":14513,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(user",{"_index":14488,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal",{"_index":14486,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(@currentuser",{"_index":14519,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(user",{"_index":14495,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginname",{"_index":10744,"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":13044,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["loginoauth2",{"_index":14487,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginoauth2(user",{"_index":14499,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginpath",{"_index":1446,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["loginrequestbody",{"_index":14528,"title":{"classes/LoginRequestBody.html":{}},"body":{"classes/LoginRequestBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember",{"_index":16137,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember_for",{"_index":16138,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginresponse",{"_index":14492,"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":16117,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse.client.client_id",{"_index":16106,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse:5",{"_index":15836,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["loginresponsemapper",{"_index":14506,"title":{"classes/LoginResponseMapper.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{}}}],["loginresponsemapper.maptologinresponse(logindto",{"_index":14515,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginresponsemapper.maptooauthloginresponse(logindto",{"_index":14522,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginsessionid",{"_index":5565,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["loginuc",{"_index":1320,"title":{"injectables/LoginUc.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{}}}],["loginurl",{"_index":21497,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('migration",{"_index":21573,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('postloginredirect",{"_index":21572,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.tostring",{"_index":21574,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginuseruc",{"_index":23305,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["logmessage",{"_index":1276,"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/UnknownQueryTypeLoggableException.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":8381,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logmessagedata",{"_index":1277,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/NewsMapper.html":{}}}],["logmessagewithcontext",{"_index":14476,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["logmigrationinformation",{"_index":21397,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logmigrationinformation(userid",{"_index":21406,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logo",{"_index":7387,"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":9529,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["logo.service.ts",{"_index":8839,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:114",{"_index":8850,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:26",{"_index":8846,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:34",{"_index":8848,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:46",{"_index":8860,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:61",{"_index":8855,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:73",{"_index":8853,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:97",{"_index":8857,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.ts",{"_index":8811,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:2",{"_index":8814,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:4",{"_index":8813,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo_url",{"_index":7185,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["logobase64",{"_index":8764,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["logobinarydata",{"_index":8899,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logourl",{"_index":5807,"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":11957,"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":11578,"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":16122,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflow(challenge",{"_index":16124,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflowuc",{"_index":16018,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["logoutresponse",{"_index":16126,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logouturl",{"_index":1962,"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":1028,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["logs",{"_index":5527,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["lokalisierung",{"_index":18045,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["long",{"_index":5509,"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":23582,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["look",{"_index":13156,"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":14389,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["looks",{"_index":23195,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lookup",{"_index":11994,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/UserRepo.html":{}}}],["lookup.service",{"_index":633,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["lookup.service.ts",{"_index":559,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:15",{"_index":585,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:27",{"_index":597,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:44",{"_index":588,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookupsharetoken",{"_index":18705,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["lookupsharetoken(currentuser",{"_index":18721,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["lookupsharetoken(userid",{"_index":18891,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["lookuptoken",{"_index":18839,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptoken(token",{"_index":18848,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname",{"_index":18840,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname(token",{"_index":18850,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["loop",{"_index":11472,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["loss",{"_index":22910,"title":{},"body":{"license.html":{}}}],["losses",{"_index":22913,"title":{},"body":{"license.html":{}}}],["lot",{"_index":23533,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["low",{"_index":23249,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lower",{"_index":23174,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lowercase",{"_index":12054,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lt",{"_index":21668,"title":{},"body":{"classes/UserScope.html":{}}}],["lte",{"_index":3600,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/FilesRepo.html":{},"classes/NewsScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{}}}],["lti",{"_index":5212,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/NextcloudStrategy.html":{}}}],["lti11config",{"_index":9119,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.baseurl",{"_index":9159,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.key",{"_index":9164,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.launch_presentation_locale",{"_index":9169,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.lti_message_type",{"_index":9166,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.privacy_permission",{"_index":9168,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.resource_link_id",{"_index":9167,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.secret",{"_index":9165,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.type",{"_index":9158,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11encryptionservice",{"_index":14572,"title":{"injectables/Lti11EncryptionService.html":{}},"body":{"injectables/Lti11EncryptionService.html":{},"modules/ToolLaunchModule.html":{}}}],["lti11toolconfig",{"_index":7339,"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":9216,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigcreateparams",{"_index":8699,"title":{"classes/Lti11ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Lti11ToolConfigCreateParams.html":{}}}],["lti11toolconfigentity",{"_index":8766,"title":{"classes/Lti11ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfigEntity.html":{}}}],["lti11toolconfigfactory",{"_index":7361,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigfactory.build(customparam",{"_index":7382,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigresponse",{"_index":9295,"title":{"classes/Lti11ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["lti11toolconfigupdate",{"_index":9220,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigupdateparams",{"_index":9218,"title":{"classes/Lti11ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["lti11toollaunchstrategy",{"_index":20635,"title":{},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["lti_message_type",{"_index":7186,"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":7187,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["ltimessagetype",{"_index":7336,"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":7366,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission",{"_index":7180,"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":7189,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalToolEntityFactory.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{}}}],["ltiprivacypermission.name",{"_index":14698,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiprivacypermission.pseudonymous",{"_index":7365,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltirepo",{"_index":11504,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["ltirole",{"_index":14635,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.administrator",{"_index":14640,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.instructor",{"_index":14639,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.learner",{"_index":14638,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirolemapper",{"_index":14629,"title":{"classes/LtiRoleMapper.html":{}},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles",{"_index":14642,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles.filter",{"_index":14646,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroletype",{"_index":7172,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["ltiroletype.instructor",{"_index":14699,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype.learner",{"_index":14700,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype})@property({nullable",{"_index":14665,"title":{},"body":{"entities/LtiTool.html":{}}}],["ltitool",{"_index":7184,"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":14722,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["ltitooldo",{"_index":7251,"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":14690,"title":{"classes/LtiToolFactory.html":{}},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolfactory.define(ltitool",{"_index":14696,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolmodule",{"_index":14701,"title":{"modules/LtiToolModule.html":{}},"body":{"modules/LtiToolModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["ltitoolpromise",{"_index":15431,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ltitoolrepo",{"_index":4616,"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":7183,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["ltitoolservice",{"_index":14705,"title":{"injectables/LtiToolService.html":{}},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["ltitoolstabenabled",{"_index":12579,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["lumieducation/h5p",{"_index":22147,"title":{},"body":{"dependencies.html":{}}}],["m=256m",{"_index":23670,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["machine",{"_index":22607,"title":{},"body":{"license.html":{}}}],["made",{"_index":22409,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["magic",{"_index":16082,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["mail",{"_index":1310,"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":14776,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mail.service",{"_index":14770,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mail_service_options",{"_index":14771,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailattachment",{"_index":1296,"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":1304,"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":14765,"title":{"modules/MailModule.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["mailmodule.forroot",{"_index":18624,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mailmoduleoptions",{"_index":14767,"title":{"interfaces/MailModuleOptions.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailservice",{"_index":14769,"title":{"injectables/MailService.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mailserviceoptions",{"_index":14773,"title":{"interfaces/MailServiceOptions.html":{}},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["main",{"_index":22344,"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":9841,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["maintain",{"_index":22633,"title":{},"body":{"license.html":{}}}],["maintainability",{"_index":23146,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["maintenance",{"_index":14965,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["major",{"_index":22495,"title":{},"body":{"license.html":{}}}],["make",{"_index":1668,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"modules/CommonToolModule.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserScope.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/PermissionService.html":{},"classes/RecursiveSaveVisitor.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":22536,"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":20872,"title":{},"body":{"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["makse",{"_index":14197,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["manage",{"_index":10089,"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":14518,"title":{},"body":{"controllers/LoginController.html":{}}}],["managed.'})@apiresponse({status",{"_index":14497,"title":{},"body":{"controllers/LoginController.html":{}}}],["management",{"_index":600,"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":12014,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{}}}],["management.console",{"_index":14786,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.console.ts",{"_index":3443,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["management.console.ts:12",{"_index":7864,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:14",{"_index":3453,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:31",{"_index":7871,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:58",{"_index":7868,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:7",{"_index":3448,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:72",{"_index":7876,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.controller",{"_index":14789,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.controller.ts",{"_index":7898,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:18",{"_index":7911,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:23",{"_index":7908,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:28",{"_index":7905,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:33",{"_index":7917,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:9",{"_index":7914,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.integration.spec.ts",{"_index":23649,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.module",{"_index":14798,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/SystemModule.html":{}}}],["management.module.ts",{"_index":7932,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{}}}],["management.service",{"_index":7933,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["management.service.integration.spec.tsseeding",{"_index":23651,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.service.ts",{"_index":7934,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:100",{"_index":12727,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:11",{"_index":7959,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:15",{"_index":7955,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:17",{"_index":12703,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:170",{"_index":13572,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:186",{"_index":13574,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:20",{"_index":7956,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:26",{"_index":12729,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:32",{"_index":7952,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:35",{"_index":12731,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:38",{"_index":7944,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:43",{"_index":12715,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:44",{"_index":7953,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:51",{"_index":12708,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:52",{"_index":7946,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:58",{"_index":7948,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:59",{"_index":12712,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:62",{"_index":7950,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:66",{"_index":7957,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:67",{"_index":12718,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:74",{"_index":12719,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:8",{"_index":7942,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:81",{"_index":12706,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:89",{"_index":12722,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:9",{"_index":13566,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.uc",{"_index":3459,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["management.uc.ts",{"_index":3469,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["management.uc.ts:13",{"_index":3476,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:16",{"_index":3477,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:39",{"_index":3481,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:49",{"_index":3479,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:60",{"_index":3483,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:71",{"_index":3488,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:75",{"_index":3492,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:79",{"_index":3485,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management/database",{"_index":7899,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management/identity",{"_index":12013,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["management/idm",{"_index":13645,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["management/keycloak",{"_index":11599,"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":18574,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["management/keycloak/keycloak.module.ts",{"_index":13700,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["management/keycloak/service/keycloak",{"_index":13529,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["managementmodule",{"_index":14779,"title":{"modules/ManagementModule.html":{}},"body":{"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["managementservermodule",{"_index":14793,"title":{"modules/ManagementServerModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["managementservertestmodule",{"_index":14800,"title":{"modules/ManagementServerTestModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["manager",{"_index":1821,"title":{},"body":{"injectables/AuthorizationService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["manager.ts",{"_index":17868,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:23",{"_index":17873,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:57",{"_index":17877,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:64",{"_index":17875,"title":{},"body":{"injectables/RuleManager.html":{}}}],["mandatory",{"_index":11856,"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":21262,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:11",{"_index":21264,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:4",{"_index":21263,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.params",{"_index":21185,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["mandatory.params.ts",{"_index":21267,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory.params.ts:7",{"_index":21268,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory/optional",{"_index":21168,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"todo.html":{}}}],["mandatorysince",{"_index":21215,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["manifest",{"_index":5175,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["manner",{"_index":22809,"title":{},"body":{"license.html":{}}}],["manual",{"_index":10762,"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":23358,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["manufacture",{"_index":8132,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["many",{"_index":20375,"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":2618,"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":2615,"title":{},"body":{"entities/Board.html":{}}}],["manytomany('course",{"_index":7640,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytomany('material",{"_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":{}}}],["manytomany('user",{"_index":6607,"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":6547,"title":{},"body":{"entities/Course.html":{},"entities/SchoolEntity.html":{}}}],["manytomany({entity",{"_index":17588,"title":{},"body":{"entities/Role.html":{}}}],["manytoone",{"_index":5040,"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":5038,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["manytoone('course",{"_index":6825,"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":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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["manytoone('dashboardmodelentity",{"_index":7641,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytoone('lessonentity",{"_index":12468,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytoone('task",{"_index":12290,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["manytoone('teamentity",{"_index":6957,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["manytoone('user",{"_index":6932,"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":6819,"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":8741,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{}}}],["map",{"_index":2588,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"injectables/DeleteFilesUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageMapper.html":{},"classes/GridElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"classes/MetadataTypeMapper.html":{},"injectables/OAuth2ToolLaunchStrategy.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":6484,"title":{},"body":{"classes/CopyMapper.html":{}}}],["map((elementwithposition",{"_index":7689,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["map((entity",{"_index":19495,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["map((group",{"_index":18114,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((groupuser",{"_index":11303,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["map((match",{"_index":13052,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["map((relation",{"_index":18125,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((role",{"_index":21034,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["map((rolename",{"_index":21461,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["map((teacher",{"_index":5132,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["map(async",{"_index":11748,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["map.set(key",{"_index":6451,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map.set(status.originalentity.id",{"_index":6453,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map[node.id",{"_index":3330,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["map[node.pathofchildren",{"_index":3621,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["map[node.pathofchildren].push(desc",{"_index":3622,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["mapaccountstodto",{"_index":414,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapaccountstodto(accounts",{"_index":417,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapbasictoolconfigdotoentity",{"_index":9107,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoentity(lti11config",{"_index":9117,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoresponse",{"_index":9303,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigdotoresponse(externaltoolconfigdo",{"_index":9308,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigtodo",{"_index":9108,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigtodo(lti11config",{"_index":9120,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapboardelements",{"_index":17670,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapbodytodto",{"_index":20180,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapbodytodto(body",{"_index":20181,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapclasstoclassinfodto",{"_index":11284,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapclasstoclassinfodto(clazz",{"_index":11287,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapcolumnboard",{"_index":17671,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapcolumnboardelement",{"_index":8133,"title":{},"body":{"classes/DtoCreator.html":{}}}],["mapcolumnboardelement(element",{"_index":8153,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mapconsentresponse",{"_index":16139,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentresponse(consent",{"_index":16144,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse",{"_index":16140,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse(session",{"_index":16146,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapcontenttoresource",{"_index":5049,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontenttoresource(lessonid",{"_index":5064,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontextexternaltoolrequest",{"_index":5979,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolrequest(request",{"_index":5981,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolresponse",{"_index":6019,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontextexternaltoolresponse(contextexternaltool",{"_index":6022,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontexttypetodotype",{"_index":5911,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetodotype(type",{"_index":5925,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype",{"_index":5912,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype(type",{"_index":5927,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto",{"_index":10534,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto(copyfilelistresponse",{"_index":10540,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto",{"_index":10535,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto(response",{"_index":10542,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcourseteacherstocopyrightowners",{"_index":5050,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseteacherstocopyrightowners(course",{"_index":5069,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseuserstousergroup",{"_index":3089,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcourseuserstousergroup(course",{"_index":3096,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcreateacceptloginrequestbody",{"_index":16134,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreateacceptloginrequestbody(loginrequestbody",{"_index":16135,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreatenewstodomain",{"_index":15137,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreatenewstodomain(params",{"_index":15141,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreaterequest",{"_index":9191,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcreaterequest(externaltoolcreateparams",{"_index":9201,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcurrentusertocreatejwtpayload",{"_index":7134,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcurrentusertocreatejwtpayload(currentuser",{"_index":7139,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcustomparameterdostoentities",{"_index":9109,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterdostoentities(customparameters",{"_index":9122,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities",{"_index":9110,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities(entries",{"_index":9125,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos",{"_index":9111,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos(entries",{"_index":9128,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos",{"_index":9112,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos(customparameters",{"_index":9130,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparametertoresponse",{"_index":9304,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapcustomparametertoresponse(customparameters",{"_index":9311,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapdashboardtoentity",{"_index":7716,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtoentity(modelentity",{"_index":7731,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel",{"_index":7717,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel(entity",{"_index":7734,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdomainobjecttoentityproperties",{"_index":9024,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(entitydo",{"_index":9041,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(group",{"_index":11077,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapdomaintoadapter",{"_index":4593,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoadapter(team",{"_index":4594,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoresponse",{"_index":23278,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapdosortordertoqueryorder",{"_index":9463,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdosortordertoqueryorder(sort",{"_index":9464,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdotoentityproperties",{"_index":2246,"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":18808,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["mapdotoentityproperties(entitydo",{"_index":2274,"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":9450,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdotoprovideroauthclient(name",{"_index":9451,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdtotoresponse",{"_index":14951,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapdtotoresponse(dto",{"_index":14952,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapelementtoentity",{"_index":7718,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapelementtoentity(modelentity",{"_index":7736,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapentitytodo",{"_index":2247,"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":2277,"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":9025,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobject(entity",{"_index":9043,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobjectproperties",{"_index":11072,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodomainobjectproperties(entity",{"_index":11080,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodto",{"_index":20140,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytodto(teamentity",{"_index":20141,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytoparenttype",{"_index":10536,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapentitytoparenttype(entity",{"_index":10544,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapexternalsourceentitytoexternalsource",{"_index":11073,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourceentitytoexternalsource(entity",{"_index":11082,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity",{"_index":11074,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity(externalsource",{"_index":11084,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery",{"_index":9192,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery(params",{"_index":9204,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto",{"_index":10537,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto(filerecordlistresponse",{"_index":10546,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto",{"_index":10538,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto(filerecordresponse",{"_index":10548,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordtofilerecordparams",{"_index":10619,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfilerecordtofilerecordparams(filerecord",{"_index":10623,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfootodomain",{"_index":23279,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapfromdtotolistresponse",{"_index":19527,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotolistresponse(systems",{"_index":19530,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse",{"_index":19528,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse(system",{"_index":19531,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromentitiestodtos",{"_index":17596,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitiestodtos(enities",{"_index":17598,"title":{},"body":{"classes/RoleMapper.html":{}}}],["mapfromentitiestodtos(entities",{"_index":19465,"title":{},"body":{"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitytodto",{"_index":17597,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromentitytodto(entity",{"_index":17601,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromoauthconfigdtotoresponse",{"_index":19529,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigdtotoresponse(oauthconfigdto",{"_index":19532,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigentitytodto",{"_index":19464,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoauthconfigentitytodto(oauthconfig",{"_index":19468,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoidcconfigentitytodto",{"_index":19486,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapfromoidcconfigentitytodto(systemid",{"_index":19489,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapgridelement",{"_index":7680,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelement(data",{"_index":7682,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelementtomodel",{"_index":7719,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgridelementtomodel(elementwithposition",{"_index":7738,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgrouptoclassinfodto",{"_index":11285,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgrouptoclassinfodto(group",{"_index":11289,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgroupuserentitytogroupuser",{"_index":11075,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupuserentitytogroupuser(entity",{"_index":11086,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity",{"_index":11076,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity(groupuser",{"_index":11089,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapimportuserfilterquerytodomain",{"_index":12867,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportuserfilterquerytodomain(query",{"_index":12868,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportusermatchscopetodomain",{"_index":12914,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapimportusermatchscopetodomain(match",{"_index":12916,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["maplearnroom",{"_index":7681,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplearnroom(metadata",{"_index":7684,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplesson",{"_index":17672,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maplessoncopytodomain",{"_index":6456,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessoncopytodomain(params",{"_index":6458,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessonelement",{"_index":8134,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maplessonelement(element",{"_index":8155,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maploginresponse",{"_index":16141,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maploginresponse(providerloginresponse",{"_index":16147,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maplti11toolconfigdotoentity",{"_index":9113,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoentity(lti11config",{"_index":9134,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoresponse",{"_index":9305,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigdotoresponse(externaltoolconfigdo",{"_index":9313,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigtodo",{"_index":9114,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigtodo(lti11config",{"_index":9136,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapmatchcreatortoresponse",{"_index":12915,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapmatchcreatortoresponse(matchcreator",{"_index":12918,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapnewsscopetodomain",{"_index":15138,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapnewsscopetodomain(query",{"_index":15143,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapoauth2configdotoentity",{"_index":9115,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configdotoentity(oauth2config",{"_index":9138,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo",{"_index":9116,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo(oauth2config",{"_index":9141,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2toolconfigdotoresponse",{"_index":9306,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauth2toolconfigdotoresponse(externaltoolconfigdo",{"_index":9315,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauthclientresponse",{"_index":16142,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapoauthclientresponse(oauthclient",{"_index":16149,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapped",{"_index":4487,"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":{},"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":20548,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["mappedcolumnboard",{"_index":17720,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedconfig",{"_index":9254,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedcustomparameter",{"_index":9259,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappeddata",{"_index":11216,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["mappedelements",{"_index":7785,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mappedelements.includes(el",{"_index":7789,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mappedentity",{"_index":19505,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["mappedlesson",{"_index":17714,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedlocation",{"_index":20624,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mappedtask",{"_index":17697,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.availabledate",{"_index":17706,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.coursename",{"_index":17704,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.description",{"_index":17712,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.displaycolor",{"_index":17710,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.duedate",{"_index":17708,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtools",{"_index":20460,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{}}}],["mappedtype",{"_index":20626,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mapper",{"_index":631,"title":{},"body":{"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":5655,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapper.interface",{"_index":5647,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["mapper.interface.ts",{"_index":2446,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:5",{"_index":2451,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:7",{"_index":2449,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.mapsubmissionitemtoresponse(submissionitem",{"_index":8299,"title":{},"body":{"controllers/ElementController.html":{}}}],["mapper.maptoresponse(submissionitems",{"_index":3723,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["mapper.name",{"_index":13456,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mapper.ts",{"_index":23277,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper/account",{"_index":929,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["mapper/course.mapper",{"_index":6692,"title":{},"body":{"controllers/CourseController.html":{}}}],["mapper/dashboard.mapper",{"_index":7448,"title":{},"body":{"controllers/DashboardController.html":{}}}],["mapper/identity",{"_index":13323,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["mapper/import",{"_index":12788,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["mapper/login",{"_index":14507,"title":{},"body":{"controllers/LoginController.html":{}}}],["mapper/migration.mapper",{"_index":13936,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["mapper/news.mapper",{"_index":15086,"title":{},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/TeamNewsController.html":{}}}],["mapper/oauth",{"_index":15889,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/provisioning",{"_index":16954,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["mapper/pseudonym.mapper",{"_index":17015,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["mapper/role.mapper",{"_index":17650,"title":{},"body":{"injectables/RoleService.html":{}}}],["mapper/room",{"_index":13874,"title":{},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["mapper/system",{"_index":19383,"title":{},"body":{"controllers/SystemController.html":{}}}],["mapper/team.mapper",{"_index":4706,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["mapper/token",{"_index":15542,"title":{},"body":{"injectables/OAuthService.html":{}}}],["mapper/tool",{"_index":20426,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["mapper/user",{"_index":12791,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/user.mapper",{"_index":21700,"title":{},"body":{"injectables/UserService.html":{}}}],["mapper/vc",{"_index":21942,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["mapper/video",{"_index":21828,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["mapperid",{"_index":13459,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mappers",{"_index":5634,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mapping",{"_index":23252,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mappseudonymtouserdata",{"_index":9728,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["mappseudonymtouserdata(pseudonym",{"_index":9751,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["mapredirectresponse",{"_index":16143,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapredirectresponse(redirect",{"_index":16150,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapreferencetoentity",{"_index":7720,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetoentity(modelentity",{"_index":7740,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel",{"_index":7721,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel(reference",{"_index":7742,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["maprequesttobasictoolconfig",{"_index":9193,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttobasictoolconfig(externaltoolconfigparams",{"_index":9207,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo",{"_index":9194,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo(customparameterparams",{"_index":9211,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo",{"_index":5980,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo(customparameterparams",{"_index":5984,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate",{"_index":9195,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate(externaltoolconfigparams",{"_index":9214,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate",{"_index":9196,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate(externaltoolconfigparams",{"_index":9217,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate",{"_index":9197,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate(externaltoolconfigparams",{"_index":9221,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate",{"_index":9198,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate(externaltoolconfigparams",{"_index":9224,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprolestoltiroles",{"_index":14632,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprolestoltiroles(rolenames",{"_index":14633,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprpcerrorresponsetodomainerror",{"_index":8434,"title":{},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["maprpcerrorresponsetodomainerror(errorobj",{"_index":8435,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["maps",{"_index":4596,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["mapsanisroletorolename",{"_index":18081,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapsanisroletorolename(source",{"_index":18085,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapscanresultparamstodto",{"_index":10212,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapscanresultparamstodto(scanresultparams",{"_index":10215,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapschoolexternaltoolrequest",{"_index":18229,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapschoolexternaltoolrequest(request",{"_index":18231,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapsearchparamstoquery",{"_index":21271,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchparamstoquery(searchparams",{"_index":21273,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchresult",{"_index":415,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsearchresult(accountentities",{"_index":419,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsessiontodto",{"_index":15855,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsessiontodto(session",{"_index":15856,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsortingquerytodomain",{"_index":9199,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapsortingquerytodomain(sortingquery",{"_index":9228,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapstringtoparenttype",{"_index":10539,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapstringtoparenttype(input",{"_index":10550,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapsubmissioncontenttoresponse",{"_index":5635,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapsubmissioncontenttoresponse(element",{"_index":5641,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapsubmissionitemtoresponse",{"_index":19165,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapsubmissionitemtoresponse(submissionitem",{"_index":19167,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptask",{"_index":17673,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maptaskcopytodomain",{"_index":6457,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcopytodomain(params",{"_index":6462,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcreatetodomain",{"_index":19782,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskcreatetodomain(params",{"_index":19784,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskelement",{"_index":8135,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptaskelement(element",{"_index":8157,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptasktowebcontentresource",{"_index":5051,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptasktowebcontentresource(task",{"_index":5073,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptaskupdatetodomain",{"_index":19783,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskupdatetodomain(params",{"_index":19786,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoallowedauthorizationentitytype",{"_index":10620,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowedauthorizationentitytype(type",{"_index":10625,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowemetadatatype",{"_index":14920,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptoallowemetadatatype(type",{"_index":14921,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptobaseresponse",{"_index":22114,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptobaseresponse(from",{"_index":22117,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoboardelement",{"_index":2679,"title":{},"body":{"entities/Board.html":{}}}],["maptoclassinfostolistresponse",{"_index":11203,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfostolistresponse(classinfos",{"_index":11206,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse",{"_index":11204,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse(classinfo",{"_index":11209,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse",{"_index":20445,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse(toolinfos",{"_index":20449,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse",{"_index":20446,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse(toolinfo",{"_index":20452,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocustomparameterentryresponse",{"_index":18245,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptocustomparameterentryresponse(entries",{"_index":18248,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptodo",{"_index":4376,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodo(entity",{"_index":4380,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodomain",{"_index":17615,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptodomain(query",{"_index":21449,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["maptodomain(rolename",{"_index":17616,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptodos",{"_index":4377,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodos(entities",{"_index":4382,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodto",{"_index":416,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/CalendarMapper.html":{}}}],["maptodto(account",{"_index":422,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["maptodto(event",{"_index":3920,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["maptoelementdtos",{"_index":8136,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptoelementdtos(elements",{"_index":8159,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptoentities",{"_index":4378,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentities(domainobjects",{"_index":4384,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity",{"_index":4379,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity(domainobject",{"_index":4386,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoexternalgroupdtos",{"_index":18082,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupdtos(source",{"_index":18087,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser",{"_index":18083,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser(relation",{"_index":18089,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto",{"_index":13083,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto(schooldo",{"_index":13085,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptoexternalschooldto(source",{"_index":18091,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaltoolresponse",{"_index":9307,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaltoolresponse(externaltool",{"_index":9317,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaluserdto",{"_index":13084,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(source",{"_index":18092,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(userdo",{"_index":13088,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptofilerecordlistresponse",{"_index":10213,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordlistresponse(filerecords",{"_index":10218,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse",{"_index":10214,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse(filerecord",{"_index":10220,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptogroupresponse",{"_index":11205,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptogroupresponse(resolvedgroup",{"_index":11212,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoinforesponse",{"_index":22115,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoinforesponse(from",{"_index":22118,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptointernal",{"_index":16980,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptointernal(dto",{"_index":16981,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptojoinresponse",{"_index":22116,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptojoinresponse(from",{"_index":22119,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptokenresponsetodto",{"_index":20365,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokenresponsetodto(response",{"_index":20368,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokeycloakidentityprovider",{"_index":16396,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptokeycloakidentityprovider(oidcconfig",{"_index":16399,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptologinresponse",{"_index":14554,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologinresponse(logindto",{"_index":14556,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologmessagedata",{"_index":15139,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptologmessagedata(news",{"_index":15145,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptometadataresponse",{"_index":6877,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptometadataresponse(course",{"_index":6878,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptooauthcurrentuser",{"_index":7135,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthcurrentuser(accountid",{"_index":7141,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthloginresponse",{"_index":14555,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptooauthloginresponse(logindto",{"_index":14558,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptoparameterlocation",{"_index":20602,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoparameterlocation(location",{"_index":20606,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoresolvedgroupdto",{"_index":11286,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["maptoresolvedgroupdto(group",{"_index":11294,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["maptoresponse",{"_index":782,"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":784,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponse(board",{"_index":3669,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["maptoresponse(card",{"_index":4089,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["maptoresponse(column",{"_index":4993,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["maptoresponse(copystatus",{"_index":6466,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptoresponse(dashboard",{"_index":7686,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maptoresponse(element",{"_index":2450,"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":12871,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["maptoresponse(news",{"_index":15147,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptoresponse(pseudonym",{"_index":17031,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["maptoresponse(rolename",{"_index":17618,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptoresponse(schoolinfo",{"_index":18376,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["maptoresponse(sharetoken",{"_index":18831,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["maptoresponse(sharetokeninfo",{"_index":18786,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["maptoresponse(status",{"_index":3755,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["maptoresponse(submissionitems",{"_index":19168,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptoresponse(target",{"_index":19593,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["maptoresponse(taskwithstatus",{"_index":19789,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoresponse(user",{"_index":17492,"title":{},"body":{"classes/ResolvedUserMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponsefromentity",{"_index":783,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponsefromentity(account",{"_index":786,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse",{"_index":20447,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse(externaltools",{"_index":20455,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse",{"_index":20448,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse(externaltool",{"_index":20457,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolresponse",{"_index":18246,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":18250,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse",{"_index":18247,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse(externaltools",{"_index":18251,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosinglefileparams",{"_index":10621,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptosinglefileparams(params",{"_index":10629,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostatusresponse",{"_index":19222,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostatusresponse(submission",{"_index":19223,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostreamablefile",{"_index":10622,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostreamablefile(fileresponse",{"_index":10631,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptotoolconfigtype",{"_index":20603,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolconfigtype(launchdatatype",{"_index":20608,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype",{"_index":20604,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype(configtype",{"_index":20611,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse",{"_index":20605,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20614,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolreference",{"_index":20755,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreference(externaltool",{"_index":20756,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreferenceresponse",{"_index":6020,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponse(toolreference",{"_index":6024,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses",{"_index":6021,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses(toolreferences",{"_index":6028,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapupdatenewstodomain",{"_index":15140,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdatenewstodomain(params",{"_index":15149,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdaterequest",{"_index":9200,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapupdaterequest(externaltoolupdateparams",{"_index":9233,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapuserloginmigrationdotoresponse",{"_index":21272,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserloginmigrationdotoresponse(domainobject",{"_index":21276,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserstoresponse",{"_index":19166,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapuserstoresponse(user",{"_index":19169,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["march",{"_index":22850,"title":{},"body":{"license.html":{}}}],["marked",{"_index":7991,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["markedfordelete",{"_index":10200,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["markfilesownedbyuserfordeletion",{"_index":10476,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfilesownedbyuserfordeletion(userid",{"_index":10483,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfordelete",{"_index":10162,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["markfordeletion",{"_index":10022,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["marks",{"_index":22725,"title":{},"body":{"license.html":{}}}],["markunmigratedusersasoutdated",{"_index":18396,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["markunmigratedusersasoutdated(schoolid",{"_index":18414,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["masks",{"_index":22437,"title":{},"body":{"license.html":{}}}],["master",{"_index":23653,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["match",{"_index":361,"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":12792,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["match.mapper.ts",{"_index":21448,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:20",{"_index":21451,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:8",{"_index":21450,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.params.ts",{"_index":20866,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.params.ts:7",{"_index":20868,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.response",{"_index":12849,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["match.response.ts",{"_index":21443,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["match.response.ts:19",{"_index":21471,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:22",{"_index":21468,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:25",{"_index":21466,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:28",{"_index":21467,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:35",{"_index":21470,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:41",{"_index":21469,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:44",{"_index":21444,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["match.response.ts:7",{"_index":21465,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match_matchedby",{"_index":12059,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["match_userid",{"_index":12057,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/UserRepo.html":{}}}],["matchancestors",{"_index":3614,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchancestors(desc",{"_index":3619,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchcreator",{"_index":12023,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["matchcreator.auto",{"_index":12930,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreator.manual",{"_index":12928,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreatorscope",{"_index":12066,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.auto",{"_index":12922,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.manual",{"_index":12924,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.none",{"_index":12926,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matched",{"_index":3868,"title":{},"body":{"classes/BusinessError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{}}}],["matched(matchedby",{"_index":12833,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["matchedby",{"_index":12021,"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":250,"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":6961,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["matches(passwordpattern",{"_index":254,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["matches.groups",{"_index":6444,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.length",{"_index":12051,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matches[1",{"_index":12052,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matching",{"_index":104,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":{}}}],["matchingparameterentry",{"_index":2582,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["matchingparams",{"_index":9566,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchingparams.some((param",{"_index":9614,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchsinglerule",{"_index":17869,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchsinglerule(rules",{"_index":17874,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchtype",{"_index":12920,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["matchtype.auto",{"_index":12931,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchtype.manual",{"_index":12929,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["material",{"_index":11878,"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":14814,"title":{"classes/MaterialFactory.html":{}},"body":{"classes/MaterialFactory.html":{}}}],["materialfactory.define(material",{"_index":14817,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["materialid",{"_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":{}}}],["materialids",{"_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":{}}}],["materially",{"_index":22691,"title":{},"body":{"license.html":{}}}],["materials",{"_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":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/Material.html":{}}}],["materials.entity",{"_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":{}}}],["materialsrepo",{"_index":14818,"title":{"injectables/MaterialsRepo.html":{}},"body":{"injectables/MaterialsRepo.html":{}}}],["math.ceil(timedifference",{"_index":1579,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["math.floor(index",{"_index":7566,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["math.floor(math.random",{"_index":3524,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["math.round(math.random",{"_index":10206,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["matter",{"_index":23579,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["max",{"_index":3491,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["max(100",{"_index":16587,"title":{},"body":{"classes/PaginationParams.html":{}}}],["max(500",{"_index":14392,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["max_file_size",{"_index":11979,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["max_redirects",{"_index":11422,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["max_security_check_file_size",{"_index":11980,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["maxage",{"_index":18654,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["maxdelay",{"_index":13795,"title":{},"body":{"injectables/LdapService.html":{}}}],["maxexternaltoollogosizeinbytes",{"_index":8906,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["maximum",{"_index":844,"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":11636,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["maxredirects",{"_index":11462,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["maxsubmission",{"_index":12502,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxsubmissions",{"_index":3764,"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":2110,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["maybe",{"_index":9144,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["md",{"_index":23003,"title":{},"body":{"todo.html":{}}}],["me(@currentuser",{"_index":20931,"title":{},"body":{"controllers/UserController.html":{}}}],["me(authtoken",{"_index":1020,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["me(currentuser",{"_index":20926,"title":{},"body":{"controllers/UserController.html":{}}}],["me(userid",{"_index":21690,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["meaning",{"_index":22733,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["meaningful",{"_index":22350,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["means",{"_index":22317,"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":22544,"title":{},"body":{"license.html":{}}}],["measures",{"_index":22319,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mechanism",{"_index":23226,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["medium",{"_index":22568,"title":{},"body":{"license.html":{}}}],["meet",{"_index":22580,"title":{},"body":{"license.html":{}}}],["meeting",{"_index":2102,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{}}}],["meeting.config",{"_index":1980,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["meeting.config.ts",{"_index":1942,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:1",{"_index":1945,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:6",{"_index":1946,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting_id",{"_index":2098,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["meetingid",{"_index":1943,"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":2111,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["meets",{"_index":22483,"title":{},"body":{"license.html":{}}}],["member",{"_index":1002,"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":12330,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["memberids.some((id",{"_index":12335,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["members",{"_index":1057,"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":10736,"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":18642,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mention",{"_index":23602,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["mentioned",{"_index":23197,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mentor",{"_index":7177,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["menu",{"_index":22481,"title":{},"body":{"license.html":{}}}],["merchantability",{"_index":22893,"title":{},"body":{"license.html":{}}}],["mere",{"_index":22468,"title":{},"body":{"license.html":{}}}],["merge",{"_index":22355,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mergeelementintoposition",{"_index":7478,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["mergeelementintoposition(element",{"_index":7510,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["merging",{"_index":22781,"title":{},"body":{"license.html":{}}}],["merlinreference",{"_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/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["message",{"_index":1025,"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/UnknownQueryTypeLoggableException.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":11973,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["messagekey",{"_index":1952,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["messages",{"_index":23597,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["messagewithcontext",{"_index":14483,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["met",{"_index":22519,"title":{},"body":{"license.html":{}}}],["meta",{"_index":11342,"title":{"interfaces/Meta.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["meta_bbb",{"_index":1963,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["metadata",{"_index":2112,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalValidationPipe.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["metadata.response.ts",{"_index":6891,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:28",{"_index":6907,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:33",{"_index":6910,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:38",{"_index":6908,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:43",{"_index":6906,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:48",{"_index":6909,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:5",{"_index":6904,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:53",{"_index":6911,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:58",{"_index":6905,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:61",{"_index":6892,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["metadata.type",{"_index":7763,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["metadataprops",{"_index":5272,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["metadatas",{"_index":8398,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatas.some",{"_index":8402,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatatypemapper",{"_index":14917,"title":{"classes/MetadataTypeMapper.html":{}},"body":{"classes/MetadataTypeMapper.html":{}}}],["metatagextractorapimodule",{"_index":14821,"title":{"modules/MetaTagExtractorApiModule.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["metatagextractorconfig",{"_index":14852,"title":{},"body":{"modules/MetaTagExtractorModule.html":{}}}],["metatagextractorcontroller",{"_index":14828,"title":{"controllers/MetaTagExtractorController.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{}}}],["metatagextractormodule",{"_index":14825,"title":{"modules/MetaTagExtractorModule.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["metatagextractorresponse",{"_index":14839,"title":{"classes/MetaTagExtractorResponse.html":{}},"body":{"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{}}}],["metatagextractorresponse})@apiresponse({status",{"_index":14835,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["metatagextractorservice",{"_index":14850,"title":{"injectables/MetaTagExtractorService.html":{}},"body":{"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["metatagextractoruc",{"_index":14826,"title":{"injectables/MetaTagExtractorUc.html":{}},"body":{"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["method",{"_index":591,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/ClassService.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":15739,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["methodes",{"_index":23824,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["methodnotallowedexception",{"_index":8119,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["methods",{"_index":8,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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/UnknownQueryTypeLoggableException.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":16873,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics",{"_index":16870,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts",{"_index":16860,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:19",{"_index":16863,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:22",{"_index":16864,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["micro",{"_index":23754,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["microservice",{"_index":23083,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["microservices",{"_index":23817,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["middleware",{"_index":16874,"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":18596,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["middlewares",{"_index":16871,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["migrate",{"_index":11656,"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":11659,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["migrate(skip",{"_index":13505,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["migrate(start",{"_index":13670,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migrate(userjwt",{"_index":16323,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated",{"_index":15396,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated.'})@apiresponse({type",{"_index":16222,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migratedaccounts",{"_index":13674,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migratedusers",{"_index":18459,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migratedusers.data.foreach((user",{"_index":18460,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrates",{"_index":21417,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrateschool",{"_index":18397,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateschool(externalid",{"_index":18416,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateuser",{"_index":16203,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{}}}],["migrateuser(currentuserid",{"_index":21514,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migrateuser(jwt",{"_index":16219,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrateuserlogin",{"_index":21130,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrateuserlogin(jwt",{"_index":21152,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrating",{"_index":21249,"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/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":21123,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.controller.ts",{"_index":21126,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:115",{"_index":21174,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:139",{"_index":21162,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:167",{"_index":21169,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:17",{"_index":21475,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:201",{"_index":21140,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:218",{"_index":21155,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:59",{"_index":21151,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:89",{"_index":21145,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.do.ts",{"_index":21214,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:11",{"_index":21220,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:13",{"_index":21223,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:15",{"_index":21219,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:17",{"_index":21218,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:5",{"_index":21221,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:7",{"_index":21222,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:9",{"_index":21224,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.dto",{"_index":13959,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{}}}],["migration.dto.ts",{"_index":15863,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:10",{"_index":15864,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:2",{"_index":15868,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:4",{"_index":15867,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:6",{"_index":15866,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:8",{"_index":15865,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.entity",{"_index":12200,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["migration.entity.ts",{"_index":21238,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:11",{"_index":21242,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:15",{"_index":21243,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:18",{"_index":21245,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:21",{"_index":21241,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:24",{"_index":21244,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:27",{"_index":21239,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:30",{"_index":21240,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.error",{"_index":15628,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{}}}],["migration.error.ts",{"_index":13737,"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":13742,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.error.ts:12",{"_index":15469,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:14",{"_index":15463,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:17",{"_index":14987,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:22",{"_index":14988,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:28",{"_index":14924,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:33",{"_index":14925,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:4",{"_index":18360,"title":{},"body":{"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:6",{"_index":13740,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.mapper",{"_index":16243,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migration.mapper.ts",{"_index":21270,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:13",{"_index":21277,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.mapper.ts:5",{"_index":21491,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:6",{"_index":21274,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.module",{"_index":21124,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.module.ts",{"_index":21289,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["migration.params",{"_index":21182,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.params.ts",{"_index":15618,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:13",{"_index":15619,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:17",{"_index":15621,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:8",{"_index":15620,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.repo.ts",{"_index":21293,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:14",{"_index":21294,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:19",{"_index":21298,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:27",{"_index":21295,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.response",{"_index":16240,"title":{},"body":{"controllers/OauthSSOController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration.response.ts",{"_index":21316,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:1",{"_index":21494,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:10",{"_index":21321,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:15",{"_index":21323,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:20",{"_index":21320,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:25",{"_index":21322,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:30",{"_index":21318,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:35",{"_index":21317,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:5",{"_index":21319,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:6",{"_index":21495,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.rule.ts",{"_index":21333,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:11",{"_index":21336,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:17",{"_index":21335,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:8",{"_index":21334,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.service",{"_index":13329,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts",{"_index":13665,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:106",{"_index":18424,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:111",{"_index":21361,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:119",{"_index":21518,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:12",{"_index":18401,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:129",{"_index":21345,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:130",{"_index":18407,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:135",{"_index":21506,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:141",{"_index":18419,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:147",{"_index":18404,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:149",{"_index":21347,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:158",{"_index":18410,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:159",{"_index":21503,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:165",{"_index":18413,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:169",{"_index":21508,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:171",{"_index":21365,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:18",{"_index":13671,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:180",{"_index":21351,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:188",{"_index":21353,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:194",{"_index":21355,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:20",{"_index":18426,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:21",{"_index":21521,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:214",{"_index":21349,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:23",{"_index":21523,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:25",{"_index":21520,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:27",{"_index":21522,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:28",{"_index":18417,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:29",{"_index":21359,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:42",{"_index":21511,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:43",{"_index":18422,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:48",{"_index":13669,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:54",{"_index":21513,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:81",{"_index":18415,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:82",{"_index":21363,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:9",{"_index":13667,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:91",{"_index":21512,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:95",{"_index":21357,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:97",{"_index":21515,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.uc",{"_index":21477,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.uc.ts",{"_index":4510,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:11",{"_index":4517,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:14",{"_index":17515,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:15",{"_index":20352,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:155",{"_index":21407,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:18",{"_index":21399,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:19",{"_index":4519,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:21",{"_index":18989,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:23",{"_index":20355,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:24",{"_index":17518,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:30",{"_index":21405,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:40",{"_index":21403,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:42",{"_index":18987,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:47",{"_index":17516,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:51",{"_index":20353,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:58",{"_index":4522,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:60",{"_index":21401,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:78",{"_index":21408,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/controller/dto/oauth2",{"_index":15617,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration/controller/dto/request/page",{"_index":16563,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["migration/controller/dto/request/school",{"_index":18358,"title":{},"body":{"classes/SchoolIdParams.html":{}}}],["migration/controller/dto/request/user",{"_index":21266,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["migration/controller/dto/response/page",{"_index":16576,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["migration/controller/dto/response/user",{"_index":21315,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration/controller/user",{"_index":21125,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration/error",{"_index":21559,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/error/oauth",{"_index":15457,"title":{},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{}}}],["migration/error/school",{"_index":18385,"title":{},"body":{"classes/SchoolMigrationError.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["migration/error/user",{"_index":21110,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["migration/loggable/user",{"_index":21261,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["migration/mapper/page",{"_index":16554,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["migration/mapper/user",{"_index":21269,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration/service",{"_index":16333,"title":{},"body":{"injectables/OauthUc.html":{}}}],["migration/service/dto",{"_index":16234,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/UserMigrationMapper.html":{}}}],["migration/service/dto/migration.dto.ts",{"_index":14945,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/migration.dto.ts:2",{"_index":14947,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/page",{"_index":16543,"title":{},"body":{"classes/PageContentDto.html":{}}}],["migration/service/dto/school",{"_index":18388,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["migration/service/migration",{"_index":14931,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["migration/service/school",{"_index":18392,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration/service/user",{"_index":21324,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration/success",{"_index":21563,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/uc/close",{"_index":4509,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration/uc/dto/user",{"_index":21291,"title":{},"body":{"interfaces/UserLoginMigrationQuery.html":{}}}],["migration/uc/restart",{"_index":17513,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration/uc/start",{"_index":18983,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration/uc/toggle",{"_index":20350,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration/uc/user",{"_index":21395,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/user",{"_index":18613,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationalreadyactivatedexception",{"_index":13748,"title":{"classes/MigrationAlreadyActivatedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["migrationbody",{"_index":13949,"title":{"classes/MigrationBody.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/MigrationBody.html":{}}}],["migrationbody.oauthmigrationfinished",{"_index":13970,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationmandatory",{"_index":13969,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationpossible",{"_index":13968,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationcheckservice",{"_index":14930,"title":{"injectables/MigrationCheckService.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationconsentredirect",{"_index":15555,"title":{},"body":{"injectables/OAuthService.html":{}}}],["migrationdto",{"_index":13965,"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":21432,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationdto.redirect.includes('migration/error",{"_index":21431,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationerror",{"_index":16261,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromsource",{"_index":16263,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromtarget",{"_index":16264,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler",{"_index":16204,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler(error",{"_index":16224,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationflags",{"_index":13944,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationmapper",{"_index":13929,"title":{"injectables/MigrationMapper.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{}}}],["migrationmaybecompleted",{"_index":14959,"title":{"classes/MigrationMayBeCompleted.html":{}},"body":{"classes/MigrationMayBeCompleted.html":{}}}],["migrationmaynotbecompleted",{"_index":14967,"title":{"classes/MigrationMayNotBeCompleted.html":{}},"body":{"classes/MigrationMayNotBeCompleted.html":{}}}],["migrationpage",{"_index":21188,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.data.map",{"_index":21191,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.total",{"_index":21193,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse",{"_index":13960,"title":{"classes/MigrationResponse.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{}}}],["migrationresponses",{"_index":21190,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse})@apiunauthorizedresponse",{"_index":13951,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationresponse})@apiunauthorizedresponse()@apinotfoundresponse({description",{"_index":13945,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrations",{"_index":21127,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationsflags",{"_index":13946,"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":7875,"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":22995,"title":{},"body":{"todo.html":{}}}],["mikroormmodule",{"_index":10664,"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":10692,"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":15014,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmoduleasyncoptions",{"_index":15009,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmodulesyncoptions",{"_index":10665,"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":23251,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["milliseconds",{"_index":18458,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["mime",{"_index":10111,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["mimetype",{"_index":1299,"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":3435,"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":3440,"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":16586,"title":{},"body":{"classes/PaginationParams.html":{}}}],["mind",{"_index":23729,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["minimum",{"_index":843,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["minio",{"_index":23030,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_password=miniouser",{"_index":23044,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_user=`miniouser",{"_index":23043,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minios3storage",{"_index":23040,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minus",{"_index":15031,"title":{},"body":{"classes/MongoPatterns.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["minwidth",{"_index":14873,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["misrepresentation",{"_index":22717,"title":{},"body":{"license.html":{}}}],["missed",{"_index":7096,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["missing",{"_index":935,"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":18479,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing_tool_parameter_value",{"_index":14994,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["missingentityids.tostring",{"_index":4499,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["missingschoolnumberexception",{"_index":13745,"title":{"classes/MissingSchoolNumberException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["missingtoolparametervalueloggableexception",{"_index":14989,"title":{"classes/MissingToolParameterValueLoggableException.html":{}},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["mission",{"_index":15257,"title":{},"body":{"classes/NewsScope.html":{}}}],["missmatches",{"_index":19917,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["mixing",{"_index":13848,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mixwith",{"_index":22235,"title":{},"body":{"dependencies.html":{}}}],["mkdir",{"_index":10414,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdir(folderpath",{"_index":10419,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp",{"_index":10415,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp(dirpath",{"_index":10423,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mm",{"_index":14465,"title":{},"body":{"modules/LoggerModule.html":{}}}],["mnf:copyrightandotherrestrictions",{"_index":5310,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:description",{"_index":5312,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:general",{"_index":5306,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:lom",{"_index":5305,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:rights",{"_index":5309,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:string",{"_index":5308,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:title",{"_index":5307,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:value",{"_index":5311,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mocha",{"_index":23127,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mocha's",{"_index":23421,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mock",{"_index":8798,"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":16412,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock/oidc",{"_index":16411,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock:0.6.0powershell",{"_index":23636,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock:0.6.0setup",{"_index":23637,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock_issuer",{"_index":19441,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mock_type",{"_index":19439,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockbaseurl",{"_index":8795,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mockcomment",{"_index":8800,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mocked",{"_index":23526,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocking",{"_index":23486,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockreturnvalueonce",{"_index":23524,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocks",{"_index":23448,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocksecret",{"_index":19435,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockservice",{"_index":23503,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockservice.getuser.mockreturnvalueonce(resultuser",{"_index":23519,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mode",{"_index":14966,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["model",{"_index":7115,"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":7733,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["modelentity.gridelements.init",{"_index":7758,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.isinitialized",{"_index":7757,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.remove(el",{"_index":7790,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.references.loaditems",{"_index":7750,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.title",{"_index":7756,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.user.id",{"_index":7762,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.xpos",{"_index":7753,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.ypos",{"_index":7754,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["models",{"_index":15322,"title":{},"body":{"injectables/NewsUc.html":{}}}],["moderator",{"_index":2067,"title":{},"body":{"classes/BBBJoinConfig.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["moderatorcount",{"_index":2113,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["moderatormustapprovejoinrequests",{"_index":8104,"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":1966,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["modification",{"_index":22433,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["modifications",{"_index":22486,"title":{},"body":{"license.html":{}}}],["modified",{"_index":21133,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["modifies",{"_index":22584,"title":{},"body":{"license.html":{}}}],["modify",{"_index":22404,"title":{},"body":{"license.html":{}}}],["modifying",{"_index":22459,"title":{},"body":{"license.html":{}}}],["modularization",{"_index":23025,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["modularize",{"_index":19013,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["module",{"_index":201,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":23507,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(featureundertest",{"_index":23504,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(mockservice",{"_index":23505,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.ts",{"_index":23281,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/application",{"_index":23484,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module/repo",{"_index":23311,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/uc",{"_index":23306,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduleref",{"_index":23492,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(catscontroller",{"_index":23496,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(sampleservice",{"_index":23495,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["modules",{"_index":203,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":1376,"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":18598,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/account/account.module",{"_index":16926,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/account/services/account.service",{"_index":13672,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{}}}],["modules/account/services/dto",{"_index":1544,"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":788,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["modules/authentication",{"_index":2904,"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":18599,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/authentication/authentication.module",{"_index":10508,"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":11381,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["modules/authentication/interface",{"_index":16334,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserService.html":{}}}],["modules/authentication/interface/user",{"_index":17470,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["modules/authentication/mapper",{"_index":21699,"title":{},"body":{"injectables/UserService.html":{}}}],["modules/authentication/services/authentication.service",{"_index":16331,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/authorization",{"_index":2472,"title":{},"body":{"classes/BaseUc.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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":{},"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":{},"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":{},"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":10509,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["modules/authorization/authorization.module.ts",{"_index":23318,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/authorization/domain",{"_index":3801,"title":{},"body":{"injectables/BoardUc.html":{},"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":1771,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsService.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/board/board",{"_index":18600,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/board/service/column",{"_index":2980,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["modules/class",{"_index":11033,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["modules/class/domain",{"_index":11297,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["modules/class/entity",{"_index":4311,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["modules/class/entity/class.entity",{"_index":6581,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/collaborative",{"_index":4576,"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":2984,"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":23316,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers.module.ts",{"_index":23317,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/files",{"_index":1167,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.html":{},"modules/BoardModule.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":18575,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/group",{"_index":8512,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisResponseMapper.html":{}}}],["modules/group/entity/group.entity",{"_index":6583,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/group/group",{"_index":18601,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom",{"_index":1863,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"modules/PseudonymModule.html":{},"injectables/ShareTokenUC.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/learnroom/common",{"_index":12248,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["modules/learnroom/controller/dto/lesson/lesson",{"_index":6468,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/learnroom/learnroom",{"_index":18602,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom/service",{"_index":9760,"title":{},"body":{"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":3410,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["modules/legacy",{"_index":1904,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"modules/CommonToolModule.html":{},"modules/GroupApiModule.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":13869,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{}}}],["modules/lesson/lesson",{"_index":18603,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/lesson/service",{"_index":2988,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/lesson/types",{"_index":6470,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/lti",{"_index":16076,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{}}}],["modules/management/management.module",{"_index":18576,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/management/uc/database",{"_index":20304,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["modules/meta",{"_index":18604,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/news",{"_index":18605,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/oauth",{"_index":122,"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":11518,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["modules/oauth/loggable",{"_index":13111,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["modules/oauth/oauth",{"_index":18606,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/oauth/oauth.module",{"_index":1377,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["modules/oauth/service/dto/cookies.dto",{"_index":11486,"title":{},"body":{"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/dto/hydra.redirect.dto",{"_index":11444,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/oauth.service",{"_index":15625,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning",{"_index":15538,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning/dto",{"_index":15539,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/pseudonym",{"_index":4624,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolLaunchModule.html":{}}}],["modules/pseudonym/pseudonym",{"_index":18607,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/pseudonym/service",{"_index":16102,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["modules/rocketchat",{"_index":18608,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/role",{"_index":1378,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{}}}],["modules/role/role.module",{"_index":4677,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/UserModule.html":{}}}],["modules/role/service/dto/role.dto",{"_index":4584,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleMapper.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/service/role.service",{"_index":4705,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"modules/RoleModule.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/uc/role.uc",{"_index":17612,"title":{},"body":{"modules/RoleModule.html":{}}}],["modules/server",{"_index":1548,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["modules/server/server.config",{"_index":602,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["modules/sharing/domainobject/share",{"_index":18767,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["modules/sharing/sharing.module",{"_index":18609,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system",{"_index":1379,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.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":17155,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/controller/dto/system.filter.params",{"_index":19376,"title":{},"body":{"controllers/SystemController.html":{}}}],["modules/system/controller/system.controller",{"_index":19360,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/system/mapper/system",{"_index":19502,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["modules/system/mapper/system.mapper",{"_index":19553,"title":{},"body":{"injectables/SystemService.html":{}}}],["modules/system/service",{"_index":13388,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/UserMigrationService.html":{}}}],["modules/system/service/dto",{"_index":12691,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["modules/system/service/dto/oauth",{"_index":19407,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/service/dto/oidc",{"_index":19491,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["modules/system/service/dto/system.dto",{"_index":16332,"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":13389,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["modules/system/service/system.service",{"_index":19481,"title":{},"body":{"modules/SystemModule.html":{},"injectables/SystemUc.html":{}}}],["modules/system/system",{"_index":18610,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system/system.module",{"_index":16927,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/system/uc/system.uc",{"_index":19361,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/task",{"_index":13883,"title":{},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{}}}],["modules/task/controller/dto/task",{"_index":6471,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/task/service",{"_index":2989,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/task/task",{"_index":18611,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/task/types",{"_index":6472,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/teams/teams",{"_index":18612,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/teams/teams.module",{"_index":20251,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["modules/tool",{"_index":1769,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{}}}],["modules/tool/common/domain",{"_index":5869,"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":9143,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["modules/tool/common/enum",{"_index":5870,"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":5941,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["modules/tool/common/interface",{"_index":9094,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["modules/tool/context",{"_index":3543,"title":{},"body":{"modules/BoardModule.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IRepoLoader.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/external",{"_index":7341,"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":5944,"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":16077,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/user",{"_index":3544,"title":{},"body":{"modules/BoardModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.html":{},"modules/GroupApiModule.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":20995,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["modules/user/uc/dto/user.dto",{"_index":21440,"title":{},"body":{"classes/UserMapper.html":{}}}],["modules/user/user",{"_index":18614,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/video",{"_index":18615,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["moduluslength",{"_index":7068,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["moment",{"_index":15369,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mongo",{"_index":573,"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":13027,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["mongo_url=mongodb://172.29.173.128:27030/rocketchat",{"_index":23687,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongod",{"_index":23031,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mongodatabasemoduleoptions",{"_index":10732,"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":756,"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":11767,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongoimport",{"_index":11754,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongomemorydatabasemodule",{"_index":10730,"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":10739,"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":23289,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongoose",{"_index":10010,"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":13026,"title":{"classes/MongoPatterns.html":{}},"body":{"classes/ImportUserScope.html":{},"classes/MongoPatterns.html":{},"injectables/UserRepo.html":{}}}],["moodle",{"_index":22249,"title":{},"body":{"dependencies.html":{}}}],["more",{"_index":1669,"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":22753,"title":{},"body":{"license.html":{}}}],["mostly",{"_index":23820,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mount",{"_index":22312,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounted",{"_index":22304,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounts",{"_index":22977,"title":{},"body":{"todo.html":{}}}],["mountsdescription",{"_index":1274,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["move",{"_index":3371,"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":4115,"title":{},"body":{"injectables/CardService.html":{}}}],["move(child",{"_index":3375,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["move(column",{"_index":5008,"title":{},"body":{"injectables/ColumnService.html":{}}}],["move(element",{"_index":5672,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["moveable",{"_index":23748,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["movecard",{"_index":3991,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{}}}],["movecard(urlparams",{"_index":4011,"title":{},"body":{"controllers/CardController.html":{}}}],["movecard(userid",{"_index":5024,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["movecardbodyparams",{"_index":4012,"title":{"classes/MoveCardBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/MoveCardBodyParams.html":{}}}],["movecolumn",{"_index":3782,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["movecolumn(urlparams",{"_index":4961,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumn(userid",{"_index":3792,"title":{},"body":{"injectables/BoardUc.html":{}}}],["movecolumnbodyparams",{"_index":4962,"title":{"classes/MoveColumnBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/MoveColumnBodyParams.html":{}}}],["movecontentelementbody",{"_index":8276,"title":{"classes/MoveContentElementBody.html":{}},"body":{"controllers/ElementController.html":{},"classes/MoveContentElementBody.html":{}}}],["moved",{"_index":16316,"title":{},"body":{"injectables/OauthUc.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["moveelement",{"_index":4157,"title":{},"body":{"injectables/CardUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"controllers/ElementController.html":{}}}],["moveelement(from",{"_index":7512,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["moveelement(undefined",{"_index":7437,"title":{},"body":{"controllers/DashboardController.html":{}}}],["moveelement(urlparams",{"_index":8275,"title":{},"body":{"controllers/ElementController.html":{}}}],["moveelement(userid",{"_index":4169,"title":{},"body":{"injectables/CardUc.html":{}}}],["moveelementondashboard",{"_index":7830,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementondashboard(dashboardid",{"_index":7836,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementparams",{"_index":7439,"title":{"classes/MoveElementParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moveelementpositionparams",{"_index":15047,"title":{"classes/MoveElementPositionParams.html":{}},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moves",{"_index":11655,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["movetotrash",{"_index":17905,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["movetotrash(paths",{"_index":17921,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["moving",{"_index":23830,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mps",{"_index":11635,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["ms",{"_index":11670,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TimeoutInterceptor.html":{}}}],["msg",{"_index":3906,"title":{},"body":{"modules/CacheWrapperModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/RedisModule.html":{}}}],["msgs",{"_index":977,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["much",{"_index":23429,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["multi",{"_index":3452,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["multiple",{"_index":2036,"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":13494,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["muted",{"_index":22077,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["muteonstart",{"_index":1967,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["mutex",{"_index":22182,"title":{},"body":{"dependencies.html":{}}}],["n/a",{"_index":21433,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["n21",{"_index":1775,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/FederalStateService.html":{},"injectables/IdTokenService.html":{},"classes/LegacySchoolDo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{},"injectables/UserLoginMigrationUc.html":{},"modules/VideoConferenceModule.html":{}}}],["name",{"_index":31,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":8797,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["name.length",{"_index":10165,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["name.mapper",{"_index":12877,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["name.mapper.ts",{"_index":17614,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:12",{"_index":17617,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:5",{"_index":17619,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.match",{"_index":6442,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["name.strategy.ts",{"_index":1848,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:12",{"_index":1855,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:19",{"_index":1862,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:42",{"_index":1860,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.strategy.ts:48",{"_index":1857,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["name.tolowercase",{"_index":5455,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["named",{"_index":22346,"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":23609,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nameonly",{"_index":7972,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["names",{"_index":5072,"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":23588,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["naming",{"_index":23018,"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":11519,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/OauthUc.html":{},"injectables/TokenGenerator.html":{},"dependencies.html":{}}}],["nanoid(12",{"_index":20362,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["nanoid(15",{"_index":11527,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["nanoid(16",{"_index":16336,"title":{},"body":{"injectables/OauthUc.html":{}}}],["narrowed",{"_index":11366,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["native",{"_index":22267,"title":{},"body":{"dependencies.html":{}}}],["nature",{"_index":22595,"title":{},"body":{"license.html":{}}}],["nbf",{"_index":13067,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ne",{"_index":10311,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["necessary",{"_index":19918,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["need",{"_index":765,"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":1764,"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":20043,"title":{},"body":{"injectables/TaskUC.html":{}}}],["needs",{"_index":1760,"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":7874,"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":356,"title":{},"body":{"controllers/AccountController.html":{}}}],["nest/legacy",{"_index":23008,"title":{},"body":{"todo.html":{}}}],["nest:build",{"_index":23067,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:build:all",{"_index":23070,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console",{"_index":23094,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console:dev",{"_index":23095,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:build",{"_index":23089,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:serve",{"_index":23090,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint",{"_index":23110,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint:fix",{"_index":23113,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:prebuild",{"_index":23066,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start",{"_index":23073,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:debug",{"_index":23078,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:dev",{"_index":23075,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:files",{"_index":23085,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:prod",{"_index":23080,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test",{"_index":23103,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:all",{"_index":23104,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:api",{"_index":23105,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:cov",{"_index":23107,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:debug",{"_index":23109,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:unit",{"_index":23106,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:watch",{"_index":23108,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest_log_level",{"_index":11984,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["nestapp.get(rocketchatservice",{"_index":23326,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["nested",{"_index":16642,"title":{},"body":{"injectables/PermissionService.html":{}}}],["nestexpress.set('feathersapp",{"_index":9843,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["nestinterceptor",{"_index":8232,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["nestjs",{"_index":3457,"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":963,"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":{},"modules/MetaTagExtractorModule.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":3893,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{}}}],["nestjs/clithen",{"_index":23132,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nestjs/common",{"_index":226,"title":{},"body":{"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/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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":{},"classes/UnknownQueryTypeLoggableException.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":15676,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["nestjs/common/decorators/core/injectable.decorator",{"_index":4524,"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":6577,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["nestjs/common/exceptions/not",{"_index":8663,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["nestjs/config",{"_index":598,"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/MetaTagExtractorModule.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":8450,"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":1372,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"dependencies.html":{}}}],["nestjs/microservices",{"_index":22156,"title":{},"body":{"dependencies.html":{}}}],["nestjs/passport",{"_index":1374,"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":22158,"title":{},"body":{"dependencies.html":{}}}],["nestjs/swagger",{"_index":150,"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/ClassFilterParams.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":{},"classes/GetMetaTagDataBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.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":20303,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["nestjs/testing.test",{"_index":23487,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nestmodule",{"_index":18617,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nestwinston",{"_index":23352,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["net",{"_index":22324,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["network",{"_index":22377,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["neuen",{"_index":4852,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["never",{"_index":8120,"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":236,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BaseUc.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":{},"controllers/BoardSubmissionController.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationMapper.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"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":13468,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfig.idphint",{"_index":13466,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs",{"_index":13374,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.foreach((newconfig",{"_index":13463,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.some((newconfig",{"_index":13470,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newelement",{"_index":7603,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newentity",{"_index":2307,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/GroupRepo.html":{}}}],["newentity._id",{"_index":2323,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newentity.id",{"_index":2322,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newfactory",{"_index":2414,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newgroupname",{"_index":7559,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newid",{"_index":6393,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newid}/${name",{"_index":6396,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newlanguage",{"_index":21693,"title":{},"body":{"injectables/UserService.html":{}}}],["newlist",{"_index":2684,"title":{},"body":{"entities/Board.html":{}}}],["newname",{"_index":6728,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["newnonoptionalparamnames",{"_index":9608,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.includes(name",{"_index":9611,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.some((name",{"_index":9612,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams",{"_index":9606,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams.map((parameter",{"_index":9609,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam",{"_index":9597,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.isoptional",{"_index":9598,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.name",{"_index":9587,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.regex",{"_index":9617,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.scope",{"_index":9619,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.type",{"_index":9618,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams",{"_index":9560,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.filter((parameter",{"_index":9607,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.find((p",{"_index":9615,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some",{"_index":9596,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some((newparam",{"_index":9585,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newpath",{"_index":1195,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["newpropsfactory",{"_index":2412,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newresource",{"_index":5185,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newresource.caninline",{"_index":5188,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newrooms",{"_index":7583,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newrooms.foreach((room",{"_index":7585,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["news",{"_index":6926,"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":15160,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.controller",{"_index":15192,"title":{},"body":{"modules/NewsModule.html":{}}}],["news.controller.ts",{"_index":20153,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.controller.ts:19",{"_index":20158,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.createdat",{"_index":15166,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.createinstance(targetmodel",{"_index":15301,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news.displayat",{"_index":15161,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.id",{"_index":15158,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.params.ts",{"_index":7101,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["news.params.ts:14",{"_index":10773,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["news.params.ts:15",{"_index":7118,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:17",{"_index":20878,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:22",{"_index":7105,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:25",{"_index":20874,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:30",{"_index":7110,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:32",{"_index":20876,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:37",{"_index":7116,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:44",{"_index":7113,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.permissions",{"_index":15168,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.source",{"_index":15162,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.sourcedescription",{"_index":15163,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.target.id",{"_index":15164,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.targetmodel",{"_index":15165,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.title",{"_index":15159,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updatedat",{"_index":15167,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updater",{"_index":15169,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news[key",{"_index":15316,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news].params.ts",{"_index":23339,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news].response.dto",{"_index":23341,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news_edit",{"_index":15318,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news_sources",{"_index":15126,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["news_sources[number",{"_index":15130,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["newscontroller",{"_index":15066,"title":{"controllers/NewsController.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["newscount",{"_index":15307,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable",{"_index":15109,"title":{"classes/NewsCrudOperationLoggable.html":{}},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.create",{"_index":15303,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.delete",{"_index":15320,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.update",{"_index":15317,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsentities",{"_index":15220,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentities.filter((news",{"_index":15224,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentity",{"_index":15216,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsid",{"_index":15334,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["newslist",{"_index":15097,"title":{},"body":{"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map((news",{"_index":15100,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map(async",{"_index":15310,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newslistresponse",{"_index":15089,"title":{"classes/NewsListResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"controllers/TeamNewsController.html":{}}}],["newslistresponse(dtolist",{"_index":15101,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper",{"_index":15085,"title":{"classes/NewsMapper.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.mapcreatenewstodomain(params",{"_index":15095,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapnewsscopetodomain(scope",{"_index":15099,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.maptologmessagedata(this.news",{"_index":15119,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["newsmapper.maptoresponse(news",{"_index":15096,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapupdatenewstodomain(params",{"_index":15106,"title":{},"body":{"controllers/NewsController.html":{}}}],["newsmodule",{"_index":15182,"title":{"modules/NewsModule.html":{}},"body":{"modules/NewsModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["newspermission",{"_index":15282,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsrepo",{"_index":15187,"title":{"injectables/NewsRepo.html":{}},"body":{"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["newsresponse",{"_index":15090,"title":{"classes/NewsResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{}}}],["newsrule",{"_index":23792,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newsscope",{"_index":15209,"title":{"classes/NewsScope.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{}}}],["newstarget",{"_index":6917,"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":15199,"title":{"interfaces/NewsTargetFilter.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["newstargetmodel",{"_index":6918,"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":6944,"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":6949,"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":6946,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newsuc",{"_index":15087,"title":{"injectables/NewsUc.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newsuc.getrequiredpermissions(ispublished",{"_index":15313,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsuc.getrequiredpermissions(unpublished",{"_index":15305,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsurlparams",{"_index":15071,"title":{"classes/NewsUrlParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsUrlParams.html":{}}}],["newtool",{"_index":9577,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.parameters",{"_index":9581,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.version",{"_index":9583,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newuser",{"_index":23774,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newvar",{"_index":1093,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["nexboard",{"_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":{},"injectables/NexboardService.html":{}}}],["nexboard.id",{"_index":15344,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.publiclink",{"_index":15345,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardresponse",{"_index":15341,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardservice",{"_index":14223,"title":{"injectables/NexboardService.html":{}},"body":{"modules/LessonModule.html":{},"injectables/NexboardService.html":{}}}],["next",{"_index":521,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/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":17477,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["next.handle().pipe(tap",{"_index":8236,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["nextcloud",{"_index":11584,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISchoolProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["nextcloud.client",{"_index":15378,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudclient",{"_index":4617,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudgroups",{"_index":11339,"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":15376,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy",{"_index":4618,"title":{"injectables/NextcloudStrategy.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy.generategroupfoldername(team.id",{"_index":15393,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudtool",{"_index":15405,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ni_",{"_index":18094,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["node",{"_index":3248,"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/ContentElementService.html":{},"injectables/FileSystemAdapter.html":{},"todo.html":{}}}],["node.entity",{"_index":3162,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.entity.ts",{"_index":4067,"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":8742,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"entities/RichTextElementNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:12",{"_index":9941,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{}}}],["node.entity.ts:13",{"_index":17564,"title":{},"body":{"entities/RichTextElementNode.html":{}}}],["node.entity.ts:15",{"_index":14365,"title":{},"body":{"entities/LinkElementNode.html":{}}}],["node.entity.ts:16",{"_index":4068,"title":{},"body":{"entities/CardNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:23",{"_index":4805,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:26",{"_index":4803,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:9",{"_index":9942,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{},"entities/SubmissionContainerElementNode.html":{}}}],["node.js",{"_index":22301,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["node.level",{"_index":3599,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.pathofchildren",{"_index":3601,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo",{"_index":3311,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.repo.ts",{"_index":3585,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:19",{"_index":3591,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:30",{"_index":3593,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:6",{"_index":3588,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:9",{"_index":3589,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.title",{"_index":3331,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["node.usedobuilder(this",{"_index":3238,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["node:fs/promises",{"_index":13711,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["node_env",{"_index":12246,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["node_env=test",{"_index":18663,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nodeclam",{"_index":1111,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["nodeclam().init",{"_index":1128,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["nodeenvtype",{"_index":12249,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["nodejs.timeout",{"_index":17993,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nodeps",{"_index":22246,"title":{},"body":{"dependencies.html":{}}}],["nodeps.git",{"_index":22248,"title":{},"body":{"dependencies.html":{}}}],["nodes",{"_index":3594,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.filter((n",{"_index":3615,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.map((node",{"_index":3603,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nofutureavailabledate",{"_index":19910,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{}}}],["non",{"_index":8326,"title":{},"body":{"injectables/ElementUc.html":{},"classes/MongoPatterns.html":{},"classes/StorageProviderEncryptedStringType.html":{},"license.html":{},"todo.html":{}}}],["noncommercially",{"_index":22624,"title":{},"body":{"license.html":{}}}],["none",{"_index":1414,"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":15327,"title":{},"body":{"injectables/NewsUc.html":{}}}],["nonoptionalparamnames",{"_index":9603,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.includes(name",{"_index":9613,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.some((name",{"_index":9610,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams",{"_index":9600,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams.map((parameter",{"_index":9604,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["normal",{"_index":1766,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"license.html":{}}}],["normalizepassword",{"_index":1522,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizepassword(password",{"_index":1535,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername",{"_index":1523,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername(username",{"_index":1537,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normally",{"_index":22653,"title":{},"body":{"license.html":{}}}],["nosuchbucket",{"_index":17958,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nosuchkey",{"_index":17952,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["not_found",{"_index":15449,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["notation",{"_index":2425,"title":{},"body":{"classes/BaseFactory.html":{}}}],["note",{"_index":754,"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":20077,"title":{},"body":{"injectables/TaskUC.html":{}}}],["notfound",{"_index":7842,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["notfounderror",{"_index":14720,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfounderror(`ltitool",{"_index":14724,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfoundexception",{"_index":2622,"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/SubmissionItemUc.html":{},"injectables/TaskCopyUC.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserMigrationService.html":{}}}],["notfoundexception('board",{"_index":2665,"title":{},"body":{"entities/Board.html":{}}}],["notfoundexception('could",{"_index":8692,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskCopyUC.html":{}}}],["notfoundexception('no",{"_index":7576,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["notfoundexception('nosuchkey",{"_index":17954,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["notfoundexception('some",{"_index":4127,"title":{},"body":{"injectables/CardService.html":{}}}],["notfoundexception('there",{"_index":5683,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["notfoundexception(`school",{"_index":21529,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["notfoundexception(`the",{"_index":10691,"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":3319,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["notfoundexception(`unable",{"_index":16080,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["notfoundexception})@apibody({required",{"_index":4955,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["notfoundexception})@apiresponse({status",{"_index":18716,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notfoundexception})@get(':boardid",{"_index":2894,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@get(':boardid/context",{"_index":2889,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(201)@patch(':contentelementid/content",{"_index":8282,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':boardid",{"_index":2885,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':cardid",{"_index":4002,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':columnid",{"_index":4959,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':contentelementid",{"_index":8273,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':boardid/title",{"_index":2900,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/height",{"_index":4017,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/title",{"_index":4020,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':columnid/title",{"_index":4966,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':submissionitemid",{"_index":3705,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundexception})@httpcode(204)@put(':cardid/position",{"_index":4013,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@put(':columnid/position",{"_index":4963,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@put(':contentelementid/position",{"_index":8277,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@post(':boardid/columns",{"_index":2880,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@post(':cardid/elements",{"_index":3998,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@post(':submissionitemid/elements",{"_index":3694,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundloggableexception",{"_index":4482,"title":{"classes/NotFoundLoggableException.html":{}},"body":{"injectables/ClassesRepo.html":{},"injectables/ColumnBoardService.html":{},"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":21414,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception(class.name",{"_index":4498,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["notfoundloggableexception(columnboard.name",{"_index":4842,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["notfoundloggableexception(contextexternaltool.name",{"_index":9818,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(externaltool.name",{"_index":9813,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(group.name",{"_index":11274,"title":{},"body":{"injectables/GroupService.html":{}}}],["notfoundloggableexception(pseudonym.name",{"_index":9806,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(schoolexternaltool.name",{"_index":9816,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(userdo.name",{"_index":16505,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["nothing",{"_index":22765,"title":{},"body":{"license.html":{}}}],["notice",{"_index":14430,"title":{},"body":{"injectables/Logger.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["notice(loggable",{"_index":14437,"title":{},"body":{"injectables/Logger.html":{}}}],["notices",{"_index":22474,"title":{},"body":{"license.html":{}}}],["notifies",{"_index":22754,"title":{},"body":{"license.html":{}}}],["notify",{"_index":22750,"title":{},"body":{"license.html":{}}}],["notimplementedexception",{"_index":3196,"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":14272,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{}}}],["notimplementedexception('copy",{"_index":18917,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('import",{"_index":18936,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('only",{"_index":4778,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["notimplementedexception('repo_or_service_not_implement",{"_index":12164,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["notimplementedexception('rooms",{"_index":17754,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["notimplementedexception(`invalid",{"_index":3256,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["notimplementedexception(`unknown",{"_index":5632,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["notimplementedexception(`unsupported",{"_index":5656,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["notimplementedexception})@post(':token/import')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":18719,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notmigratedusers",{"_index":18449,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notmigratedusers.data.foreach((user",{"_index":18453,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notwithstanding",{"_index":22707,"title":{},"body":{"license.html":{}}}],["nountildate",{"_index":6988,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["november",{"_index":22359,"title":{},"body":{"license.html":{}}}],["now",{"_index":1758,"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":11705,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["now.getmonth",{"_index":11706,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["nowplusdays",{"_index":18872,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["nowplusdays(days",{"_index":18893,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["now}ms",{"_index":8238,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["npm",{"_index":22969,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["npx",{"_index":23650,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["null",{"_index":593,"title":{},"body":{"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":144,"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":{},"classes/GetMetaTagDataBody.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":19015,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["nullorundefined",{"_index":11358,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["nullorundefined(value",{"_index":11359,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["num",{"_index":6441,"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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"interfaces/ClassProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"injectables/MetaTagExtractorService.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"interfaces/OcsResponse.html":{},"classes/Page.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/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":14903,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["number(b.width",{"_index":14904,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["number(batchsize",{"_index":8003,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["number(matches.groups.number",{"_index":6445,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number(options.pagesize",{"_index":11640,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number(options.skip",{"_index":11662,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number.isnan(this.deletedat.gettime",{"_index":10026,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["number.strategy.ts",{"_index":1898,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{}}}],["number.strategy.ts:12",{"_index":1903,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{}}}],["number.strategy.ts:9",{"_index":1901,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{}}}],["numbered",{"_index":22884,"title":{},"body":{"license.html":{}}}],["numberofdrafttasks",{"_index":3418,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberoffailingfilesinbatch",{"_index":8045,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberoffilesinbatch",{"_index":8038,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofplannedtasks",{"_index":3419,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofprocessedfiles",{"_index":8039,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofpublishedtasks",{"_index":3420,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofstudents",{"_index":6800,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["numberofsubmitters",{"_index":12534,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofsubmitterswithgrade",{"_index":12542,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofteachers",{"_index":6803,"title":{},"body":{"classes/CourseFactory.html":{}}}],["numberofteammembers",{"_index":19113,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["numbers",{"_index":15029,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["numerous",{"_index":23431,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nuxt",{"_index":23623,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nvmrc",{"_index":23026,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["o",{"_index":7881,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["o.id",{"_index":3338,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["oauth",{"_index":5501,"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":15703,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["oauth.service",{"_index":12675,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/SystemService.html":{}}}],["oauth.service.ts",{"_index":12682,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:13",{"_index":13533,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:15",{"_index":12687,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:23",{"_index":12689,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:50",{"_index":13537,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:9",{"_index":12686,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.uc",{"_index":16237,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauth.uc.ts",{"_index":11420,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:14",{"_index":11430,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:23",{"_index":11440,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:25",{"_index":11439,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:27",{"_index":11432,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:47",{"_index":11441,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:49",{"_index":11437,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:66",{"_index":11434,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth2",{"_index":5497,"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":21153,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["oauth2.0",{"_index":14543,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["oauth2authorizationbodyparams",{"_index":14500,"title":{"classes/Oauth2AuthorizationBodyParams.html":{}},"body":{"controllers/LoginController.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2clientid",{"_index":9743,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["oauth2config",{"_index":9140,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.baseurl",{"_index":9161,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.clientid",{"_index":9162,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.clientsecret",{"_index":9453,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.frontchannellogouturi",{"_index":9459,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.redirecturis",{"_index":9458,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.scope",{"_index":9454,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.skipconsent",{"_index":9163,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.tokenendpointauthmethod",{"_index":9456,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.type",{"_index":9160,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2migrationparams",{"_index":15616,"title":{"classes/Oauth2MigrationParams.html":{}},"body":{"classes/Oauth2MigrationParams.html":{},"controllers/UserLoginMigrationController.html":{}}}],["oauth2params",{"_index":7357,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2strategy",{"_index":1368,"title":{"injectables/Oauth2Strategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2toolconfig",{"_index":7340,"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":9223,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigcreateparams",{"_index":8700,"title":{"classes/Oauth2ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["oauth2toolconfigentity",{"_index":8765,"title":{"classes/Oauth2ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["oauth2toolconfigfactory",{"_index":7346,"title":{"classes/Oauth2ToolConfigFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.build(customparam",{"_index":7380,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.define(oauth2toolconfig",{"_index":7358,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigresponse",{"_index":9294,"title":{"classes/Oauth2ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["oauth2toolconfigupdate",{"_index":9227,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigupdateparams",{"_index":9225,"title":{"classes/Oauth2ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["oauth2toollaunchstrategy",{"_index":15453,"title":{"injectables/OAuth2ToolLaunchStrategy.html":{}},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["oauth_provisioning_enabled",{"_index":12208,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthadapterservice",{"_index":15511,"title":{"injectables/OauthAdapterService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{}}}],["oauthapimodule",{"_index":15693,"title":{"modules/OauthApiModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthclient",{"_index":9403,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.client_secret",{"_index":16152,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.frontchannel_logout_uri",{"_index":9448,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.redirect_uris",{"_index":9446,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.scope",{"_index":9442,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.token_endpoint_auth_method",{"_index":9444,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclientbody",{"_index":15704,"title":{"classes/OauthClientBody.html":{}},"body":{"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{}}}],["oauthclientid",{"_index":7199,"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":5558,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthconfig",{"_index":11442,"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":12363,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientid",{"_index":11525,"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":12353,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.granttype",{"_index":12359,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.idphint",{"_index":12355,"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":12369,"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":12371,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.logoutendpoint",{"_index":12367,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.provider",{"_index":12365,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.redirecturi",{"_index":11526,"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":11523,"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":11524,"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":12357,"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":12690,"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":15778,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientid",{"_index":15772,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientsecret",{"_index":15773,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["oauthconfigdto.granttype",{"_index":15776,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.idphint",{"_index":15774,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.issuer",{"_index":15783,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.jwksendpoint",{"_index":15784,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.logoutendpoint",{"_index":15782,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.provider",{"_index":15781,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.redirecturi",{"_index":15775,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.responsetype",{"_index":15779,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.scope",{"_index":15780,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.tokenendpoint",{"_index":15777,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse",{"_index":15785,"title":{"classes/OauthConfigResponse.html":{}},"body":{"classes/OauthConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse.authendpoint",{"_index":15805,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.clientid",{"_index":15800,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.granttype",{"_index":15803,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.idphint",{"_index":15801,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.issuer",{"_index":15810,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.jwksendpoint",{"_index":15811,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.logoutendpoint",{"_index":15809,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.provider",{"_index":15808,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.redirecturi",{"_index":15802,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.responsetype",{"_index":15806,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.scope",{"_index":15807,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.tokenendpoint",{"_index":15804,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigs",{"_index":9439,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthcurrentuser",{"_index":7145,"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":13136,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.externalid",{"_index":21435,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.officialschoolnumber",{"_index":21434,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externaluser.externalid",{"_index":21436,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatadto",{"_index":13103,"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":13108,"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":11502,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["oauthgranttype",{"_index":1340,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthgranttype.authorization_code_grant",{"_index":1337,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthloginresponse",{"_index":14505,"title":{"classes/OauthLoginResponse.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/OauthLoginResponse.html":{}}}],["oauthloginstate",{"_index":16269,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.provider",{"_index":16297,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.state",{"_index":16271,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstatedto",{"_index":15840,"title":{"classes/OauthLoginStateDto.html":{}},"body":{"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthloginstatedto(session.oauthloginstate",{"_index":15861,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["oauthloginstatemapper",{"_index":15852,"title":{"classes/OauthLoginStateMapper.html":{}},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["oauthloginstatemapper.mapsessiontodto(session",{"_index":16270,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthmigrationdto",{"_index":13957,"title":{"classes/OauthMigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationerror",{"_index":15456,"title":{"classes/OAuthMigrationError.html":{}},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthmigrationfailed",{"_index":15464,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthmigrationfinalfinish",{"_index":14135,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationfinished",{"_index":14014,"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":14012,"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":14013,"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":1358,"title":{"modules/OauthModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["oauthprocessdto",{"_index":15476,"title":{"classes/OAuthProcessDto.html":{}},"body":{"classes/OAuthProcessDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthprocessdto.jwt",{"_index":16284,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthproviderapimodule",{"_index":15875,"title":{"modules/OauthProviderApiModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthproviderclientcruduc",{"_index":15880,"title":{"injectables/OauthProviderClientCrudUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderconsentflowuc",{"_index":15881,"title":{"injectables/OauthProviderConsentFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthprovidercontroller",{"_index":15887,"title":{"controllers/OauthProviderController.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderloginflowservice",{"_index":12640,"title":{"injectables/OauthProviderLoginFlowService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["oauthproviderloginflowuc",{"_index":15882,"title":{"injectables/OauthProviderLoginFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderlogoutflowuc",{"_index":15883,"title":{"injectables/OauthProviderLogoutFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["oauthprovidermodule",{"_index":15879,"title":{"modules/OauthProviderModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["oauthproviderrequestmapper",{"_index":16100,"title":{"classes/OauthProviderRequestMapper.html":{}},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["oauthproviderrequestmapper.mapcreateacceptloginrequestbody",{"_index":16115,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderresponsemapper",{"_index":15884,"title":{"injectables/OauthProviderResponseMapper.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthproviderservice",{"_index":9367,"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":8917,"title":{"modules/OauthProviderServiceModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules.html":{}}}],["oauthprovideruc",{"_index":15885,"title":{"injectables/OauthProviderUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthprovisioningenabled",{"_index":12209,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthrejectablebody",{"_index":5491,"title":{"classes/OAuthRejectableBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthrejectablebody:13",{"_index":5519,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:23",{"_index":5528,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:32",{"_index":5530,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:41",{"_index":5532,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:50",{"_index":5536,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthscope",{"_index":12650,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["oauthservice",{"_index":11428,"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":15700,"title":{"controllers/OauthSSOController.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["oauthssoerror",{"_index":11445,"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":13119,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["oauthssoerror('requesting",{"_index":15691,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["oauthssoerror(`requested",{"_index":15548,"title":{},"body":{"injectables/OAuthService.html":{}}}],["oauthssoerror:10",{"_index":15465,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:11",{"_index":21586,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:4",{"_index":15468,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:5",{"_index":21589,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:6",{"_index":15467,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:7",{"_index":21588,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:8",{"_index":15466,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:9",{"_index":21587,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthsystems",{"_index":19556,"title":{},"body":{"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthsystems.find((system",{"_index":21380,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["oauthtoken",{"_index":16300,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthtokendto",{"_index":11448,"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":15544,"title":{"interfaces/OauthTokenResponse.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"interfaces/OauthTokenResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthtokens",{"_index":11455,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{}}}],["oauthuc",{"_index":15698,"title":{"injectables/OauthUc.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["obfuscated",{"_index":10967,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["obfuscated_subject",{"_index":13068,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["obj.id",{"_index":2780,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["object",{"_index":133,"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":2410,"title":{},"body":{"classes/BaseFactory.html":{}}}],["object.assign(this",{"_index":3399,"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":1824,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["object.defineproperty(entity",{"_index":8110,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["object.entries(params",{"_index":15315,"title":{},"body":{"injectables/NewsUc.html":{}}}],["object.factory.ts",{"_index":8117,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["object.keys(entity).foreach((key",{"_index":2325,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["object.keys(object).foreach((key",{"_index":2227,"title":{},"body":{"injectables/BBBService.html":{}}}],["object.keys(payload).length",{"_index":2601,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["object.keys(queryordermap",{"_index":9468,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["object.setprototypeof(this",{"_index":1008,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["object.ts",{"_index":1602,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BaseDomainObject.html":{},"classes/DomainObject.html":{}}}],["object.ts:14",{"_index":8114,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:18",{"_index":8113,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:8",{"_index":8112,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:9",{"_index":2344,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["object.values(filerecordparenttype",{"_index":10563,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["object.values(newstargetmodel",{"_index":15128,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{}}}],["object.values(previewinputmimetypes).includes(this.mimetype",{"_index":10181,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["object.values(validationerror.constraints",{"_index":1263,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["object],[object",{"_index":2265,"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":4129,"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":7814,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"classes/UserDoFactory.html":{}}}],["objectid(account.attdbcaccountid",{"_index":610,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["objectid(accountdto.systemid",{"_index":892,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(accountdto.userid",{"_index":889,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(domainobject.id",{"_index":2324,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["objectid(domainobject.schoolid",{"_index":4406,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.successor",{"_index":4416,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.year",{"_index":4412,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(entitydo.toolid",{"_index":9067,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(entitydo.userid",{"_index":9068,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(id",{"_index":606,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{}}}],["objectid(id).tohexstring",{"_index":18768,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["objectid(owneruserid",{"_index":10462,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(parentid",{"_index":10310,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(permissionrefid",{"_index":10466,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(props.columnboardid",{"_index":4918,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["objectid(props.context.id",{"_index":4811,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["objectid(props.contextid",{"_index":12272,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.creatorid",{"_index":10048,"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":10149,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.lockid",{"_index":10052,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.origintoolid",{"_index":7230,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["objectid(props.ownerid",{"_index":10044,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.parentid",{"_index":10042,"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":10077,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["objectid(props.schoolid",{"_index":10146,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(reference.id",{"_index":3334,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["objectid(refid",{"_index":10018,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(schoolid",{"_index":4486,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/FileRecordScope.html":{}}}],["objectid(systemid",{"_index":730,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["objectid(teacherid",{"_index":4408,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(toolid",{"_index":9049,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(user.id",{"_index":11172,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["objectid(userid",{"_index":725,"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":7634,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.createfromhexstring(props.id",{"_index":7644,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.isvalid(courseid",{"_index":3461,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["objectid.isvalid(id",{"_index":605,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/ImportUserRepo.html":{}}}],["objectid.isvalid(schoolid",{"_index":13029,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["objectid.isvalid(userid",{"_index":13031,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["objectids",{"_index":726,"title":{},"body":{"injectables/AccountRepo.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectids.map((id",{"_index":6638,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectives",{"_index":23720,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["objectname",{"_index":12166,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["objects",{"_index":3835,"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":22863,"title":{},"body":{"license.html":{}}}],["obligated",{"_index":22638,"title":{},"body":{"license.html":{}}}],["obligations",{"_index":22546,"title":{},"body":{"license.html":{}}}],["observable",{"_index":2185,"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":21423,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["occasionally",{"_index":22623,"title":{},"body":{"license.html":{}}}],["occur",{"_index":354,"title":{},"body":{"controllers/AccountController.html":{}}}],["occurred",{"_index":4642,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["occurring",{"_index":22762,"title":{},"body":{"license.html":{}}}],["occurs",{"_index":22677,"title":{},"body":{"license.html":{}}}],["ocs",{"_index":11341,"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":11340,"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":15275,"title":{},"body":{"injectables/NewsUc.html":{}}}],["offer",{"_index":22401,"title":{},"body":{"license.html":{}}}],["offered",{"_index":22644,"title":{},"body":{"license.html":{}}}],["offering",{"_index":22627,"title":{},"body":{"license.html":{}}}],["offers",{"_index":23092,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["offical",{"_index":21530,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["official",{"_index":13747,"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":18403,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["officialschoolnumber",{"_index":8532,"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":15461,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["officialschoolnumberfromtarget",{"_index":15462,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["offline",{"_index":7349,"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":14880,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["oid",{"_index":12073,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["oidc",{"_index":13397,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/LoginResponse-1.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidc.mapper",{"_index":19503,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.mapper.ts",{"_index":19485,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:12",{"_index":19490,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:26",{"_index":19487,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:5",{"_index":19488,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.service",{"_index":13390,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{}}}],["oidc.service.ts",{"_index":19498,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:12",{"_index":19501,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:21",{"_index":19500,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:9",{"_index":19499,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc/oidc.strategy",{"_index":18061,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc/service/oidc",{"_index":18062,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc_context",{"_index":5544,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["oidcconfig",{"_index":12344,"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":12422,"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":12418,"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":12419,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["oidcconfig.defaultscopes",{"_index":12429,"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":12420,"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":12425,"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":12424,"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":12427,"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":19494,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.idphint",{"_index":13471,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcconfigdto",{"_index":13357,"title":{"classes/OidcConfigDto.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["oidcconfigdto.authorizationurl",{"_index":16378,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientid",{"_index":16375,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientsecret",{"_index":16376,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.defaultscopes",{"_index":16382,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.idphint",{"_index":16377,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.logouturl",{"_index":16381,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.parentsystemid",{"_index":16374,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.tokenurl",{"_index":16379,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.userinfourl",{"_index":16380,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidccontextresponse",{"_index":5567,"title":{"classes/OidcContextResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["oidcexternalsubmappername",{"_index":13398,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcidentityprovidermapper",{"_index":13322,"title":{"classes/OidcIdentityProviderMapper.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["oidcinternalname",{"_index":4628,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["oidcmock__base_url",{"_index":23621,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidcmockprovisioningstrategy",{"_index":16409,"title":{"injectables/OidcMockProvisioningStrategy.html":{}},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["oidcmockstrategy",{"_index":16939,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["oidcprovisioningservice",{"_index":16419,"title":{"injectables/OidcProvisioningService.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcprovisioningstrategy",{"_index":16520,"title":{"injectables/OidcProvisioningStrategy.html":{}},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcsystems",{"_index":19558,"title":{},"body":{"injectables/SystemService.html":{}}}],["oidcuserattributemappername",{"_index":13396,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["ok",{"_index":21862,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["okay",{"_index":19926,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["old",{"_index":6401,"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":13465,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs",{"_index":13370,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.foreach((oldconfig",{"_index":13469,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.some((oldconfig",{"_index":13464,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["older",{"_index":22424,"title":{},"body":{"license.html":{}}}],["oldparam.name",{"_index":9586,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams",{"_index":9562,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.every((oldparam",{"_index":9599,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((oldparam",{"_index":9584,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((parameter",{"_index":9601,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool",{"_index":9579,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool.parameters",{"_index":9580,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["once",{"_index":17392,"title":{},"body":{"classes/RedirectResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["one",{"_index":9689,"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":6806,"title":{},"body":{"classes/CourseFactory.html":{}}}],["oneof",{"_index":3729,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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/SubmissionItemResponse.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ones",{"_index":6183,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["onetomany",{"_index":6576,"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":6553,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["onetomany('dashboardgridelementmodel",{"_index":7649,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["onetomany('submission",{"_index":12469,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('task",{"_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":{}}}],["onetoone",{"_index":2619,"title":{},"body":{"entities/Board.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone(undefined",{"_index":18155,"title":{},"body":{"entities/SchoolEntity.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone({type",{"_index":2610,"title":{},"body":{"entities/Board.html":{}}}],["oneweekago",{"_index":20102,"title":{},"body":{"injectables/TaskUC.html":{}}}],["oneweekago.setdate(oneweekago.getdate",{"_index":20103,"title":{},"body":{"injectables/TaskUC.html":{}}}],["ongoing",{"_index":6903,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["onlyactivecourses",{"_index":6994,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardUc.html":{}}}],["onlyexistingreferences",{"_index":2671,"title":{},"body":{"entities/Board.html":{}}}],["onlyfactories",{"_index":7879,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["onlyoauth",{"_index":19453,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemUc.html":{}}}],["onlyreadcourses",{"_index":20096,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onlywritecoursesids",{"_index":20095,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onmoduledestroy",{"_index":15007,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["onupdate",{"_index":2375,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["open",{"_index":14881,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["open/closed",{"_index":23160,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["openapi",{"_index":12864,"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":19850,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["opencourses",{"_index":20074,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opencourses.map((c",{"_index":20079,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opened",{"_index":20766,"title":{},"body":{"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["openid",{"_index":7350,"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":21765,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["openinnewtab",{"_index":6047,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["openldap",{"_index":23639,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["opennewtab",{"_index":7202,"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/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":22915,"title":{},"body":{"license.html":{}}}],["operated",{"_index":22631,"title":{},"body":{"license.html":{}}}],["operates",{"_index":23396,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["operating",{"_index":22500,"title":{},"body":{"license.html":{}}}],["operation",{"_index":10793,"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":21809,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["operation.error.ts",{"_index":10789,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.error.ts:4",{"_index":10790,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.loggable",{"_index":15293,"title":{},"body":{"injectables/NewsUc.html":{}}}],["operation.loggable.ts",{"_index":15111,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:13",{"_index":15115,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:6",{"_index":15114,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operations",{"_index":23738,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["operator",{"_index":767,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/Scope.html":{},"license.html":{}}}],["operators",{"_index":23391,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["oplogsize",{"_index":23675,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["opportunity",{"_index":22871,"title":{},"body":{"license.html":{}}}],["ops",{"_index":22996,"title":{},"body":{"todo.html":{}}}],["opt/keycloak/bin/kc.sh",{"_index":23055,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optimal",{"_index":13846,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["optimisation",{"_index":23183,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["option",{"_index":22704,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optional",{"_index":33,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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/ColumnUc.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":{},"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/LinkContentBody.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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":16392,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["optionaldatathere",{"_index":23364,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["optionally",{"_index":11721,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["options",{"_index":490,"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":7884,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.do",{"_index":4244,"title":{},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{}}}],["options.do.ts",{"_index":4461,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["options.do.ts:12",{"_index":4465,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.do.ts:6",{"_index":4463,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.enabled",{"_index":1118,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.entity",{"_index":4277,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["options.entity.ts",{"_index":4468,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["options.entity.ts:10",{"_index":4470,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{}}}],["options.everyattendeejoinsmuted",{"_index":21913,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.everyattendejoinsmuted",{"_index":21758,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["options.everybodyjoinsasmoderator",{"_index":21760,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.exchange",{"_index":1122,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.filesservicebaseurl",{"_index":1120,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.hostname",{"_index":1126,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.moderatormustapprovejoinrequests",{"_index":21762,"title":{},"body":{"entities/VideoConference.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.onlyfactories",{"_index":7885,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.order",{"_index":12802,"title":{},"body":{"controllers/ImportUserController.html":{},"injectables/NewsUc.html":{},"controllers/ToolController.html":{}}}],["options.port",{"_index":1133,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.response",{"_index":21986,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["options.response.ts",{"_index":22074,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:14",{"_index":22079,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:20",{"_index":22075,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:8",{"_index":22078,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.retrycount",{"_index":11642,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.retrydelay",{"_index":11643,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.routingkey",{"_index":1124,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.skip",{"_index":11661,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.ts",{"_index":12004,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["options.verbose",{"_index":11663,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options?.collection",{"_index":7883,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.context",{"_index":18855,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.exact",{"_index":13616,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.expiresat",{"_index":18856,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.expiresindays",{"_index":18903,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.limit",{"_index":13618,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.order",{"_index":9099,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{}}}],["options?.override",{"_index":7893,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.pagination",{"_index":9069,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["options?.schoolexclusive",{"_index":18899,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.skip",{"_index":13617,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["orchestrate",{"_index":23753,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["orchestrates",{"_index":23201,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["orchestration",{"_index":23242,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["order",{"_index":2034,"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":9103,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["order.firstname",{"_index":21636,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.lastname",{"_index":21640,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.params.ts",{"_index":16628,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["order.params.ts:13",{"_index":16631,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["orderby",{"_index":741,"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":11789,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["orderedlist",{"_index":17831,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["orderquery",{"_index":21635,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.firstname",{"_index":21637,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.lastname",{"_index":21641,"title":{},"body":{"injectables/UserRepo.html":{}}}],["org",{"_index":5330,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organisation",{"_index":18040,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["organization",{"_index":5107,"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":5198,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organization.resources).concat(this.resources",{"_index":5200,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder",{"_index":5095,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder.addresourcetoorganization(resourceprops",{"_index":5103,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationbuilder.addresourcetoorganization(this.maptasktowebcontentresource(task",{"_index":5109,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationelement.transform",{"_index":5336,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationelements",{"_index":5328,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationid",{"_index":10999,"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":5149,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["orgid",{"_index":18021,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["origin",{"_index":1964,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["original",{"_index":3271,"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":17232,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.alternativetext",{"_index":17247,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.caption",{"_index":17246,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.children.foreach((child",{"_index":17273,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.context",{"_index":17237,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.duedate",{"_index":17266,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.height",{"_index":17244,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.id",{"_index":17251,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.imageurl",{"_index":17261,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.inputformat",{"_index":17264,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.text",{"_index":17263,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.title",{"_index":17236,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.url",{"_index":17260,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["originalboard",{"_index":2991,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["originalboard.context.type",{"_index":4777,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["originalboard.getelements",{"_index":2992,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["originalcolumnboardid",{"_index":3037,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["originalcourse",{"_index":6723,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.color",{"_index":6746,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.getcoursegroupitems().length",{"_index":6757,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.name",{"_index":6738,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalentity",{"_index":2999,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["originallesson",{"_index":2961,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallesson.course",{"_index":14186,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["originallesson.id",{"_index":3032,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallessonid",{"_index":3031,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["originalschooldo",{"_index":18420,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["originaltask",{"_index":2964,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.description",{"_index":19698,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.descriptioninputformat",{"_index":19699,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.id",{"_index":3035,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.name",{"_index":19697,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.teamsubmissions",{"_index":19700,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltaskid",{"_index":3034,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltaskname",{"_index":19728,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["originfilepath",{"_index":10860,"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":12119,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["originsystemid",{"_index":21510,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["origintool",{"_index":7194,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["origintoolid",{"_index":7197,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["orm",{"_index":6953,"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":23140,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["orm/core",{"_index":173,"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":23538,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["orm/issues/1230",{"_index":10137,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["orm/issues/2165",{"_index":12570,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mikro",{"_index":10136,"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":10666,"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":5753,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["orphanremoval",{"_index":6554,"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":10385,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["os.eol",{"_index":10417,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["other.name.tolocalelowercase",{"_index":8990,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["otherindex",{"_index":8988,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["othermodule",{"_index":23232,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["otherparams",{"_index":19431,"title":{},"body":{"classes/SystemFactory.html":{}}}],["others",{"_index":10961,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["otherwise",{"_index":1400,"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":23296,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["out",{"_index":220,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":23410,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outdated",{"_index":20582,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"todo.html":{}}}],["outdated.loggable",{"_index":20839,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["outdatedsince",{"_index":12599,"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":23438,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outgoing",{"_index":23212,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["output",{"_index":10968,"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":6314,"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":7564,"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":19733,"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":23655,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["overenginiering",{"_index":23181,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["overridden",{"_index":15018,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["override",{"_index":2029,"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":20310,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrideprovider(databasemanagementuc",{"_index":20308,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrides",{"_index":8449,"title":{},"body":{"modules/ErrorModule.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["overrides/configures",{"_index":6506,"title":{},"body":{"modules/CoreModule.html":{}}}],["overriding",{"_index":23488,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["overview",{"_index":23097,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["overwrite_setting_show_setup_wizard='completed",{"_index":23712,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["overwritten",{"_index":23490,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["owned",{"_index":22805,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owner",{"_index":9973,"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":10003,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ownership",{"_index":15134,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owneruserid",{"_index":10452,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["owns",{"_index":19833,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["p",{"_index":2271,"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":17987,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p.name",{"_index":9616,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["p.sourcepath",{"_index":17973,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p27030:27017",{"_index":23671,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["package",{"_index":22136,"title":{"dependencies.html":{},"properties.html":{}},"body":{"todo.html":{}}}],["packaged",{"_index":22590,"title":{},"body":{"license.html":{}}}],["packages",{"_index":22970,"title":{},"body":{"todo.html":{}}}],["packaging",{"_index":22494,"title":{},"body":{"license.html":{}}}],["pad",{"_index":8494,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["pad.data.padid",{"_index":8496,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padid",{"_index":8491,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padname",{"_index":8492,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padresponse",{"_index":8490,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["page",{"_index":821,"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":{},"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":21413,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["page(entitydos",{"_index":9075,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["pagecontentdto",{"_index":16542,"title":{"classes/PageContentDto.html":{}},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{}}}],["pagecontentmapper",{"_index":16553,"title":{"injectables/PageContentMapper.html":{}},"body":{"injectables/PageContentMapper.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentqueryparams",{"_index":16562,"title":{"classes/PageContentQueryParams.html":{}},"body":{"classes/PageContentQueryParams.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentresponse",{"_index":16557,"title":{"classes/PageContentResponse.html":{}},"body":{"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"controllers/UserMigrationController.html":{}}}],["paged",{"_index":318,"title":{},"body":{"controllers/AccountController.html":{}}}],["pages",{"_index":849,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["pagesize",{"_index":11602,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{}}}],["pagetype",{"_index":16565,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypequery",{"_index":21476,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.pagetype",{"_index":21481,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.sourcesystem",{"_index":21482,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.targetsystem",{"_index":21483,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypes",{"_index":16568,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system",{"_index":21543,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system_mandatory",{"_index":21545,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_target_system",{"_index":21537,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes})@isenum(pagetypes",{"_index":16569,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["paginate",{"_index":9662,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["pagination",{"_index":6680,"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":11062,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination.skip",{"_index":11061,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination?.limit",{"_index":7000,"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":6999,"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":835,"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":846,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationparams:8",{"_index":850,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationresponse",{"_index":814,"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":819,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["paginationresponse:136",{"_index":15122,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["paginationresponse:14",{"_index":830,"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":829,"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":824,"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":21445,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["paginationresponse:63",{"_index":10209,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["paginationresponse:68",{"_index":6893,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["paginationresponse:7",{"_index":9350,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["paginationresponse:71",{"_index":12847,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["paginationresponse:74",{"_index":19776,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["paginationresponse:91",{"_index":6254,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["pairwise",{"_index":9461,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["papaparse",{"_index":22256,"title":{},"body":{"dependencies.html":{}}}],["paper",{"_index":22942,"title":{},"body":{"license.html":{}}}],["paragraph",{"_index":22742,"title":{},"body":{"license.html":{}}}],["paragraphs",{"_index":22814,"title":{},"body":{"license.html":{}}}],["parallel",{"_index":23536,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param",{"_index":333,"title":{},"body":{"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":16299,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["param('scope",{"_index":21949,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('scopeid",{"_index":21950,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('token",{"_index":10356,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["param)).rejects.tothrow(badrequestexception",{"_index":23480,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param)).tothrow(badrequestexception",{"_index":23478,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param.builder.ts",{"_index":6348,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.builder.ts:6",{"_index":6351,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.default",{"_index":8992,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["param.description",{"_index":9183,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.displayname",{"_index":8982,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.isoptional",{"_index":5475,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.location",{"_index":9185,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.name",{"_index":5477,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.name.tolowercase",{"_index":5466,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["param.regex",{"_index":5483,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.regexcomment",{"_index":9184,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.scope",{"_index":5467,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.type",{"_index":5482,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["paramdisplayat",{"_index":15300,"title":{},"body":{"injectables/NewsUc.html":{}}}],["parameter",{"_index":363,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"modules/ToolLaunchModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parameter.do.ts",{"_index":7275,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:10",{"_index":7279,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:12",{"_index":7284,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:14",{"_index":7285,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:16",{"_index":7286,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:18",{"_index":7282,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:20",{"_index":7287,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:22",{"_index":7278,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:4",{"_index":7283,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:6",{"_index":7281,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:8",{"_index":7280,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.entity.ts",{"_index":7303,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:10",{"_index":7307,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:13",{"_index":7306,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:16",{"_index":7305,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:19",{"_index":7310,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:22",{"_index":7311,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:25",{"_index":7312,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:28",{"_index":7308,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:31",{"_index":7313,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:34",{"_index":7304,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:7",{"_index":7309,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.isoptional",{"_index":9602,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["parameter.name",{"_index":9605,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["parameter.params",{"_index":8710,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["parameter.params.ts",{"_index":7395,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:13",{"_index":7406,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:18",{"_index":7400,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:23",{"_index":7398,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:28",{"_index":7397,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:33",{"_index":7407,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:38",{"_index":7408,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:42",{"_index":7411,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:46",{"_index":7405,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:50",{"_index":7414,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:54",{"_index":7402,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.response",{"_index":5817,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["parameter.response.ts",{"_index":7419,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:10",{"_index":7425,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:13",{"_index":7423,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:16",{"_index":7422,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:19",{"_index":7421,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:22",{"_index":7426,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:25",{"_index":7427,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:28",{"_index":7428,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:31",{"_index":7424,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:34",{"_index":7429,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:37",{"_index":7420,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.scope",{"_index":8638,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["parameter.strategy",{"_index":1845,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["parameter.strategy.ts",{"_index":1891,"title":{},"body":{"interfaces/AutoParameterStrategy.html":{}}}],["parameter.strategy.ts:5",{"_index":1892,"title":{},"body":{"interfaces/AutoParameterStrategy.html":{}}}],["parameter/custom",{"_index":7302,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter_type_not_implemented",{"_index":16601,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parameterkeys",{"_index":14997,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames",{"_index":14999,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames.join",{"_index":15002,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameters",{"_index":29,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":21810,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["parameters.map((param",{"_index":14998,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameterstoinclude",{"_index":2586,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["parametertype",{"_index":16600,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parametertypenotimplementedloggableexception",{"_index":1871,"title":{"classes/ParameterTypeNotImplementedLoggableException.html":{}},"body":{"injectables/AutoContextNameStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["params",{"_index":271,"title":{},"body":{"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":514,"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":3957,"title":{},"body":{"injectables/CalendarService.html":{}}}],["params.append(key",{"_index":2228,"title":{},"body":{"injectables/BBBService.html":{}}}],["params.availabledate",{"_index":19815,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.challenge",{"_index":16042,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client",{"_index":16064,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client_name",{"_index":16027,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.clientid",{"_index":9290,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["params.confirmpassword",{"_index":374,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.content",{"_index":15177,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.contents",{"_index":14215,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contents.foreach((element",{"_index":14216,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contextexternaltoolid",{"_index":20441,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contextid",{"_index":20434,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contexttype",{"_index":20435,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.copyname",{"_index":19696,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["params.course",{"_index":14214,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.courseid",{"_index":6488,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.description",{"_index":19814,"title":{},"body":{"classes/TaskMapper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params.displayat",{"_index":15178,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.dto",{"_index":23207,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["params.duedate",{"_index":19816,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.elements",{"_index":17792,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params.enablemigrationstart",{"_index":14986,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.everyattendeejoinsmuted",{"_index":21956,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.everybodyjoinsasmoderator",{"_index":21957,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.externalid",{"_index":13989,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.externaltoolid",{"_index":20557,"title":{},"body":{"controllers/ToolController.html":{}}}],["params.features",{"_index":13990,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.federalstate",{"_index":14000,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.filerecordid",{"_index":10648,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["params.flagged",{"_index":12817,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.from",{"_index":7459,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.groupid",{"_index":11067,"title":{},"body":{"controllers/GroupController.html":{}}}],["params.hidden",{"_index":14218,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.id",{"_index":13988,"title":{},"body":{"classes/LegacySchoolDo.html":{},"controllers/OauthProviderController.html":{}}}],["params.inmaintenancesince",{"_index":13991,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.interface",{"_index":2593,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["params.interface.ts",{"_index":12588,"title":{},"body":{"interfaces/IToolLaunchParams.html":{}}}],["params.inusermigration",{"_index":13992,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.language",{"_index":21736,"title":{},"body":{"injectables/UserUc.html":{}}}],["params.lessonid",{"_index":6489,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.limit",{"_index":16025,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.logouturl",{"_index":21837,"title":{},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.moderatormustapprovejoinrequests",{"_index":21958,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.name",{"_index":9289,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/TaskMapper.html":{}}}],["params.oauthmigrationfinalfinish",{"_index":14984,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationfinished",{"_index":14982,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationmandatory",{"_index":14980,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationpossible",{"_index":14978,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.officialschoolnumber",{"_index":13994,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.offset",{"_index":16026,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.originalboard",{"_index":3000,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["params.owner",{"_index":16028,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.parenttype",{"_index":18506,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.password",{"_index":373,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.previewoptions",{"_index":16757,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["params.previewparams.forceupdate",{"_index":16807,"title":{},"body":{"injectables/PreviewService.html":{}}}],["params.previousexternalid",{"_index":13993,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.pseudonym",{"_index":17022,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["params.schoolexternaltoolid",{"_index":20438,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["params.schoolid",{"_index":20431,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["params.schoolyear",{"_index":13995,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.sourceparentid",{"_index":18505,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.systemid",{"_index":16275,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["params.systems",{"_index":13997,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.target",{"_index":15297,"title":{},"body":{"injectables/NewsUc.html":{}}}],["params.targetid",{"_index":15180,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetmodel",{"_index":15179,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetparentid",{"_index":18508,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.taskid",{"_index":19096,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["params.title",{"_index":7465,"title":{},"body":{"controllers/DashboardController.html":{},"classes/NewsMapper.html":{}}}],["params.to",{"_index":7460,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.ts",{"_index":4325,"title":{},"body":{"classes/ClassFilterParams.html":{},"classes/ClassSortParams.html":{},"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.ts:7",{"_index":11144,"title":{},"body":{"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.ts:9",{"_index":4328,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["params.userid",{"_index":12813,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.userloginmigrationid",{"_index":13999,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.visibility",{"_index":17790,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params?.accountid",{"_index":7087,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.aud",{"_index":7083,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.external_sub",{"_index":7088,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.iss",{"_index":7082,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.privatekey",{"_index":7090,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.sub",{"_index":7080,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params].ts",{"_index":23268,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["paranoid",{"_index":947,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["parent",{"_index":3307,"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":{},"injectables/ElementUc.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":4131,"title":{},"body":{"injectables/CardService.html":{}}}],["parent.addchild(column",{"_index":5013,"title":{},"body":{"injectables/ColumnService.html":{}}}],["parent.addchild(element",{"_index":5685,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["parent.children.findindex((obj",{"_index":17382,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.children.foreach((child",{"_index":17381,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.getstudentids",{"_index":11928,"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":12503,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.id",{"_index":10061,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["parent.removechild(domainobject",{"_index":3380,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["parentcourseid",{"_index":19726,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["parentdata",{"_index":17349,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.boardnode",{"_index":17358,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.position",{"_index":17359,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentid",{"_index":3573,"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":3576,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/TaskRepo.html":{}}}],["parentids.courseids",{"_index":19894,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.creatorid",{"_index":19892,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.lessonids",{"_index":19896,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope",{"_index":19891,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bycourseids(parentids.courseids",{"_index":19895,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bylessonids(parentids.lessonids",{"_index":19897,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.byonlycreatorid(parentids.creatorid",{"_index":19893,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentmeetingid",{"_index":2053,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["parentname",{"_index":18778,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["parentnode",{"_index":17332,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentparams",{"_index":14177,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentparams.courseid",{"_index":14184,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentpermission",{"_index":14254,"title":{},"body":{"injectables/LessonRule.html":{}}}],["parentpermission(user",{"_index":14266,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parentpropertypath",{"_index":1252,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["parentrule",{"_index":23797,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["parents",{"_index":4780,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/TaskRepo.html":{}}}],["parentsfinished",{"_index":19858,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bycourseids(parentids.finishedcourseids",{"_index":19859,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bylessonids(parentids.lessonidsoffinishedcourses",{"_index":19860,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsmap",{"_index":17323,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentsopen",{"_index":19855,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bycourseids(parentids.opencourseids",{"_index":19856,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bylessonids(parentids.lessonidsofopencourses",{"_index":19857,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsystemid",{"_index":16365,"title":{},"body":{"classes/OidcConfigDto.html":{},"classes/SystemOidcMapper.html":{}}}],["parenttype",{"_index":6285,"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":23312,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parsed",{"_index":23338,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parseobjectidpipe",{"_index":23314,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parser",{"_index":22189,"title":{},"body":{"dependencies.html":{}}}],["part",{"_index":1753,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/BaseUc.html":{},"classes/ImportUserScope.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":484,"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":12058,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["partialtype",{"_index":20870,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["participantcount",{"_index":2114,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["particular",{"_index":19928,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{}}}],["parties",{"_index":22467,"title":{},"body":{"license.html":{}}}],["parts",{"_index":22513,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["party",{"_index":22632,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["party's",{"_index":22782,"title":{},"body":{"license.html":{}}}],["pascalcase",{"_index":23297,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["pass",{"_index":759,"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":487,"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":23756,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["passport",{"_index":13172,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["passportmodule",{"_index":1373,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["passportstrategy",{"_index":13181,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passportstrategy(strategy",{"_index":13176,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passthrough",{"_index":6700,"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":307,"title":{},"body":{"controllers/AccountController.html":{}}}],["password.params.ts",{"_index":16621,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:15",{"_index":16626,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:25",{"_index":16625,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.trim",{"_index":1587,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["passwordnew",{"_index":16610,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordold",{"_index":16611,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordpattern",{"_index":252,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["passwordpolicy",{"_index":13299,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["past",{"_index":6927,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["paste",{"_index":23557,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["patch",{"_index":334,"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":20924,"title":{},"body":{"controllers/UserController.html":{}}}],["patch(':boardid/title",{"_index":2923,"title":{},"body":{"controllers/BoardController.html":{}}}],["patch(':cardid/height",{"_index":4041,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':cardid/title",{"_index":4044,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':columnid/title",{"_index":4976,"title":{},"body":{"controllers/ColumnController.html":{}}}],["patch(':contentelementid/content",{"_index":8291,"title":{},"body":{"controllers/ElementController.html":{}}}],["patch(':dashboardid/element",{"_index":7445,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':dashboardid/moveelement",{"_index":7440,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':id",{"_index":367,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':id')@apioperation({summary",{"_index":325,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':importuserid/flag",{"_index":12785,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':importuserid/match",{"_index":12777,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':newsid",{"_index":15083,"title":{},"body":{"controllers/NewsController.html":{}}}],["patch(':roomid/board/order",{"_index":17777,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':roomid/elements/:elementid/visibility",{"_index":17774,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':submissionitemid",{"_index":3724,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["patch(':taskid/finish",{"_index":19641,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/restore",{"_index":19644,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/revertpublished",{"_index":19647,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch('consentrequest/:challenge",{"_index":16053,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('loginrequest/:challenge",{"_index":16040,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('logoutrequest/:challenge",{"_index":16044,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('me",{"_index":364,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me')@apioperation({summary",{"_index":329,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password",{"_index":371,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password')@apioperation({summary",{"_index":300,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions",{"_index":4660,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions')@apiresponse({status",{"_index":4640,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch(path",{"_index":1481,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patch(subpath",{"_index":1480,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patchconsentrequest",{"_index":15930,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["patchconsentrequest(challenge",{"_index":15938,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["patchconsentrequest(params",{"_index":15994,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchelementvisibility",{"_index":17762,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchelementvisibility(urlparams",{"_index":17773,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchgroup",{"_index":7435,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroup(urlparams",{"_index":7442,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroupparams",{"_index":7444,"title":{"classes/PatchGroupParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/PatchGroupParams.html":{}}}],["patching",{"_index":16606,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["patchlanguage",{"_index":21674,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchlanguage(userid",{"_index":21692,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchloginrequest",{"_index":15970,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(currentuserid",{"_index":16094,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(params",{"_index":15997,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchmyaccountparams",{"_index":328,"title":{"classes/PatchMyAccountParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyAccountParams.html":{}}}],["patchmypasswordparams",{"_index":299,"title":{"classes/PatchMyPasswordParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyPasswordParams.html":{}}}],["patchorderingofelements",{"_index":17763,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderingofelements(urlparams",{"_index":17776,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderparams",{"_index":16627,"title":{"classes/PatchOrderParams.html":{}},"body":{"classes/PatchOrderParams.html":{},"controllers/RoomsController.html":{}}}],["patchvisibilityparams",{"_index":16632,"title":{"classes/PatchVisibilityParams.html":{}},"body":{"classes/PatchVisibilityParams.html":{},"controllers/RoomsController.html":{}}}],["patent",{"_index":22741,"title":{},"body":{"license.html":{}}}],["patents",{"_index":22800,"title":{},"body":{"license.html":{}}}],["path",{"_index":360,"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/MetaTagExtractorService.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":10428,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["path.parse(this.name",{"_index":10196,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["path.replace(':token",{"_index":1196,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["path.slice(1",{"_index":1500,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["path.targetpath",{"_index":17980,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path_separator",{"_index":3560,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathobjects",{"_index":17983,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathobjects.filter((p",{"_index":17989,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathofchildren",{"_index":3578,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathproperties",{"_index":2565,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["pathqueries",{"_index":3602,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["pathqueries.length",{"_index":3604,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["paths",{"_index":10388,"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":17969,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((p",{"_index":17984,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((path",{"_index":16803,"title":{},"body":{"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["paths.map(async",{"_index":17977,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathtofile",{"_index":16744,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["path}${id}${path_separator",{"_index":3584,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pattern",{"_index":253,"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":23386,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["pattern.test(firstchar",{"_index":6661,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["pattern_login_from_dn",{"_index":12045,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["payload",{"_index":1555,"title":{},"body":{"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":18714,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["payload.completed",{"_index":19191,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["payload.parentid",{"_index":18801,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.parenttype",{"_index":18800,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.response",{"_index":18829,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["payload.response.ts",{"_index":18795,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:11",{"_index":18799,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:14",{"_index":18798,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:4",{"_index":18797,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.ts",{"_index":7092,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["payload[property.name",{"_index":2599,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["payment",{"_index":22843,"title":{},"body":{"license.html":{}}}],["peer",{"_index":22640,"title":{},"body":{"license.html":{}}}],["peers",{"_index":22643,"title":{},"body":{"license.html":{}}}],["pem",{"_index":7073,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["pending",{"_index":10113,"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":8334,"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":18428,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["perfectly",{"_index":23441,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["performance",{"_index":18427,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["performance.now",{"_index":18446,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["performing",{"_index":15117,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"license.html":{}}}],["period",{"_index":18431,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["period.entity",{"_index":11137,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["period.entity.ts",{"_index":11351,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["period.entity.ts:12",{"_index":11354,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["period.entity.ts:15",{"_index":11353,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["permanently",{"_index":22749,"title":{},"body":{"license.html":{}}}],["permission",{"_index":643,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BaseUc.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":{},"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/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":4646,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permission(s",{"_index":23758,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_create",{"_index":18920,"title":{},"body":{"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_edit",{"_index":23788,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_view",{"_index":8180,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["permission.create_user",{"_index":23773,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.entity",{"_index":10001,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.entity.ts",{"_index":10065,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["permission.entity.ts:18",{"_index":10072,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:21",{"_index":10074,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:24",{"_index":10075,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:27",{"_index":10071,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:30",{"_index":10070,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:33",{"_index":10069,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.enum",{"_index":23816,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.homework_create",{"_index":18922,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.includes('news",{"_index":15332,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.join_meeting",{"_index":22045,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.news_create",{"_index":15299,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_edit",{"_index":15295,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_view",{"_index":15294,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.nextcloud_user",{"_index":16112,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["permission.oauth_client_edit",{"_index":15920,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.oauth_client_view",{"_index":15917,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.refid.equals(refobjectid",{"_index":10021,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.school_create",{"_index":23769,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.start_meeting",{"_index":22044,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.task_dashboard_teacher_view_v3",{"_index":20050,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.task_dashboard_view_v3",{"_index":20051,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.tool_admin",{"_index":9491,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["permission.topic_create",{"_index":18921,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.topic_edit",{"_index":14322,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.topic_view",{"_index":14320,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.user_login_migration_admin",{"_index":4529,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["permissioncontext",{"_index":19328,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["permissioncontexts.create",{"_index":23766,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissionmapper",{"_index":4724,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionmapping",{"_index":21971,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["permissionmapping[bbbrole",{"_index":21977,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["permissionmapping[role",{"_index":22028,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["permissionrefid",{"_index":10455,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["permissions",{"_index":1663,"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":4648,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissions.body.params",{"_index":4654,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.body.params.ts",{"_index":20165,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:11",{"_index":20170,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:15",{"_index":20166,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:19",{"_index":20167,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:23",{"_index":20169,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:7",{"_index":20168,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.create",{"_index":4607,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.delete",{"_index":4608,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.dto",{"_index":4578,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.dto.ts",{"_index":20171,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:10",{"_index":20172,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["permissions.dto.ts:2",{"_index":20175,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:4",{"_index":20176,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:6",{"_index":20173,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:8",{"_index":20174,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.every((p",{"_index":9693,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.filter((permission",{"_index":15331,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permissions.includes(p",{"_index":1665,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["permissions.length",{"_index":9687,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.mapper",{"_index":4673,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["permissions.mapper.ts",{"_index":20179,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.mapper.ts:12",{"_index":20182,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.read",{"_index":4605,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.refid",{"_index":10004,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permissions.share",{"_index":4609,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.write",{"_index":4606,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissionsbody",{"_index":4638,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissionsdto",{"_index":4730,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionservice",{"_index":216,"title":{"injectables/PermissionService.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/PermissionService.html":{}}}],["permissive",{"_index":22573,"title":{},"body":{"license.html":{}}}],["permit",{"_index":22603,"title":{},"body":{"license.html":{}}}],["permits",{"_index":22419,"title":{},"body":{"license.html":{}}}],["permitted",{"_index":22367,"title":{},"body":{"license.html":{}}}],["permittedcourses",{"_index":20085,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedlessons",{"_index":20101,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedmatch",{"_index":21617,"title":{},"body":{"injectables/UserRepo.html":{}}}],["permittedsubmissions",{"_index":19322,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["perpetuity",{"_index":22682,"title":{},"body":{"license.html":{}}}],["persist",{"_index":7196,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"injectables/DashboardRepo.html":{},"interfaces/ICollectionFilePath.html":{},"entities/LtiTool.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["persist(entity",{"_index":7806,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush",{"_index":7800,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush(entity",{"_index":7808,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persisted",{"_index":13744,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["persistent",{"_index":1192,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["person",{"_index":18043,"title":{},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["personal",{"_index":22652,"title":{},"body":{"license.html":{}}}],["personenkontext",{"_index":18048,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["personenkontexte",{"_index":18077,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["personenstatus",{"_index":18049,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["perspective",{"_index":23739,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pertinent",{"_index":22861,"title":{},"body":{"license.html":{}}}],["physical",{"_index":22610,"title":{},"body":{"license.html":{}}}],["physically",{"_index":22622,"title":{},"body":{"license.html":{}}}],["pickimage",{"_index":14866,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["pickimage(images",{"_index":14871,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["pid",{"_index":18078,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["piece",{"_index":23158,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["pieces",{"_index":22392,"title":{},"body":{"license.html":{}}}],["pilot",{"_index":21489,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["pipe",{"_index":1082,"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":21748,"title":{},"body":{"modules/ValidationModule.html":{}}}],["pipeline",{"_index":10464,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{},"injectables/UserRepo.html":{}}}],["pipeline.push",{"_index":21642,"title":{},"body":{"injectables/UserRepo.html":{}}}],["pipes",{"_index":23285,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["pkcs1",{"_index":7072,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["place",{"_index":19921,"title":{},"body":{"injectables/TaskRepo.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["placeholder",{"_index":11690,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholder.length",{"_index":11828,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholders",{"_index":11855,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["placeholdervalue",{"_index":11834,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["places",{"_index":23194,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plain",{"_index":3836,"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":1308,"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":1306,"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":10633,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["plaintoclass(filerecordparams",{"_index":10649,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["player",{"_index":11390,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["please",{"_index":2336,"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":23562,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["plus",{"_index":22786,"title":{},"body":{"license.html":{}}}],["png",{"_index":8912,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["point",{"_index":7107,"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":22937,"title":{},"body":{"license.html":{}}}],["pointing",{"_index":3010,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["policy",{"_index":23835,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pool",{"_index":22285,"title":{},"body":{"dependencies.html":{}}}],["populate",{"_index":4690,"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":19841,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["populateboard",{"_index":3627,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populateboard(board",{"_index":3635,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populated",{"_index":3395,"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":19234,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populatereferences(submissions",{"_index":19242,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populateroles",{"_index":20257,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["populateroles(roles",{"_index":20259,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["port",{"_index":1132,"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":22647,"title":{},"body":{"license.html":{}}}],["pos",{"_index":1492,"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":7562,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["pos.y",{"_index":7565,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position",{"_index":2745,"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":7608,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position.x",{"_index":7697,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["position.y",{"_index":7698,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["positionfromgridindex",{"_index":7479,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["positionfromgridindex(index",{"_index":7514,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["possesses",{"_index":22619,"title":{},"body":{"license.html":{}}}],["possession",{"_index":22588,"title":{},"body":{"license.html":{}}}],["possibility",{"_index":22917,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["possible",{"_index":2434,"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":2903,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.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/MetaTagExtractorController.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":20559,"title":{},"body":{"controllers/ToolController.html":{}}}],["post('/:externaltoolid')@apiokresponse({description",{"_index":20539,"title":{},"body":{"controllers/ToolController.html":{}}}],["post(':boardid/columns",{"_index":2929,"title":{},"body":{"controllers/BoardController.html":{}}}],["post(':cardid/elements",{"_index":4052,"title":{},"body":{"controllers/CardController.html":{}}}],["post(':columnid/cards",{"_index":4981,"title":{},"body":{"controllers/ColumnController.html":{}}}],["post(':contentelementid/submissions",{"_index":8297,"title":{},"body":{"controllers/ElementController.html":{}}}],["post(':roomid/copy",{"_index":17793,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':roomid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17765,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':scope/:scopeid",{"_index":21948,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':scope/:scopeid')@apioperation({summary",{"_index":21934,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':submissionitemid/elements",{"_index":3733,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["post(':taskid/copy",{"_index":19670,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':taskid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":19630,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':token/import",{"_index":18744,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["post('clients",{"_index":16030,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["post('close",{"_index":21206,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('close')@httpcode(httpstatus.ok)@apiunprocessableentityresponse({description",{"_index":21132,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('export",{"_index":7907,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('export/:collectionname",{"_index":7904,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('ldap",{"_index":14512,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('lessons/:lessonid/copy",{"_index":17797,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('lessons/:lessonid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17768,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('local",{"_index":14517,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('migrate",{"_index":12773,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["post('oauth2",{"_index":14521,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('seed",{"_index":13647,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["post('seed/:collectionname",{"_index":7910,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('start",{"_index":21196,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('start')@apiunprocessableentityresponse({description",{"_index":21171,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('startsync",{"_index":12760,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('startusermigration",{"_index":12781,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('sync",{"_index":7916,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post()@apicreatedresponse({description",{"_index":20470,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["post(`${this.options.uri}${path",{"_index":1087,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(`${this.options.uri}/api/v1/login",{"_index":1094,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(path",{"_index":1086,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{}}}],["post(subpath",{"_index":1482,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["post.params.ts",{"_index":5889,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:10",{"_index":5901,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:14",{"_index":5891,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:15",{"_index":18192,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:18",{"_index":5893,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:22",{"_index":18190,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:23",{"_index":5895,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:26",{"_index":18193,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:30",{"_index":5900,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:34",{"_index":5903,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["postasadmin(path",{"_index":1067,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["postloginredirect",{"_index":15526,"title":{},"body":{"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"classes/SSOLoginQuery.html":{},"injectables/UserMigrationService.html":{}}}],["potential",{"_index":6732,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["potentially",{"_index":23848,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["povider",{"_index":22989,"title":{},"body":{"todo.html":{}}}],["power",{"_index":22558,"title":{},"body":{"license.html":{}}}],["powershell",{"_index":23614,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["pr",{"_index":22331,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["practical",{"_index":22379,"title":{},"body":{"license.html":{}}}],["practice",{"_index":22818,"title":{},"body":{"license.html":{}}}],["practices",{"_index":23571,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["practices/layers/orm",{"_index":22994,"title":{},"body":{"todo.html":{}}}],["preamble",{"_index":22370,"title":{},"body":{"license.html":{}}}],["precise",{"_index":4151,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{}}}],["preconditions",{"_index":22296,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["predecessor",{"_index":22783,"title":{},"body":{"license.html":{}}}],["predefined",{"_index":23360,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["preexisting",{"_index":23420,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["preferences",{"_index":12600,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["preferred",{"_index":22485,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["prefetch",{"_index":17169,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefetchcount",{"_index":17172,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefix",{"_index":261,"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/MetaTagExtractorController.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":11615,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["premature",{"_index":23182,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["preparation",{"_index":23440,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepare",{"_index":13903,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["preparebbbcreateconfigbuilder",{"_index":21875,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["preparebbbcreateconfigbuilder(scope",{"_index":21885,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["prepared",{"_index":23447,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepended",{"_index":22322,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prerendering",{"_index":4146,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["present",{"_index":22878,"title":{},"body":{"license.html":{}}}],["presentationurl",{"_index":2138,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["presents",{"_index":22480,"title":{},"body":{"license.html":{}}}],["preservation",{"_index":22714,"title":{},"body":{"license.html":{}}}],["preset",{"_index":21764,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["prettier",{"_index":23117,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["prevent",{"_index":2370,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["prevented",{"_index":22675,"title":{},"body":{"license.html":{}}}],["prevention",{"_index":1581,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["preview",{"_index":6317,"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":16735,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["preview.resize(width",{"_index":16762,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview.stream(format",{"_index":16763,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview_not_possible_scan_status_blocked",{"_index":10121,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_error",{"_index":10119,"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":10120,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_wrong_mime_type",{"_index":10122,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_possible",{"_index":10117,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewactionsloggable",{"_index":16657,"title":{"classes/PreviewActionsLoggable.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewgeneratorconsumer.generatepreview",{"_index":16718,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:end",{"_index":16759,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:start",{"_index":16753,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewproducer.generate:finished",{"_index":16776,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewproducer.generate:started",{"_index":16774,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewbuilder",{"_index":16668,"title":{"classes/PreviewBuilder.html":{}},"body":{"classes/PreviewBuilder.html":{},"injectables/PreviewService.html":{}}}],["previewbuilder.buildparams(filerecord",{"_index":16800,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewbuilder.buildpayload(params",{"_index":16814,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewconfig",{"_index":16685,"title":{"interfaces/PreviewConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["previewfileoptions",{"_index":16661,"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":10858,"title":{"interfaces/PreviewFileParams.html":{}},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["previewfilepath",{"_index":10861,"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":16691,"title":{"modules/PreviewGeneratorAMQPModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules.html":{}}}],["previewgeneratorbuilder",{"_index":16696,"title":{"classes/PreviewGeneratorBuilder.html":{}},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorbuilder.buildfile(preview",{"_index":16756,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorconsumer",{"_index":16701,"title":{"injectables/PreviewGeneratorConsumer.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewgeneratorconsumermodule",{"_index":16694,"title":{"modules/PreviewGeneratorConsumerModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules.html":{}}}],["previewgeneratorconsumermodule.register",{"_index":16695,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["previewgeneratorproducermodule",{"_index":10670,"title":{"modules/PreviewGeneratorProducerModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules.html":{}}}],["previewgeneratorservice",{"_index":16705,"title":{"injectables/PreviewGeneratorService.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorservice(storageclient",{"_index":16725,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewinputmimetypes",{"_index":10109,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewmoduleconfig",{"_index":16688,"title":{"interfaces/PreviewModuleConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewProducer.html":{}}}],["previewoptions",{"_index":16664,"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":16666,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoptions.width",{"_index":16667,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoutputmimetypes",{"_index":6298,"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":16765,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previewparams",{"_index":6312,"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":16811,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewparams.width",{"_index":16684,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["previewproducer",{"_index":16733,"title":{"injectables/PreviewProducer.html":{}},"body":{"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{}}}],["previewresponsemessage",{"_index":16690,"title":{"interfaces/PreviewResponseMessage.html":{}},"body":{"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewservice",{"_index":10582,"title":{"injectables/PreviewService.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["previewstatus",{"_index":6257,"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":10190,"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":10185,"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":10193,"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":10192,"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":10187,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_possible",{"_index":10188,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewwidth",{"_index":6299,"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":16767,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previous",{"_index":22785,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["previousexternalid",{"_index":12196,"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":5576,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["previousteachers",{"_index":5137,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["price",{"_index":22388,"title":{},"body":{"license.html":{}}}],["primarily",{"_index":22845,"title":{},"body":{"license.html":{}}}],["primary",{"_index":566,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{}}}],["primarykey",{"_index":2353,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["principle",{"_index":23161,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["principles",{"_index":23153,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prior",{"_index":22751,"title":{},"body":{"license.html":{}}}],["privacy",{"_index":8392,"title":{},"body":{"classes/ErrorLoggable.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["privacy_permission",{"_index":7190,"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":246,"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":241,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["privacyprotect()@isoptional()@matches(passwordpattern",{"_index":394,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["privacyprotect()@isstring()@isoptional()@matches(passwordpattern)@apiproperty({description",{"_index":16617,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["privacyprotect()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":16623,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["privacyprotected",{"_index":8401,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["private",{"_index":603,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"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/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":15735,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["privatedevice",{"_index":13222,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["privatekey",{"_index":7063,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["probably",{"_index":3610,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["problem",{"_index":5523,"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":22881,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["procedures",{"_index":22671,"title":{},"body":{"license.html":{}}}],["proceed",{"_index":16581,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["proceedbuttonurl",{"_index":16546,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["process",{"_index":6901,"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/UnknownQueryTypeLoggableException.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":15478,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:2",{"_index":15480,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:4",{"_index":15479,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.env.mongo_test_uri}/${dbname",{"_index":15016,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["processcookies",{"_index":11499,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processcookies(setcookies",{"_index":11511,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processed",{"_index":11679,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["processing",{"_index":4643,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["processoauthlogin",{"_index":16318,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processoauthlogin(cachedstate",{"_index":16327,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processredirect",{"_index":11500,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirect(dto",{"_index":11514,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirectcascade",{"_index":11425,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["processredirectcascade(initresponse",{"_index":11433,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["procuring",{"_index":22835,"title":{},"body":{"license.html":{}}}],["produce",{"_index":1545,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["producer.module.ts",{"_index":16734,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["producer.ts",{"_index":17848,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:12",{"_index":17852,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:21",{"_index":17850,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:29",{"_index":17851,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:5",{"_index":17849,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["produces",{"_index":23351,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["product",{"_index":2005,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"license.html":{}}}],["production",{"_index":11648,"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":22846,"title":{},"body":{"license.html":{}}}],["profile",{"_index":13548,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["program",{"_index":22384,"title":{},"body":{"license.html":{}}}],["program's",{"_index":22567,"title":{},"body":{"license.html":{}}}],["programmer",{"_index":22948,"title":{},"body":{"license.html":{}}}],["programming",{"_index":22490,"title":{},"body":{"license.html":{}}}],["programs",{"_index":22393,"title":{},"body":{"license.html":{}}}],["progress",{"_index":6231,"title":{},"body":{"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prohibit",{"_index":22530,"title":{},"body":{"license.html":{},"todo.html":{}}}],["prohibiting",{"_index":22555,"title":{},"body":{"license.html":{}}}],["prohibits",{"_index":22840,"title":{},"body":{"license.html":{}}}],["project",{"_index":21628,"title":{},"body":{"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prom",{"_index":17430,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"dependencies.html":{}}}],["prometheus",{"_index":16869,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp",{"_index":16894,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp.listen(prometheusmetricsappport",{"_index":16896,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsappport",{"_index":16892,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig",{"_index":16816,"title":{"classes/PrometheusMetricsConfig.html":{}},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance",{"_index":16889,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.isenabled",{"_index":16882,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.port",{"_index":16893,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate",{"_index":16862,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.api_response_time_metric_middleware_successfully_added",{"_index":16886,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.feature_disabled_middlewares_will_not_be_created",{"_index":16884,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable",{"_index":16858,"title":{"classes/PrometheusMetricsSetupStateLoggable.html":{}},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_default_metrics_disabled",{"_index":16890,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_metrics_route_metrics_disabled",{"_index":16891,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.feature_disabled_app_will_not_be_created",{"_index":16888,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prominent",{"_index":22482,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prominently",{"_index":22477,"title":{},"body":{"license.html":{}}}],["promise",{"_index":36,"title":{},"body":{"classes/AbstractAccountService.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/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/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":13798,"title":{},"body":{"injectables/LdapService.html":{}}}],["promise.all",{"_index":932,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/DashboardModelMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.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":15427,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(array.from(modelentity.gridelements).map(async",{"_index":7759,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(copyrequests",{"_index":17981,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["promise.all(domainobject.children.map(async",{"_index":17321,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["promise.all(gridelement.getreferences().map((ref",{"_index":7780,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(promises",{"_index":2303,"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":7751,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(removeuserids.map((nextclouduserid",{"_index":15425,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(studententities.map((user",{"_index":9786,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(substitutionteacherentities.map((user",{"_index":9789,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(teacherentities.map((user",{"_index":9788,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(toolreferencespromises",{"_index":20794,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["promise.allsettled(boarddo.children.map((child",{"_index":17270,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["promise.allsettled(promises",{"_index":3027,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.reject",{"_index":21615,"title":{},"body":{"injectables/UserRepo.html":{}}}],["promise.reject(new",{"_index":3008,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["promise.resolve",{"_index":2594,"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":16065,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["promise.resolve(dummyresponse('h5p",{"_index":11389,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["promise.resolve(false",{"_index":910,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["promise.resolve(new",{"_index":13138,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(oauthdata",{"_index":16418,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(response",{"_index":18738,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["promises",{"_index":2298,"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":22214,"title":{},"body":{"dependencies.html":{}}}],["prompt",{"_index":16408,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["prop",{"_index":1655,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["propagate",{"_index":22450,"title":{},"body":{"license.html":{}}}],["propagating",{"_index":22769,"title":{},"body":{"license.html":{}}}],["propagation",{"_index":22460,"title":{},"body":{"license.html":{}}}],["propaly",{"_index":12501,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["proper",{"_index":3074,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["properly",{"_index":23517,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["properties",{"_index":112,"title":{"properties.html":{}},"body":{"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/ClassFilterParams.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":{},"classes/GetMetaTagDataBody.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/MetaTagExtractorResponse.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":2596,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["properties.some",{"_index":2604,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertiestopopulate",{"_index":15194,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["property",{"_index":172,"title":{},"body":{"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":170,"title":{},"body":{"entities/Account.html":{},"entities/ClassEntity.html":{},"entities/News.html":{},"entities/User.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{}}}],["property()@unique",{"_index":9005,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"entities/PseudonymEntity.html":{},"entities/Role.html":{}}}],["property({comment",{"_index":19149,"title":{},"body":{"entities/SubmissionItemNode.html":{}}}],["property({fieldname",{"_index":4802,"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":160,"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":2381,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["property({type",{"_index":12737,"title":{},"body":{"entities/ImportUser.html":{}}}],["property.location",{"_index":2597,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["property.value",{"_index":2600,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertydata",{"_index":2550,"title":{"classes/PropertyData.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["propertylocation",{"_index":2590,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.body",{"_index":2598,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.path",{"_index":20617,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["propertylocation.query",{"_index":20618,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["propertyname",{"_index":2561,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["propertypath",{"_index":1259,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["propertypath.push(validationerror.property",{"_index":1261,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["props",{"_index":381,"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":6534,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.accesskeyid",{"_index":12281,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.accesstoken",{"_index":14527,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.activated",{"_index":200,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.alias",{"_index":12435,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.alternativetext",{"_index":9945,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.availabledate",{"_index":12474,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.axiosconfig",{"_index":11495,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.baseurl",{"_index":2498,"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":10014,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.cancelbuttonurl",{"_index":16552,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.caption",{"_index":9944,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.classnames",{"_index":12858,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.classnames.length",{"_index":12037,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.client",{"_index":12122,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.client_id",{"_index":1344,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.client_secret",{"_index":1346,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.clientid",{"_index":15638,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.clientsecret",{"_index":15639,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["props.closedat",{"_index":21234,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.code",{"_index":1352,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.color",{"_index":6616,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.colums",{"_index":7567,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.comment",{"_index":12296,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.completed",{"_index":19155,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["props.config",{"_index":1934,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.content",{"_index":6934,"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":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":{}}}],["props.context.type",{"_index":4809,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["props.contextexternaltool",{"_index":8746,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["props.contextexternaltoolid",{"_index":8735,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.contextid",{"_index":5859,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.contextref",{"_index":5787,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.contexttype",{"_index":5861,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.cookies",{"_index":11492,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.copyingsince",{"_index":6622,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.course",{"_index":6826,"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":6827,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.coursegroup",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["props.create",{"_index":10084,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.createdat",{"_index":407,"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":6937,"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":190,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.currentredirect",{"_index":11488,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.customs",{"_index":7223,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.data",{"_index":1926,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.default",{"_index":7289,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["props.defaultvalue",{"_index":7431,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["props.delete",{"_index":10086,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.deleted",{"_index":10028,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.deletedat",{"_index":10027,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.deletedsince",{"_index":10150,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.description",{"_index":6609,"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":12471,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.destinationexternalreference",{"_index":4792,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.displayat",{"_index":6936,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.displayname",{"_index":5789,"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":12476,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.email",{"_index":9629,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.enddate",{"_index":12239,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["props.endpointurl",{"_index":12279,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.expiresat",{"_index":198,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.externalgroups",{"_index":15828,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalid",{"_index":6940,"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":15839,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["props.externalorganizationid",{"_index":8521,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["props.externalschool",{"_index":15826,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalsource",{"_index":11102,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.externalsourcename",{"_index":4349,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.externaluser",{"_index":15824,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externaluserid",{"_index":8527,"title":{},"body":{"classes/ExternalGroupUserDto.html":{}}}],["props.features",{"_index":6624,"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":12233,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.filetype",{"_index":17192,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["props.finishedat",{"_index":21236,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.firstname",{"_index":9625,"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":12041,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.forcepasswordchange",{"_index":12606,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.friendlyurl",{"_index":7234,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.from",{"_index":8517,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.frontchannel_logout_uri",{"_index":7240,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.frontchannellogouturi",{"_index":15645,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.grade",{"_index":12302,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradecomment",{"_index":12304,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.graded",{"_index":12300,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradelevel",{"_index":4280,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.grant_type",{"_index":1350,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.grid.foreach((element",{"_index":7569,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.gridelements",{"_index":7647,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["props.height",{"_index":4072,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["props.hidden",{"_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":{}}}],["props.hydracookies",{"_index":6215,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.id",{"_index":405,"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":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.idmreferenceid",{"_index":811,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["props.idtoken",{"_index":15612,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.imageurl",{"_index":14367,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["props.importuserid",{"_index":12852,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.inmaintenancesince",{"_index":12225,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.inputformat",{"_index":17567,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.inusermigration",{"_index":12226,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.invitationlink",{"_index":4292,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.iscopyfrom",{"_index":10147,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.isdirectory",{"_index":10011,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.ishidden",{"_index":7242,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{}}}],["props.islocal",{"_index":7227,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isoptional",{"_index":7299,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.istemplate",{"_index":7225,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isupgradable",{"_index":4355,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.key",{"_index":7207,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.keyvalue",{"_index":1597,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.language",{"_index":12608,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastloginsystemchange",{"_index":12612,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastname",{"_index":9627,"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":196,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.launch_presentation_locale",{"_index":14599,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["props.ldapconfig",{"_index":12441,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.ldapdn",{"_index":4297,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.lesson",{"_index":12481,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.license",{"_index":12124,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.localcookies",{"_index":6213,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.location",{"_index":7291,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["props.lockid",{"_index":10050,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.loginname",{"_index":12854,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.logo",{"_index":8575,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.logo_url",{"_index":7211,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.logobase64",{"_index":8780,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["props.logourl",{"_index":6535,"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":7213,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.lti_version",{"_index":7215,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.mandatorysince",{"_index":21230,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.match",{"_index":12859,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.matchedby",{"_index":12039,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.materials",{"_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":{}}}],["props.merlinreference",{"_index":12126,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.method",{"_index":20649,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.mimetype",{"_index":10144,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.name",{"_index":4285,"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":7232,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.oauthconfig",{"_index":12437,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.officialschoolnumber",{"_index":8537,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.oidcconfig",{"_index":12439,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.opennewtab",{"_index":7238,"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":21768,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.organization",{"_index":11142,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.organizationid",{"_index":11106,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.originalcolumnboardid",{"_index":4775,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.origintoolid",{"_index":7228,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.outdatedsince",{"_index":12614,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.parameters",{"_index":5791,"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":3562,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.id",{"_index":3563,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.level",{"_index":3569,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parentid",{"_index":9893,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.parenttype",{"_index":9892,"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":186,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.payload",{"_index":20650,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.permissions",{"_index":10049,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.position",{"_index":3571,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.postloginredirect",{"_index":15850,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.preferences",{"_index":12610,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.previousexternalid",{"_index":12222,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{}}}],["props.privacy_permission",{"_index":7221,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.private",{"_index":12477,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.proceedbuttonurl",{"_index":16550,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.properties",{"_index":20599,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["props.provider",{"_index":15851,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.provisioningstrategy",{"_index":12443,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.provisioningurl",{"_index":12445,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.pseudonym",{"_index":9012,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["props.publicsubmissions",{"_index":12485,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.read",{"_index":10082,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.reason",{"_index":10127,"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":21496,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["props.redirect_uri",{"_index":1348,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.redirecturis",{"_index":15641,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.references.sort(this.sortreferences",{"_index":7543,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.referer",{"_index":11490,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.refownermodel",{"_index":10046,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.refpermmodel",{"_index":10079,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["props.refreshtoken",{"_index":15614,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["props.regex",{"_index":7295,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.regexcomment",{"_index":7297,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.region",{"_index":12285,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.relatedresources",{"_index":12128,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.requesttoken",{"_index":10129,"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":7217,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.response",{"_index":11493,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.role",{"_index":11328,"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":11321,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.rolename",{"_index":8529,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.rolenames",{"_index":12856,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.rolenames.length",{"_index":12034,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.roles",{"_index":7219,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/IRoleProperties.html":{},"entities/LtiTool.html":{},"entities/Role.html":{}}}],["props.school",{"_index":6612,"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":4287,"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":12191,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.schooltool",{"_index":5857,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["props.schooltoolid",{"_index":18198,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["props.schooltoolref",{"_index":5785,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.schoolyear",{"_index":4353,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.scope",{"_index":7293,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.secret",{"_index":7209,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{}}}],["props.secretaccesskey",{"_index":12283,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.secretvalue",{"_index":1599,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.securitycheck",{"_index":10037,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.share",{"_index":20178,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["props.sharetokens",{"_index":10039,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.size",{"_index":10012,"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":7236,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.source",{"_index":4301,"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":6942,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourceoptions",{"_index":4303,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.sourcesystem",{"_index":21251,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.sourcesystemid",{"_index":21226,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.startdate",{"_index":6620,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UsersList.html":{}}}],["props.startedat",{"_index":21232,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.state",{"_index":15848,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.status",{"_index":1928,"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":1930,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.storagefilename",{"_index":10013,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.storageprovider",{"_index":10015,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.student",{"_index":12294,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.studentcount",{"_index":4357,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.students",{"_index":6828,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.subjects",{"_index":12130,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.submitted",{"_index":12299,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.successor",{"_index":4299,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.system",{"_index":8552,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.systemid",{"_index":194,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{}}}],["props.systems",{"_index":12228,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.tags",{"_index":12132,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.target",{"_index":3400,"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":12134,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.targetmodel",{"_index":21767,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetsystem",{"_index":21253,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.targetsystemid",{"_index":21228,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.task",{"_index":12298,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teacherids",{"_index":4291,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.teachernames",{"_index":4351,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["props.teachers",{"_index":4371,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["props.teamid",{"_index":20193,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teammembers",{"_index":12305,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teamname",{"_index":20195,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teamsubmissions",{"_index":12487,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.teamusers",{"_index":12574,"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":12575,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.text",{"_index":17566,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.thumbnail",{"_index":10034,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.thumbnailrequesttoken",{"_index":10035,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.timestamps",{"_index":8736,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.title",{"_index":3572,"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":188,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.tokenendpointauthmethod",{"_index":15643,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.tool",{"_index":12189,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.toolid",{"_index":9014,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.toolversion",{"_index":5793,"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":11937,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["props.tspuid",{"_index":4471,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["props.type",{"_index":4347,"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":8519,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.untildate",{"_index":6618,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.updatedat",{"_index":409,"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":6938,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.url",{"_index":7205,"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":11327,"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":192,"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":4288,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.userloginmigration",{"_index":12230,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.username",{"_index":184,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.users",{"_index":8515,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.users.map",{"_index":11104,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validfrom",{"_index":11099,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validperiod",{"_index":11140,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.validuntil",{"_index":11100,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.value",{"_index":7317,"title":{},"body":{"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/PropertyData.html":{}}}],["props.version",{"_index":8576,"title":{},"body":{"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.versionkey",{"_index":10053,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.write",{"_index":10080,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.year",{"_index":4294,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["propsfactory",{"_index":449,"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":2422,"title":{},"body":{"classes/BaseFactory.html":{}}}],["protect",{"_index":22397,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["protected",{"_index":448,"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/BaseUc.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardUc.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardUc.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":{},"injectables/ColumnUc.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":{},"injectables/ElementUc.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":{},"injectables/SubmissionItemUc.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":21720,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles",{"_index":21714,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles.find((protectedrole",{"_index":21719,"title":{},"body":{"injectables/UserService.html":{}}}],["protecting",{"_index":22538,"title":{},"body":{"license.html":{}}}],["protection",{"_index":22578,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["protocol",{"_index":13434,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapper",{"_index":13490,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapperrepresentation",{"_index":13365,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocols",{"_index":22694,"title":{},"body":{"license.html":{}}}],["prototype",{"_index":1006,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["prove",{"_index":22897,"title":{},"body":{"license.html":{}}}],["provide",{"_index":636,"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":3249,"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":4620,"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":11654,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["provider.client",{"_index":15892,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.consent",{"_index":15926,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.controller",{"_index":15888,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.controller.ts",{"_index":15966,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:103",{"_index":15978,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:109",{"_index":15984,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:117",{"_index":15999,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:135",{"_index":15974,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:143",{"_index":15981,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:151",{"_index":15996,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:169",{"_index":15991,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:182",{"_index":16003,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:188",{"_index":15988,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:49",{"_index":15986,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:60",{"_index":15993,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:80",{"_index":15976,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:91",{"_index":16005,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.login",{"_index":12651,"title":{},"body":{"injectables/IdTokenService.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["provider.logout",{"_index":16009,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["provider.mapper",{"_index":13324,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["provider.mapper.ts",{"_index":16395,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:6",{"_index":16398,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:9",{"_index":16400,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.module",{"_index":15890,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.module.ts",{"_index":16132,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["provider.service",{"_index":16188,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider.service.ts",{"_index":16156,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:14",{"_index":16169,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:16",{"_index":16161,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:18",{"_index":16180,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:20",{"_index":16168,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:22",{"_index":16159,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:24",{"_index":16179,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:26",{"_index":16163,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:28",{"_index":16173,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:30",{"_index":16174,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:32",{"_index":16178,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:39",{"_index":16165,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:41",{"_index":16171,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:43",{"_index":16184,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:45",{"_index":16167,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:47",{"_index":16176,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:49",{"_index":16182,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.uc",{"_index":16014,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.uc.ts",{"_index":16191,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:10",{"_index":16194,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:15",{"_index":16196,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:7",{"_index":16192,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider/controller/dto",{"_index":15947,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/controller/dto/request/accept.query.ts",{"_index":136,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/accept.query.ts:9",{"_index":146,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/challenge.params.ts",{"_index":4197,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/challenge.params.ts:11",{"_index":4199,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/consent",{"_index":5490,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["provider/controller/dto/request/id.params.ts",{"_index":12623,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/id.params.ts:11",{"_index":12624,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/list",{"_index":14381,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["provider/controller/dto/request/login",{"_index":14529,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["provider/controller/dto/request/oauth",{"_index":15484,"title":{},"body":{"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{}}}],["provider/controller/dto/request/revoke",{"_index":17524,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["provider/controller/dto/request/user.params.ts",{"_index":21591,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/request/user.params.ts:7",{"_index":21592,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/response/consent",{"_index":5584,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts",{"_index":5541,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:16",{"_index":5551,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:22",{"_index":5554,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:28",{"_index":5557,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:32",{"_index":5560,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:36",{"_index":5561,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:40",{"_index":5564,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:44",{"_index":5566,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:48",{"_index":5568,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:54",{"_index":5572,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:6",{"_index":5549,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:60",{"_index":5573,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:66",{"_index":5574,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:72",{"_index":5577,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:76",{"_index":5578,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/login.response.ts",{"_index":14534,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:13",{"_index":14541,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:16",{"_index":14538,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:19",{"_index":14539,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:23",{"_index":14542,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:27",{"_index":14544,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:31",{"_index":14545,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:37",{"_index":14546,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:43",{"_index":14550,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:48",{"_index":14551,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:51",{"_index":14552,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:6",{"_index":14537,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oauth",{"_index":5581,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oidc",{"_index":5579,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts",{"_index":17387,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:12",{"_index":17393,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:3",{"_index":17389,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/oauth",{"_index":15965,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/dto",{"_index":9395,"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":16912,"title":{},"body":{"interfaces/ProviderOidcContext.html":{}}}],["provider/dto/request/accept",{"_index":109,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{}}}],["provider/dto/request/reject",{"_index":17409,"title":{},"body":{"interfaces/RejectRequestBody.html":{}}}],["provider/dto/response/consent",{"_index":16908,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["provider/dto/response/consent.response.ts",{"_index":16903,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{}}}],["provider/dto/response/introspect.response.ts",{"_index":13065,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["provider/dto/response/login.response.ts",{"_index":16911,"title":{},"body":{"interfaces/ProviderLoginResponse.html":{}}}],["provider/dto/response/redirect.response.ts",{"_index":16913,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{}}}],["provider/error/id",{"_index":12626,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["provider/hydra/hydra.adapter",{"_index":16190,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider/index",{"_index":15914,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["provider/interface/id",{"_index":123,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/interface/subject",{"_index":15737,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/interface/token",{"_index":15738,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/mapper/oauth",{"_index":16101,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/oauth",{"_index":15886,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider/service/id",{"_index":12634,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/service/oauth",{"_index":16066,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["provider/uc/oauth",{"_index":15891,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["providerconsentresponse",{"_index":15944,"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":16007,"title":{"interfaces/ProviderConsentSessionResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerid",{"_index":13416,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["providerloginresponse",{"_index":16006,"title":{"interfaces/ProviderLoginResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroauthclient",{"_index":9391,"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":16904,"title":{"interfaces/ProviderOidcContext.html":{}},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["provideroptions",{"_index":12402,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["providerredirectresponse",{"_index":15946,"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":208,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":8055,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["provides",{"_index":4546,"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":4634,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CoreModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["provision",{"_index":18342,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"license.html":{}}}],["provisionally",{"_index":22747,"title":{},"body":{"license.html":{}}}],["provisiondata",{"_index":16934,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisiondata(oauthdata",{"_index":16948,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisionexternalgroup",{"_index":16423,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalgroup(externalgroup",{"_index":16431,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool",{"_index":16424,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool(externalschool",{"_index":16433,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser",{"_index":16425,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser(externaluser",{"_index":16435,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning",{"_index":11249,"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":21584,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["provisioning.service",{"_index":16527,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioning.service.ts",{"_index":16421,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:121",{"_index":16432,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:166",{"_index":16429,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:191",{"_index":16438,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:20",{"_index":16427,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:32",{"_index":16434,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:69",{"_index":16436,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.strategy",{"_index":12349,"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":13112,"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":16918,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["provisioningmodule",{"_index":15697,"title":{"modules/ProvisioningModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["provisioningservice",{"_index":15512,"title":{"injectables/ProvisioningService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["provisioningstrategy",{"_index":12345,"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":16415,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:14",{"_index":16414,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:24",{"_index":13110,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:28",{"_index":13109,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:30",{"_index":18060,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:31",{"_index":16413,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:34",{"_index":18059,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:5",{"_index":16525,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningstrategy:61",{"_index":13104,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:7",{"_index":16524,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningsystemdto",{"_index":15818,"title":{"classes/ProvisioningSystemDto.html":{}},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper",{"_index":16953,"title":{"classes/ProvisioningSystemInputMapper.html":{}},"body":{"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper.maptointernal(systemdto",{"_index":16964,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisioningurl",{"_index":12346,"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":15509,"title":{},"body":{"injectables/OAuthService.html":{}}}],["provisionuser(systemid",{"_index":15532,"title":{},"body":{"injectables/OAuthService.html":{}}}],["proxy",{"_index":18648,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{}}}],["proxy's",{"_index":22887,"title":{},"body":{"license.html":{}}}],["ps256",{"_index":1411,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps384",{"_index":1412,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps512",{"_index":1413,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["pseudonym",{"_index":9004,"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":17060,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["pseudonym.entity.ts",{"_index":9003,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["pseudonym.entity.ts:18",{"_index":9006,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:21",{"_index":9007,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:24",{"_index":9008,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.id",{"_index":17033,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.module",{"_index":17005,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["pseudonym.pseudonym",{"_index":9820,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.repo.ts",{"_index":9017,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:10",{"_index":9026,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:104",{"_index":9042,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:112",{"_index":9038,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:13",{"_index":9035,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:24",{"_index":9033,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:39",{"_index":9031,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:48",{"_index":9028,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:69",{"_index":9030,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:77",{"_index":9040,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:91",{"_index":9044,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.service",{"_index":9761,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.toolid",{"_index":17034,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.userid",{"_index":17035,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonymapimodule",{"_index":16998,"title":{"modules/PseudonymApiModule.html":{}},"body":{"modules/PseudonymApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["pseudonymcontroller",{"_index":17004,"title":{"controllers/PseudonymController.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{}}}],["pseudonymentity",{"_index":17024,"title":{"entities/PseudonymEntity.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymentity(entityprops",{"_index":17140,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["pseudonymentityprops",{"_index":17029,"title":{"interfaces/PseudonymEntityProps.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymmapper",{"_index":17014,"title":{"classes/PseudonymMapper.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{}}}],["pseudonymmapper.maptoresponse(pseudonym",{"_index":17023,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonymmodule",{"_index":4615,"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":7182,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["pseudonymparams",{"_index":17009,"title":{"classes/PseudonymParams.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymParams.html":{}}}],["pseudonympromise",{"_index":17091,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymprops",{"_index":16994,"title":{"interfaces/PseudonymProps.html":{}},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["pseudonymrepo",{"_index":17072,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymresponse",{"_index":17016,"title":{"classes/PseudonymResponse.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{}}}],["pseudonymresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":17011,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonyms",{"_index":9010,"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":20376,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonyms_too_many_pseudonyms_found",{"_index":20380,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonymschool",{"_index":17124,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymscope",{"_index":9046,"title":{"classes/PseudonymScope.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{}}}],["pseudonymsearchquery",{"_index":9037,"title":{"interfaces/PseudonymSearchQuery.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{}}}],["pseudonymservice",{"_index":9733,"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":17040,"title":{"injectables/PseudonymsRepo.html":{}},"body":{"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymuc",{"_index":17002,"title":{"injectables/PseudonymUc.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymUc.html":{}}}],["pseudonymuser",{"_index":17122,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymuserid",{"_index":17120,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["public",{"_index":662,"title":{},"body":{"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":{},"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":15596,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["publicclient",{"_index":13436,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["publicity",{"_index":22718,"title":{},"body":{"license.html":{}}}],["publickey",{"_index":7070,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["publiclink",{"_index":15342,"title":{},"body":{"injectables/NexboardService.html":{}}}],["publicly",{"_index":19368,"title":{},"body":{"controllers/SystemController.html":{},"license.html":{}}}],["publicservice",{"_index":23229,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["publicsubmissions",{"_index":12452,"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":17143,"title":{"classes/PublicSystemListResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publicsystemlistresponse(systemresponses",{"_index":19536,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["publicsystemresponse",{"_index":17146,"title":{"classes/PublicSystemResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publish",{"_index":4919,"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":2714,"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":22132,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["pull",{"_index":22330,"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":4147,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["pursuant",{"_index":22833,"title":{},"body":{"license.html":{}}}],["put",{"_index":4022,"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":20828,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put('/:schoolexternaltoolid')@apiokresponse({description",{"_index":20817,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put(':cardid/position",{"_index":4036,"title":{},"body":{"controllers/CardController.html":{}}}],["put(':columnid/position",{"_index":4972,"title":{},"body":{"controllers/ColumnController.html":{}}}],["put(':contentelementid/position",{"_index":8286,"title":{},"body":{"controllers/ElementController.html":{}}}],["put(':contextexternaltoolid",{"_index":20509,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':contextexternaltoolid')@apiokresponse({description",{"_index":20488,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':schoolid/migration",{"_index":13964,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':schoolid/migration')@authenticate('jwt')@apiokresponse({description",{"_index":13950,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':scope/:scopeid/start",{"_index":21836,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put(':scope/:scopeid/start')@apioperation({summary",{"_index":21824,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put('clients/:id",{"_index":16032,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["put('mandatory",{"_index":21203,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('mandatory')@apinotfoundresponse({description",{"_index":21165,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart",{"_index":21200,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart')@apinotfoundresponse({description",{"_index":21157,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put(filesstorageinternalactions.updatesecuritystatus",{"_index":10354,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["put(path",{"_index":1478,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["put(subpath",{"_index":1477,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["putting",{"_index":23060,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["pw",{"_index":7094,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["pwd/backup/idm/keycloak:/tmp/realms",{"_index":23051,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["pwd/backup/idm/oidcmock:/tmp/config",{"_index":23634,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["p{extended_pictographic}/u",{"_index":6660,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["q",{"_index":13608,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["qs",{"_index":11520,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["qs.stringify(data",{"_index":13562,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["qualify",{"_index":22759,"title":{},"body":{"license.html":{}}}],["quality",{"_index":22896,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["quarkus",{"_index":23661,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["quay.io/minio/minio",{"_index":23045,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["queries",{"_index":13051,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["queries.length",{"_index":13054,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{}}}],["query",{"_index":310,"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":{},"classes/UnknownQueryTypeLoggableException.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":12826,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["query('x",{"_index":7461,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query('y",{"_index":7462,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query.accept",{"_index":15951,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["query.classes",{"_index":12906,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.code",{"_index":16282,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.error",{"_index":16283,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.firstname",{"_index":12894,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.flagged",{"_index":12911,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.lastloginsystemchangebetweenend",{"_index":21006,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastloginsystemchangebetweenstart",{"_index":21005,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastname",{"_index":12897,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.loginname",{"_index":12900,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match",{"_index":12907,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match.map((match",{"_index":12909,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.migration",{"_index":16276,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.name",{"_index":21454,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["query.postloginredirect",{"_index":16277,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.role",{"_index":12901,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.schoolid",{"_index":18291,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["query.state",{"_index":16272,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.targetid",{"_index":15174,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.targetmodel",{"_index":15172,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.ts",{"_index":9356,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{},"interfaces/PseudonymSearchQuery.html":{},"interfaces/UserLoginMigrationQuery.html":{}}}],["query.type",{"_index":20996,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["query.unpublished",{"_index":15176,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.userid",{"_index":21410,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["query/body",{"_index":23337,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["query/empty",{"_index":18547,"title":{},"body":{"classes/Scope.html":{}}}],["queryfiltermatch",{"_index":21618,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryfiltermatch.$or",{"_index":21624,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryoptions",{"_index":6998,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ImportUserRepo.html":{}}}],["queryordermap",{"_index":6980,"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":9470,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["queryordernumeric",{"_index":21610,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.asc",{"_index":21639,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.desc",{"_index":21638,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryparams",{"_index":2155,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"controllers/CourseController.html":{}}}],["queryparams.append('checksum",{"_index":2231,"title":{},"body":{"injectables/BBBService.html":{}}}],["queryparams.tostring",{"_index":2221,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["queryparams.version",{"_index":6703,"title":{},"body":{"controllers/CourseController.html":{}}}],["querys",{"_index":10696,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["querystring",{"_index":2220,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{}}}],["querystring.stringify",{"_index":11521,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["querystring.stringify(payload",{"_index":15685,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["queue",{"_index":10587,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq",{"_index":1161,"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":17163,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmq:3.8.9",{"_index":23035,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmq_url",{"_index":23028,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmqmodule",{"_index":17161,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqmodule.forroot(rabbitmqmodule",{"_index":17168,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqwrappermodule",{"_index":10660,"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":10661,"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":10594,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc",{"_index":10595,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc({exchange",{"_index":10585,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["random",{"_index":3475,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/FileSystemAdapter.html":{}}}],["random(min",{"_index":3490,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["randomuuid",{"_index":1549,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["range",{"_index":10821,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/S3ClientAdapter.html":{}}}],["ranges",{"_index":10819,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["rawfiledocument",{"_index":10471,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments",{"_index":10467,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments.map((rawfiledocument",{"_index":10469,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawlessondocument",{"_index":14248,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments",{"_index":14244,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments.map((rawlessondocument",{"_index":14246,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rc",{"_index":11620,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["rd",{"_index":11624,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["re",{"_index":766,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardNodeRepo.html":{},"classes/ExternalToolScope.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["reachable",{"_index":11609,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["react",{"_index":23150,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["read",{"_index":1618,"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":1622,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["readable",{"_index":1151,"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":17195,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readable.from(text",{"_index":20322,"title":{},"body":{"classes/TestHelper.html":{}}}],["readablestreamwithfiletype",{"_index":17186,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypefactory",{"_index":17193,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeimp",{"_index":17183,"title":{"classes/ReadableStreamWithFileTypeImp.html":{}},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeprops",{"_index":17188,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readcourseids",{"_index":20093,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses",{"_index":20089,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses.map((c",{"_index":20094,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readdir",{"_index":10366,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readdir(folderpath",{"_index":10389,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["reader",{"_index":3072,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["readfile",{"_index":10367,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readfile(filepath",{"_index":10393,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readily",{"_index":22823,"title":{},"body":{"license.html":{}}}],["reading",{"_index":22698,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["readlessons",{"_index":20098,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readonly",{"_index":177,"title":{},"body":{"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":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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/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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.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":{},"injectables/OAuth2ToolLaunchStrategy.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/UnknownQueryTypeLoggableException.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":13660,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["real",{"_index":23062,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["really",{"_index":6593,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/TaskCopyUC.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["realm",{"_index":13297,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["realmname",{"_index":12085,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows",{"_index":13403,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions",{"_index":13412,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions/execution",{"_index":13414,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["reason",{"_index":10124,"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":22620,"title":{},"body":{"license.html":{}}}],["reasons",{"_index":19539,"title":{},"body":{"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["receipt",{"_index":22757,"title":{},"body":{"license.html":{}}}],["receive",{"_index":22391,"title":{},"body":{"license.html":{}}}],["received",{"_index":13077,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["receives",{"_index":22774,"title":{},"body":{"license.html":{}}}],["receiving",{"_index":22837,"title":{},"body":{"license.html":{}}}],["recieved",{"_index":23499,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["recieving",{"_index":23219,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["recipient",{"_index":22681,"title":{},"body":{"license.html":{}}}],["recipient's",{"_index":22830,"title":{},"body":{"license.html":{}}}],["recipients",{"_index":1311,"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":22488,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["recommend",{"_index":23530,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["recommendations",{"_index":23576,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["recommended",{"_index":23574,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["reconnect",{"_index":13793,"title":{},"body":{"injectables/LdapService.html":{}}}],["reconsidered",{"_index":13847,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["record",{"_index":988,"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":10211,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:11",{"_index":10219,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:23",{"_index":10216,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:5",{"_index":10221,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["recording",{"_index":2115,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["recursive",{"_index":3267,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"classes/CopyApiResponse.html":{}}}],["recursivecopyvisitor",{"_index":3266,"title":{"classes/RecursiveCopyVisitor.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["recursivecopyvisitor(params.filecopyservice",{"_index":3273,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["recursivedeletevisitor",{"_index":3285,"title":{"injectables/RecursiveDeleteVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["recursively",{"_index":10402,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/PermissionService.html":{}}}],["recursivesavevisitor",{"_index":3313,"title":{"classes/RecursiveSaveVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["recursivesavevisitor(this.em",{"_index":3345,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["red",{"_index":22987,"title":{},"body":{"todo.html":{}}}],["redirect",{"_index":2060,"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":16914,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{},"classes/RedirectResponse.html":{}}}],["redirect_uri",{"_index":1333,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/HydraSsoService.html":{},"classes/TokenRequestMapper.html":{}}}],["redirect_uris",{"_index":9457,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["redirectreponse",{"_index":17390,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectreponse.redirect_to",{"_index":17395,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectresponse",{"_index":15956,"title":{"classes/RedirectResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RedirectResponse.html":{}}}],["redirects",{"_index":15792,"title":{},"body":{"classes/OauthConfigResponse.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi",{"_index":11581,"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":15600,"title":{},"body":{"injectables/OAuthService.html":{}}}],["redirecturis",{"_index":7353,"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":17391,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redis",{"_index":3895,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["redis_client",{"_index":17400,"title":{},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redis_uri",{"_index":18641,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisclient",{"_index":3896,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisidentifier",{"_index":13223,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["redismodule",{"_index":17396,"title":{"modules/RedisModule.html":{}},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["redisstore",{"_index":18636,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redistribute",{"_index":22932,"title":{},"body":{"license.html":{}}}],["redisurl",{"_index":3900,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["reduce",{"_index":23837,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["reduce((previousteachers",{"_index":5135,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["ref",{"_index":3730,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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/SubmissionItemResponse.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ref.do.ts",{"_index":18195,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:2",{"_index":18197,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:4",{"_index":18196,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.params.ts",{"_index":6194,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:13",{"_index":6195,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:9",{"_index":6197,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.target",{"_index":2678,"title":{},"body":{"entities/Board.html":{}}}],["ref.ts",{"_index":6190,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:4",{"_index":6192,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:6",{"_index":6191,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["refactor",{"_index":7816,"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":9871,"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":3408,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["reference",{"_index":1679,"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":1681,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["reference.controller",{"_index":20394,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["reference.controller.ts",{"_index":20730,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:28",{"_index":20738,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:51",{"_index":20742,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.getmetadata",{"_index":7551,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["reference.loader",{"_index":1791,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.mapper.ts",{"_index":20754,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.mapper.ts:6",{"_index":20757,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.module",{"_index":10510,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["reference.module.ts",{"_index":1752,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["reference.response",{"_index":20752,"title":{},"body":{"classes/ToolReferenceListResponse.html":{}}}],["reference.response.ts",{"_index":20758,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:13",{"_index":20765,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:16",{"_index":20762,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:19",{"_index":20767,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:28",{"_index":20760,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:6",{"_index":20761,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.service.ts",{"_index":1778,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:12",{"_index":1785,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:14",{"_index":20774,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:15",{"_index":1788,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:23",{"_index":20776,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:26",{"_index":1790,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.ts",{"_index":3415,"title":{},"body":{"interfaces/BoardExternalReference.html":{},"classes/RoleReference.html":{},"classes/ToolReference.html":{}}}],["reference.ts:10",{"_index":20726,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:12",{"_index":20722,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:4",{"_index":20723,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:5",{"_index":17628,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:6",{"_index":20725,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:7",{"_index":17627,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:8",{"_index":20724,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.type",{"_index":3336,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["reference.uc.ts",{"_index":20779,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:10",{"_index":20782,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:17",{"_index":20788,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:40",{"_index":20790,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:57",{"_index":20786,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:71",{"_index":20784,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["referenced",{"_index":3393,"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":{}}}],["referencedid",{"_index":7534,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceforindex",{"_index":7611,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceids",{"_index":2616,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["referenceloader",{"_index":1746,"title":{"injectables/ReferenceLoader.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["referencemodels",{"_index":7749,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["references",{"_index":2609,"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":2672,"title":{},"body":{"entities/Board.html":{}}}],["references.push(columnboardelement",{"_index":3049,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(lessonelement",{"_index":3045,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(taskelement",{"_index":3043,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.some((ref",{"_index":2677,"title":{},"body":{"entities/Board.html":{}}}],["references[position.groupindex",{"_index":7612,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referer",{"_index":11468,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["referring",{"_index":22387,"title":{},"body":{"license.html":{}}}],["refers",{"_index":22434,"title":{},"body":{"license.html":{}}}],["refid",{"_index":10066,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refined",{"_index":23580,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reflect",{"_index":22264,"title":{},"body":{"dependencies.html":{},"todo.html":{}}}],["reflector",{"_index":20335,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["reflector.get('timeout",{"_index":20338,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["refobjectid",{"_index":10017,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["refownermodel",{"_index":9963,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refpermmodel",{"_index":10067,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["refrain",{"_index":22866,"title":{},"body":{"license.html":{}}}],["refresh_token",{"_index":15912,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{}}}],["refreshtimeout",{"_index":17994,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["refreshtoken",{"_index":15607,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/TokenRequestMapper.html":{}}}],["regard",{"_index":22703,"title":{},"body":{"license.html":{}}}],["regarding",{"_index":22320,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["regardless",{"_index":22589,"title":{},"body":{"license.html":{}}}],["regenerate",{"_index":22514,"title":{},"body":{"license.html":{}}}],["regex",{"_index":5488,"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":15023,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["regexcomment",{"_index":7277,"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":6381,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`${sourceid",{"_index":6394,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`^${email.replace(/\\w/g",{"_index":21648,"title":{},"body":{"injectables/UserRepo.html":{}}}],["regexp(param.regex",{"_index":8991,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(param.regex).test(foundentry.value",{"_index":5484,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["regexp(param.regex).test(param.default",{"_index":8993,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(searchusername",{"_index":771,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["region",{"_index":6337,"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":16721,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["register(config",{"_index":16722,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["register(configs",{"_index":18001,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["registerparentdata",{"_index":17325,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerparentdata(parent",{"_index":17331,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerstrategy",{"_index":16935,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registerstrategy(strategy",{"_index":16950,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registrated",{"_index":23806,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["regular",{"_index":760,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["reinstated",{"_index":22746,"title":{},"body":{"license.html":{}}}],["reject",{"_index":13799,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reject(new",{"_index":13807,"title":{},"body":{"injectables/LdapService.html":{}}}],["rejectable.body",{"_index":5539,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rejectable.body.ts",{"_index":15485,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:13",{"_index":15486,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:23",{"_index":15487,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:32",{"_index":15488,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:41",{"_index":15489,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:50",{"_index":15490,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectconsentrequest",{"_index":15931,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectconsentrequest(challenge",{"_index":15940,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest",{"_index":16087,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest(challenge",{"_index":16096,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectnothandled",{"_index":5694,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectnothandled(component",{"_index":5697,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectrequestbody",{"_index":15941,"title":{"interfaces/RejectRequestBody.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/RejectRequestBody.html":{}}}],["related",{"_index":7112,"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":12111,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["relation",{"_index":11246,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["relation.ktid",{"_index":18135,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["relations",{"_index":10090,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relationship",{"_index":12550,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{}}}],["relationtype",{"_index":12120,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["relative",{"_index":11540,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["relative.org",{"_index":5736,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["release",{"_index":23549,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["released",{"_index":22429,"title":{},"body":{"license.html":{}}}],["releasing",{"_index":22421,"title":{},"body":{"license.html":{}}}],["relevant",{"_index":22583,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["relicensing",{"_index":22430,"title":{},"body":{"license.html":{}}}],["reload",{"_index":16824,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relying",{"_index":22822,"title":{},"body":{"license.html":{}}}],["remain",{"_index":22637,"title":{},"body":{"license.html":{}}}],["remains",{"_index":22385,"title":{},"body":{"license.html":{}}}],["remember",{"_index":116,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remember_for",{"_index":117,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remembered",{"_index":5510,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rememberfor",{"_index":5508,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["remote",{"_index":22868,"title":{},"body":{"license.html":{}}}],["remotely",{"_index":22870,"title":{},"body":{"license.html":{}}}],["removal",{"_index":22705,"title":{},"body":{"license.html":{}}}],["remove",{"_index":1773,"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":2734,"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":2752,"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":2670,"title":{},"body":{"entities/Board.html":{}}}],["removedirrecursive",{"_index":10368,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removedirrecursive(folderpath",{"_index":10399,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removeexternalgroupsandaffiliation",{"_index":16426,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removeexternalgroupsandaffiliation(externaluserid",{"_index":16437,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removefeature",{"_index":14082,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefeature(schoolid",{"_index":14094,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefromposition",{"_index":7480,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removefromposition(position",{"_index":7516,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removefromwhitelist",{"_index":13202,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removefromwhitelist(accountid",{"_index":13213,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removegroupmoderator(groupname",{"_index":1048,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["removejwtfromwhitelist",{"_index":1524,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removejwtfromwhitelist(jwttoken",{"_index":1539,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removematch",{"_index":12754,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removematch(urlparams",{"_index":12768,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removepermissionsbyrefid(refid",{"_index":10016,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["removeprotectedentityfields",{"_index":2248,"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":2279,"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":10974,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereference(reference",{"_index":7530,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex",{"_index":10975,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex(index",{"_index":7529,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removeroomsnotinlist",{"_index":7481,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removeroomsnotinlist(roomlist",{"_index":7518,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removes",{"_index":10401,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["removesecrets(collectionname",{"_index":11858,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromstorageproviders(storageproviders",{"_index":11861,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromsystems(systems",{"_index":11863,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removestudent(userid",{"_index":6834,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["removesubstitutionteacher(userid",{"_index":6669,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeteacher(userid",{"_index":6667,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeuser",{"_index":4208,"title":{},"body":{"classes/Class.html":{},"classes/Group.html":{}}}],["removeuser(user",{"_index":11004,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["removeuser(userid",{"_index":4217,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["removeuserids",{"_index":15415,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserids.tostring",{"_index":15419,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserpermissionstoanyfiles",{"_index":10477,"title":{},"body":{"injectables/FilesService.html":{}}}],["removeuserpermissionstoanyfiles(userid",{"_index":10485,"title":{},"body":{"injectables/FilesService.html":{}}}],["rename",{"_index":9145,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["renamebodyparams",{"_index":2898,"title":{"classes/RenameBodyParams.html":{}},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/RenameBodyParams.html":{}}}],["renamed",{"_index":15397,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["renamefileparams",{"_index":6309,"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":7831,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["renamegroupondashboard(dashboardid",{"_index":7838,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["rendered",{"_index":22911,"title":{},"body":{"license.html":{}}}],["reorderboardelements",{"_index":17825,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderboardelements(roomid",{"_index":17830,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderelements(ids",{"_index":2648,"title":{},"body":{"entities/Board.html":{}}}],["reordering",{"_index":2660,"title":{},"body":{"entities/Board.html":{}}}],["repair",{"_index":22901,"title":{},"body":{"license.html":{}}}],["repeat",{"_index":23190,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["repeatcommand",{"_index":13516,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["repeatcommand(commandname",{"_index":11666,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["repeats",{"_index":14799,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{}}}],["repetitions",{"_index":11667,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["replace",{"_index":1829,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["replace('exception",{"_index":10944,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["replace(/\\\\n/g",{"_index":13922,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["replaced",{"_index":1756,"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":6382,"title":{},"body":{"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/TaskCopyService.html":{}}}],["replacemypassword",{"_index":265,"title":{},"body":{"controllers/AccountController.html":{}}}],["replacemypassword(currentuser",{"_index":298,"title":{},"body":{"controllers/AccountController.html":{}}}],["replicaset",{"_index":23669,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replikaset",{"_index":22991,"title":{},"body":{"todo.html":{}}}],["replset",{"_index":23673,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replyto",{"_index":1314,"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":2428,"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":7004,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["repo.integration.spec.js",{"_index":23541,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repo.ts",{"_index":23275,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["repo/account.repo",{"_index":625,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["repo/share",{"_index":18852,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["repoloader",{"_index":12167,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.populate",{"_index":12169,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.repo.findbyid(objectid",{"_index":12170,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["report",{"_index":7888,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reported",{"_index":23372,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["reporting",{"_index":23581,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reports",{"_index":23552,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repos",{"_index":5391,"title":{},"body":{"modules/CommonToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/VideoConferenceModule.html":{}}}],["repositories",{"_index":22973,"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":17097,"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":17100,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repository.findbyuseridandtoolid(user.id",{"_index":17099,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repotype",{"_index":12137,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["represent",{"_index":22668,"title":{},"body":{"license.html":{}}}],["representation",{"_index":576,"title":{},"body":{"injectables/AccountLookupService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["represents",{"_index":5534,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["req",{"_index":10338,"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":17435,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.header('range",{"_index":10815,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.headers.authorization",{"_index":16304,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["req.headers.origin",{"_index":21839,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["req.method",{"_index":17434,"title":{},"body":{"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{}}}],["req.on('close",{"_index":10350,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{}}}],["req.params",{"_index":17475,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.params[0]}/${params.fwulearningcontent",{"_index":10816,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.query",{"_index":17476,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.route.path",{"_index":17439,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.url",{"_index":17474,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.user",{"_index":17473,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["reqinfo",{"_index":17448,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.baseurl",{"_index":17453,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.fullpath",{"_index":17454,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.method",{"_index":17452,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.routepath",{"_index":17455,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqroute",{"_index":17429,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["request",{"_index":141,"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":4644,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["request(event",{"_index":10712,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["request.body",{"_index":13838,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["request.body.ts",{"_index":111,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["request.body.ts:10",{"_index":5498,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:14",{"_index":14530,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:20",{"_index":5506,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:24",{"_index":14531,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:30",{"_index":5513,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.contextid",{"_index":5989,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.contexttype",{"_index":5990,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.displayname",{"_index":5991,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper",{"_index":15543,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["request.mapper.ts",{"_index":5978,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:113",{"_index":9208,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:117",{"_index":9215,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:123",{"_index":9219,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:129",{"_index":9222,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:135",{"_index":9226,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:141",{"_index":9212,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:158",{"_index":9230,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:17",{"_index":18230,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:170",{"_index":9206,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:21",{"_index":20369,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:22",{"_index":5985,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:5",{"_index":16136,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["request.mapper.ts:6",{"_index":20367,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:60",{"_index":9235,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:7",{"_index":5982,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:8",{"_index":18232,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:87",{"_index":9202,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.response.ts",{"_index":20651,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:10",{"_index":20653,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:16",{"_index":20657,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:23",{"_index":20655,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:30",{"_index":20652,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.schoolid",{"_index":18236,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.schooltoolid",{"_index":5988,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.toolid",{"_index":18235,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.toolversion",{"_index":5992,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.ts",{"_index":20644,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:10",{"_index":20645,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:4",{"_index":20646,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:6",{"_index":20648,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:8",{"_index":20647,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.user.user",{"_index":22979,"title":{},"body":{"todo.html":{}}}],["request.version",{"_index":18237,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request/bbb",{"_index":2090,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["request/response",{"_index":23336,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["request_denied",{"_index":5518,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["request_url",{"_index":5545,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requestauthcode",{"_index":11426,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthcode(userid",{"_index":11436,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthtoken",{"_index":16205,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestauthtoken(currentuser",{"_index":16226,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestdata",{"_index":14581,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requested",{"_index":5571,"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":5546,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requested_scope",{"_index":5547,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requesthandler",{"_index":17432,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo",{"_index":17416,"title":{"classes/RequestInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo(req",{"_index":17449,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requesting",{"_index":15723,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["requestloggingbody",{"_index":12100,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["requestlogginginterceptor",{"_index":17465,"title":{"injectables/RequestLoggingInterceptor.html":{}},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["requestmapper",{"_index":20821,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["requestoptions",{"_index":14579,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requests",{"_index":13060,"title":{},"body":{"modules/InterceptorModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requesttimeout",{"_index":17779,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TimeoutInterceptor.html":{}}}],["requesttimeout(serverconfig().incoming_request_timeout_copy_api",{"_index":17794,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["requesttimeoutexception",{"_index":20334,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["requesttoken",{"_index":1159,"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":15534,"title":{},"body":{"injectables/OAuthService.html":{}}}],["requesturl",{"_index":5569,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["require",{"_index":11811,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["require('../../../../../src/services/authentication/configuration",{"_index":13154,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["require('../../../../config/globals",{"_index":10881,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["require('rimraf",{"_index":10413,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["require_tld",{"_index":21871,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["required",{"_index":142,"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/GetMetaTagDataBody.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":277,"title":{},"body":{"controllers/AccountController.html":{}}}],["requiredemptyelement",{"_index":4137,"title":{},"body":{"injectables/CardService.html":{}}}],["requiredemptyelements",{"_index":4103,"title":{},"body":{"injectables/CardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{},"classes/CreateCardBodyParams.html":{}}}],["requiredpermissions",{"_index":1613,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LessonRule.html":{},"injectables/NewsUc.html":{},"injectables/PermissionService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiredpermissions.every((p",{"_index":1661,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.length",{"_index":1674,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.some((p",{"_index":1676,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["requireduserrole",{"_index":2462,"title":{},"body":{"classes/BaseUc.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["requireduserrole(userroleenum",{"_index":3085,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["requirement",{"_index":13426,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"license.html":{}}}],["requirements",{"_index":22639,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["requires",{"_index":8969,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/GlobalValidationPipe.html":{},"injectables/MetaTagExtractorService.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiring",{"_index":22446,"title":{},"body":{"license.html":{}}}],["res",{"_index":6682,"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":10353,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.cookie",{"_index":1453,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["res.cookie('jwt",{"_index":16295,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.data.destroy",{"_index":10351,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.redirect(errorredirect.tostring",{"_index":16260,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(oauthprocessdto.redirect",{"_index":16296,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(redirect",{"_index":16278,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(response.redirect",{"_index":16312,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.send(externaltoollogo.logo",{"_index":20572,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.set",{"_index":10818,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.setheader('cache",{"_index":20569,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.setheader('content",{"_index":20568,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.status(httpstatus.ok",{"_index":10824,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.status(httpstatus.partial_content",{"_index":10823,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.statuscode",{"_index":17442,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resave",{"_index":18644,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["reset",{"_index":219,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":13260,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["resetoauthconfigcache",{"_index":13531,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resinfo",{"_index":17450,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resinfo.statuscode",{"_index":17456,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resizeandconvert",{"_index":16739,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resizeandconvert(original",{"_index":16747,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resolve",{"_index":5522,"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":13806,"title":{},"body":{"injectables/LdapService.html":{}}}],["resolved",{"_index":2971,"title":{},"body":{"injectables/BoardCopyService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ResolvedGroupDto.html":{},"license.html":{}}}],["resolvedgroup",{"_index":11214,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource",{"_index":11231,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.externalid",{"_index":11232,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.systemid",{"_index":11233,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.id",{"_index":11228,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.name",{"_index":11229,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.organizationid",{"_index":11239,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.users.map",{"_index":11234,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroupdto",{"_index":11052,"title":{"classes/ResolvedGroupDto.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["resolvedgroupuser",{"_index":11291,"title":{"classes/ResolvedGroupUser.html":{}},"body":{"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["resolvedgroupusers",{"_index":11295,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["resolvedtools",{"_index":9411,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolvedtools.filter((tool",{"_index":9418,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolveduser",{"_index":20933,"title":{},"body":{"controllers/UserController.html":{},"injectables/UserService.html":{}}}],["resolvedusermapper",{"_index":17490,"title":{"classes/ResolvedUserMapper.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"controllers/UserController.html":{}}}],["resolvedusermapper.maptoresponse(user",{"_index":20934,"title":{},"body":{"controllers/UserController.html":{}}}],["resolveduserresponse",{"_index":17494,"title":{"classes/ResolvedUserResponse.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"controllers/UserController.html":{}}}],["resolvedusers",{"_index":11290,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["resolvedusers.filter((groupuser",{"_index":11305,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["resolvepermissions",{"_index":12174,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["resolvepermissions(user",{"_index":16640,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles",{"_index":16637,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles(inputroles",{"_index":16645,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolveplaceholder(placeholder",{"_index":11831,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["resolverepo",{"_index":17403,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["resolverepo(type",{"_index":12162,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["resolves",{"_index":12956,"title":{},"body":{"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resolvetokenrequest",{"_index":15666,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resolvetokenrequest(observable",{"_index":15672,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resource",{"_index":5177,"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":20521,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["resource.caninline",{"_index":5194,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resource.ts",{"_index":5213,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:15",{"_index":5363,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:16",{"_index":5217,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:18",{"_index":5364,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:19",{"_index":5218,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:22",{"_index":5358,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:23",{"_index":5219,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:26",{"_index":5359,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:30",{"_index":5360,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:61",{"_index":5365,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:81",{"_index":5220,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource_link_id",{"_index":7188,"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":5357,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceelements",{"_index":5355,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceid",{"_index":15446,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourcename",{"_index":15447,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourceownerpasswordgrant",{"_index":12685,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceownerpasswordgrant(username",{"_index":12688,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceprops",{"_index":5101,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resources",{"_index":5099,"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":8088,"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":2204,"title":{},"body":{"injectables/BBBService.html":{}}}],["resp.everyattendeejoinsmuted",{"_index":22081,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.everybodyjoinsasmoderator",{"_index":22082,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.moderatormustapprovejoinrequests",{"_index":22083,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.options",{"_index":8106,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.permission",{"_index":8098,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["resp.state",{"_index":8096,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.url",{"_index":8101,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["respect",{"_index":22562,"title":{},"body":{"license.html":{}}}],["respective",{"_index":23376,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["respobservable",{"_index":11587,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["respond",{"_index":23014,"title":{},"body":{"todo.html":{}}}],["responds",{"_index":15076,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["responsability",{"_index":23192,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response",{"_index":823,"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":{},"controllers/MetaTagExtractorController.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":20372,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.authorization_endpoint",{"_index":13551,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.body",{"_index":1516,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.builder.ts",{"_index":6327,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{},"classes/FileResponseBuilder.html":{}}}],["response.builder.ts:4",{"_index":6329,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["response.builder.ts:5",{"_index":10320,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["response.config",{"_index":9298,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.contentlength",{"_index":10829,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contentrange",{"_index":10822,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contenttype",{"_index":10827,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contextid",{"_index":6012,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.contexttype",{"_index":6013,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.data",{"_index":9914,"title":{},"body":{"classes/FileDtoBuilder.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/HydraOauthUc.html":{}}}],["response.data.access_token",{"_index":13563,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.data.destroy",{"_index":10825,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.displayname",{"_index":6014,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.dto",{"_index":23208,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response.end_session_endpoint",{"_index":13552,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.error",{"_index":1510,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.factory",{"_index":4090,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.factory.ts",{"_index":1910,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:14",{"_index":1917,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:16",{"_index":1920,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:18",{"_index":1921,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:20",{"_index":1919,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:22",{"_index":1915,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:26",{"_index":5643,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:38",{"_index":5642,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.headers['content",{"_index":9910,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["response.id",{"_index":6009,"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":20370,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.ishidden",{"_index":9299,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.issuer",{"_index":13549,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwks_uri",{"_index":13553,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwt",{"_index":15482,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.logourl",{"_index":6017,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.mapper",{"_index":3672,"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":781,"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":20842,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["response.mapper.ts:111",{"_index":18090,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:13",{"_index":14559,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["response.mapper.ts:14",{"_index":18252,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:15",{"_index":17674,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:16",{"_index":785,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:17",{"_index":17572,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:18",{"_index":11207,"title":{},"body":{"classes/GroupResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:19",{"_index":16151,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:21",{"_index":6023,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:23",{"_index":16145,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:27",{"_index":8755,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:28",{"_index":17570,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:29",{"_index":17676,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:32",{"_index":14374,"title":{},"body":{"classes/LinkElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:33",{"_index":19072,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:34",{"_index":18084,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:35",{"_index":18249,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:37",{"_index":11210,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:38",{"_index":6029,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:40",{"_index":16148,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:43",{"_index":19170,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:44",{"_index":9318,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:46",{"_index":6026,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["response.mapper.ts:47",{"_index":17679,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:5",{"_index":14557,"title":{},"body":{"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["response.mapper.ts:52",{"_index":11213,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:53",{"_index":18093,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:6",{"_index":787,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:64",{"_index":18086,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:68",{"_index":18088,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:7",{"_index":3670,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:71",{"_index":9309,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:73",{"_index":17678,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:75",{"_index":9314,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:79",{"_index":9316,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:8",{"_index":8756,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:83",{"_index":9312,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:9",{"_index":17571,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:93",{"_index":17677,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.message",{"_index":17857,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["response.name",{"_index":9296,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.opennewtab",{"_index":9300,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.parameters",{"_index":6015,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.redirect",{"_index":15483,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.refresh_token",{"_index":20371,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.schoolid",{"_index":18242,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.schooltoolid",{"_index":6011,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.set",{"_index":6704,"title":{},"body":{"controllers/CourseController.html":{}}}],["response.sourceid",{"_index":10561,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["response.state",{"_index":22000,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["response.status",{"_index":18243,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.status(errorresponse.code).json(errorresponse",{"_index":10927,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["response.subject",{"_index":15961,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["response.token_endpoint",{"_index":13550,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.toolid",{"_index":17048,"title":{},"body":{"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.toolversion",{"_index":6016,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.ts",{"_index":17148,"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":17153,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:17",{"_index":17154,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:24",{"_index":17151,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:31",{"_index":17152,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:39",{"_index":17150,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.url",{"_index":9297,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.userid",{"_index":17049,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["response.version",{"_index":9301,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response?.data",{"_index":1085,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["response].ts",{"_index":23269,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["response_type",{"_index":11522,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["response_types",{"_index":15707,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["responsedata",{"_index":15688,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsefilerecords",{"_index":10223,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["responseinfo",{"_index":17440,"title":{"classes/ResponseInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responseinfo(res",{"_index":17451,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsejson",{"_index":1097,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.authtoken",{"_index":1099,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.userid",{"_index":1098,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsemapper",{"_index":18056,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{},"controllers/ToolSchoolController.html":{}}}],["responses",{"_index":11347,"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":17431,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetime((req",{"_index":17461,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetoken",{"_index":15569,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["responsetoken.data",{"_index":15692,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetokenobservable",{"_index":15686,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetype",{"_index":8887,"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":23333,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["responsibility",{"_index":23157,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["responsible",{"_index":22775,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ressouces",{"_index":23807,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressource",{"_index":23808,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressources",{"_index":20711,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application.html":{}}}],["resssource",{"_index":23015,"title":{},"body":{"todo.html":{}}}],["rest",{"_index":8225,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["restart",{"_index":21134,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restarted",{"_index":14972,"title":{},"body":{"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["restartmigration",{"_index":17514,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(@currentuser",{"_index":21201,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(currentuser",{"_index":21156,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(schoolid",{"_index":21356,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(userid",{"_index":17517,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["restartuserloginmigrationuc",{"_index":17512,"title":{"injectables/RestartUserLoginMigrationUc.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["restmethod",{"_index":23647,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["restore",{"_index":17906,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"controllers/TaskController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["restore(@param",{"_index":19668,"title":{},"body":{"controllers/TaskController.html":{}}}],["restore(paths",{"_index":17923,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["restore(urlparams",{"_index":19643,"title":{},"body":{"controllers/TaskController.html":{}}}],["restored",{"_index":23532,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["restoreforuser(user",{"_index":12560,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["restricted",{"_index":13420,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["restricting",{"_index":22556,"title":{},"body":{"license.html":{}}}],["restriction",{"_index":22734,"title":{},"body":{"license.html":{}}}],["restrictions",{"_index":22732,"title":{},"body":{"license.html":{}}}],["result",{"_index":739,"title":{},"body":{"injectables/AccountRepo.html":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.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":19075,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["result.dto.ts",{"_index":18137,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:4",{"_index":18139,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:6",{"_index":18138,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.image?.url",{"_index":14845,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["result.push",{"_index":13467,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["result.push(room",{"_index":7599,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["result.query",{"_index":18548,"title":{},"body":{"classes/Scope.html":{}}}],["result.reduce((alloweddos",{"_index":4191,"title":{},"body":{"injectables/CardUc.html":{}}}],["result.success",{"_index":8047,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["result[sortby",{"_index":12880,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["resultelement",{"_index":7579,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["resulting",{"_index":22415,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["resultmap",{"_index":17199,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["results",{"_index":103,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":8046,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["results.map((account",{"_index":13619,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["results.push(mapped",{"_index":8187,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["resultuser",{"_index":21613,"title":{},"body":{"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ret",{"_index":13631,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/LegacySchoolService.html":{}}}],["ret.attdbcaccountid",{"_index":13639,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcsystemid",{"_index":13635,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcuserid",{"_index":13637,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["retaccountid",{"_index":13677,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["retains",{"_index":22685,"title":{},"body":{"license.html":{}}}],["retried",{"_index":11623,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrieve",{"_index":15080,"title":{},"body":{"controllers/NewsController.html":{}}}],["retry",{"_index":11621,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrycount",{"_index":11611,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrydelay",{"_index":11612,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retryflags",{"_index":11619,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["return",{"_index":349,"title":{},"body":{"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"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/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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":{},"classes/UnknownQueryTypeLoggableException.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":1953,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["returned",{"_index":482,"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":21149,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["returning",{"_index":6219,"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":{},"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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"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/UnknownQueryTypeLoggableException.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":23455,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["reuse",{"_index":5502,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["reused",{"_index":23284,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["revalidate",{"_index":20571,"title":{},"body":{"controllers/ToolController.html":{}}}],["revert.service.ts",{"_index":21325,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:13",{"_index":21329,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:7",{"_index":21327,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["reverted",{"_index":21139,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["revertpublished",{"_index":19628,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["revertpublished(urlparams",{"_index":19646,"title":{},"body":{"controllers/TaskController.html":{}}}],["revertpublished(userid",{"_index":20047,"title":{},"body":{"injectables/TaskUC.html":{}}}],["revertuserloginmigration",{"_index":21326,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revertuserloginmigration(userloginmigration",{"_index":21328,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["review",{"_index":23595,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reviewers",{"_index":22342,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["reviewing",{"_index":22921,"title":{},"body":{"license.html":{}}}],["revised",{"_index":22876,"title":{},"body":{"license.html":{}}}],["revokeconsentparams",{"_index":16001,"title":{"classes/RevokeConsentParams.html":{}},"body":{"controllers/OauthProviderController.html":{},"classes/RevokeConsentParams.html":{}}}],["revokeconsentsession",{"_index":15971,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["revokeconsentsession(@currentuser",{"_index":16062,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(currentuser",{"_index":16000,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(user",{"_index":16181,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["revokeconsentsession(userid",{"_index":16195,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["revokematch",{"_index":12063,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["rewindsequence",{"_index":460,"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":15722,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["rich",{"_index":2822,"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":17527,"title":{"classes/RichText.html":{}},"body":{"classes/RichText.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["richtextcontentbody",{"_index":5715,"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":2811,"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":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["richtextelement.id",{"_index":17371,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.inputformat",{"_index":5746,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.text",{"_index":5743,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelementcontent",{"_index":17557,"title":{"classes/RichTextElementContent.html":{}},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementcontentbody",{"_index":8248,"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":3154,"title":{"entities/RichTextElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementnodefactory",{"_index":3496,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodefactory.build",{"_index":3520,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodeprops",{"_index":17565,"title":{"interfaces/RichTextElementNodeProps.html":{}},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementprops",{"_index":17555,"title":{"interfaces/RichTextElementProps.html":{}},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["richtextelementresponse",{"_index":3713,"title":{"classes/RichTextElementResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{}}}],["richtextelementresponsemapper",{"_index":5651,"title":{"classes/RichTextElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper.getinstance",{"_index":5638,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["richtextelementresponsemapper.instance",{"_index":17575,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["richtext})@decodehtmlentities",{"_index":19936,"title":{},"body":{"classes/TaskResponse.html":{}}}],["rid",{"_index":4782,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["right",{"_index":22679,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rights",{"_index":22398,"title":{},"body":{"license.html":{}}}],["rimraf",{"_index":10412,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"dependencies.html":{}}}],["rimraf.sync(folderpath",{"_index":10427,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["risk",{"_index":22895,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rmq",{"_index":10917,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["ro",{"_index":983,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocket",{"_index":17583,"title":{},"body":{"modules/RocketChatModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket.chat",{"_index":23668,"title":{"additional-documentation/nestjs-application/rocket.chat.html":{}},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat",{"_index":12204,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["rocket_chat_admin_password=huhudbildungscloud",{"_index":23719,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_admin_user=admin",{"_index":23718,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_options",{"_index":17585,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["rocket_chat_uri=\"http://localhost:3000",{"_index":23717,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat",{"_index":992,"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":23716,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchaterror",{"_index":989,"title":{"classes/RocketChatError.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror(e",{"_index":1084,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror.prototype",{"_index":1009,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatgroupmodel",{"_index":973,"title":{"interfaces/RocketChatGroupModel.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatmodule",{"_index":17580,"title":{"modules/RocketChatModule.html":{}},"body":{"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rocketchatmodule.forroot",{"_index":18626,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["rocketchatoptions",{"_index":968,"title":{"interfaces/RocketChatOptions.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatservice",{"_index":1018,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["role",{"_index":276,"title":{"entities/Role.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AuthorizationHelper.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BaseUc.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":{},"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":{},"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":12567,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["role.factory",{"_index":21099,"title":{},"body":{"classes/UserFactory.html":{}}}],["role.id",{"_index":7151,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["role.mapper.ts",{"_index":14631,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.mapper.ts:13",{"_index":14634,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.name",{"_index":4604,"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":4655,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["role.params.ts",{"_index":20189,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:11",{"_index":20190,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:7",{"_index":20191,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.resolvepermissions",{"_index":1664,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["role.roles.isinitialized(true",{"_index":20269,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roleadmin",{"_index":12413,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleattributenamemapping",{"_index":12410,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roledto",{"_index":4573,"title":{"classes/RoleDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["roledtos",{"_index":17652,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolefactory",{"_index":20241,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["rolefactory.build",{"_index":20243,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["rolefactory.buildwithid",{"_index":20245,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["roleid",{"_index":4697,"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":21062,"title":{},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["rolemapper",{"_index":17594,"title":{"classes/RoleMapper.html":{}},"body":{"classes/RoleMapper.html":{},"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(entities",{"_index":17659,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(roles",{"_index":17657,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitytodto(entity",{"_index":17655,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapping",{"_index":14636,"title":{},"body":{"classes/LtiRoleMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolemapping[rolename",{"_index":14644,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolemapping[source.personenkontexte[0].rolle",{"_index":18112,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["rolemodule",{"_index":1359,"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":4603,"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":12025,"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":23814,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["rolename.student",{"_index":9804,"title":{},"body":{"injectables/FeathersRosterService.html":{},"classes/GroupUcMapper.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":14641,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolename.teacher",{"_index":9803,"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":14637,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenamemapper",{"_index":12876,"title":{"classes/RoleNameMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/RoleNameMapper.html":{}}}],["rolenamemapper.maptodomain(query.role",{"_index":12903,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenamemapper.maptoresponse(role",{"_index":12886,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenames",{"_index":12022,"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":14643,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenosc",{"_index":12414,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["rolepermissions",{"_index":12616,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roleref",{"_index":21718,"title":{},"body":{"injectables/UserService.html":{}}}],["roleref.id",{"_index":7154,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["roleref.name",{"_index":13131,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["rolereference",{"_index":7148,"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":16457,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolerepo",{"_index":17609,"title":{"injectables/RoleRepo.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["roles",{"_index":3081,"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":12615,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roles.length",{"_index":16500,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["roles.map((role",{"_index":16460,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{}}}],["roles.map(async",{"_index":20268,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roles[0].id",{"_index":16501,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolesandpermissions",{"_index":16652,"title":{},"body":{"injectables/PermissionService.html":{}}}],["roleservice",{"_index":4683,"title":{"injectables/RoleService.html":{}},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/OidcProvisioningService.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["rolestudent",{"_index":12411,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleteacher",{"_index":12412,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roletype",{"_index":12406,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleuc",{"_index":17610,"title":{"injectables/RoleUc.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleUc.html":{}}}],["rollback",{"_index":17965,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["rollbackmigration",{"_index":18398,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["rollbackmigration(originalschooldo",{"_index":18418,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["rollbackmigration(userdocopy",{"_index":21516,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["rolle",{"_index":18050,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["rollen",{"_index":18032,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["rom",{"_index":22688,"title":{},"body":{"license.html":{}}}],["room",{"_index":7491,"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":8145,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{}}}],["roomboarddtofactory",{"_index":8218,"title":{"injectables/RoomBoardDTOFactory.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["roomboardelementdto",{"_index":8143,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["roomboardelementtypes",{"_index":3407,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.column_board",{"_index":8207,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.lesson",{"_index":8196,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.task",{"_index":8192,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardresponsemapper",{"_index":13865,"title":{"injectables/RoomBoardResponseMapper.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{}}}],["roomelementurlparams",{"_index":17727,"title":{"classes/RoomElementUrlParams.html":{}},"body":{"classes/RoomElementUrlParams.html":{},"controllers/RoomsController.html":{}}}],["roomid",{"_index":1042,"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":7520,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["roomlist.includes(room",{"_index":7591,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["roomname",{"_index":1034,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rooms",{"_index":7495,"title":{},"body":{"classes/DashboardEntity.html":{},"controllers/RoomsController.html":{}}}],["rooms.authorisation.service",{"_index":8166,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["rooms.foreach((room",{"_index":7597,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["rooms.service",{"_index":6726,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["roomsauthorisationservice",{"_index":8127,"title":{"injectables/RoomsAuthorisationService.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{}}}],["roomscontroller",{"_index":13868,"title":{"controllers/RoomsController.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["roomsservice",{"_index":6715,"title":{"injectables/RoomsService.html":{}},"body":{"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["roomsuc",{"_index":13866,"title":{"injectables/RoomsUc.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{},"injectables/RoomsUc.html":{}}}],["roomurlparams",{"_index":17730,"title":{"classes/RoomUrlParams.html":{}},"body":{"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{}}}],["root",{"_index":2367,"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":3106,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["rootboarddo.context?.type",{"_index":3108,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rooted",{"_index":5332,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["rootid",{"_index":3104,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["rootpath",{"_index":12399,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roster",{"_index":9716,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts",{"_index":9715,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts:100",{"_index":9744,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:137",{"_index":9739,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:145",{"_index":9748,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:153",{"_index":9737,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:163",{"_index":9741,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:169",{"_index":9736,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:199",{"_index":9755,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:211",{"_index":9759,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:222",{"_index":9757,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:232",{"_index":9752,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:53",{"_index":9734,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:63",{"_index":9750,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:78",{"_index":9746,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["route",{"_index":9656,"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":17446,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routename",{"_index":1502,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["routenameinput",{"_index":20286,"title":{},"body":{"classes/TestApiClient.html":{}}}],["routepath",{"_index":17419,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routes",{"_index":22314,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["routingkey",{"_index":1123,"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":22790,"title":{},"body":{"license.html":{}}}],["rp",{"_index":11955,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["rpc",{"_index":17854,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["rpcmessage",{"_index":10597,"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":10698,"title":{"classes/RpcMessageProducer.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["rpcmessageproducer:12",{"_index":10713,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:21",{"_index":10709,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:29",{"_index":10711,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rs.initiate({\"_id",{"_index":23677,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs0",{"_index":23674,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs256",{"_index":1405,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["rs384",{"_index":1406,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rs512",{"_index":1407,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rsa",{"_index":15679,"title":{},"body":{"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["rss",{"_index":6923,"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":1820,"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":5452,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["rule.haspermission(user",{"_index":1826,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["rule.isapplicable(user",{"_index":17894,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rulemanager",{"_index":1708,"title":{"injectables/RuleManager.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/RuleManager.html":{}}}],["rules",{"_index":1720,"title":{},"body":{"modules/AuthorizationModule.html":{},"classes/BaseUc.html":{},"injectables/RuleManager.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rules.length",{"_index":17896,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rules[0",{"_index":17898,"title":{},"body":{"injectables/RuleManager.html":{}}}],["run",{"_index":22310,"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":23482,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["running",{"_index":2116,"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":21818,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["runs",{"_index":22303,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runtime",{"_index":1396,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["rxjs",{"_index":965,"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":967,"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":1584,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BoardDoRepo.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["s3",{"_index":8033,"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":17935,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3_config",{"_index":17936,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3client",{"_index":8021,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["s3clientadapter",{"_index":10850,"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":18005,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["s3clientadapter:createbucket",{"_index":17944,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientadapter:deletedirectory",{"_index":17991,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientmap",{"_index":8008,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["s3clientmodule",{"_index":10673,"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":23849,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([s3config",{"_index":10688,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([storageconfig",{"_index":16727,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["s3config",{"_index":6335,"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":22934,"title":{},"body":{"license.html":{}}}],["safety",{"_index":22323,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sale",{"_index":22798,"title":{},"body":{"license.html":{}}}],["salt",{"_index":2137,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["same",{"_index":2148,"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":9649,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["samesite",{"_index":16288,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["saml",{"_index":23610,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["sample",{"_index":9842,"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":23493,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["samples",{"_index":23301,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservice",{"_index":23494,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservicemethod(username",{"_index":23382,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["sampleucmethod(user",{"_index":23348,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["sanis",{"_index":18024,"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":23061,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sanisgrouprole",{"_index":18033,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisgrouprole.student",{"_index":18101,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouprole.teacher",{"_index":18100,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype",{"_index":18023,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype.class",{"_index":18103,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.ktid",{"_index":18122,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.rollen",{"_index":18123,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupusers",{"_index":18117,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenresponse",{"_index":18025,"title":{"interfaces/SanisGruppenResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenzugehoerigkeitresponse",{"_index":18029,"title":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["sanisgrupperesponse",{"_index":18016,"title":{"interfaces/SanisGruppeResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["sanislaufzeitresponse",{"_index":18022,"title":{"interfaces/SanisLaufzeitResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["sanisnameresponse",{"_index":18036,"title":{"interfaces/SanisNameResponse.html":{}},"body":{"interfaces/SanisNameResponse.html":{},"interfaces/SanisPersonResponse.html":{}}}],["sanisorganisationresponse",{"_index":18039,"title":{"interfaces/SanisOrganisationResponse.html":{}},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["sanispersonenkontextresponse",{"_index":18047,"title":{"interfaces/SanisPersonenkontextResponse.html":{}},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanispersonresponse",{"_index":18042,"title":{"interfaces/SanisPersonResponse.html":{}},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanisprovisioningstrategy",{"_index":16923,"title":{"injectables/SanisProvisioningStrategy.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["sanisresponse",{"_index":18063,"title":{"interfaces/SanisResponse.html":{}},"body":{"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisresponsemapper",{"_index":16924,"title":{"injectables/SanisResponseMapper.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole",{"_index":18051,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lehr",{"_index":18095,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.leit",{"_index":18097,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lern",{"_index":18096,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.orgadmin",{"_index":18098,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanissonstigegruppenzugehoerigeresponse",{"_index":11244,"title":{"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"interfaces/SanisGruppenResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisstrategy",{"_index":16937,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["sanissystem",{"_index":21379,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanissystem.id",{"_index":21383,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanitize",{"_index":22271,"title":{},"body":{"dependencies.html":{}}}],["sanitizehtml",{"_index":7119,"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":7120,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text_ck5",{"_index":19765,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sanitizer",{"_index":22966,"title":{},"body":{"todo.html":{}}}],["sanitizerichtext",{"_index":5710,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RichText.html":{}}}],["sanitizerichtext(content",{"_index":17535,"title":{},"body":{"classes/RichText.html":{}}}],["sanitizerichtext(this.content.alternativetext",{"_index":5724,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.caption",{"_index":5721,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.text",{"_index":5744,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizing",{"_index":23209,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["satisfied",{"_index":9685,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["satisfies",{"_index":313,"title":{},"body":{"controllers/AccountController.html":{}}}],["satisfy",{"_index":9681,"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":3306,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["save(entities",{"_index":716,"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":2283,"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":11269,"title":{},"body":{"injectables/GroupService.html":{}}}],["save(school",{"_index":14096,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["save(systemdto",{"_index":19551,"title":{},"body":{"injectables/SystemService.html":{}}}],["save(user",{"_index":21695,"title":{},"body":{"injectables/UserService.html":{}}}],["save.dto",{"_index":402,"title":{},"body":{"classes/AccountDto.html":{}}}],["save.dto.ts",{"_index":792,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:13",{"_index":795,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:17",{"_index":803,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:21",{"_index":805,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:26",{"_index":800,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:30",{"_index":802,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:34",{"_index":796,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:38",{"_index":804,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:42",{"_index":801,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:46",{"_index":799,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:50",{"_index":797,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:54",{"_index":794,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:57",{"_index":793,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:9",{"_index":798,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.visitor",{"_index":3314,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["save.visitor.ts",{"_index":17322,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:109",{"_index":17344,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:125",{"_index":17345,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:139",{"_index":17346,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:152",{"_index":17347,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:165",{"_index":17342,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:181",{"_index":17339,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:188",{"_index":17333,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:196",{"_index":17336,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:202",{"_index":17330,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:36",{"_index":17328,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:40",{"_index":17334,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:54",{"_index":17341,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:68",{"_index":17340,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:81",{"_index":17337,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:95",{"_index":17343,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveall",{"_index":2249,"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":2285,"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":21697,"title":{},"body":{"injectables/UserService.html":{}}}],["saveallusersmatches",{"_index":12755,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(@currentuser",{"_index":12824,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(currentuser",{"_index":12772,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["savecontextexternaltool",{"_index":6093,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["savecontextexternaltool(contextexternaltool",{"_index":6105,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saved",{"_index":9499,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["savedcontextexternaltool",{"_index":6110,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saveddomainobject",{"_index":9060,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["saveddos",{"_index":2295,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["saveddos[0",{"_index":2297,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["savedentity",{"_index":11176,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedgroup",{"_index":11278,"title":{},"body":{"injectables/GroupService.html":{}}}],["savedmigration",{"_index":21369,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["savedpassword",{"_index":14403,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["savedprops",{"_index":11179,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedschool",{"_index":16455,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["saveduser",{"_index":16473,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{}}}],["saveduser.id",{"_index":16476,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["savedusers",{"_index":21710,"title":{},"body":{"injectables/UserService.html":{}}}],["saverecursive",{"_index":17326,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saverecursive(boardnode",{"_index":17335,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveschoolexternaltool",{"_index":18274,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveschoolexternaltool(schoolexternaltool",{"_index":18287,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveuninitialized",{"_index":18645,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["savevisitor",{"_index":3344,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savevisitor.save(domainobject",{"_index":3347,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savewithoutflush",{"_index":683,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["savewithoutflush(account",{"_index":702,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["savewithoutflush(user",{"_index":21607,"title":{},"body":{"injectables/UserRepo.html":{}}}],["saying",{"_index":22635,"title":{},"body":{"license.html":{}}}],["sc",{"_index":3931,"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":17459,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["sc_domain",{"_index":12247,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["sc_theme",{"_index":4900,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["scan",{"_index":10235,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanned",{"_index":10126,"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":1139,"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":1177,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.reason",{"_index":10230,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.status",{"_index":10229,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.virus_detected",{"_index":1174,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.virus_signature",{"_index":1175,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresultdto",{"_index":10217,"title":{"classes/ScanResultDto.html":{}},"body":{"classes/FileRecordMapper.html":{},"controllers/FileSecurityController.html":{},"classes/ScanResultDto.html":{}}}],["scanresultparams",{"_index":6307,"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":10234,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_detected",{"_index":10228,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_signature",{"_index":10231,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scans",{"_index":11720,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["scanstatus",{"_index":6258,"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":10170,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.error",{"_index":10173,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.pending",{"_index":10125,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.verified",{"_index":10179,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.wont_check",{"_index":10176,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scdomain",{"_index":13428,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["scenario",{"_index":23439,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["scenarios",{"_index":23430,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["schema",{"_index":3692,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"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":23273,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemas",{"_index":23274,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemaversion",{"_index":5304,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["school",{"_index":654,"title":{},"body":{"interfaces/AccountParams.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"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":20413,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["school(params",{"_index":23770,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["school(value",{"_index":12572,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["school._id",{"_index":13028,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["school.controller",{"_index":13935,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.controller.ts",{"_index":13938,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:101",{"_index":20808,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:121",{"_index":20804,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:28",{"_index":13952,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:46",{"_index":20815,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:51",{"_index":13947,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:61",{"_index":20811,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:79",{"_index":20819,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.do.ts",{"_index":13975,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:11",{"_index":13980,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:13",{"_index":13981,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:15",{"_index":13984,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:17",{"_index":13982,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:19",{"_index":13983,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:21",{"_index":13986,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:23",{"_index":13979,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:26",{"_index":13985,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:28",{"_index":13987,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:31",{"_index":13977,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:9",{"_index":13978,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.dto",{"_index":15820,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["school.dto.ts",{"_index":8531,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:2",{"_index":8534,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:4",{"_index":8535,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:6",{"_index":8533,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.entity",{"_index":6589,"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":6805,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["school.factory.ts",{"_index":14003,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["school.features",{"_index":14099,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.filter((f",{"_index":14101,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.includes(feature",{"_index":14100,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features?.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":15567,"title":{},"body":{"injectables/OAuthService.html":{}}}],["school.id",{"_index":14939,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolValidationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["school.module",{"_index":13933,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.module.ts",{"_index":14026,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["school.name",{"_index":16446,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["school.officialschoolnumber",{"_index":1907,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["school.previousexternalid",{"_index":13854,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.previousexternalid}/${username}`.tolowercase",{"_index":13857,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.repo.ts",{"_index":14028,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:19",{"_index":14031,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:24",{"_index":14039,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:28",{"_index":14034,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:35",{"_index":14036,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.rule.ts",{"_index":14072,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:12",{"_index":14073,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:15",{"_index":14075,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:21",{"_index":14074,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.schoolyear",{"_index":21011,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.service.ts",{"_index":14077,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:10",{"_index":14084,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:16",{"_index":14093,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:21",{"_index":14095,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:29",{"_index":14088,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:35",{"_index":14086,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:41",{"_index":14090,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:47",{"_index":14097,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.systems",{"_index":13828,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.systems.includes(systemid",{"_index":13829,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{}}}],["school.systems.push(systemid",{"_index":16450,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school.systems?.filter((systemid",{"_index":21382,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["school.uc.ts",{"_index":14108,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:101",{"_index":14112,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:16",{"_index":14110,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:26",{"_index":14117,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:77",{"_index":14115,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school/controller/dto/migration.body.ts",{"_index":14926,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:12",{"_index":14929,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:21",{"_index":14928,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:30",{"_index":14927,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.response.ts",{"_index":14969,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:14",{"_index":14975,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:20",{"_index":14974,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:26",{"_index":14973,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:31",{"_index":14970,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:8",{"_index":14976,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/school.params.ts",{"_index":18483,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/dto/school.params.ts:11",{"_index":18484,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/legacy",{"_index":13937,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school/error/school",{"_index":18474,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school/legacy",{"_index":13930,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["school/mapper/migration.mapper.ts",{"_index":14950,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/mapper/migration.mapper.ts:7",{"_index":14953,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/repo/schoolyear.repo.ts",{"_index":18523,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:11",{"_index":18525,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:7",{"_index":18526,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/service/federal",{"_index":9863,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["school/service/legacy",{"_index":14076,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school/service/school",{"_index":18529,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["school/service/validation/school",{"_index":18510,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["school/types",{"_index":16440,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school/uc/dto/oauth",{"_index":15862,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["school/uc/legacy",{"_index":14107,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school?.id",{"_index":16532,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["school_external_tools",{"_index":12187,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["school_in_migration",{"_index":18361,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["school_migration_failed",{"_index":18386,"title":{},"body":{"classes/SchoolMigrationError.html":{}}}],["school_number_duplicate",{"_index":18477,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school_number_missing",{"_index":18482,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["schooldo",{"_index":13087,"title":{},"body":{"classes/IservMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schooldo.externalid",{"_index":13091,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.features",{"_index":21387,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":21388,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.push(schoolfeatures.oauth_provisioning_enabled",{"_index":21389,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.name",{"_index":13090,"title":{},"body":{"classes/IservMapper.html":{}}}],["schooldo.officialschoolnumber",{"_index":13092,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.previousexternalid",{"_index":18465,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems",{"_index":18463,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems.push(targetsystemid",{"_index":18464,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldocopy",{"_index":18435,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolentity",{"_index":644,"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":14047,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolexclusive",{"_index":18685,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["schoolexternal",{"_index":18179,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltool",{"_index":1839,"title":{"classes/SchoolExternalTool.html":{}},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":20807,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool.id",{"_index":8626,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltool.name",{"_index":18257,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.schoolid",{"_index":1896,"title":{},"body":{"injectables/AutoSchoolIdStrategy.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.status",{"_index":18260,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolid",{"_index":8630,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolversion",{"_index":18259,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse",{"_index":18166,"title":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20463,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplateresponse",{"_index":18168,"title":{"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltooldto",{"_index":18233,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolentity",{"_index":5849,"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":18217,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["schoolexternaltoolfactory",{"_index":18173,"title":{"classes/SchoolExternalToolFactory.html":{}},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolfactory.define(schoolexternaltool",{"_index":18178,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolid",{"_index":5808,"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":18180,"title":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{}},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolids",{"_index":5920,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolmodule",{"_index":5883,"title":{"modules/SchoolExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["schoolexternaltoolparams",{"_index":20813,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolparams.schoolid",{"_index":20823,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolpostparams",{"_index":18189,"title":{"classes/SchoolExternalToolPostParams.html":{}},"body":{"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolprops",{"_index":18158,"title":{"interfaces/SchoolExternalToolProps.html":{}},"body":{"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["schoolexternaltoolquery",{"_index":18203,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolqueryinput",{"_index":18315,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["schoolexternaltoolrefdo",{"_index":5776,"title":{"classes/SchoolExternalToolRefDO.html":{}},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schoolexternaltoolrepo",{"_index":1747,"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":18227,"title":{"injectables/SchoolExternalToolRequestMapper.html":{}},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse",{"_index":18238,"title":{"classes/SchoolExternalToolResponse.html":{}},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponsemapper",{"_index":18244,"title":{"injectables/SchoolExternalToolResponseMapper.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apibadrequestresponse({type",{"_index":20818,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20803,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolrule",{"_index":1709,"title":{"injectables/SchoolExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["schoolexternaltools",{"_index":8608,"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":8622,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["schoolexternaltools.length",{"_index":9815,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltools.map",{"_index":9425,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolscope",{"_index":18205,"title":{"classes/SchoolExternalToolScope.html":{}},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolsearchlistresponse",{"_index":18253,"title":{"classes/SchoolExternalToolSearchListResponse.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolsearchlistresponse(responses",{"_index":18256,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolsearchparams",{"_index":18267,"title":{"classes/SchoolExternalToolSearchParams.html":{}},"body":{"classes/SchoolExternalToolSearchParams.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolservice",{"_index":6125,"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":8667,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltoolsinuse.map",{"_index":8671,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltooluc",{"_index":18301,"title":{"injectables/SchoolExternalToolUc.html":{}},"body":{"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolvalidationservice",{"_index":18187,"title":{"injectables/SchoolExternalToolValidationService.html":{}},"body":{"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltoolversion",{"_index":18331,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolfactory",{"_index":6804,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.build",{"_index":6814,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.buildwithid",{"_index":20246,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["schoolfeatures",{"_index":12197,"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":21374,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.oauth_provisioning_enabled",{"_index":16454,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schoolforgroupnotfoundloggable",{"_index":16441,"title":{"classes/SchoolForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["schoolforgroupnotfoundloggable(externalgroup",{"_index":16484,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["schoolid",{"_index":4209,"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":{},"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":6820,"title":{},"body":{"entities/CourseGroup.html":{},"entities/Submission.html":{}}}],["schooliddoesnotmatchwithuserschoolid",{"_index":18347,"title":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["schoolidparams",{"_index":18357,"title":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{}},"body":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolinfo",{"_index":18378,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.id",{"_index":18379,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.name",{"_index":18380,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper",{"_index":15151,"title":{"classes/SchoolInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper.maptoresponse(news.school",{"_index":15156,"title":{},"body":{"classes/NewsMapper.html":{}}}],["schoolinforesponse",{"_index":15123,"title":{"classes/SchoolInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{}}}],["schoolinmigrationerror",{"_index":15626,"title":{"classes/SchoolInMigrationError.html":{}},"body":{"injectables/Oauth2Strategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["schoolinusermigrationendloggable",{"_index":18362,"title":{"classes/SchoolInUserMigrationEndLoggable.html":{}},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["schoolinusermigrationstartloggable",{"_index":18368,"title":{"classes/SchoolInUserMigrationStartLoggable.html":{}},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["schoolmigrated",{"_index":18443,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolmigrationerror",{"_index":18384,"title":{"classes/SchoolMigrationError.html":{}},"body":{"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationerror(details",{"_index":21428,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationflags",{"_index":18387,"title":{"interfaces/SchoolMigrationFlags.html":{}},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["schoolmigrationservice",{"_index":4515,"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":12403,"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":6950,"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":6948,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnumber",{"_index":14091,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["schoolnumber_prefix_regex",{"_index":18080,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["schoolnumberduplicateloggableexception",{"_index":18473,"title":{"classes/SchoolNumberDuplicateLoggableException.html":{}},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolnumberduplicateloggableexception(school.officialschoolnumber",{"_index":18516,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["schoolnumbermissingloggableexception",{"_index":18478,"title":{"classes/SchoolNumberMissingLoggableException.html":{}},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolnumbermissingloggableexception(schoolid",{"_index":18994,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["schoolnumbermissingloggableexception})@apiokresponse({description",{"_index":21172,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["schoolparameter",{"_index":7373,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["schoolparameters",{"_index":12186,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["schoolparams",{"_index":13942,"title":{"classes/SchoolParams.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/SchoolParams.html":{}}}],["schoolparams.schoolid",{"_index":13967,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolrepo",{"_index":12138,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolrolepermission",{"_index":12214,"title":{"classes/SchoolRolePermission.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolroles",{"_index":12217,"title":{"classes/SchoolRoles.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolrule",{"_index":23794,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["schools",{"_index":10116,"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":14045,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolservice",{"_index":1902,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.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":3269,"title":{"interfaces/SchoolSpecificFileCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicecopyparams",{"_index":18492,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicefactory",{"_index":3539,"title":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceimpl",{"_index":18501,"title":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyserviceimpl(this.filesstorageclientadapterservice",{"_index":18502,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceprops",{"_index":18495,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schooltomigrate",{"_index":16346,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schooltomigrate(currentuserid",{"_index":18421,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooltool",{"_index":5842,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["schooltool.school",{"_index":5952,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["schooltoolid",{"_index":5868,"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":5769,"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":12117,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["schooluc",{"_index":13963,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolvalidationservice",{"_index":14024,"title":{"injectables/SchoolValidationService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolyear",{"_index":4335,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"injectables/FederalStateService.html":{},"classes/GroupResponseMapper.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":12201,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolyear.factory",{"_index":14007,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyear?.name",{"_index":11313,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["schoolyearentity",{"_index":10836,"title":{"entities/SchoolYearEntity.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.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":14006,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory.build",{"_index":14018,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearquerytype",{"_index":4326,"title":{},"body":{"classes/ClassFilterParams.html":{}}}],["schoolyearrepo",{"_index":14025,"title":{"injectables/SchoolYearRepo.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearservice",{"_index":14023,"title":{"injectables/SchoolYearService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["schould",{"_index":7108,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{}}}],["schul",{"_index":2022,"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":11539,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ServerController.html":{},"additional-documentation/nestjs-application.html":{}}}],["schulcloudnextcloud",{"_index":16085,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["scope",{"_index":5505,"title":{"classes/Scope.html":{}},"body":{"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":23750,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope.addquery(allforcreator.query",{"_index":19885,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(allforfinishedcoursesandlessons.query",{"_index":19884,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(closedforopencoursesandlessons.query",{"_index":19883,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(parentidscope.query",{"_index":19898,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.afterduedateornone(filters.afterduedateornone",{"_index":19905,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.allowemptyquery(true",{"_index":5958,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byavailable(filters?.availableon",{"_index":19909,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byclasses(filters.classes",{"_index":12974,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bycontextid(query.context?.id",{"_index":5956,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycontexttype(query.context?.type",{"_index":5957,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycourseids([courseid",{"_index":19911,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.bycourseids(courseids",{"_index":14239,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.bycreator(creatorid",{"_index":15215,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bydraft(false",{"_index":19903,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfinished(filters.finished.userid",{"_index":19900,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfirstname(filters.firstname",{"_index":12966,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byhidden(filters.hidden",{"_index":14241,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.byid(query.id",{"_index":5954,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bylastname(filters.lastname",{"_index":12968,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byloginname(filters.loginname",{"_index":12970,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bymatches(filters.matches",{"_index":12976,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bypublished",{"_index":15211,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byrole(filters.role",{"_index":12972,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschool(school",{"_index":12964,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschoolid(query.schoolid",{"_index":18218,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byschooltoolid(query.schooltoolref?.schooltoolid",{"_index":5955,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bytargets(targets",{"_index":15210,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bytoolid(query.toolid",{"_index":18219,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byunpublished",{"_index":15214,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byusermatch(user",{"_index":12962,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.enum",{"_index":21925,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["scope.excludedraftsofothers(creatorid",{"_index":19913,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludedraftsofothers(parentids.creatorid",{"_index":19902,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludeunavailableofothers(parentids.creatorid",{"_index":19907,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.foractivecourses",{"_index":6997,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forallgrouptypes(userid",{"_index":6995,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forcourseid(courseid",{"_index":7006,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacher(userid",{"_index":7002,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacherorsubstituteteacher(userid",{"_index":7005,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.id",{"_index":21895,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.isflagged(true",{"_index":12978,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.name",{"_index":21456,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["scope.nofutureavailabledate",{"_index":19915,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.params.ts",{"_index":22124,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:12",{"_index":22128,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:8",{"_index":22126,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.query",{"_index":5951,"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":9836,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["scope.scope",{"_index":21901,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.target",{"_index":15324,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope.targetid",{"_index":20161,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.targetmodel",{"_index":20163,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.transient",{"_index":13908,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["scope.ts",{"_index":10293,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:10",{"_index":14288,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:13",{"_index":10300,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:15",{"_index":19541,"title":{},"body":{"classes/SystemScope.html":{}}}],["scope.ts:17",{"_index":19982,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:19",{"_index":10307,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:25",{"_index":10309,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:31",{"_index":10302,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:37",{"_index":15250,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:39",{"_index":19980,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:45",{"_index":19977,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:5",{"_index":14287,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:52",{"_index":19984,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:60",{"_index":19974,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:66",{"_index":19991,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:7",{"_index":10305,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:73",{"_index":19986,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:8",{"_index":15252,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:83",{"_index":19972,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:89",{"_index":19990,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:95",{"_index":19988,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.withldapconfig",{"_index":19519,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoauthconfig",{"_index":19521,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoidcconfig",{"_index":19523,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope:11",{"_index":6070,"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":6068,"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":6082,"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":6084,"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":6071,"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":15321,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope?.unpublished",{"_index":15304,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scoped",{"_index":20083,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopeid",{"_index":9657,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/IScopeInfo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["scopeinfo",{"_index":21886,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopeinfo.logouturl",{"_index":21911,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["scopeinfo.scopeid",{"_index":21903,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopemapping",{"_index":9237,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterdo.scope",{"_index":9334,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterparam.scope",{"_index":9283,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["scopename",{"_index":12243,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["scopeoperator",{"_index":6069,"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":21805,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopeparams.scope",{"_index":21842,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopepermission",{"_index":20082,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopepermissions",{"_index":20081,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scoperef",{"_index":18555,"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":21841,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scoperessource",{"_index":21897,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopes",{"_index":2558,"title":{},"body":{"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":12659,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.groups",{"_index":12653,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.profile",{"_index":12661,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes/rules/permissions/user",{"_index":23833,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scraper",{"_index":14883,"title":{},"body":{"injectables/MetaTagExtractorService.html":{},"dependencies.html":{}}}],["scraper/dist/lib/types",{"_index":14884,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["scripts",{"_index":22504,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["sdk",{"_index":22184,"title":{},"body":{"dependencies.html":{}}}],["sdk/client",{"_index":8032,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["sdk/lib",{"_index":17934,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["search",{"_index":812,"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":9351,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.params.ts:13",{"_index":9353,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["search.params.ts:8",{"_index":9354,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.query.params.ts",{"_index":834,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:14",{"_index":839,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:22",{"_index":840,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["searchability",{"_index":23343,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["searchaccounts",{"_index":266,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchaccounts(currentuser",{"_index":309,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchbyusername",{"_index":684,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchbyusername(username",{"_index":704,"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":20481,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["searching",{"_index":13038,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["searchoptions",{"_index":12717,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["searchparams",{"_index":21275,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchparams.userid",{"_index":21278,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchquery",{"_index":9288,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["searchuser",{"_index":12400,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["searchusername",{"_index":751,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchuserpassword",{"_index":12401,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["second",{"_index":2662,"title":{},"body":{"entities/Board.html":{},"injectables/S3ClientAdapter.html":{}}}],["secondarily",{"_index":22452,"title":{},"body":{"license.html":{}}}],["secondary",{"_index":22405,"title":{},"body":{"license.html":{}}}],["secondchar",{"_index":6659,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["seconds",{"_index":5511,"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":1430,"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":6340,"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":13683,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["secretorkey",{"_index":13189,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["secrets",{"_index":11851,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["secretvalue",{"_index":1593,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["section",{"_index":15720,"title":{},"body":{"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sections",{"_index":22606,"title":{},"body":{"license.html":{}}}],["secure",{"_index":16292,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["secure_launch_url",{"_index":5237,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["security",{"_index":9999,"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":10334,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:15",{"_index":10340,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:29",{"_index":10343,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["securitycheck",{"_index":9964,"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":10138,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheckstatus",{"_index":6283,"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":511,"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":7870,"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":11645,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["seed.service",{"_index":13326,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["seed.service.ts",{"_index":13701,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:13",{"_index":13705,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:20",{"_index":13710,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:35",{"_index":13706,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:60",{"_index":13707,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:94",{"_index":13708,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:99",{"_index":13709,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seedcollections",{"_index":7861,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["seedcollections(options",{"_index":7869,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["seeddata",{"_index":23423,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["seeddatabasecollectionsfromfactories(collections",{"_index":11742,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeddatabasecollectionsfromfilesystem(collections",{"_index":11757,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeded",{"_index":13655,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["seededcollectionswithamount",{"_index":11753,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seededcollectionswithamount.push(`${collectionname}:${importeddocumentsamount",{"_index":11777,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeding",{"_index":23617,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["seeds",{"_index":11644,"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":23004,"title":{},"body":{"todo.html":{}}}],["segregation",{"_index":23167,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sehr",{"_index":4894,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["select",{"_index":23795,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["selectconfigureaction",{"_index":13342,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selectconfigureaction(newconfigs",{"_index":13369,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selected",{"_index":13831,"title":{},"body":{"injectables/LdapStrategy.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"todo.html":{}}}],["selectedrules",{"_index":17892,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule",{"_index":17870,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule(user",{"_index":17876,"title":{},"body":{"injectables/RuleManager.html":{}}}],["self",{"_index":23742,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sell",{"_index":22813,"title":{},"body":{"license.html":{}}}],["selling",{"_index":22797,"title":{},"body":{"license.html":{}}}],["semiconductor",{"_index":22436,"title":{},"body":{"license.html":{}}}],["senario",{"_index":23446,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["send",{"_index":1145,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"additional-documentation/nestjs-application.html":{}}}],["send(data",{"_index":1479,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/TestApiClient.html":{}}}],["send(params",{"_index":1487,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["send(requesttoken",{"_index":1157,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["sendauthenticationcodetokenrequest",{"_index":15667,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendauthenticationcodetokenrequest(tokenendpoint",{"_index":15674,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendhttpresponse",{"_index":10892,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sendhttpresponse(error",{"_index":10908,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sending",{"_index":23214,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sense",{"_index":1670,"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":19371,"title":{},"body":{"controllers/SystemController.html":{}}}],["sent",{"_index":19762,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sentence",{"_index":1245,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separable",{"_index":22646,"title":{},"body":{"license.html":{}}}],["separate",{"_index":13913,"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":15718,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["separately",{"_index":22592,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["seperate",{"_index":14183,"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":23224,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperation",{"_index":22302,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sequence",{"_index":461,"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":12843,"title":{},"body":{"classes/ImportUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}displayname",{"_index":19450,"title":{},"body":{"classes/SystemFactory.html":{}}}],["serialization",{"_index":19002,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"todo.html":{}}}],["serialize",{"_index":3829,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["serialize(documents",{"_index":3839,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serializedprimarykey",{"_index":2355,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["serializes",{"_index":3841,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serve",{"_index":22272,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["served",{"_index":23125,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server",{"_index":1965,"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":18622,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["server.console",{"_index":18578,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["server.module.ts",{"_index":14797,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["server.module.ts:36",{"_index":14803,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["server/blob/main/apps/server/src/modules/authorization/readme.md",{"_index":23144,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/config/readme.md",{"_index":23143,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/src/services/lesson/hooks/index.js#l232",{"_index":23826,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["server/overview.html",{"_index":23007,"title":{},"body":{"todo.html":{}}}],["server/pull/2729#pullrequestreview",{"_index":22984,"title":{},"body":{"todo.html":{}}}],["server/server.config",{"_index":632,"title":{},"body":{"modules/AccountModule.html":{}}}],["server_options_path='/tmp/config/server",{"_index":23630,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["serverconfig",{"_index":12261,"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":18557,"title":{"classes/ServerConsole.html":{}},"body":{"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{}}}],["serverconsolemodule",{"_index":18569,"title":{"modules/ServerConsoleModule.html":{}},"body":{"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["servercontroller",{"_index":18580,"title":{"controllers/ServerController.html":{}},"body":{"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servermodule",{"_index":18583,"title":{"modules/ServerModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["servermodules",{"_index":18623,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servers",{"_index":22416,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["servertestmodule",{"_index":18664,"title":{"modules/ServerTestModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["serves",{"_index":22496,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["service",{"_index":560,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"classes/BaseUc.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnUc.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":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonModule.html":{},"injectables/LessonUC.html":{},"modules/LtiToolModule.html":{},"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorUc.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":23829,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["service.create(data",{"_index":8495,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["service.factory.ts",{"_index":18496,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:10",{"_index":18498,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:13",{"_index":18500,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.find",{"_index":9660,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.get",{"_index":23320,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.get(userid",{"_index":9655,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.mapper",{"_index":9396,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["service.mapper.ts",{"_index":9449,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.mapper.ts:7",{"_index":9452,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.module.ts",{"_index":16187,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["service.provider",{"_index":8489,"title":{},"body":{"injectables/EtherpadService.html":{},"modules/FeathersModule.html":{},"injectables/NexboardService.html":{}}}],["service.provider.ts",{"_index":9824,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.provider.ts:13",{"_index":9832,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:19",{"_index":9830,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:24",{"_index":9827,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:38",{"_index":9849,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.provider.ts:41",{"_index":9850,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.ts",{"_index":1684,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.ts:10",{"_index":1691,"title":{},"body":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["service.ts:5",{"_index":1685,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{}}}],["service/authorization.helper",{"_index":3359,"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/auto",{"_index":20638,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/board",{"_index":3262,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{}}}],["service/cache.service",{"_index":3897,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["service/column",{"_index":3545,"title":{},"body":{"modules/BoardModule.html":{}}}],["service/common",{"_index":6786,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["service/copy",{"_index":6412,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{}}}],["service/dto",{"_index":16244,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["service/dto/page",{"_index":16558,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["service/files",{"_index":10576,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/hydra.service",{"_index":11449,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{}}}],["service/id",{"_index":16133,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["service/keycloak",{"_index":13247,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"modules/KeycloakModule.html":{}}}],["service/launch",{"_index":20639,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/oauth",{"_index":15874,"title":{},"body":{"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["service/oauth.service",{"_index":11450,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{}}}],["service/oidc",{"_index":16526,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["service/preview.service",{"_index":10604,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/provisioning.service",{"_index":16928,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["service/recursive",{"_index":17196,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["service/rooms.service",{"_index":17835,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["service/school",{"_index":18489,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["service/submission",{"_index":8314,"title":{},"body":{"injectables/ElementUc.html":{}}}],["service/system",{"_index":19482,"title":{},"body":{"modules/SystemModule.html":{}}}],["service/user.service",{"_index":21582,"title":{},"body":{"modules/UserModule.html":{}}}],["servicedto",{"_index":20143,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["serviceoptions",{"_index":18898,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.context",{"_index":18900,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.expiresat",{"_index":18904,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoutputtypes",{"_index":17932,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["services",{"_index":9707,"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":628,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.service",{"_index":626,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.validation.service",{"_index":627,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/authentication.service",{"_index":1385,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{}}}],["services/dto/account.dto",{"_index":424,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["services/dto/team",{"_index":20183,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["services/dto/team.dto",{"_index":20144,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["services/ldap.service",{"_index":1386,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["serviceunavailableexception",{"_index":13656,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["servicing",{"_index":22900,"title":{},"body":{"license.html":{}}}],["session",{"_index":118,"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":16155,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_id",{"_index":16153,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_name",{"_index":16154,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.destroy((err",{"_index":16253,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["session.oauthloginstate",{"_index":16267,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["session.response.ts",{"_index":5585,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["session.response.ts:13",{"_index":5593,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:16",{"_index":5594,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:19",{"_index":5592,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:4",{"_index":5589,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session_id",{"_index":14535,"title":{},"body":{"classes/LoginResponse-1.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["session_token",{"_index":2099,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["sessionduration",{"_index":18633,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessionhandler",{"_index":16206,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessionhandler(session",{"_index":16229,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessions",{"_index":16057,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessions.map",{"_index":16059,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["set",{"_index":517,"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":1476,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(caseinsensitivenames",{"_index":5457,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["set(headerconst.accept",{"_index":1485,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(memberids",{"_index":12332,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["set(permissions",{"_index":12183,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["set(tasksubmitterids",{"_index":12533,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["setalternativetext(value",{"_index":9922,"title":{},"body":{"classes/FileElement.html":{}}}],["setcaption(value",{"_index":9919,"title":{},"body":{"classes/FileElement.html":{}}}],["setcompleted(value",{"_index":19127,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setcontext",{"_index":13887,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontext(context",{"_index":4759,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["setcontext(name",{"_index":13896,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontextexternaltoolid(value",{"_index":8722,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["setcookies",{"_index":11513,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setcookies.foreach((item",{"_index":11557,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setdescription(value",{"_index":14343,"title":{},"body":{"classes/LinkElement.html":{}}}],["setduedate(value",{"_index":19054,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["setgroupname",{"_index":10976,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setgroupname(newgroupname",{"_index":7533,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setheight(height",{"_index":3976,"title":{},"body":{"classes/Card.html":{}}}],["setheightbodyparams",{"_index":4016,"title":{"classes/SetHeightBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/SetHeightBodyParams.html":{}}}],["setimageurl(value",{"_index":14347,"title":{},"body":{"classes/LinkElement.html":{}}}],["setinputformat(value",{"_index":17547,"title":{},"body":{"classes/RichTextElement.html":{}}}],["setlearnrooms",{"_index":7482,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["setlearnrooms(rooms",{"_index":7521,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setmatch",{"_index":12756,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(urlparams",{"_index":12775,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(user",{"_index":12060,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["setmigration",{"_index":13940,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolid",{"_index":14116,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolparams",{"_index":13948,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["setmigrationmandatory",{"_index":20351,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(currentuser",{"_index":21163,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["setmigrationmandatory(schoolid",{"_index":21360,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(userid",{"_index":20354,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["setname(name",{"_index":10164,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["setpasswordpolicy",{"_index":13261,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["setrequireduserrole(userroleenum",{"_index":3068,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["sets",{"_index":4700,"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":20233,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setstrategy",{"_index":4555,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["setstrategy(strategy",{"_index":4568,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["settedlanguage",{"_index":21731,"title":{},"body":{"injectables/UserUc.html":{}}}],["settext(value",{"_index":17543,"title":{},"body":{"classes/RichTextElement.html":{}}}],["settimeout",{"_index":17996,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["settimeout(resolve",{"_index":11669,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["setting",{"_index":6954,"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":23335,"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":2187,"title":{},"body":{"injectables/BBBService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["settings.interface.ts",{"_index":11593,"title":{},"body":{"interfaces/IBbbSettings.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IVideoConferenceSettings.html":{}}}],["settings.response",{"_index":4085,"title":{},"body":{"classes/CardResponse.html":{}}}],["settings.response.ts",{"_index":22131,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:3",{"_index":22133,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:9",{"_index":22134,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settitle(title",{"_index":3972,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["settitle(value",{"_index":14340,"title":{},"body":{"classes/LinkElement.html":{}}}],["setup",{"_index":3460,"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":23626,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm",{"_index":23057,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:configure",{"_index":23667,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:seed",{"_index":23666,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setuppath",{"_index":11759,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["setupsessions",{"_index":18632,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setupsessions(consumer",{"_index":18658,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["seturl(value",{"_index":14339,"title":{},"body":{"classes/LinkElement.html":{}}}],["setuser(value",{"_index":20229,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setuserattribute",{"_index":12698,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserattribute(userid",{"_index":12725,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserid(value",{"_index":19130,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setuserstatus(authtoken",{"_index":1023,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["sha",{"_index":2222,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.digest('hex",{"_index":2226,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.update(callname",{"_index":2224,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha1",{"_index":2158,"title":{},"body":{"injectables/BBBService.html":{},"injectables/Lti11EncryptionService.html":{}}}],["shall",{"_index":17164,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["share",{"_index":18707,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenResponse.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"license.html":{}}}],["shared",{"_index":18689,"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":340,"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":4483,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/ColumnBoardService.html":{},"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":2184,"title":{},"body":{"injectables/BBBService.html":{}}}],["shared/common/utils/guard",{"_index":14410,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["shared/controller",{"_index":247,"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":{},"classes/MetaTagExtractorResponse.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":152,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["shared/controller/transformer",{"_index":10776,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["shared/core",{"_index":23291,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/domain",{"_index":99,"title":{},"body":{"classes/AbstractAccountService.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/AutoContextNameStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BaseDORepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BaseUc.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/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ChangeLanguageParams.html":{},"entities/ClassEntity.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":{},"injectables/MetaTagExtractorUc.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":1687,"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":3358,"title":{},"body":{"injectables/BoardDoRule.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.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":5780,"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":5711,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/domainobject/board/types",{"_index":2979,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["shared/domain/domainobject/ltitool.do",{"_index":11517,"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":8665,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/UserDORepo.html":{}}}],["shared/domain/domainobject/user.do",{"_index":7149,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserMigrationService.html":{}}}],["shared/domain/entity",{"_index":1658,"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":722,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["shared/domain/entity/base.entity",{"_index":4276,"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":17348,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/entity/external",{"_index":11134,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["shared/domain/entity/ltitool.entity",{"_index":7248,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/LtiToolDO.html":{}}}],["shared/domain/entity/materials.entity",{"_index":14816,"title":{},"body":{"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{}}}],["shared/domain/entity/school.entity",{"_index":11136,"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":21246,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["shared/domain/entity/user",{"_index":12199,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["shared/domain/entity/video",{"_index":22091,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["shared/domain/index",{"_index":15915,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["shared/domain/interface",{"_index":4915,"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":14179,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["shared/domain/interface/system",{"_index":12348,"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":21924,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["shared/domain/types",{"_index":2442,"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":{},"classes/ElementContentBody.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/NexboardService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/ShareTokenDO.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/UpdateElementContentBodyParams.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{}}}],["shared/domain/types/entity",{"_index":12268,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["shared/domain/types/input",{"_index":12456,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["shared/domain/types/session",{"_index":15859,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["shared/infra/antivirus",{"_index":6296,"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":10669,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["shared/infra/cache",{"_index":1375,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/OauthModule.html":{}}}],["shared/infra/cache/interface/cache",{"_index":13216,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["shared/infra/calendar",{"_index":22060,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/infra/calendar/dto/calendar",{"_index":3926,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/interface/calendar",{"_index":3924,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["shared/infra/calendar/mapper/calendar.mapper",{"_index":3941,"title":{},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/service/calendar.service",{"_index":3940,"title":{},"body":{"modules/CalendarModule.html":{}}}],["shared/infra/collaborative",{"_index":4580,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["shared/infra/console",{"_index":3454,"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":{},"modules/MetaTagExtractorModule.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["shared/infra/console/console",{"_index":7877,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["shared/infra/database",{"_index":10734,"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":10735,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["shared/infra/encryption",{"_index":8926,"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":1716,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"modules/LessonModule.html":{}}}],["shared/infra/feathers/feathers",{"_index":8488,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["shared/infra/file",{"_index":11682,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["shared/infra/identity",{"_index":599,"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":18618,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/metrics",{"_index":16867,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["shared/infra/oauth",{"_index":8925,"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":10671,"title":{},"body":{"modules/FilesStorageModule.html":{},"classes/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["shared/infra/rabbitmq",{"_index":8439,"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":10672,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{}}}],["shared/infra/rabbitmq/rpc",{"_index":10598,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{}}}],["shared/infra/redis",{"_index":18619,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/s3",{"_index":9882,"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":23315,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/repo",{"_index":227,"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":14721,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["shared/repo/base.repo",{"_index":723,"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":4623,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["shared/repo/scope",{"_index":9347,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["shared/repo/storageprovider",{"_index":8034,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["shared/repo/system/system",{"_index":19517,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["shared/repo/types/storageproviderencryptedstring.type",{"_index":12277,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["shared/repo/user/user",{"_index":21580,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["shared/repo/videoconference/video",{"_index":22061,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/testing",{"_index":3497,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/ClassFactory.html":{}}}],["shared/testing/factory/base.factory",{"_index":4310,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/LtiToolFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/role.factory",{"_index":20242,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/school.factory",{"_index":20239,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/teamuser.factory",{"_index":20134,"title":{},"body":{"classes/TeamFactory.html":{}}}],["shared/testing/factory/user.factory",{"_index":20240,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/types",{"_index":15116,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["shared/utils",{"_index":23292,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators",{"_index":23309,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators/text.validator.ts",{"_index":23295,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sharetoken",{"_index":6542,"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":18814,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["sharetoken.context",{"_index":18910,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.expiresat",{"_index":18834,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{}}}],["sharetoken.payload",{"_index":18833,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetoken.payload.parentid",{"_index":18913,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.payload.parenttype",{"_index":18861,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken.token",{"_index":18832,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenbodyparams",{"_index":18681,"title":{"classes/ShareTokenBodyParams.html":{}},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{}}}],["sharetokencontext",{"_index":18752,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype",{"_index":12265,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype.school",{"_index":18901,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper",{"_index":18697,"title":{"classes/ShareTokenContextTypeMapper.html":{}},"body":{"classes/ShareTokenContextTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper.maptoallowedauthorizationentitytype(context.contexttype",{"_index":18926,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontroller",{"_index":18700,"title":{"controllers/ShareTokenController.html":{}},"body":{"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokendo",{"_index":18748,"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":18761,"title":{"classes/ShareTokenFactory.html":{}},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenfactory.define",{"_index":18769,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenimportbodyparams",{"_index":18713,"title":{"classes/ShareTokenImportBodyParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{}}}],["sharetokeninfo",{"_index":18740,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninfo.parentname",{"_index":18789,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.parenttype",{"_index":18788,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.token",{"_index":18787,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfodto",{"_index":18776,"title":{"interfaces/ShareTokenInfoDto.html":{}},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninforesponse",{"_index":18728,"title":{"classes/ShareTokenInfoResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper",{"_index":18725,"title":{"classes/ShareTokenInfoResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper.maptoresponse(sharetokeninfo",{"_index":18743,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokeninforesponse})@apiresponse({status",{"_index":18722,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenparenttype",{"_index":12266,"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":18770,"title":{},"body":{"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.lesson",{"_index":18863,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.task",{"_index":18865,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper",{"_index":18790,"title":{"classes/ShareTokenParentTypeMapper.html":{}},"body":{"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(parenttype",{"_index":18928,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(payload.parenttype",{"_index":18919,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenpayload",{"_index":18754,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenpayloadresponse",{"_index":18794,"title":{"classes/ShareTokenPayloadResponse.html":{}},"body":{"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["sharetokenpayloadresponse(payload",{"_index":18830,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["sharetokenrepo",{"_index":18802,"title":{"injectables/ShareTokenRepo.html":{}},"body":{"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenresponse",{"_index":18729,"title":{"classes/ShareTokenResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper",{"_index":18726,"title":{"classes/ShareTokenResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper.maptoresponse(sharetoken",{"_index":18737,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenresponse})@apiresponse({status",{"_index":18709,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokens",{"_index":9965,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["sharetokenservice",{"_index":18835,"title":{"injectables/ShareTokenService.html":{}},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenstring",{"_index":12267,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/TokenGenerator.html":{}}}],["sharetokenuc",{"_index":18727,"title":{"injectables/ShareTokenUC.html":{}},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenurlparams",{"_index":18712,"title":{"classes/ShareTokenUrlParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenUrlParams.html":{}}}],["sharingapimodule",{"_index":18586,"title":{"modules/SharingApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["sharingmodule",{"_index":18943,"title":{"modules/SharingModule.html":{}},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["shit",{"_index":6594,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["short",{"_index":6897,"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":23585,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["shortid",{"_index":22245,"title":{},"body":{"dependencies.html":{}}}],["shorttitle",{"_index":6664,"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":9588,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["shouldskipconsent",{"_index":16088,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldskipconsent(tool",{"_index":16098,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldusermigrate",{"_index":14933,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["shouldusermigrate(externaluserid",{"_index":14936,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["show",{"_index":15276,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/SystemController.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["show_outdated_users",{"_index":12210,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["showoutdatedusers",{"_index":12211,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["sid",{"_index":14547,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["side",{"_index":2149,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sideeffects",{"_index":23844,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["sign",{"_index":14575,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"license.html":{}}}],["sign(key",{"_index":14576,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signalgorithm",{"_index":1419,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signature_method",{"_index":14583,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["significant",{"_index":22669,"title":{},"body":{"license.html":{}}}],["signing",{"_index":1418,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signoptions",{"_index":1381,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["similar",{"_index":22426,"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":23175,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["simplicity",{"_index":23020,"title":{},"body":{"todo.html":{}}}],["simplification",{"_index":23257,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["simplify",{"_index":23450,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["simply",{"_index":22321,"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":22860,"title":{},"body":{"license.html":{}}}],["sind",{"_index":4883,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["single",{"_index":3250,"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":3259,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single(boardnode",{"_index":3260,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single:latestexample",{"_index":23642,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["single:latestthe",{"_index":23643,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["singlecolumnboardresponse",{"_index":17675,"title":{"classes/SingleColumnBoardResponse.html":{}},"body":{"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["singlefileparams",{"_index":6308,"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":10761,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["situations",{"_index":23724,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["six",{"_index":10381,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["size",{"_index":822,"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":7650,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["skeleton",{"_index":2892,"title":{},"body":{"controllers/BoardController.html":{}}}],["skeleton.response",{"_index":4990,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["skeleton.response.ts",{"_index":4141,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:12",{"_index":4143,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:18",{"_index":4152,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:3",{"_index":4142,"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":{},"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":7201,"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":827,"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":23012,"title":{},"body":{"todo.html":{}}}],["slow",{"_index":11771,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["small",{"_index":23168,"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":14905,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sn",{"_index":12409,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["socketio",{"_index":22275,"title":{},"body":{"dependencies.html":{}}}],["software",{"_index":22362,"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":22656,"title":{},"body":{"license.html":{}}}],["sole",{"_index":22525,"title":{},"body":{"license.html":{}}}],["solely",{"_index":22533,"title":{},"body":{"license.html":{}}}],["solution",{"_index":3073,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"modules/ToolLaunchModule.html":{},"interfaces/UserBoardRoles.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["solutions",{"_index":22945,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["solve",{"_index":19916,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["somemethod",{"_index":23374,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["someotherservice",{"_index":23231,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["something",{"_index":12631,"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":23821,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sonstige",{"_index":18030,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sonstige_gruppenzugehoerige",{"_index":18028,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{}}}],["soon",{"_index":23734,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sort",{"_index":4452,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sort.id",{"_index":9466,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["sort.name",{"_index":9467,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sort.params.ts",{"_index":18962,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["sortby",{"_index":2990,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/ClassSortParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortby(resolved",{"_index":3060,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder",{"_index":2941,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder(resolved",{"_index":2969,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos",{"_index":3059,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos.map",{"_index":3061,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortedbsondocuments",{"_index":11788,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["sortedchildren",{"_index":3240,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["sortedimages",{"_index":14899,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sortedimages.find((i",{"_index":14906,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sortedimages.sort((a",{"_index":14900,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["sortexternaltoolparams",{"_index":9229,"title":{"classes/SortExternalToolParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolController.html":{}}}],["sorthelper",{"_index":18967,"title":{"classes/SortHelper.html":{}},"body":{"classes/SortHelper.html":{}}}],["sortimportuserparams",{"_index":12763,"title":{"classes/SortImportUserParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["sorting",{"_index":19834,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["sorting.mapper.ts",{"_index":9462,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.mapper.ts:7",{"_index":9465,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.ts",{"_index":22980,"title":{},"body":{"todo.html":{}}}],["sortingparams",{"_index":4453,"title":{"classes/SortingParams.html":{}},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortingparams:10",{"_index":4456,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["sortingparams:14",{"_index":18965,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingparams:18",{"_index":4458,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingquery",{"_index":9231,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"controllers/ToolController.html":{}}}],["sortingquery.sortby",{"_index":11063,"title":{},"body":{"controllers/GroupController.html":{}}}],["sortingquery.sortorder",{"_index":9287,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"classes/ImportUserMapper.html":{}}}],["sortorder",{"_index":721,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/ClassSortParams.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/LessonRepo.html":{},"injectables/NewsUc.html":{},"classes/SortExternalToolParams.html":{},"classes/SortHelper.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.asc",{"_index":742,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/ClassSortParams.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/LessonRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.desc",{"_index":7042,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"injectables/NewsUc.html":{},"classes/SortHelper.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["sortordermap",{"_index":9232,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/ImportUserMapper.html":{},"injectables/UserDORepo.html":{}}}],["sortreferences",{"_index":7537,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["source",{"_index":4,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":11135,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["source.entity.ts",{"_index":8545,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["source.entity.ts:13",{"_index":8548,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.entity.ts:16",{"_index":8547,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.person.name.familienname",{"_index":18109,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.person.name.vorname",{"_index":18108,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].id",{"_index":18119,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.id.tostring",{"_index":18107,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.kennung.replace",{"_index":18104,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.name",{"_index":18106,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation?.id",{"_index":18127,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0]?.gruppen",{"_index":18113,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.pid",{"_index":18111,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.response",{"_index":11193,"title":{},"body":{"classes/GroupResponse.html":{}}}],["source.response.ts",{"_index":8555,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:5",{"_index":8557,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:8",{"_index":8556,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.ts",{"_index":8540,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:2",{"_index":8542,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:4",{"_index":8541,"title":{},"body":{"classes/ExternalSource.html":{}}}],["sourcecode",{"_index":23262,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sourcedescription",{"_index":6924,"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":18411,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["sourceid",{"_index":6240,"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":4216,"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":3385,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparent.removechild(child",{"_index":3387,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparentid",{"_index":17250,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourcepath",{"_index":6333,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["sources",{"_index":23076,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sourceschoolid",{"_index":4784,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourceschoolnumber",{"_index":21426,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["sourcesystem",{"_index":16566,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemid",{"_index":21216,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl",{"_index":21538,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl.tostring",{"_index":21541,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcetype",{"_index":15129,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["space",{"_index":536,"title":{},"body":{"classes/AccountFactory.html":{},"classes/OauthClientBody.html":{}}}],["spalten",{"_index":4853,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["spare",{"_index":22617,"title":{},"body":{"license.html":{}}}],["sparse",{"_index":6608,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["speak",{"_index":22386,"title":{},"body":{"license.html":{}}}],["spec.ts",{"_index":23099,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["special",{"_index":22696,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["specialized",{"_index":23166,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specific",{"_index":993,"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":22373,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["specification",{"_index":23334,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specifications",{"_index":23392,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specified",{"_index":4701,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/GuardAgainst.html":{},"license.html":{}}}],["specifies",{"_index":20654,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{},"license.html":{}}}],["specify",{"_index":22885,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["spies",{"_index":23509,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["spirit",{"_index":22877,"title":{},"body":{"license.html":{}}}],["split",{"_index":14121,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["splitting",{"_index":23828,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sql",{"_index":769,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["squashed",{"_index":23592,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["src",{"_index":23261,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["src/config",{"_index":10678,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MetaTagExtractorModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core",{"_index":10501,"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":11051,"title":{},"body":{"controllers/GroupController.html":{}}}],["src/core/error/dto/error.response",{"_index":3866,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/interface",{"_index":3867,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/loggable/error.loggable",{"_index":13823,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["src/core/error/utils",{"_index":1164,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorMapper.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["src/core/logger",{"_index":1278,"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":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnUc.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":{},"modules/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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/SymetricKeyEncryptionService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.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":10783,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/core/logger/logger.module",{"_index":624,"title":{},"body":{"modules/AccountModule.html":{}}}],["src/core/logger/logging.utils",{"_index":10910,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["src/core/logger/types",{"_index":10784,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/imports",{"_index":13220,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["src/modules/authentication",{"_index":341,"title":{},"body":{"controllers/AccountController.html":{},"controllers/MetaTagExtractorController.html":{}}}],["src/modules/authentication/decorator/auth.decorator",{"_index":339,"title":{},"body":{"controllers/AccountController.html":{},"controllers/MetaTagExtractorController.html":{}}}],["src/modules/authorization",{"_index":14829,"title":{},"body":{"modules/MetaTagExtractorApiModule.html":{},"injectables/MetaTagExtractorUc.html":{}}}],["src/modules/database",{"_index":23544,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["src/modules/group",{"_index":11257,"title":{},"body":{"injectables/GroupRule.html":{}}}],["src/shared/domain/entity/lesson.entity",{"_index":5077,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["src/shared/domain/types",{"_index":21524,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["src/shared/infra/rabbitmq",{"_index":10602,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["sso",{"_index":15495,"title":{},"body":{"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sso.controller",{"_index":15702,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["sso.controller.ts",{"_index":16200,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:119",{"_index":16233,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:152",{"_index":16218,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:162",{"_index":16228,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:183",{"_index":16223,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:47",{"_index":16209,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:65",{"_index":16225,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:83",{"_index":16230,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:98",{"_index":16214,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.error",{"_index":11447,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso.error.ts",{"_index":15492,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:11",{"_index":15493,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:5",{"_index":15498,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:7",{"_index":15497,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:9",{"_index":15496,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso_auth_code_step",{"_index":11452,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["sso_internal_error",{"_index":15549,"title":{},"body":{"injectables/OAuthService.html":{}}}],["sso_jwt_problem",{"_index":13120,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["sso_user_not_found_after_provisioning",{"_index":21590,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso_user_notfound",{"_index":13127,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ssoauthenticationerror",{"_index":1727,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["ssoerror",{"_index":16252,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerror.errorcode",{"_index":16258,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerrorcode",{"_index":15499,"title":{},"body":{"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_jwt_problem",{"_index":15575,"title":{},"body":{"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_oauth_login_failed",{"_index":15494,"title":{},"body":{"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["ssologinquery",{"_index":16212,"title":{"classes/SSOLoginQuery.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/SSOLoginQuery.html":{}}}],["stack",{"_index":8827,"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/UnknownQueryTypeLoggableException.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":4866,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["standard",{"_index":22487,"title":{},"body":{"license.html":{}}}],["standards",{"_index":22489,"title":{},"body":{"license.html":{}}}],["start",{"_index":828,"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":21822,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["start.loggable.ts",{"_index":18369,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:11",{"_index":18371,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["start.loggable.ts:4",{"_index":18370,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:7",{"_index":21394,"title":{},"body":{"classes/UserLoginMigrationStartLoggable.html":{}}}],["startdate",{"_index":6543,"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":1289,"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":21217,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startet",{"_index":23818,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["starting",{"_index":22297,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["startmigration",{"_index":18985,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startmigration(@currentuser",{"_index":21197,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(currentuser",{"_index":21170,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(schoolid",{"_index":21362,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["startmigration(userid",{"_index":18988,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["startoauthauthorizationcodeflow",{"_index":16207,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthauthorizationcodeflow(session",{"_index":16231,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthlogin",{"_index":16319,"title":{},"body":{"injectables/OauthUc.html":{}}}],["startoauthlogin(session",{"_index":16329,"title":{},"body":{"injectables/OauthUc.html":{}}}],["starts",{"_index":14490,"title":{},"body":{"controllers/LoginController.html":{},"additional-documentation/nestjs-application.html":{}}}],["startschoolinusermigration",{"_index":12757,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["startschoolinusermigration(currentuser",{"_index":12779,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["starttime",{"_index":2117,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["startup",{"_index":23652,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["startuserloginmigrationuc",{"_index":18982,"title":{"injectables/StartUserLoginMigrationUc.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["state",{"_index":238,"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":15860,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["state.dto.ts",{"_index":15842,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:10",{"_index":15844,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:12",{"_index":15843,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:4",{"_index":15846,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:6",{"_index":15847,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:8",{"_index":15845,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.entity",{"_index":12203,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["state.entity.ts",{"_index":6515,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["state.entity.ts:14",{"_index":6519,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:21",{"_index":6522,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:23",{"_index":6521,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:25",{"_index":6520,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:31",{"_index":9854,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:34",{"_index":9851,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:37",{"_index":9853,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:40",{"_index":9852,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.enum",{"_index":21775,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["state.factory",{"_index":14005,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["state.mapper",{"_index":16241,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["state.mapper.ts",{"_index":15854,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.mapper.ts:5",{"_index":15858,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.repo.ts",{"_index":9857,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:12",{"_index":9858,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:8",{"_index":9859,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.response",{"_index":8094,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["state.service.ts",{"_index":9864,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:10",{"_index":9869,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:6",{"_index":9867,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["stated",{"_index":22518,"title":{},"body":{"license.html":{}}}],["statelessauthorizationparams",{"_index":16216,"title":{"classes/StatelessAuthorizationParams.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["statemapping",{"_index":22046,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statemapping[state",{"_index":22053,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statement",{"_index":22736,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["static",{"_index":413,"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":22572,"title":{},"body":{"license.html":{}}}],["statistics_reporting=false",{"_index":23703,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["status",{"_index":347,"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":{},"controllers/MetaTagExtractorController.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":3002,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyHelperService.html":{}}}],["status.copyentity.id",{"_index":3047,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.copyentity.title",{"_index":3048,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.elements?.foreach((elementstatus",{"_index":6449,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.enum",{"_index":1956,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["status.mapper",{"_index":19792,"title":{},"body":{"classes/TaskMapper.html":{}}}],["status.mapper.ts",{"_index":20013,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.mapper.ts:5",{"_index":20014,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.originalentity",{"_index":6452,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.response",{"_index":3751,"title":{},"body":{"classes/BoardTaskResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["status.response.ts",{"_index":3759,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:14",{"_index":20022,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:17",{"_index":20021,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:20",{"_index":20017,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:21",{"_index":3772,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:23",{"_index":20018,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:24",{"_index":3771,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:26",{"_index":20020,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:27",{"_index":3767,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:29",{"_index":20019,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:3",{"_index":3766,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:30",{"_index":3768,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:33",{"_index":3770,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:36",{"_index":3769,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.status",{"_index":3005,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status_code",{"_index":5494,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["statuscode",{"_index":991,"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":19795,"title":{},"body":{"classes/TaskMapper.html":{}}}],["statuses",{"_index":2968,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statuses.foreach((status",{"_index":3041,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statusmapping",{"_index":20843,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statusmapping[status",{"_index":20847,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statustext",{"_index":1913,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["stay",{"_index":23188,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["stemming",{"_index":11822,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["steps",{"_index":22399,"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":23757,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepshow",{"_index":23767,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stick",{"_index":23401,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["still",{"_index":6902,"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":11820,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/TimeoutInterceptor.html":{}}}],["storage",{"_index":3541,"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":4641,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.adapter",{"_index":4625,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage.adapter.ts",{"_index":4545,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:15",{"_index":4561,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:30",{"_index":4569,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:40",{"_index":4575,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:49",{"_index":4567,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:58",{"_index":4564,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:67",{"_index":4571,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.config",{"_index":10679,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["storage.config.ts",{"_index":11978,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["storage.const",{"_index":1169,"title":{},"body":{"injectables/AntivirusService.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{}}}],["storage.consumer.ts",{"_index":10578,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:14",{"_index":10583,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:31",{"_index":10589,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:48",{"_index":10593,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:63",{"_index":10591,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.controller",{"_index":4679,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage.controller.ts",{"_index":4633,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.controller.ts:32",{"_index":4647,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.mapper.ts",{"_index":10618,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:15",{"_index":10626,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:33",{"_index":10630,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:39",{"_index":10624,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:49",{"_index":10628,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:53",{"_index":10627,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:65",{"_index":10632,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.module",{"_index":10502,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{}}}],["storage.module.ts",{"_index":4670,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{}}}],["storage.params.ts",{"_index":6289,"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":6358,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:103",{"_index":6356,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:106",{"_index":6357,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:113",{"_index":16766,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:118",{"_index":16768,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:12",{"_index":10239,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:126",{"_index":16764,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:16",{"_index":10236,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:20",{"_index":10238,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:27",{"_index":10439,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:32",{"_index":10436,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:36",{"_index":10438,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:42",{"_index":10063,"title":{},"body":{"classes/FileParams.html":{}}}],["storage.params.ts:48",{"_index":8122,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:52",{"_index":8121,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:58",{"_index":18142,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:62",{"_index":18143,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:66",{"_index":18141,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:72",{"_index":18961,"title":{},"body":{"classes/SingleFileParams.html":{}}}],["storage.params.ts:79",{"_index":17415,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["storage.params.ts:85",{"_index":6355,"title":{},"body":{"classes/CopyFilesOfParentParams.html":{}}}],["storage.params.ts:91",{"_index":6295,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:95",{"_index":6292,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.producer",{"_index":10525,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{}}}],["storage.producer.ts",{"_index":10697,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:18",{"_index":10701,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:28",{"_index":10703,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:37",{"_index":10707,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:46",{"_index":10704,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.response.ts",{"_index":6251,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["storage.response.ts:22",{"_index":10283,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:26",{"_index":10285,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:29",{"_index":10286,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:32",{"_index":10291,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:35",{"_index":10289,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:38",{"_index":10290,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:41",{"_index":10281,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:44",{"_index":10284,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:47",{"_index":10287,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:50",{"_index":10288,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:53",{"_index":10282,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:56",{"_index":10208,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["storage.response.ts:6",{"_index":10280,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:66",{"_index":6321,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:74",{"_index":6322,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:77",{"_index":6324,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:81",{"_index":6323,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:84",{"_index":6253,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["storage.service",{"_index":4676,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["storage.service.ts",{"_index":4680,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:13",{"_index":4686,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:31",{"_index":4691,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:42",{"_index":4699,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:60",{"_index":4688,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:64",{"_index":4687,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:68",{"_index":4695,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.ts",{"_index":11931,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["storage.uc",{"_index":4653,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage.uc.ts",{"_index":4721,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:21",{"_index":4731,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:34",{"_index":4727,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:38",{"_index":4726,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:42",{"_index":4728,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:9",{"_index":4725,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage/collaborative",{"_index":4544,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage/controller/collaborative",{"_index":4632,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage/controller/dto/file",{"_index":6250,"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":18136,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["storage/controller/dto/team",{"_index":20164,"title":{},"body":{"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{}}}],["storage/controller/file",{"_index":10333,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["storage/controller/files",{"_index":10577,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage/dto/file.dto.ts",{"_index":9876,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:11",{"_index":9881,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:13",{"_index":9879,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:15",{"_index":9880,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:4",{"_index":9878,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/team",{"_index":20192,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["storage/entity",{"_index":10202,"title":{},"body":{"classes/FileRecordFactory.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"modules/ServerConsoleModule.html":{}}}],["storage/entity/filerecord.entity.ts",{"_index":10088,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["storage/entity/filerecord.entity.ts:104",{"_index":10101,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:107",{"_index":10108,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:110",{"_index":10103,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:113",{"_index":10102,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:116",{"_index":10107,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:120",{"_index":10105,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:124",{"_index":10097,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:131",{"_index":10093,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:138",{"_index":10098,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:145",{"_index":10095,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:45",{"_index":10317,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:48",{"_index":10315,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:51",{"_index":10316,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:54",{"_index":10314,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:57",{"_index":10313,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/files",{"_index":1168,"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":2987,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["storage/helper/test",{"_index":20316,"title":{},"body":{"classes/TestHelper.html":{}}}],["storage/interface/interfaces.ts",{"_index":10857,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{}}}],["storage/mapper/collaborative",{"_index":4582,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/mapper/copy",{"_index":6326,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["storage/mapper/file",{"_index":9895,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{}}}],["storage/mapper/files",{"_index":10617,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage/mapper/preview.builder.ts",{"_index":16669,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:33",{"_index":16675,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:8",{"_index":16673,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/team",{"_index":4672,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["storage/mapper/team.mapper",{"_index":4674,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage/mapper/team.mapper.ts",{"_index":20139,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/mapper/team.mapper.ts:12",{"_index":20142,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/repo/filerecord",{"_index":10292,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["storage/repo/filerecord.repo.ts",{"_index":10241,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:13",{"_index":10262,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:20",{"_index":10264,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:27",{"_index":10254,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:34",{"_index":10256,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:45",{"_index":10258,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:56",{"_index":10260,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:65",{"_index":10252,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:81",{"_index":10266,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:9",{"_index":10267,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/service/preview.service.ts",{"_index":16777,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:14",{"_index":16783,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:23",{"_index":16789,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:37",{"_index":16787,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:45",{"_index":16785,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:52",{"_index":16794,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:73",{"_index":16792,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:83",{"_index":16790,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/services/collaborative",{"_index":4675,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["storage/services/dto/team",{"_index":4577,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/TeamPermissionsDto.html":{}}}],["storage/services/dto/team.dto",{"_index":4579,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/services/dto/team.dto.ts",{"_index":20115,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:11",{"_index":20121,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:13",{"_index":20119,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:23",{"_index":20223,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:25",{"_index":20222,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:27",{"_index":20221,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:9",{"_index":20120,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/strategy/base.interface.strategy",{"_index":4581,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage/strategy/base.interface.strategy.ts",{"_index":11671,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:12",{"_index":11678,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:14",{"_index":11675,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:16",{"_index":11674,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:18",{"_index":11676,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.client",{"_index":4621,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.interface.ts",{"_index":11338,"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":4622,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts",{"_index":15346,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:129",{"_index":15372,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:158",{"_index":15359,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:172",{"_index":15358,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:192",{"_index":15361,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:202",{"_index":15365,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:21",{"_index":15352,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:38",{"_index":15368,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:59",{"_index":15356,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:75",{"_index":15353,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:98",{"_index":15366,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/uc/collaborative",{"_index":4720,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage:debug",{"_index":23087,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:dev",{"_index":23086,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:prod",{"_index":23088,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storageclient",{"_index":10849,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storageconfig",{"_index":16687,"title":{},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["storageconfig.connectionname",{"_index":16726,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["storagefilename",{"_index":8074,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageprovider",{"_index":8020,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["storageprovider.accesskeyid",{"_index":8066,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageprovider.endpointurl",{"_index":8061,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.region",{"_index":8063,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.secretaccesskey",{"_index":8067,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageproviderencryptedstringtype",{"_index":12276,"title":{"classes/StorageProviderEncryptedStringType.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviderentity",{"_index":8018,"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":9991,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageproviderrepo",{"_index":8015,"title":{"injectables/StorageProviderRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviders",{"_index":11688,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviders.foreach((storageprovider",{"_index":11862,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storageproviderscollectionname",{"_index":11687,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storagestrategy",{"_index":4626,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["store",{"_index":3883,"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":3902,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["stored",{"_index":20764,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["strategies",{"_index":11673,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{}}}],["strategy",{"_index":4551,"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":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["strategy.apply(oauthdata",{"_index":16966,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.createlaunchdata(userid",{"_index":20686,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.createlaunchrequest(toollaunchdata",{"_index":20681,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.getdata(input",{"_index":16962,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.interface.ts",{"_index":12590,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:6",{"_index":12591,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:8",{"_index":12593,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy/auto",{"_index":1835,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{}}}],["strategy/basic",{"_index":2529,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["strategy/jwt",{"_index":1387,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{}}}],["strategy/jwt.strategy",{"_index":1389,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/ldap.strategy",{"_index":1390,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/local.strategy",{"_index":1391,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oauth2",{"_index":15454,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["strategy/oauth2.strategy",{"_index":1392,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oidc/service/oidc",{"_index":16929,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/sanis/response",{"_index":11248,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["strategy/sanis/sanis",{"_index":16930,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/tool",{"_index":12587,"title":{},"body":{"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{}}}],["stream",{"_index":1153,"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":17999,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["stream.on('data",{"_index":18000,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["streamablefile",{"_index":6683,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(fileresponse.data",{"_index":10652,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["streamablefile(res.data",{"_index":10352,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["streamablefile(response.data",{"_index":10826,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(result",{"_index":6707,"title":{},"body":{"controllers/CourseController.html":{}}}],["strict",{"_index":16291,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["string",{"_index":47,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.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/ClassesRepo.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":{},"injectables/ColumnUc.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":{},"injectables/ContentElementUpdateVisitor.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":{},"classes/GetMetaTagDataBody.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":{},"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/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":{},"classes/UserLoginMigrationMapper.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":10437,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string'})@isstring()@isnotempty",{"_index":10435,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string(object[key",{"_index":2229,"title":{},"body":{"injectables/BBBService.html":{}}}],["string).split",{"_index":12253,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["string).tostring(cryptojs.enc.base64",{"_index":16478,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["stringifiedmessage",{"_index":13888,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["stringifiedmessage(message",{"_index":13898,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stringifymessage",{"_index":14473,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["stringifymessage(message",{"_index":14479,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["strings",{"_index":572,"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":151,"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":12873,"title":{"classes/StringValidator.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(escapedclasses",{"_index":13050,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedfirstname",{"_index":13036,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedlastname",{"_index":13042,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedloginname",{"_index":13045,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedname",{"_index":21623,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(filters.name",{"_index":21620,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(query.classes",{"_index":12904,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.firstname",{"_index":12892,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.lastname",{"_index":12895,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.loginname",{"_index":12898,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.name",{"_index":21455,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["stringvalidator.isstring(value",{"_index":19038,"title":{},"body":{"classes/StringValidator.html":{}}}],["string}${additionalinfo",{"_index":13126,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["string}/api/v3/sso/hydra/${oauthclientid",{"_index":11582,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["strip",{"_index":22278,"title":{},"body":{"dependencies.html":{}}}],["strong",{"_index":9710,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["strongly",{"_index":23529,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["structure",{"_index":5331,"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":23255,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["structures",{"_index":13905,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stubstitution",{"_index":6636,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["stucture",{"_index":22978,"title":{},"body":{"todo.html":{}}}],["student",{"_index":3077,"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":9766,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["student_list",{"_index":12215,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentaccount",{"_index":665,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentcount",{"_index":4336,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["studententities",{"_index":9780,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentid",{"_index":12292,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["studentids",{"_index":6629,"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":6831,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentobjectids.map((id",{"_index":6833,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentpermissions",{"_index":21096,"title":{},"body":{"classes/UserFactory.html":{}}}],["studentpseudonyms",{"_index":9790,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentpseudonyms.map((pseudonym",{"_index":9798,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["students",{"_index":6544,"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":6794,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentswithid(numberofstudents",{"_index":6798,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentuser",{"_index":666,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentvisibility",{"_index":12205,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentwithid",{"_index":19106,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["studio",{"_index":22329,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["stuff",{"_index":22353,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["style",{"_index":23453,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["sub",{"_index":6228,"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":23842,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["subclass",{"_index":16749,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["subdividing",{"_index":22780,"title":{},"body":{"license.html":{}}}],["subelements",{"_index":7660,"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":9460,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["subject_types_supported",{"_index":15729,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjects",{"_index":12112,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["subjecttype",{"_index":15728,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjecttypeenum",{"_index":15726,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["sublicenses",{"_index":22810,"title":{},"body":{"license.html":{}}}],["sublicensing",{"_index":22535,"title":{},"body":{"license.html":{}}}],["submission",{"_index":2824,"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/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":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.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.controller.ts",{"_index":3682,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:44",{"_index":3701,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:65",{"_index":3706,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:89",{"_index":3695,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.coursegroup?.name",{"_index":19230,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.entity",{"_index":12461,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.getsubmitterids",{"_index":12531,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.grade",{"_index":19228,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.id",{"_index":19226,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.isgraded",{"_index":12523,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isgradedforuser(user",{"_index":12526,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmitted",{"_index":12519,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmittedforuser(user",{"_index":12525,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isusersubmitter(user",{"_index":19277,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.service",{"_index":20006,"title":{},"body":{"injectables/TaskService.html":{}}}],["submission.task",{"_index":19282,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.task.aresubmissionspublic",{"_index":19280,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.teammembers",{"_index":12312,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["submissioncontainer",{"_index":19186,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainer.addchild(submissionitem",{"_index":19192,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainercontentbody",{"_index":5716,"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":2814,"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":8330,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.every((child",{"_index":8327,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.filter(issubmissionitem",{"_index":19209,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.duedate",{"_index":5749,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelement.id",{"_index":17373,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelementcontent",{"_index":19061,"title":{"classes/SubmissionContainerElementContent.html":{}},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementcontentbody",{"_index":8251,"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":3157,"title":{"entities/SubmissionContainerElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerelementprops",{"_index":19059,"title":{"interfaces/SubmissionContainerElementProps.html":{}},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["submissioncontainerelementresponse",{"_index":4025,"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":3997,"title":{},"body":{"controllers/CardController.html":{}}}],["submissioncontainerelementresponsemapper",{"_index":5652,"title":{"classes/SubmissionContainerElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponsemapper.getinstance",{"_index":5639,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["submissioncontainerelementresponsemapper.instance",{"_index":19073,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerid",{"_index":19078,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainernodeprops",{"_index":19069,"title":{"interfaces/SubmissionContainerNodeProps.html":{}},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerurlparams",{"_index":3697,"title":{"classes/SubmissionContainerUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionContainerUrlParams.html":{}}}],["submissioncontainterelement",{"_index":19194,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainterelement.duedate",{"_index":19197,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontroller",{"_index":19080,"title":{"controllers/SubmissionController.html":{}},"body":{"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{}}}],["submissionfactory",{"_index":19104,"title":{"classes/SubmissionFactory.html":{}},"body":{"classes/SubmissionFactory.html":{}}}],["submissionfactory.define(submission",{"_index":19118,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["submissionid",{"_index":19295,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{}}}],["submissionitem",{"_index":2466,"title":{"classes/SubmissionItem.html":{}},"body":{"classes/BaseUc.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ContentElementService.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.children.filter(issubmissionitemcontent",{"_index":19179,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.completed",{"_index":17376,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.createdat",{"_index":19181,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.id",{"_index":17375,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.updatedat",{"_index":19180,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.userid",{"_index":2484,"title":{},"body":{"classes/BaseUc.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemfactory",{"_index":19146,"title":{"injectables/SubmissionItemFactory.html":{}},"body":{"injectables/SubmissionItemFactory.html":{}}}],["submissionitemid",{"_index":19202,"title":{},"body":{"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionitemnode",{"_index":3160,"title":{"entities/SubmissionItemNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemnodeprops",{"_index":19153,"title":{"interfaces/SubmissionItemNodeProps.html":{}},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemprops",{"_index":19141,"title":{"interfaces/SubmissionItemProps.html":{}},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["submissionitemresponse",{"_index":8284,"title":{"classes/SubmissionItemResponse.html":{}},"body":{"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemresponsemapper",{"_index":3715,"title":{"classes/SubmissionItemResponseMapper.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper.getinstance",{"_index":3722,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["submissionitemresponsemapper.instance",{"_index":19172,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponse})@apiresponse({status",{"_index":8268,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissionitems",{"_index":3718,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitems.filter((item",{"_index":19215,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.map((item",{"_index":19174,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemservice",{"_index":3537,"title":{"injectables/SubmissionItemService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemsresponse",{"_index":19173,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemuc",{"_index":2697,"title":{"injectables/SubmissionItemUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemurlparams",{"_index":3688,"title":{"classes/SubmissionItemUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionmapper",{"_index":19090,"title":{"classes/SubmissionMapper.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionMapper.html":{}}}],["submissionmapper.maptostatusresponse(submission",{"_index":19099,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrepo",{"_index":1748,"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":19097,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrule",{"_index":1710,"title":{"injectables/SubmissionRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{}}}],["submissions",{"_index":3683,"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":19847,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["submissions.filter((submission",{"_index":12518,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.foreach((submission",{"_index":12529,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.map((submission",{"_index":19098,"title":{},"body":{"controllers/SubmissionController.html":{},"injectables/TaskService.html":{}}}],["submissions.some((submission",{"_index":12524,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissionservice",{"_index":19283,"title":{"injectables/SubmissionService.html":{}},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["submissionsresponse",{"_index":3709,"title":{"classes/SubmissionsResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionsresponse(submissionitemsresponse",{"_index":19178,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionsresponse})@apiresponse({status",{"_index":3699,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submissionstatuslistresponse",{"_index":19092,"title":{"classes/SubmissionStatusListResponse.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionstatuslistresponse(submissionresponses",{"_index":19101,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionstatusresponse",{"_index":19225,"title":{"classes/SubmissionStatusResponse.html":{}},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionuc",{"_index":19091,"title":{"injectables/SubmissionUc.html":{}},"body":{"controllers/SubmissionController.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{}}}],["submissionurlparams",{"_index":19083,"title":{"classes/SubmissionUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionUrlParams.html":{}}}],["submitted",{"_index":3765,"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":12517,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitterids",{"_index":12530,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitters",{"_index":19227,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submitting",{"_index":19151,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submittingcoursegroupname",{"_index":19229,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["subpath",{"_index":20282,"title":{},"body":{"classes/TestApiClient.html":{}}}],["subpermissions",{"_index":16654,"title":{},"body":{"injectables/PermissionService.html":{}}}],["subprograms",{"_index":22510,"title":{},"body":{"license.html":{}}}],["subsection",{"_index":22625,"title":{},"body":{"license.html":{}}}],["subset",{"_index":5504,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application.html":{}}}],["subsitution",{"_index":3079,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substantial",{"_index":22664,"title":{},"body":{"license.html":{}}}],["substantially",{"_index":22778,"title":{},"body":{"license.html":{}}}],["substitution",{"_index":23164,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["substitution_teacher",{"_index":3078,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substitutionids",{"_index":6572,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherentities",{"_index":9782,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteacherids",{"_index":6633,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherpseudonyms",{"_index":9792,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteachers",{"_index":6545,"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":8255,"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":23472,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["succesfully",{"_index":16221,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["success",{"_index":986,"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":13805,"title":{},"body":{"injectables/LdapService.html":{},"controllers/LoginController.html":{},"classes/SuccessfulResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["successful.'})@apiresponse({status",{"_index":14493,"title":{},"body":{"controllers/LoginController.html":{}}}],["successfully",{"_index":330,"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":306,"title":{},"body":{"controllers/AccountController.html":{}}}],["successfully.'})@apiunauthorizedresponse({description",{"_index":20536,"title":{},"body":{"controllers/ToolController.html":{}}}],["successfulres",{"_index":11345,"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":19340,"title":{"classes/SuccessfulResponse.html":{}},"body":{"classes/SuccessfulResponse.html":{},"controllers/UserController.html":{}}}],["successfulresponse(result",{"_index":20937,"title":{},"body":{"controllers/UserController.html":{}}}],["successor",{"_index":4215,"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":2666,"title":{},"body":{"entities/Board.html":{},"injectables/DashboardUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sue",{"_index":22820,"title":{},"body":{"license.html":{}}}],["suffice",{"_index":22672,"title":{},"body":{"license.html":{}}}],["sufficient",{"_index":9676,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["suffix",{"_index":23019,"title":{},"body":{"todo.html":{}}}],["suggested",{"_index":22962,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["suggests",{"_index":23385,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["suitable",{"_index":11568,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["suites",{"_index":23102,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sum",{"_index":21631,"title":{},"body":{"injectables/UserRepo.html":{}}}],["summary",{"_index":346,"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/MetaTagExtractorController.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":182,"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":{},"classes/UnknownQueryTypeLoggableException.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":13746,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super('ldapalreadypersisted",{"_index":13743,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super(_em",{"_index":5947,"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":10715,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["super(authorizationservice",{"_index":3804,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["super(config",{"_index":1984,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["super(domainobject.id",{"_index":7253,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["super(dto",{"_index":21982,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["super(e.response.statustext",{"_index":1005,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["super(message",{"_index":15470,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["super(oidcprovisioningservice",{"_index":18064,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["super(props",{"_index":403,"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":5783,"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":8100,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["super(total",{"_index":832,"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":1256,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["super.build",{"_index":2043,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["super.findbyid(id",{"_index":6850,"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":275,"title":{},"body":{"controllers/AccountController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["superhero.'})@apiresponse({status",{"_index":289,"title":{},"body":{"controllers/AccountController.html":{}}}],["supertest",{"_index":1439,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["supertest(this.app.gethttpserver",{"_index":1474,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest(this.app.gethttpserver()).get(path).set('authorization",{"_index":1472,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest.test",{"_index":1469,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supplement",{"_index":22699,"title":{},"body":{"license.html":{}}}],["support",{"_index":2346,"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":13161,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["supported",{"_index":1454,"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":23023,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["supports",{"_index":2400,"title":{},"body":{"classes/BaseFactory.html":{},"license.html":{}}}],["supportuserid",{"_index":13159,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["sure",{"_index":9426,"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":22855,"title":{},"body":{"license.html":{}}}],["survive",{"_index":22735,"title":{},"body":{"license.html":{}}}],["sustained",{"_index":22914,"title":{},"body":{"license.html":{}}}],["svg",{"_index":22952,"title":{},"body":{"modules.html":{}}}],["swagger",{"_index":22221,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["switch",{"_index":1872,"title":{},"body":{"injectables/AutoContextNameStrategy.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":21421,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["symbol('bbbsettings",{"_index":11594,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["symbol('defaultencryptionservice",{"_index":11968,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('keycloakconfigurationinputfiles",{"_index":12082,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["symbol('keycloaksettings",{"_index":12087,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["symbol('ldapencryptionservice",{"_index":11969,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('toolfeatures",{"_index":12580,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["symbol('videoconferencesettings",{"_index":12621,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["symetrickeyencryptionservice",{"_index":8343,"title":{"injectables/SymetricKeyEncryptionService.html":{}},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["symetrickeyencryptionservice(logger",{"_index":8348,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["sync",{"_index":7872,"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":16405,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["syncboardelementreferences(boardelementtargets",{"_index":2667,"title":{},"body":{"entities/Board.html":{}}}],["syncindexes",{"_index":7862,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["syncmode",{"_index":13486,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["syntax",{"_index":13421,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["sysmes",{"_index":984,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["system",{"_index":3075,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.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":16571,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["system.'})@apiresponse({status",{"_index":19374,"title":{},"body":{"controllers/SystemController.html":{}}}],["system.'})@isoptional()@isenum(systemtypeenum",{"_index":19457,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["system.adapter",{"_index":10434,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.adapter.ts",{"_index":10361,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:12",{"_index":10371,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:18",{"_index":10408,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:26",{"_index":10373,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:36",{"_index":10390,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:48",{"_index":10405,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:57",{"_index":10394,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:68",{"_index":10377,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:78",{"_index":10400,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:84",{"_index":10387,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.alias",{"_index":17157,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["system.displayname",{"_index":17158,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.dto",{"_index":15821,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["system.dto.ts",{"_index":16974,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:5",{"_index":16977,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:7",{"_index":16976,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:9",{"_index":16975,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.entity",{"_index":8550,"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":12837,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["system.id",{"_index":13792,"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":19413,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemUc.html":{}}}],["system.ldapconfig",{"_index":11847,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.ldapconfig.searchuserpassword",{"_index":11848,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.module",{"_index":19362,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["system.module.ts",{"_index":10433,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.oauthconfig",{"_index":11841,"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":11842,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oauthconfig.provider",{"_index":16339,"title":{},"body":{"injectables/OauthUc.html":{}}}],["system.oauthconfig?.logoutendpoint",{"_index":15579,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oauthconfig?.provider",{"_index":15578,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oidcconfig",{"_index":11844,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/SystemService.html":{}}}],["system.oidcconfig.clientsecret",{"_index":11845,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oidcconfig.idphint",{"_index":19582,"title":{},"body":{"injectables/SystemService.html":{}}}],["system.provisioningstrategy",{"_index":19410,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.provisioningurl",{"_index":19411,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.type",{"_index":17156,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.url",{"_index":19409,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system/file",{"_index":10360,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["system?.displayname",{"_index":11300,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["system?.id",{"_index":21570,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["systemapimodule",{"_index":18587,"title":{"modules/SystemApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SystemApiModule.html":{},"modules.html":{}}}],["systemcontroller",{"_index":19359,"title":{"controllers/SystemController.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{}}}],["systemdto",{"_index":11292,"title":{"classes/SystemDto.html":{}},"body":{"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":19566,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.displayname",{"_index":19567,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.id",{"_index":19563,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.oauthconfig",{"_index":19568,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningstrategy",{"_index":19569,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningurl",{"_index":19570,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.type",{"_index":19565,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.url",{"_index":19571,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdtos",{"_index":19388,"title":{},"body":{"controllers/SystemController.html":{}}}],["systementity",{"_index":8549,"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":12836,"title":{"classes/SystemFactory.html":{}},"body":{"classes/ImportUserFactory.html":{},"classes/SystemFactory.html":{}}}],["systemfactory.build",{"_index":12839,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["systemfactory.define(systementity",{"_index":19448,"title":{},"body":{"classes/SystemFactory.html":{}}}],["systemfilterparams",{"_index":19366,"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":{},"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":16211,"title":{"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}},"body":{"controllers/OauthSSOController.html":{},"controllers/SystemController.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["systemids",{"_index":21381,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemids[0",{"_index":21384,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemlistresponse",{"_index":19535,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemmapper",{"_index":19462,"title":{"classes/SystemMapper.html":{}},"body":{"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitiestodtos(systems",{"_index":19562,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitytodto(system",{"_index":19555,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromoauthconfigentitytodto(entity.oauthconfig",{"_index":19474,"title":{},"body":{"classes/SystemMapper.html":{}}}],["systemmodule",{"_index":1360,"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":19483,"title":{"classes/SystemOidcMapper.html":{}},"body":{"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitiestodtos(system",{"_index":19509,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitytodto(system",{"_index":19506,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromoidcconfigentitytodto(entity.id",{"_index":19493,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["systemoidcservice",{"_index":13346,"title":{"injectables/SystemOidcService.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{}}}],["systemprovisioningstrategy",{"_index":12347,"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":13116,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.oidc",{"_index":16416,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.sanis",{"_index":18065,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.undefined",{"_index":16984,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["systemrepo",{"_index":622,"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":19537,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper",{"_index":19382,"title":{"classes/SystemResponseMapper.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper.mapfromdtotolistresponse(systemdtos",{"_index":19391,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromdtotoresponse(systemdto",{"_index":19395,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromoauthconfigdtotoresponse(system.oauthconfig",{"_index":19538,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponses",{"_index":17147,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["systems",{"_index":10378,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"classes/PublicSystemResponse.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"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":19369,"title":{},"body":{"controllers/SystemController.html":{}}}],["systems.filter((system",{"_index":19574,"title":{},"body":{"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["systems.foreach((system",{"_index":11840,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systems.getitems().find((system",{"_index":21019,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["systems.map",{"_index":19533,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systems.map((system",{"_index":19578,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemscollectionname",{"_index":11686,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systemscope",{"_index":19516,"title":{"classes/SystemScope.html":{}},"body":{"injectables/SystemRepo.html":{},"classes/SystemScope.html":{}}}],["systemservice",{"_index":15513,"title":{"injectables/SystemService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["systemstrategy",{"_index":16947,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["systemtype",{"_index":19586,"title":{},"body":{"injectables/SystemUc.html":{}}}],["systemtypeenum",{"_index":19456,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemtypeenum.ldap",{"_index":19518,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemtypeenum.oauth",{"_index":19520,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemtypeenum.oidc",{"_index":19522,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemuc",{"_index":19357,"title":{"injectables/SystemUc.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"injectables/SystemUc.html":{}}}],["t",{"_index":479,"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":19753,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["tab",{"_index":11792,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"controllers/TeamNewsController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["table",{"_index":15374,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["tablename",{"_index":178,"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":{}}}],["tag",{"_index":10873,"title":{},"body":{"classes/GetMetaTagDataBody.html":{},"modules/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.html":{},"modules/MetaTagExtractorModule.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tags",{"_index":12113,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"controllers/MetaTagExtractorController.html":{}}}],["tags'})@apiresponse({status",{"_index":14834,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["take",{"_index":12055,"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":19920,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tangible",{"_index":22651,"title":{},"body":{"license.html":{}}}],["tap",{"_index":8233,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["target",{"_index":2680,"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":9665,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["target.constructor",{"_index":8400,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["target.entity",{"_index":2635,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{}}}],["target.entity.ts",{"_index":4910,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:21",{"_index":4914,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:32",{"_index":4913,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:35",{"_index":4912,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.id",{"_index":19595,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.name",{"_index":19596,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.service",{"_index":17809,"title":{},"body":{"injectables/RoomsService.html":{}}}],["target.service.ts",{"_index":4925,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:11",{"_index":4934,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:33",{"_index":4931,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:8",{"_index":4929,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.targetids",{"_index":15256,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.targetids.length",{"_index":15329,"title":{},"body":{"injectables/NewsUc.html":{}}}],["target.targetmodel",{"_index":15254,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.title",{"_index":4943,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target:in",{"_index":15255,"title":{},"body":{"classes/NewsScope.html":{}}}],["target_model_values",{"_index":15127,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["targetboard",{"_index":3813,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{}}}],["targetboardid",{"_index":3794,"title":{},"body":{"injectables/BoardUc.html":{}}}],["targetcard",{"_index":4187,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{}}}],["targetcardid",{"_index":4170,"title":{},"body":{"injectables/CardUc.html":{}}}],["targetcolumn",{"_index":4116,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnUc.html":{}}}],["targetcolumnid",{"_index":5025,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["targetelement",{"_index":7616,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetelement.addreferences(element.getreferences",{"_index":7617,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetexternalid",{"_index":18409,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["targetfolder",{"_index":11702,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["targetgroups",{"_index":12114,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["targetid",{"_index":7103,"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":9663,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["targetinfomapper",{"_index":15153,"title":{"classes/TargetInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/TargetInfoMapper.html":{}}}],["targetinfomapper.maptoresponse(news.target",{"_index":15155,"title":{},"body":{"classes/NewsMapper.html":{}}}],["targetinforesponse",{"_index":15124,"title":{"classes/TargetInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{}}}],["targetmodel",{"_index":6925,"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":15288,"title":{},"body":{"injectables/NewsUc.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.courses",{"_index":22097,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.events",{"_index":22095,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.map(async",{"_index":15325,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targetmodelsmapping",{"_index":22093,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[entitydo.targetmodel",{"_index":22108,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[videoconferencescope",{"_index":22101,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetparent",{"_index":3376,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.addchild(child",{"_index":3389,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.haschild(child",{"_index":3383,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.removechild(child",{"_index":3384,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparentid",{"_index":17252,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetparentinfo",{"_index":10158,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["targetpath",{"_index":6334,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["targetpermissions",{"_index":9654,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["targetposition",{"_index":3377,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.html":{},"injectables/ContentElementService.html":{}}}],["targets",{"_index":9659,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{}}}],["targets.filter((target",{"_index":15328,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targets.map((target",{"_index":9664,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/NewsScope.html":{}}}],["targetschoolid",{"_index":4786,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetschoolnumber",{"_index":21427,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["targetsystem",{"_index":16567,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemid",{"_index":18406,"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":21535,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl.tostring",{"_index":21540,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["task",{"_index":2627,"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":23390,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["task.availabledate",{"_index":19805,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.course",{"_index":17756,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/SubmissionRepo.html":{}}}],["task.createdat",{"_index":19800,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.createstudentstatusforuser(this.user",{"_index":8195,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createstudentstatusforuser(user",{"_index":20064,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.createteacherstatusforuser(this.user",{"_index":8194,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createteacherstatusforuser(user",{"_index":20063,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.creator",{"_index":17751,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.description",{"_index":19703,"title":{},"body":{"injectables/TaskCopyService.html":{},"classes/TaskMapper.html":{}}}],["task.description.replace(regex",{"_index":19704,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["task.descriptioninputformat",{"_index":19803,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.duedate",{"_index":19807,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.entity",{"_index":2628,"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":19115,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["task.finishforuser(user",{"_index":20068,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.getparentdata",{"_index":19794,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.id",{"_index":19797,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.isdraft",{"_index":11917,"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":11919,"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":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":{},"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson",{"_index":17753,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson.course",{"_index":19252,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.lesson.coursegroup.course",{"_index":19253,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.module",{"_index":19621,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["task.name",{"_index":5141,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/TaskMapper.html":{}}}],["task.name}${task.description",{"_index":5142,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["task.response",{"_index":3413,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["task.response.ts",{"_index":3736,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:15",{"_index":3746,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:19",{"_index":3747,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:22",{"_index":3740,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:25",{"_index":3745,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:29",{"_index":3741,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:33",{"_index":3743,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:36",{"_index":3744,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:39",{"_index":3742,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:42",{"_index":3750,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:45",{"_index":3749,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:5",{"_index":3739,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.restoreforuser(user",{"_index":20069,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.rule",{"_index":19273,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["task.submissions.getitems",{"_index":20011,"title":{},"body":{"injectables/TaskService.html":{}}}],["task.unpublish",{"_index":20073,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.updatedat",{"_index":19801,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskapimodule",{"_index":18588,"title":{"modules/TaskApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskApiModule.html":{},"modules.html":{}}}],["taskboardelement",{"_index":2638,"title":{"entities/TaskBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/TaskBoardElement.html":{}}}],["taskcontroller",{"_index":19619,"title":{"controllers/TaskController.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{}}}],["taskcopy",{"_index":19687,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopy.name",{"_index":19708,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyapiparams",{"_index":6463,"title":{"classes/TaskCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{}}}],["taskcopyparams",{"_index":19682,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyparentparams",{"_index":6465,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcopyservice",{"_index":2945,"title":{"injectables/TaskCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["taskcopyuc",{"_index":19616,"title":{"injectables/TaskCopyUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcourse",{"_index":17702,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcourse.name",{"_index":17705,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcreateparams",{"_index":19756,"title":{"classes/TaskCreateParams.html":{}},"body":{"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["taskdesc",{"_index":19793,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.color",{"_index":19809,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.courseid",{"_index":19799,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.coursename",{"_index":19798,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonhidden",{"_index":19813,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonname",{"_index":19810,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskelement",{"_index":3042,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["taskelements",{"_index":3648,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["taskfactory",{"_index":19114,"title":{"classes/TaskFactory.html":{}},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["taskfactory.build",{"_index":19119,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["taskfactory.define(task",{"_index":19773,"title":{},"body":{"classes/TaskFactory.html":{}}}],["taskid",{"_index":19292,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUrlParams.html":{}}}],["taskidentifier",{"_index":5138,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskidentifier}/${taskidentifier}.html",{"_index":5140,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskids",{"_index":19239,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["tasklistresponse",{"_index":19652,"title":{"classes/TaskListResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["tasklistresponse(taskresponses",{"_index":19664,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmapper",{"_index":19649,"title":{"classes/TaskMapper.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskMapper.html":{}}}],["taskmapper.maptoresponse(task",{"_index":19663,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmodule",{"_index":13881,"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":12463,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskparentpermission",{"_index":17746,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["taskrepo",{"_index":1749,"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":19653,"title":{"classes/TaskResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["taskresponses",{"_index":19661,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskrule",{"_index":1711,"title":{"injectables/TaskRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{}}}],["tasks",{"_index":5104,"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":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":{},"entities/LessonEntity.html":{}}}],["tasks.foreach((task",{"_index":5108,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["tasks.map((task",{"_index":20062,"title":{},"body":{"injectables/TaskUC.html":{}}}],["taskscope",{"_index":19844,"title":{"classes/TaskScope.html":{}},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{}}}],["taskscope('$or",{"_index":19854,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["taskservice",{"_index":5053,"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":17681,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskstatus.mapper.ts",{"_index":3754,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatus.mapper.ts:5",{"_index":3757,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatusmapper",{"_index":19791,"title":{"classes/TaskStatusMapper.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["taskstatusmapper.maptoresponse(status",{"_index":19796,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskstatusresponse",{"_index":19777,"title":{"classes/TaskStatusResponse.html":{}},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{}}}],["taskstatusresponse(status",{"_index":20016,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["tasksubmitterids",{"_index":12528,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskswithstatus",{"_index":19658,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskswithstatus.map((task",{"_index":19662,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskuc",{"_index":19617,"title":{"injectables/TaskUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["taskupdateparams",{"_index":19787,"title":{"classes/TaskUpdateParams.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["taskurlparams",{"_index":19087,"title":{"classes/TaskUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"classes/TaskUrlParams.html":{}}}],["taskwithstatus",{"_index":17691,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/TaskMapper.html":{}}}],["taskwithstatusvo",{"_index":8161,"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":8191,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/TaskUC.html":{}}}],["taskwithstatusvos",{"_index":20061,"title":{},"body":{"injectables/TaskUC.html":{}}}],["teacher",{"_index":3076,"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":5133,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher.lastname",{"_index":5134,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher_student_visibility__is_configurable",{"_index":11591,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["teacheraccount",{"_index":671,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teacherentities",{"_index":9781,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherid",{"_index":12467,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["teacherid.tohexstring",{"_index":4395,"title":{},"body":{"classes/ClassMapper.html":{}}}],["teacherids",{"_index":4210,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassesRepo.html":{},"entities/Course.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["teachernames",{"_index":4337,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/GroupUcMapper.html":{}}}],["teacherpermissions",{"_index":21097,"title":{},"body":{"classes/UserFactory.html":{}}}],["teacherpseudonyms",{"_index":9791,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherpseudonyms.concat(substitutionteacherpseudonyms",{"_index":9797,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teachers",{"_index":4360,"title":{},"body":{"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":{},"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":11312,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["teacherswithid",{"_index":6795,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacherswithid(numberofteachers",{"_index":6801,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacheruser",{"_index":672,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teaching_assistant",{"_index":7178,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["teachingassistant",{"_index":7179,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["team",{"_index":4565,"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":6916,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["team.id",{"_index":4600,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.name",{"_index":4602,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.teamusers",{"_index":15391,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.length",{"_index":15401,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.map(async",{"_index":20264,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["team.userids",{"_index":20214,"title":{},"body":{"injectables/TeamService.html":{}}}],["team.userids.filter((u",{"_index":20215,"title":{},"body":{"injectables/TeamService.html":{}}}],["teamadmin",{"_index":4704,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamdto",{"_index":4563,"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":6915,"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":20149,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.name",{"_index":20150,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.teamusers.map",{"_index":20145,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamfactory",{"_index":20125,"title":{"classes/TeamFactory.html":{}},"body":{"classes/TeamFactory.html":{}}}],["teamfactory.define(teamentity",{"_index":20137,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamid",{"_index":3911,"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":4668,"title":{"injectables/TeamMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/TeamMapper.html":{}}}],["teammemberids",{"_index":12315,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids",{"_index":12313,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids.map((id",{"_index":12316,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammembers",{"_index":12289,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{}}}],["teammemberswithid",{"_index":19107,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teammemberswithid(numberofteammembers",{"_index":19111,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teamname",{"_index":4601,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamnews",{"_index":6956,"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":6947,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnewscontroller",{"_index":15189,"title":{"controllers/TeamNewsController.html":{}},"body":{"modules/NewsModule.html":{},"controllers/TeamNewsController.html":{}}}],["teamowner",{"_index":4703,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teampermissions",{"_index":4698,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsbody",{"_index":4639,"title":{"classes/TeamPermissionsBody.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsdto",{"_index":4574,"title":{"classes/TeamPermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsmapper",{"_index":4669,"title":{"injectables/TeamPermissionsMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teamrole",{"_index":4636,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.roleid",{"_index":4736,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.teamid",{"_index":4735,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamroledto",{"_index":4637,"title":{"classes/TeamRoleDto.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamRoleDto.html":{}}}],["teamrolepermissionsdto",{"_index":4598,"title":{"classes/TeamRolePermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamrule",{"_index":1712,"title":{"injectables/TeamRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/TeamRule.html":{}}}],["teams",{"_index":11949,"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":20213,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.length",{"_index":20218,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.map((team",{"_index":12662,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["teamsapimodule",{"_index":18589,"title":{"modules/TeamsApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TeamsApiModule.html":{},"modules.html":{}}}],["teamservice",{"_index":20203,"title":{"injectables/TeamService.html":{}},"body":{"injectables/TeamService.html":{},"modules/TeamsModule.html":{}}}],["teamsmapper",{"_index":4684,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["teamsmodule",{"_index":20249,"title":{"modules/TeamsModule.html":{}},"body":{"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules.html":{}}}],["teamsrepo",{"_index":1750,"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":4658,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["teamsubmissions",{"_index":12453,"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":20156,"title":{"classes/TeamUrlParams.html":{}},"body":{"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{}}}],["teamuser",{"_index":15367,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamsRepo.html":{}}}],["teamuser.role.id",{"_index":20147,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.school.id",{"_index":20148,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.user.id",{"_index":20146,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{}}}],["teamuserdto",{"_index":15371,"title":{"classes/TeamUserDto.html":{}},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamuserentity",{"_index":12566,"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":12576,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamuserfactory",{"_index":20133,"title":{"classes/TeamUserFactory.html":{}},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["teamuserfactory.buildwithid",{"_index":20138,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamuserfactory.define(teamuserentity",{"_index":20244,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["teamuserfactory.withroleanduserid(role",{"_index":20135,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamusers",{"_index":12565,"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":12573,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers.map(async",{"_index":15408,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["teardown",{"_index":22990,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tech",{"_index":23136,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technical",{"_index":8384,"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":22543,"title":{},"body":{"license.html":{}}}],["tell",{"_index":23129,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tells",{"_index":5500,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"license.html":{}}}],["temp",{"_index":10379,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["temp/:file",{"_index":11400,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["tempflow.alias",{"_index":13408,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["template",{"_index":1077,"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":20418,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["template.replace(/\\{id\\}/g",{"_index":8876,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["template.response",{"_index":5804,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}}}],["template.response.ts",{"_index":5805,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:10",{"_index":5816,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:13",{"_index":5813,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:16",{"_index":5812,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:19",{"_index":5815,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:22",{"_index":5810,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:7",{"_index":5811,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["temporary",{"_index":302,"title":{},"body":{"controllers/AccountController.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/KeycloakIdentityManagementService.html":{},"interfaces/UserBoardRoles.html":{}}}],["tempted",{"_index":23810,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["term",{"_index":22516,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["terminal",{"_index":23616,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["terminate",{"_index":22740,"title":{},"body":{"license.html":{}}}],["terminated",{"_index":22758,"title":{},"body":{"license.html":{}}}],["terminates",{"_index":22748,"title":{},"body":{"license.html":{}}}],["termination",{"_index":22737,"title":{},"body":{"license.html":{}}}],["terms",{"_index":22318,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["test",{"_index":933,"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.createtestingmodule",{"_index":20306,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["test.module.ts",{"_index":10731,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:30",{"_index":10733,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["test.module.ts:31",{"_index":11415,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:37",{"_index":10846,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["test/test",{"_index":20295,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["testapiclient",{"_index":1449,"title":{"classes/TestApiClient.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testbootstrapconsole",{"_index":20293,"title":{"classes/TestBootstrapConsole.html":{}},"body":{"classes/TestBootstrapConsole.html":{}}}],["testcase",{"_index":23406,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testdata",{"_index":23426,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tested",{"_index":7003,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testhelper",{"_index":20315,"title":{"classes/TestHelper.html":{}},"body":{"classes/TestHelper.html":{}}}],["testing",{"_index":11385,"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":11375,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["testingmodule",{"_index":20302,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testkcconnection",{"_index":13262,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["testmodule",{"_index":23545,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.close",{"_index":23551,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(entitymanager",{"_index":23548,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(mikroorm",{"_index":23547,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(newsrepo",{"_index":23546,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testname",{"_index":20326,"title":{},"body":{"classes/TestHelper.html":{}}}],["testreqestconst",{"_index":1444,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.accesstoken",{"_index":1508,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.loginpath",{"_index":1484,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.prefix",{"_index":1467,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testrequestinstance",{"_index":1471,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["tests",{"_index":2366,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IFileStorageConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.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":20325,"title":{},"body":{"classes/TestHelper.html":{}}}],["testtext",{"_index":20321,"title":{},"body":{"classes/TestHelper.html":{}}}],["testuser",{"_index":7081,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["text",{"_index":2823,"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":17550,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["text.length",{"_index":20324,"title":{},"body":{"classes/TestHelper.html":{}}}],["text.types.ts",{"_index":17529,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:14",{"_index":17531,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:20",{"_index":17532,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:5",{"_index":17530,"title":{},"body":{"classes/RichText.html":{}}}],["text.validator.ts",{"_index":23307,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["text1",{"_index":4855,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text2",{"_index":4875,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text3",{"_index":4891,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text4",{"_index":4904,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["textutils",{"_index":23293,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["textvalidator",{"_index":23308,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["tha",{"_index":3606,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["that's",{"_index":746,"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":23838,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["themselves",{"_index":23497,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["then((pseudonymdo",{"_index":15412,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["then((resp",{"_index":2201,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["there's",{"_index":19925,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["therefore",{"_index":6829,"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":22395,"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":19741,"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":22566,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["this(entityclass",{"_index":2404,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this._allowemptyquery",{"_index":18550,"title":{},"body":{"classes/Scope.html":{}}}],["this._collectdefaultmetrics",{"_index":16850,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._collectmetricsroutemetrics",{"_index":16851,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._columnboardid",{"_index":4917,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._columnboardid.tohexstring",{"_index":4921,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._contextid",{"_index":4810,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contextid.tohexstring",{"_index":4812,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._contextid?.tohexstring",{"_index":12271,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contexttype",{"_index":4808,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._creatorid",{"_index":10047,"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":10008,"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":10468,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.aggregate(lessonentity",{"_index":14245,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.aggregate(user",{"_index":21632,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.assign(fetchedentity",{"_index":2316,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.clear",{"_index":743,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.create(this.entityname",{"_index":2310,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.find(account",{"_index":728,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.find(coursegroup",{"_index":19250,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.find(fileentity",{"_index":10461,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.find(ltitool",{"_index":14723,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.find(role",{"_index":17641,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.find(storageproviderentity",{"_index":19031,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["this._em.find(systementity",{"_index":19525,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["this._em.find(teamentity",{"_index":20267,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.find(this.entityname",{"_index":740,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.find(user",{"_index":21017,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findandcount",{"_index":752,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["this._em.findandcount(course",{"_index":7001,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findandcount(coursegroup",{"_index":6852,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.findandcount(filerecord",{"_index":10278,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findandcount(importuser",{"_index":12982,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findandcount(lessonentity",{"_index":14242,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.findandcount(news",{"_index":15221,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findandcount(schoolentity",{"_index":14043,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findandcount(task",{"_index":19929,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.findandcount(this.entityname",{"_index":19246,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.findandcount(user",{"_index":21008,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findone(account",{"_index":724,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findone(board",{"_index":3641,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findone(importuser",{"_index":12963,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findone(ltitool",{"_index":14726,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findone(schoolentity",{"_index":14041,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findone(this.entityname",{"_index":9097,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["this._em.findone(userloginmigrationentity",{"_index":21300,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.findoneorfail",{"_index":5953,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.findoneorfail(account",{"_index":729,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findoneorfail(board",{"_index":3645,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findoneorfail(course",{"_index":3643,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findoneorfail(federalstateentity",{"_index":9860,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["this._em.findoneorfail(filerecord",{"_index":10279,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findoneorfail(importuser",{"_index":12960,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findoneorfail(ltitool",{"_index":14725,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findoneorfail(news",{"_index":15217,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findoneorfail(role",{"_index":17639,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.findoneorfail(schoolyearentity",{"_index":18528,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["this._em.findoneorfail(sharetoken",{"_index":18815,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["this._em.findoneorfail(teamentity",{"_index":20263,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.findoneorfail(this.entityname",{"_index":2315,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/UserDORepo.html":{}}}],["this._em.findoneorfail(videoconference",{"_index":22100,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["this._em.flush",{"_index":733,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.getreference(entityname",{"_index":731,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.getreference(externaltoolentity",{"_index":18225,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.getreference(role",{"_index":21039,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.getreference(schoolentity",{"_index":18223,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(schoolexternaltoolentity",{"_index":5969,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.getreference(systementity",{"_index":14067,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(userloginmigrationentity",{"_index":14069,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.map(fileentity",{"_index":10470,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.map(lessonentity",{"_index":14247,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.map(user",{"_index":21645,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.nativedelete(importuser",{"_index":12987,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.nativedelete(this.entityname",{"_index":2341,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.nativedelete(user",{"_index":21650,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.persist(account",{"_index":732,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.persistandflush(board",{"_index":3644,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.persistandflush(entities",{"_index":2304,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.populate(columnboardelements",{"_index":3655,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(course",{"_index":6993,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.populate(coursegroup",{"_index":6851,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.populate(coursenews",{"_index":15227,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(importuser.user",{"_index":12961,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(lesson",{"_index":14237,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(lessonelements",{"_index":3653,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(lessons",{"_index":14243,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(newsentities",{"_index":15222,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(newsentity",{"_index":15218,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(role",{"_index":20270,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(schoolnews",{"_index":15225,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(submissions",{"_index":19251,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.populate(taskelements",{"_index":3651,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(tasks",{"_index":19845,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.populate(teamnews",{"_index":15226,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(teamuser",{"_index":20265,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(user",{"_index":21611,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.populate(userentity",{"_index":21010,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.populate(usermatches",{"_index":12986,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(users",{"_index":21647,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.remove(entities",{"_index":2332,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.removeandflush(account",{"_index":738,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.removeandflush(entities",{"_index":2443,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["this._id",{"_index":7633,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this._instance",{"_index":16857,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._iscopyfrom",{"_index":10148,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._iscopyfrom?.tohexstring",{"_index":10143,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._isenabled",{"_index":16847,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._lockid",{"_index":10051,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._lockid?.tohexstring",{"_index":10009,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._oauthconfigcache",{"_index":13539,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this._operator",{"_index":18549,"title":{},"body":{"classes/Scope.html":{}}}],["this._origintoolid",{"_index":7229,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._origintoolid?.tohexstring",{"_index":7198,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._ownerid",{"_index":10043,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._ownerid.tohexstring",{"_index":10007,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._parentid",{"_index":10041,"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":10141,"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":10006,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._port",{"_index":16849,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._queries",{"_index":18552,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.length",{"_index":18551,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.push(query",{"_index":18554,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries[0",{"_index":18553,"title":{},"body":{"classes/Scope.html":{}}}],["this._route",{"_index":16848,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._schoolid",{"_index":10145,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._schoolid.tohexstring",{"_index":10142,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.abbreviation",{"_index":6533,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.acceptconsentrequest",{"_index":15952,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.acceptloginrequest(currentuserid",{"_index":16104,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.accesskeyid",{"_index":12280,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.accesstoken",{"_index":14526,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.accountlookupservice.getinternalid(id",{"_index":912,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyid(internalid",{"_index":905,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyuserid(userid",{"_index":906,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyid(accountid",{"_index":958,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyid(internalid",{"_index":881,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyuserid(userid",{"_index":884,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyusernameandsystemid(username",{"_index":886,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmany(offset",{"_index":917,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmultiplebyuserid(userids",{"_index":882,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.save(account",{"_index":901,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(email",{"_index":941,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(username",{"_index":909,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernamepartialmatch(username",{"_index":907,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountservice.findbyuserid(user.id",{"_index":15633,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["this.accountservice.findbyuseridorfail(currentuserid",{"_index":21551,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.findbyuseridorfail(userid",{"_index":21706,"title":{},"body":{"injectables/UserService.html":{}}}],["this.accountservice.findbyusernameandsystemid(username",{"_index":1558,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.findmany(skip",{"_index":13675,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.accountservice.save(account",{"_index":21562,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.save(accountcopy",{"_index":21557,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.savewithvalidation",{"_index":16475,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.accountservice.searchbyusernameexactmatch(username",{"_index":1559,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.updatelasttriedfailedlogin(id",{"_index":1585,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountuc.deleteaccountbyid(currentuser",{"_index":370,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.findaccountbyid(currentuser",{"_index":352,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.replacemytemporarypassword(currentuser.userid",{"_index":372,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.searchaccounts(currentuser",{"_index":350,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updateaccountbyid(currentuser",{"_index":368,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updatemyaccount(currentuser.userid",{"_index":366,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.activated",{"_index":199,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{}}}],["this.active",{"_index":12374,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.adapter.createteam(team",{"_index":4718,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.deleteteam(teamid",{"_index":4717,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteam(team",{"_index":4719,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteampermissionsforrole",{"_index":4714,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.addclientprotocolmappers(defaultclientinternalid",{"_index":13439,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.addexternaloauth2datatoconfig(tool.config",{"_index":9414,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.addlessons(builder",{"_index":5089,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addquery",{"_index":6086,"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":15259,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(queries[0",{"_index":15260,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(query",{"_index":10312,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["this.addroom(room",{"_index":7586,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.addtasks(builder",{"_index":5090,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addteacherroleifadmin(externaluser",{"_index":18071,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.adminidandtoken",{"_index":1090,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.alias",{"_index":12434,"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":1997,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.allrooms",{"_index":7596,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.alternativetext",{"_index":9937,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.amqpconnection.publish",{"_index":1187,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.amqpconnection.publish(this.options.exchange",{"_index":14778,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.amqpconnection.request>(this.createrequest(event",{"_index":17855,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.amqpconnectionmanager.getconnections().map((connection",{"_index":17180,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["this.ancestorids.length",{"_index":3581,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.ancestorids[this.ancestorids.length",{"_index":3575,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.antareskey",{"_index":6529,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.app",{"_index":1463,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.appendnotcontainedboardelements(boardelementtargets",{"_index":2669,"title":{},"body":{"entities/Board.html":{}}}],["this.attendeepw",{"_index":1995,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.aud",{"_index":13160,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["this.authendpoint",{"_index":12362,"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":13834,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.generatejwt(oauthcurrentuser",{"_index":16354,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.authenticationservice.loadaccount",{"_index":13856,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(`${externalschoolid}/${username}`.tolowercase",{"_index":13853,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(username",{"_index":14412,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizepassword(password",{"_index":13840,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizeusername(username",{"_index":13839,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.removejwtfromwhitelist(userjwt",{"_index":16352,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.authenticationservice.updatelasttriedfailedlogin(account.id",{"_index":13842,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authorisation.checkpermission(authorizableuser",{"_index":19748,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.checkpermission(user",{"_index":14201,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisation.getuserwithpermissions(userid",{"_index":14180,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(authorizableuser",{"_index":19746,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(user",{"_index":14195,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisationservice",{"_index":8169,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorisationservice.hascoursewritepermission(user",{"_index":17841,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.authorisationservice.haspermission(this.user",{"_index":8179,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorization.checkpermissionbyreferences(userid",{"_index":6774,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.authorizationhelper.hasaccesstoentity",{"_index":7011,"title":{},"body":{"injectables/CourseRule.html":{}}}],["this.authorizationhelper.hasaccesstoentity(user",{"_index":6859,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissions(user",{"_index":1827,"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":20202,"title":{},"body":{"injectables/TeamRule.html":{}}}],["this.authorizationhelper.hasoneofpermissions(user",{"_index":1828,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.authorizationreferenceservice.checkpermissionbyreferences",{"_index":18924,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkallpermissions(user",{"_index":9503,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkentitypermissions",{"_index":15314,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkentitypermissions(userid",{"_index":15298,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkoneofpermissions(user",{"_index":20049,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.checkpermission",{"_index":19325,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.authorizationservice.checkpermission(authorizableuser",{"_index":20714,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.authorizationservice.checkpermission(user",{"_index":2476,"title":{},"body":{"classes/BaseUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.checkpermissionbyreferences",{"_index":6789,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.authorizationservice.checkpermissions(user",{"_index":23780,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.getentitypermissions(userid",{"_index":15330,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getpermittedentities(userid",{"_index":15326,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuser.userid",{"_index":15916,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuserid",{"_index":16111,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(pseudonymuserid",{"_index":17123,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(userid",{"_index":1796,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"classes/BaseUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LessonUC.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.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":20065,"title":{},"body":{"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasoneofpermissions(user",{"_index":20072,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.haspermission(user",{"_index":1798,"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":23759,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationurl",{"_index":12421,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.authorizeaccess",{"_index":13282,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.authservice.checkpermission",{"_index":4711,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.checkpermission(authorizableuser",{"_index":14141,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.authservice.generatejwt(createjwtpayload",{"_index":14570,"title":{},"body":{"injectables/LoginUc.html":{}}}],["this.authservice.getuserwithpermissions(currentuserid",{"_index":4712,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.getuserwithpermissions(userid",{"_index":14123,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.availabledate",{"_index":12473,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.axiosconfig",{"_index":11494,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.basepath",{"_index":11697,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.baseroute",{"_index":1464,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.baseurl",{"_index":2508,"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":21777,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["this.bbbservice.create(configbuilder.build",{"_index":21908,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.end(config",{"_index":21975,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.bbbservice.getmeetinginfo(config",{"_index":21995,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.bbbservice.getmeetinginfo(new",{"_index":21894,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.join(joinbuilder.build",{"_index":22027,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.bbbsettings.host",{"_index":2189,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.presentationurl",{"_index":2191,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.salt",{"_index":2190,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.board",{"_index":8168,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.board.getelements",{"_index":8171,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.boardcopyservice.copyboard",{"_index":6740,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(anyboarddo",{"_index":2474,"title":{},"body":{"classes/BaseUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo",{"_index":2477,"title":{},"body":{"classes/BaseUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo).then((boarddoauthorizable",{"_index":4190,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(submissioncontainerelement",{"_index":19211,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.boarddocopyservice.copy",{"_index":4788,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.delete(domainobject",{"_index":3382,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findbyclassandid(card",{"_index":4124,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findbyclassandid(column",{"_index":5012,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findbyclassandid(columnboard",{"_index":4774,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyid(elementid",{"_index":5680,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findbyid(id",{"_index":3099,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.findbyid(rootid",{"_index":3107,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyids(cardids",{"_index":4125,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findidsbyexternalreference(reference",{"_index":4839,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findparentofid(card.id",{"_index":4135,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findparentofid(child.id",{"_index":3386,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(column.id",{"_index":5016,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findparentofid(domainobject.id",{"_index":3379,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(element.id",{"_index":5691,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(elementid",{"_index":5682,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(submissionitem.id",{"_index":19195,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.getancestorids(boarddo",{"_index":3102,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.gettitlesbyids(boardids",{"_index":4844,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(board",{"_index":4847,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(card",{"_index":4136,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.save(column",{"_index":5017,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.save(columnboard",{"_index":4845,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(copystatus.copyentity",{"_index":4793,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.save(element",{"_index":5692,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(parent.children",{"_index":3381,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(sourceparent.children",{"_index":3388,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.save(submissioncontainer.children",{"_index":19193,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.save(targetparent.children",{"_index":3390,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorule",{"_index":17888,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.boarddoservice.deletewithdescendants(board",{"_index":4846,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddoservice.deletewithdescendants(card",{"_index":4133,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.deletewithdescendants(column",{"_index":5014,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.deletewithdescendants(element",{"_index":5686,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddoservice.move(card",{"_index":4134,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.move(column",{"_index":5015,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.move(element",{"_index":5687,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boardelementservice.findbyid(contextexternaltool.contextref.id",{"_index":20718,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boardelementtype",{"_index":5041,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["this.boardmanagementuc.createboard(courseid",{"_index":3465,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.boardnodeauthorizableservice",{"_index":12159,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.boardnoderepo",{"_index":3346,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(boarddo.id",{"_index":3342,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(childid",{"_index":3339,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(id",{"_index":3315,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(parent.id",{"_index":17351,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.boardnoderepo.finddescendants(boardnode",{"_index":3316,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.finddescendantsofmany(boardnodes",{"_index":3323,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardrepo.findbycourseid(course.id",{"_index":17843,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.findbycourseid(courseid",{"_index":6730,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boardrepo.findbycourseid(roomid",{"_index":17838,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(board",{"_index":17817,"title":{},"body":{"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(boardcopy",{"_index":3003,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.boardservice.getboardauthorizable(boardelement",{"_index":20719,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boarduc.createcolumn(currentuser.userid",{"_index":2930,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deleteboard(currentuser.userid",{"_index":2928,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboard(currentuser.userid",{"_index":2914,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboardcontext(currentuser.userid",{"_index":2919,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.movecolumn(currentuser.userid",{"_index":4973,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.updateboardtitle(currentuser.userid",{"_index":2924,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.bsonconverter.deserialize(bsondocuments",{"_index":11768,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bsonconverter.serialize(jsondocuments",{"_index":11786,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bucket",{"_index":10031,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.build",{"_index":7371,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["this.build(params",{"_index":2407,"title":{},"body":{"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{}}}],["this.build(requiredpermissions",{"_index":1626,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["this.buildchildren(boardnode",{"_index":3203,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.buildcopyentitydict(elementstatus).foreach((el",{"_index":6450,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.builddtowithelements(mappedelements",{"_index":8174,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.buildexternaltool",{"_index":5631,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildfile",{"_index":5623,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildgroupsclaim(teams",{"_index":12658,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.buildlink",{"_index":5625,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildrichtext",{"_index":5627,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildscope(query",{"_index":5950,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this.buildsubmissioncontainer",{"_index":5629,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildtokenrequestpayload(code",{"_index":15568,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.byuseridquery(userid",{"_index":19248,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.cacheexpiration",{"_index":17640,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["this.cachemanager.del(redisidentifier",{"_index":13227,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.cacheservice.getstoretype",{"_index":13226,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.calculatenumberofsubmitters(gradedsubmissions",{"_index":12543,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calculatenumberofsubmitters(submittedsubmissions",{"_index":12541,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calendarmapper.maptodto(resp.data",{"_index":3960,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.callkcadminclient",{"_index":13290,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.cancelbuttonurl",{"_index":16551,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.caption",{"_index":9936,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.cardid",{"_index":4153,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["this.cards",{"_index":4991,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["this.cardservice.create(column",{"_index":5032,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.cardservice.delete(card",{"_index":4183,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyid(cardid",{"_index":4180,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ColumnUc.html":{}}}],["this.cardservice.findbyid(targetcardid",{"_index":4188,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyids(cardids",{"_index":4177,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.move(card",{"_index":5034,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.cardservice.updateheight(card",{"_index":4181,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.updatetitle(card",{"_index":4182,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.carduc.createelement(currentuser.userid",{"_index":4054,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.deletecard(currentuser.userid",{"_index":4048,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.findcards(currentuser.userid",{"_index":4033,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.moveelement",{"_index":8287,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.carduc.updatecardheight(currentuser.userid",{"_index":4042,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.updatecardtitle(currentuser.userid",{"_index":4045,"title":{},"body":{"controllers/CardController.html":{}}}],["this.cause",{"_index":3873,"title":{},"body":{"classes/BusinessError.html":{}}}],["this.challenge",{"_index":5596,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.checkandaddprefix(baseroute",{"_index":1465,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkandaddprefix(routenameinput",{"_index":1503,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkavaiblelanguages(params.language",{"_index":21735,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.checkavailablelanguages(newlanguage",{"_index":21721,"title":{},"body":{"injectables/UserService.html":{}}}],["this.checkcontextreadpermission(userid",{"_index":18902,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcreatepermission(userid",{"_index":18909,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcredentials(account",{"_index":13836,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkcredentials(password",{"_index":14418,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.checkdestinationcourseauthorisation(authorizableuser",{"_index":19740,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkdestinationcourseauthorization(user",{"_index":14187,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkdestinationlessonauthorization(authorizableuser",{"_index":19745,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkduplicateincontext(contextexternaltool",{"_index":6174,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.checkerror(response",{"_index":17856,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.checkexpired(sharetoken",{"_index":18859,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.checkfeatureenabled",{"_index":6772,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.checkfeatureenabled(payload.parenttype",{"_index":18896,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkfeatureenabled(sharetoken.payload.parenttype",{"_index":18908,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkifpreviewpossible(filerecord",{"_index":16799,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.checklistscontainingequalentities(reorderedids",{"_index":2657,"title":{},"body":{"entities/Board.html":{}}}],["this.checkofficialschoolnumbersmatch(schooldo",{"_index":18440,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.checkoptionalparameter(param",{"_index":5471,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkoriginallessonauthorization(user",{"_index":14182,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkoriginaltaskauthorization(authorizableuser",{"_index":19739,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkparameterregex(foundentry",{"_index":5473,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparametertype(foundentry",{"_index":5472,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparentwritepermission(userid",{"_index":18897,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkpermission(userid",{"_index":2485,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.checkpreconditions(userid",{"_index":18992,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.checkschoolauthorization(authorizableuser",{"_index":14125,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.checkscopeandvalidateparameter(validatabletool",{"_index":5464,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkstreamresponsive(stream",{"_index":17946,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.checksubmissionitemwritepermission(userid",{"_index":8322,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["this.checkvalue(account.userid",{"_index":13833,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(school.externalid",{"_index":13844,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(user.ldapdn",{"_index":13835,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkversionmatch(schoolexternaltool.toolversion",{"_index":18335,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.children.filter((ch",{"_index":2774,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.length",{"_index":2767,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.some((obj",{"_index":2779,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.splice(position",{"_index":2773,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.childrenmap[boardnode.path",{"_index":3197,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.path].push(boardnode",{"_index":3198,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.pathofchildren",{"_index":3239,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.clamconnection.scanstream(stream",{"_index":1173,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.classes.set(props.classes",{"_index":6626,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.classesrepo.findallbyschoolid(schoolid",{"_index":4441,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.findallbyuserid(userid",{"_index":4442,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.updatemany(updatedclasses",{"_index":4449,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classnames",{"_index":12857,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.classnames.push(...props.classnames",{"_index":12038,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.classvalidatormetadatastorage.gettargetvalidationmetadatas",{"_index":8399,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.cleanupinput(username",{"_index":14411,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.cleanuppath(this.baseroute",{"_index":1504,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.client",{"_index":12121,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/S3ClientAdapter.html":{}}}],["this.client.addaccesstogroupfolder(folderid",{"_index":15400,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.addusertogroup(nextclouduserid",{"_index":15428,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.changegroupfoldername(folderid",{"_index":15398,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroup(groupid",{"_index":15389,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroupfolder(foldername",{"_index":15399,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroup(groupid",{"_index":15386,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroupfolder(folderid",{"_index":15387,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupfolderidforgroupid(groupid",{"_index":15382,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupid(nextcloudstrategy.generategroupid(dto",{"_index":15380,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getgroupusers(groupid",{"_index":15404,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(pseudonymdo.pseudonym",{"_index":15413,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(team.id",{"_index":15388,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(teamid",{"_index":15385,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.oidcinternalname",{"_index":15430,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.removeuserfromgroup(nextclouduserid",{"_index":15426,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.renamegroup(groupid",{"_index":15402,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.send(req",{"_index":17942,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.client.setgrouppermissions(groupid",{"_index":15383,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client_id",{"_index":1343,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{}}}],["this.client_name",{"_index":5595,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.client_secret",{"_index":1345,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.clientid",{"_index":12351,"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":12352,"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":16251,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.clone(newpropsfactory",{"_index":2415,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.closedat",{"_index":21233,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.closedat.toisostring",{"_index":21115,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["this.closeuserloginmigrationuc.closemigration",{"_index":21208,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.code",{"_index":1351,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.color",{"_index":6617,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.columnboardcopyservice.copycolumnboard",{"_index":3036,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.columnboardid",{"_index":2724,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["this.columnboardservice.createwelcomecolumnboard(coursereference",{"_index":17820,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.delete(board",{"_index":3809,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbydescendant(element",{"_index":1886,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.columnboardservice.findbyid(boardid",{"_index":3807,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbyid(targetboardid",{"_index":3814,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findidsbyexternalreference(coursereference",{"_index":17818,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.getboardobjecttitlesbyid(columnboardids",{"_index":4937,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.columnboardservice.updatetitle(board",{"_index":3810,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardtargetservice.findorcreatetargets(columnboardids",{"_index":17822,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columns",{"_index":3666,"title":{},"body":{"classes/BoardResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.columnservice.create(board",{"_index":3811,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.delete(column",{"_index":5030,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.columnservice.findbyid(columnid",{"_index":3812,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnUc.html":{}}}],["this.columnservice.findbyid(targetcolumnid",{"_index":5033,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.columnservice.move(column",{"_index":3815,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.updatetitle(column",{"_index":5031,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.columnuc.createcard(currentuser.userid",{"_index":4982,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.columnuc.deletecolumn(currentuser.userid",{"_index":4980,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.columnuc.movecard(currentuser.userid",{"_index":4037,"title":{},"body":{"controllers/CardController.html":{}}}],["this.columnuc.updatecolumntitle(currentuser.userid",{"_index":4977,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.comment",{"_index":12295,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.commontoolservice.determinetoolconfigurationstatus",{"_index":20687,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{}}}],["this.commontoolvalidationservice.checkcustomparameterentries(loadedexternaltool",{"_index":6177,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.checkforduplicateparameters(schoolexternaltool",{"_index":18334,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.isvaluevalidfortype(param.type",{"_index":8994,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.compareparameters(oldtool.parameters",{"_index":9582,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.completed",{"_index":19154,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.config",{"_index":1933,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{}}}],["this.config.bucket",{"_index":17941,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.config.bucket}/${path.sourcepath",{"_index":17979,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.configservice.get('available_languages').includes(language",{"_index":21723,"title":{},"body":{"injectables/UserService.html":{}}}],["this.configservice.get('available_languages').includes(settedlanguage",{"_index":21734,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.configservice.get('feature_identity_management_login_enabled",{"_index":14413,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.configservice.get('feature_identity_management_store_enabled",{"_index":607,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.configservice.get('feature_imscc_course_export_enabled",{"_index":6701,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.configservice.get('login_block_time",{"_index":1578,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.configservice.get('sc_domain",{"_index":13429,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.configservice.get(placeholder",{"_index":11835,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.connect(system",{"_index":13787,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.consentflowuc.getconsentrequest(params.challenge",{"_index":16051,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.consentflowuc.patchconsentrequest",{"_index":16054,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.console.info('connected",{"_index":11632,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`cleaned",{"_index":11641,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`configured",{"_index":11653,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`migrated",{"_index":11665,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`seeded",{"_index":11647,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.consolewriter.info('error",{"_index":3462,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info('schulcloud",{"_index":18567,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`error",{"_index":3526,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.consolewriter.info(`input",{"_index":18568,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`success",{"_index":3466,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info(report",{"_index":7890,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.constructor",{"_index":1490,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BaseFactory.html":{},"classes/TestApiClient.html":{}}}],["this.content",{"_index":3414,"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":5752,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.description",{"_index":5731,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.duedate",{"_index":5748,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.imageurl",{"_index":5732,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.inputformat",{"_index":5745,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.title",{"_index":5729,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.contentelementfactory.build(contentelementtype.rich_text",{"_index":4907,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.contentelementfactory.build(type",{"_index":5684,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.contentelementservice.create(card",{"_index":4138,"title":{},"body":{"injectables/CardService.html":{}}}],["this.contentelementservice.findbyid(elementid",{"_index":1884,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.contents",{"_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":{}}}],["this.contenttype",{"_index":8816,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["this.context",{"_index":13919,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/ShareTokenDO.html":{}}}],["this.context.action",{"_index":10786,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.context.requiredpermissions.join",{"_index":10787,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.contextexternaltool",{"_index":8745,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["this.contextexternaltool.id",{"_index":15001,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.contextexternaltoolauthorizableservice",{"_index":12161,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.contextexternaltoolid",{"_index":8734,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltool",{"_index":6114,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltools",{"_index":6113,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":9427,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find",{"_index":6112,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find(query",{"_index":6108,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(contextexternaltoolid",{"_index":6109,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(id",{"_index":5799,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["this.contextexternaltoolrepo.save(contextexternaltool",{"_index":6111,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrule",{"_index":17889,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.contextexternaltoolservice.deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":18323,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(linkedtool",{"_index":17317,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(tool",{"_index":6157,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findallbycontext",{"_index":6158,"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":6153,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contextexternaltoolid",{"_index":6156,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contexttoolid",{"_index":6161,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findcontextexternaltools",{"_index":6179,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool",{"_index":6152,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltooluc.createcontextexternaltool",{"_index":20495,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.deletecontextexternaltool(currentuser.userid",{"_index":20500,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltool",{"_index":20507,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltoolsforcontext",{"_index":20502,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.updatecontextexternaltool",{"_index":20510,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltoolvalidationservice.validate(contextexternaltool",{"_index":6150,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextid",{"_index":5858,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.contextref",{"_index":5786,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.contexttoolid",{"_index":20727,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.contexttype",{"_index":5860,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this.converterutil.xml2object",{"_index":2203,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.converterutil.xml2object>(resp.data",{"_index":2216,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.cookies",{"_index":11491,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.copy(copypaths",{"_index":17964,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.copyboardelements(boardelements",{"_index":2993,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycolumnboard(element.target",{"_index":3021,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycourse(userid",{"_index":18912,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copycourseentity",{"_index":6739,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyfilesservice.copyfilesofentity",{"_index":19693,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(boardstatus",{"_index":3051,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(newname",{"_index":6737,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(originallesson.name",{"_index":14192,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.copyhelperservice.derivecopyname(originaltaskname",{"_index":19754,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elements",{"_index":2997,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(filestatuses",{"_index":6405,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.copyingsince",{"_index":6623,"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":3018,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copylesson(userid",{"_index":18915,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copymap.get(child.id",{"_index":17279,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copymap.set(original.id",{"_index":17242,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copytask(element.target",{"_index":3014,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copytask(userid",{"_index":18916,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copytaskentity(params",{"_index":19692,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.countyid",{"_index":6527,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.course",{"_index":2641,"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":12557,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.id",{"_index":12554,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isfinished",{"_index":12511,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isusersubstitutionteacher(user",{"_index":12537,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.name",{"_index":12553,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.school.id",{"_index":11925,"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":6776,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.coursecopyuc.copycourse(currentuser.userid",{"_index":17795,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.courseexportservice.exportcourse(courseid",{"_index":6790,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.courseexportuc.exportcourse(urlparams.courseid",{"_index":6702,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.coursegroup",{"_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":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["this.coursegroup.getstudentids",{"_index":12309,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.coursegroup.school.id",{"_index":11926,"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":14280,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegrouprepo",{"_index":12145,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.coursegrouprule",{"_index":17880,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.coursegrouprule.haspermission(user",{"_index":14283,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegroups.getitems",{"_index":6655,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.coursegroups.isinitialized(true",{"_index":6652,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.courseid",{"_index":19779,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursename",{"_index":19778,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursepermission(user",{"_index":14281,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.courserepo",{"_index":12143,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.courserepo.createcourse(coursecopy",{"_index":6749,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserepo.findallbyuserid",{"_index":7847,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.courserepo.findallbyuserid(user.id",{"_index":20087,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findallbyuserid(userid",{"_index":6735,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{}}}],["this.courserepo.findallforteacherorsubstituteteacher(user.id",{"_index":20086,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findbyid(courseid",{"_index":6729,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.courserepo.findbyid(originalboard.context.id",{"_index":4781,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.courserepo.findbyid(parentparams.courseid",{"_index":14185,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.courserepo.findbyid(rootboarddo.context.id",{"_index":3109,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.courserepo.findone(roomid",{"_index":17837,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.courserepo.save(coursecopy",{"_index":6751,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserule",{"_index":17879,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.courserule.haspermission(user",{"_index":6860,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.findallbyuserid(pseudonym.userid",{"_index":9807,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.courseservice.findbyid(contextexternaltool.contextref.id",{"_index":20717,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.courseservice.findbyid(courseid",{"_index":1881,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"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":18862,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.courseservice.getcourse(params.courseid",{"_index":23778,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.save(course",{"_index":23782,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.savecourse(course",{"_index":23786,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseuc.findallbyuser(currentuser.userid",{"_index":6695,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.create",{"_index":10085,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.create(currentuserid",{"_index":21896,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.create(path",{"_index":17960,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createboardelementfor(target",{"_index":2681,"title":{},"body":{"entities/Board.html":{}}}],["this.createboardforcourse(courseid",{"_index":3642,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.createbucket",{"_index":17959,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createcards(this.random(1",{"_index":3505,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createclient(provider",{"_index":8057,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.createcolumns(3",{"_index":3501,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createdat",{"_index":406,"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":3511,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createemptyelements(card",{"_index":4132,"title":{},"body":{"injectables/CardService.html":{}}}],["this.createentity(domainobject",{"_index":2301,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createerrorloggable(error",{"_index":10913,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponse(error",{"_index":10923,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforbusinesserror(error",{"_index":10931,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforfeatherserror(error",{"_index":10929,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponsefornesthttpexception(error",{"_index":10933,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforunknownerror",{"_index":10934,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createfile(contentrange",{"_index":20327,"title":{},"body":{"classes/TestHelper.html":{}}}],["this.createfileurlreplacements(filedtos",{"_index":6388,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.creategridelement(elementwithposition",{"_index":7769,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.createidentityprovider(configureaction.config",{"_index":13446,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(idpalias",{"_index":13482,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(oidcconfig.idphint",{"_index":13474,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createiframesubject(user",{"_index":12657,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.createlogmessageforvalidationerrors(this.error",{"_index":8379,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.createnewentityfromdo(domainobj",{"_index":2331,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewentityfromdo(domainobject",{"_index":2308,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewmigration(schooldo",{"_index":21366,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.createorupdateboardnode(boardnode",{"_index":17368,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.createorupdateidmaccount(account",{"_index":13678,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.createqueryordermap(options?.order",{"_index":21000,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.createrichtextelement",{"_index":4856,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.createstatus",{"_index":20071,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.createtaskstatus(task",{"_index":8190,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.createusermigrationdto",{"_index":21558,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.createusersearchindex",{"_index":11798,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.creator",{"_index":12479,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.creatorid",{"_index":6272,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.credentialhash",{"_index":189,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.cruduc.createoauth2client(currentuser",{"_index":16031,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.deleteoauth2client(currentuser",{"_index":16036,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.getoauth2client(currentuser",{"_index":16021,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.listoauth2clients",{"_index":16024,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.updateoauth2client(currentuser",{"_index":16033,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.currentredirect",{"_index":11487,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.customs",{"_index":7222,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.dashboard",{"_index":7638,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.dashboardrepo.getdashboardbyid(dashboardid",{"_index":7850,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.getusersdashboard(userid",{"_index":7846,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.persistandflush(dashboard",{"_index":7849,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboarduc.getusersdashboard(currentuser.userid",{"_index":7455,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.moveelementondashboard",{"_index":7458,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.renamegroupondashboard",{"_index":7463,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboardurl",{"_index":21544,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.data",{"_index":833,"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":11740,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.collectionexists(collectionname",{"_index":11738,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.createcollection(collectionname",{"_index":11741,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.finddocumentsofcollection(collectionname",{"_index":11784,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getcollectionnames",{"_index":11710,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getdatabasecollection('users",{"_index":11802,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.importcollection",{"_index":11774,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.syncindexes",{"_index":11799,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem",{"_index":7923,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem([collectionname",{"_index":7925,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem(filter",{"_index":7894,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfactories(filter",{"_index":7886,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem",{"_index":7920,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem([collectionname",{"_index":7922,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem(filter",{"_index":7887,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.syncindexes",{"_index":7895,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/Options.html":{}}}],["this.db.collection(collectionname",{"_index":7961,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.createcollection(collectionname",{"_index":7978,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.dropcollection(collectionname",{"_index":7979,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.listcollections(undefined",{"_index":7971,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.default",{"_index":7288,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["this.default_errorcode",{"_index":15473,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.default_message",{"_index":15471,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.defaultencryptionservice.decrypt(oidcconfig.clientsecret",{"_index":16403,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["this.defaultencryptionservice.encrypt(system.oauthconfig.clientsecret",{"_index":11843,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultencryptionservice.encrypt(system.oidcconfig.clientsecret",{"_index":11846,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultoauthclientbody",{"_index":15922,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.defaultscopes",{"_index":12428,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.defaultvalue",{"_index":7430,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["this.delete",{"_index":10087,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.delete(account",{"_index":736,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.delete(deleteobjects",{"_index":17974,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(filteredpathobjects",{"_index":17990,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(paths",{"_index":17967,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deleted",{"_index":10024,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.deletedat",{"_index":10023,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{}}}],["this.deletedfoldername}/${path",{"_index":17963,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deletedsince",{"_index":6278,"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":2340,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.deleteexternaltoolpseudonymsbyuserid(userid",{"_index":17104,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletefile(file",{"_index":8044,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefileinstorage(file",{"_index":8069,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefilesuc.deletemarkedfiles(thresholddate",{"_index":8002,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.deleteidentityprovider(configureaction.alias",{"_index":13450,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.deletenode(card",{"_index":17303,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(column",{"_index":17301,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(columnboard",{"_index":17299,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(externaltoolelement",{"_index":17318,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(fileelement",{"_index":17306,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(linkelement",{"_index":17308,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(richtextelement",{"_index":17310,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submission",{"_index":17314,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submissioncontainerelement",{"_index":17312,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletepseudonymsbyuserid(userid",{"_index":17103,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletesubmissions(task",{"_index":20009,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.derivecopyname(composedname",{"_index":6448,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.derivecopystatus(filecopystatus",{"_index":19695,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.derivecopystatus(filedtos",{"_index":6390,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.derivecoursestatus(originalcourse",{"_index":6744,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.description",{"_index":6610,"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":{},"classes/MetaTagExtractorResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.html":{}}}],["this.descriptioninputformat",{"_index":12470,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.details",{"_index":3872,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.detectcontenttypeorthrow(buffer",{"_index":8892,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.detectcontenttypeorthrow(logobinarydata",{"_index":8901,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.determineinput(systemid",{"_index":16960,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.determinenewroomsin(rooms",{"_index":7584,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.determinestatus(tool",{"_index":18296,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.displayat",{"_index":6935,"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":6895,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.displayname",{"_index":5788,"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":3498,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.domigration(externalid",{"_index":18436,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.domigration(userdo",{"_index":21552,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.downloadoriginfile(originfilepath",{"_index":16754,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.dropcollectionifexists(collectionname",{"_index":11750,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.duedate",{"_index":12475,"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":4086,"title":{},"body":{"classes/CardResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.elementservice.create(card",{"_index":4184,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.create(submissionitem",{"_index":19218,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.delete(element",{"_index":8319,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(contentelementid",{"_index":8323,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(elementid",{"_index":4186,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(submissioncontainerid",{"_index":19208,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.findparentofid(elementid",{"_index":8320,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.move(element",{"_index":4185,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.update(element",{"_index":8318,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementuc.createsubmissionitem",{"_index":8298,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.deleteelement(currentuser.userid",{"_index":8295,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.updateelementcontent",{"_index":8292,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.em",{"_index":9053,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.assign(entity",{"_index":4505,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.assign(existing",{"_index":9058,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.assign(existingentity",{"_index":11177,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(boardnode",{"_index":3322,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["this.em.find(classentity",{"_index":4485,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.find(columnboardnode",{"_index":3332,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.em.find(columnboardtarget",{"_index":4945,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.find(externaltoolpseudonymentity",{"_index":9052,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.find(groupentity",{"_index":11171,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(pseudonymentity",{"_index":17138,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findandcount(externaltoolpseudonymentity",{"_index":9074,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(dashboardgridelementmodel",{"_index":7771,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.findone(dashboardmodelentity",{"_index":7792,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findone(externaltoolpseudonymentity",{"_index":9051,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(groupentity",{"_index":11168,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.findone(pseudonymentity",{"_index":17137,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(boardnode",{"_index":3596,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["this.em.findoneorfail(course",{"_index":3525,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.findoneorfail(dashboardmodelentity",{"_index":7822,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findoneorfail(externaltoolpseudonymentity",{"_index":9048,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findoneorfail(pseudonymentity",{"_index":17136,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(user",{"_index":7794,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.flush",{"_index":3348,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.getconnection('write').getdb",{"_index":7960,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.em.getreference(contextexternaltoolentity",{"_index":17379,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.getunitofwork().getbyid(boardnode.name",{"_index":3595,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.nativedelete(externaltoolpseudonymentity",{"_index":9061,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.nativedelete(pseudonymentity",{"_index":17141,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(boardnode",{"_index":17386,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.persist(entity",{"_index":9059,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(modelentity",{"_index":7818,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persist(newentity",{"_index":11178,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.persist(target",{"_index":4944,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.persistandflush(board",{"_index":3500,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(cards",{"_index":3508,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(columns",{"_index":3502,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(data",{"_index":11751,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.em.persistandflush(elements",{"_index":3513,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(existingentities",{"_index":4506,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.persistandflush(modelentity",{"_index":7820,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.remove(el",{"_index":7791,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.remove(this.em.getreference(boardnode",{"_index":17320,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.em.removeandflush(entity",{"_index":11182,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.email",{"_index":9628,"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":20971,"title":{},"body":{"classes/UserDO.html":{}}}],["this.enablemigrationstart",{"_index":14985,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.enableoauthmigrationfeature(schooldo",{"_index":21367,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.encoding",{"_index":10416,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.encryptionservice.encrypt(externaltool.config.secret",{"_index":9401,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.encryptpassword(accountdto.password",{"_index":898,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptpassword(password",{"_index":904,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptsecrets(collectionname",{"_index":11772,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(data",{"_index":11749,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(jsondocuments",{"_index":11838,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.enddate",{"_index":12238,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["this.endpointurl",{"_index":12278,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.enrichdatafromexternaltool(createdschoolexternaltool",{"_index":18300,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichdatafromexternaltool(tool",{"_index":18294,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichwithdatafromexternaltools(schoolexternaltools",{"_index":18292,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.ensureboardnodetype(this.getchildren(boardnode",{"_index":3200,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurecontextpermissions(userid",{"_index":8679,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.ensureleafnode(boardnode",{"_index":3218,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurepermission(userid",{"_index":9490,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.ensureschoolpermissions(userid",{"_index":8670,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.ensuretoolpermissions(userid",{"_index":20797,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.entityclass",{"_index":2423,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityclass(props",{"_index":2406,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityfactory(entityprops",{"_index":2321,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.entityname",{"_index":753,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ForbiddenLoggableException.html":{}}}],["this.error",{"_index":8378,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.errorcode",{"_index":15472,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.errorhandler(error",{"_index":16279,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.errortype",{"_index":1016,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.everyattendeejoinsmuted",{"_index":21926,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.everyattendejoinsmuted",{"_index":21757,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["this.everybodyjoinsasmoderator",{"_index":21759,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.exchange",{"_index":17862,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.expiresat",{"_index":197,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{}}}],["this.externalgroups",{"_index":15827,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalid",{"_index":6939,"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":15838,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["this.externalorganizationid",{"_index":8520,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["this.externalschool",{"_index":15825,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalsource",{"_index":11138,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.externalsourcename",{"_index":4348,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableexternaltools",{"_index":8682,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableschoolexternaltools",{"_index":8680,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailabletools",{"_index":8672,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope",{"_index":8685,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope(externaltool",{"_index":8674,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforcontext",{"_index":20433,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforschool",{"_index":20430,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforcontextexternaltool",{"_index":20440,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforschoolexternaltool",{"_index":20437,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltooldomapper.mapcreaterequest(externaltoolparams",{"_index":20544,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapexternaltoolfilterquerytoexternaltoolsearchquery(filterquery",{"_index":20550,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapsortingquerytodomain(sortingquery",{"_index":20549,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapupdaterequest(externaltoolparams",{"_index":20560,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolid",{"_index":5818,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.externaltoollogoservice.buildlogourl",{"_index":8676,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["this.externaltoollogoservice.fetchlogo(externaltool",{"_index":9492,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoollogoservice.getexternaltoolbinarylogo",{"_index":20567,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoollogoservice.validatelogosize(externaltool",{"_index":9534,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolparametervalidationservice.validatecommon(externaltool",{"_index":9531,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolpseudonymrepo",{"_index":17110,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17109,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findbyuserid(userid",{"_index":17107,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonym(query",{"_index":17113,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonymbypseudonym(pseudonym",{"_index":17112,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolrepo.deletebyid(toolid",{"_index":9429,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.find(query",{"_index":9410,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyid(id",{"_index":9419,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyname(name",{"_index":9422,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyoauth2configclientid(clientid",{"_index":9423,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(externaltool",{"_index":9406,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(toupdate",{"_index":9409,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolservice.createexternaltool(externaltool",{"_index":9494,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.deleteexternaltool(toolid",{"_index":9502,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.findbyid(loadedschoolexternaltool.toolid",{"_index":6176,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.externaltoolservice.findbyid(schoolexternaltool.toolid",{"_index":8690,"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":18295,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.externaltoolservice.findbyid(toolid",{"_index":8896,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyname",{"_index":15429,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.externaltoolservice.findexternaltoolbyname(externaltool.name",{"_index":8983,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid",{"_index":9812,"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":9549,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltools",{"_index":8666,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolservice.findexternaltools(query",{"_index":9501,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.updateexternaltool(toupdate",{"_index":9500,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltooluc.createexternaltool(currentuser.userid",{"_index":20545,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.deleteexternaltool(currentuser.userid",{"_index":20564,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.findexternaltool(currentuser.userid",{"_index":20551,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.getexternaltool",{"_index":20556,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.updateexternaltool",{"_index":20561,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolversionservice.increaseversionofnewtoolifnecessary(loadedtool",{"_index":9408,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaluser",{"_index":15823,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externaluserid",{"_index":8526,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ProvisioningDto.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.extractaccount(account",{"_index":13620,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakuser",{"_index":13605,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakusers[0",{"_index":13612,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(user",{"_index":13623,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcaccountid",{"_index":13640,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcsystemid",{"_index":13636,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcuserid",{"_index":13638,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractparamsfromrequest(request",{"_index":13825,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.extractreferences(elements",{"_index":2994,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.extractvalidationerrordetails(childerror",{"_index":1268,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.extractvalidationerrordetails(validationerror",{"_index":1258,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.factory.createdto",{"_index":17840,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.feathersauthprovider.getpermittedschools(userid",{"_index":9697,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getpermittedtargets(userid",{"_index":9698,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getuserschoolpermissions(userid",{"_index":9683,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getusertargetpermissions(userid",{"_index":9684,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersserviceprovider.getservice('/etherpad/pads",{"_index":8493,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["this.feathersserviceprovider.getservice('/nexboard/boards",{"_index":15343,"title":{},"body":{"injectables/NexboardService.html":{}}}],["this.feathersserviceprovider.getservice('users",{"_index":9666,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`${targetmodel}/:scopeid/userpermissions",{"_index":9653,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`/users/:scopeid/${targetmodel",{"_index":9658,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`path",{"_index":23319,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.features",{"_index":6625,"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":12232,"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":9873,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["this.federalstateservice.findfederalstatebyname",{"_index":16452,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.fetchbase64logo(externaltool.logourl",{"_index":8885,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.filecopyservice.copyfilesofparent",{"_index":17249,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.filecopyservicefactory.build",{"_index":4783,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.filesrepo.delete(file",{"_index":8070,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesrepo.findforcleanup(thresholddate",{"_index":8042,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent",{"_index":18504,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent(copyfilesofparentparams",{"_index":6386,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(fileelement.id",{"_index":17305,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(lesson.id",{"_index":14305,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(submission.id",{"_index":19298,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(task.id",{"_index":20008,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.filesstorageservice.copyfilesofparent(userid",{"_index":10607,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.deletefilesofparent(filerecords",{"_index":10616,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload",{"_index":10614,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload.parentid",{"_index":10610,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageuc.downloadbysecuritytoken(token",{"_index":10349,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filesstorageuc.updatesecuritystatus(token",{"_index":10357,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filestoragemqproducer.copyfilesofparent(param",{"_index":10527,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.deletefilesofparent(parentid",{"_index":10532,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.listfilesofparent(param",{"_index":10530,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filesystemadapter.createdir(targetfolder",{"_index":11780,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.eol",{"_index":11795,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(__dirname",{"_index":11696,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(basedir",{"_index":11718,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(targetfolder",{"_index":11713,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(this.basedir",{"_index":11700,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readdir(basedir",{"_index":11716,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readfile(filepath",{"_index":11764,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.writefile(filepath",{"_index":11794,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filetype",{"_index":17191,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["this.filterallowed(userid",{"_index":4179,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.filterbypermission(elements",{"_index":8172,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.filtercoursesbytoolavailability(courses",{"_index":9775,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.filtersubmissionsbypermission(submissions",{"_index":19323,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.filtertoolswithpermissions(userid",{"_index":6160,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.findallforstudent(user",{"_index":20066,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findallforteacher(user",{"_index":20067,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findalltasks(currentuser",{"_index":19657,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.findandcount(scope",{"_index":10272,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findbyexternalid(externalid",{"_index":21014,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.findbyid(accountid",{"_index":735,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findbyid(boardnode.parentid",{"_index":3341,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(id",{"_index":3318,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(userid",{"_index":21705,"title":{},"body":{"injectables/UserService.html":{}}}],["this.findbynames([rolename.administrator",{"_index":17653,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.findbyuserid(userid",{"_index":737,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findexistinggridelement(elementwithposition",{"_index":7765,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.findexistingtargets(columnboardids",{"_index":4936,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.findexternaltoolpseudonymsbyuserid(userid",{"_index":17095,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findimportusersandcount(scope.query",{"_index":12980,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this.findlegacyltitool",{"_index":15432,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findmigrationbyschool(schoolid",{"_index":21390,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.findnewsandcount(scope.query",{"_index":15213,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.findnextcloudtool",{"_index":15406,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findoneorfail(scope",{"_index":10269,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findpseudonymbypseudonym(pseudonym",{"_index":9768,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.findpseudonymsbyuserid(userid",{"_index":17094,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findtasksandcount(scope.query",{"_index":19887,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.findteambyid(teamid",{"_index":4715,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.finduserafterprovisioningorthrow(externaluserid",{"_index":15562,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.finishcoursecopying(coursecopy",{"_index":6742,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.finished",{"_index":12493,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.add(user",{"_index":12559,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.getidentifiers('_id",{"_index":12496,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.remove(user",{"_index":12561,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.set(props.finished",{"_index":12483,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finishedat",{"_index":21235,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.finishedat.toisostring",{"_index":21260,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["this.firstname",{"_index":9624,"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":20967,"title":{},"body":{"classes/UserDO.html":{}}}],["this.flagged",{"_index":12042,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.forcepasswordchange",{"_index":12605,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.formattedjwt",{"_index":1466,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.friendlyurl",{"_index":7233,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.from",{"_index":8516,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.frontchannel_logout_uri",{"_index":7239,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.frontchannellogouturi",{"_index":15644,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.fullname",{"_index":2069,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.fullpath",{"_index":17436,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.fwulearningcontentsuc.get(path",{"_index":10817,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["this.generatearray(amount",{"_index":3515,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.generatebrokersystems([system",{"_index":19554,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatebrokersystems(systems",{"_index":19561,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatechecksum(callname",{"_index":2230,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.generatepreview(params",{"_index":16808,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.get('/api/v1/me",{"_index":1021,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.get('/events",{"_index":3958,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.get(`${oauthconfig.authendpoint}?${query",{"_index":11530,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(location",{"_index":11554,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(path",{"_index":1073,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getadditionalerrorinfo(idtoken.email",{"_index":13125,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.getadminidandtoken",{"_index":1068,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getandpseudonyms(students",{"_index":9793,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(substitutionteachers",{"_index":9795,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(teachers",{"_index":9794,"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":1055,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.members?roomname=${groupname",{"_index":1053,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.moderators?roomname=${groupname",{"_index":1051,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/users.list?${querystring",{"_index":1031,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getbbbrequestconfig(this.presentationurl",{"_index":2198,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getboardauthorizable(boarddo",{"_index":3100,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.getboardvalue(contextexternaltool.contextref.id",{"_index":1879,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.getbydraftforcreatorquery(creatorid",{"_index":19993,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(false",{"_index":19994,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(isdraft",{"_index":19992,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(true",{"_index":19995,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getchildren(boardnode",{"_index":3244,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getchildren(boardnode).map((node",{"_index":3237,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getcollectionnames",{"_index":7976,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getcopiesforchildrenof(original",{"_index":17238,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcopyname(originaltask.name",{"_index":19744,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getcopystatusesforchildrenof(original",{"_index":17241,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcoursegroupstudentids",{"_index":12329,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.getcoursesfromuserspseudonym(loadedpseudonym",{"_index":9774,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getcoursevalue(board.context.id",{"_index":1890,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.getcoursevalue(contextexternaltool.contextref.id",{"_index":1876,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{}}}],["this.getdatabasecollection(collectionname",{"_index":7963,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getdefaultmaxduedate",{"_index":20076,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getdestinationcourse(parentparams.courseid",{"_index":19738,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getdestinationlesson(parentparams.lessonid",{"_index":19743,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getelement(position",{"_index":7607,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getelementbytargetid(id",{"_index":2644,"title":{},"body":{"entities/Board.html":{}}}],["this.getelements().map((el",{"_index":2654,"title":{},"body":{"entities/Board.html":{}}}],["this.getelementwithwritepermission(userid",{"_index":8317,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.getentitypermissions(userid",{"_index":9691,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.getexternalsubclientmapperconfiguration",{"_index":13460,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getfilteredgroupusers(externalgroup",{"_index":16485,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.getfinisheduserids",{"_index":12506,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getfirstopenindex",{"_index":7602,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getgradedsubmissions",{"_index":12540,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getgroupdata(groupname",{"_index":1040,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getid",{"_index":7556,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getidpmapperconfiguration(idpalias",{"_index":13481,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getinternalid(accountdto.id",{"_index":888,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(accountid",{"_index":903,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(id",{"_index":879,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getjwtforuser(user.id",{"_index":16343,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.getjwtfromresponse(response",{"_index":1489,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getloginurl(sourcesystem",{"_index":21539,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getloginurl(targetsystem",{"_index":21536,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getmaxsubmissions",{"_index":12544,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getmeetinginfo(new",{"_index":2212,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getnewspermissions(userid",{"_index":15311,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getoauthconfig",{"_index":13555,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.getorconstructdashboardmodelentity(entity",{"_index":7784,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.getorcreatecourseboard(courseid",{"_index":3639,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.getparent",{"_index":11927,"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":1470,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getpermittedcourses(user",{"_index":20052,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedlessons(user",{"_index":20053,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedtargets(userid",{"_index":15306,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getpostloginredirecturl",{"_index":15563,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getpreviewfile(params",{"_index":16809,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpropertyvalue(e",{"_index":8388,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.getprovisioningstrategy(oauthdata.system.provisioningstrategy",{"_index":16965,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getprovisioningstrategy(system.provisioningstrategy",{"_index":16961,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getredirecturi(migration",{"_index":15586,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getreferencesfromposition(from",{"_index":7578,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getrepository(tool",{"_index":17098,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getrepository(tool).findbyuseridandtoolidorfail(user.id",{"_index":17092,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getseedfolder",{"_index":11703,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.getshorttitle",{"_index":6665,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.getsubmissionitems",{"_index":12516,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmittedsubmissions",{"_index":12539,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmitterids",{"_index":12334,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.gettargetfilters(userid",{"_index":15323,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.gettargetfolder(toseedfolder",{"_index":11779,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.gettasksitems",{"_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.getteammemberids",{"_index":12328,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.geturl('create",{"_index":2193,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('end",{"_index":2214,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('getmeetinginfo",{"_index":2218,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('join",{"_index":2213,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl(filesstorageinternalactions.downloadbysecuritytoken",{"_index":1184,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.geturl(filesstorageinternalactions.updatesecuritystatus",{"_index":1186,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.getuser(userid",{"_index":9648,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.getuserrole(user",{"_index":9772,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getvideoconferenceoptions(scope",{"_index":21994,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.grade",{"_index":12301,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.gradecomment",{"_index":12303,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.graded",{"_index":3775,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.gradelevel",{"_index":4296,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.grant_type",{"_index":1349,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.granttype",{"_index":12358,"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":7568,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(key",{"_index":7594,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(this.gridindexfromposition(position",{"_index":7615,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(i",{"_index":7606,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(key",{"_index":7574,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(this.gridindexfromposition(position",{"_index":7575,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].foreach((key",{"_index":7587,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].map((key",{"_index":7572,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(index",{"_index":7605,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(element.pos",{"_index":7570,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(position",{"_index":7618,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.values",{"_index":7600,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.gridelements",{"_index":7673,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.gridelements.set(props.gridelements",{"_index":7648,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.group.externalid",{"_index":18345,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.group.externalorganizationid",{"_index":18346,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.groupelements",{"_index":7672,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.groupid",{"_index":7671,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.grouprepo.delete(group",{"_index":11280,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyexternalsource(externalid",{"_index":11275,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyid(id",{"_index":11273,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyuser(user",{"_index":11276,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findclassesforschool(schoolid",{"_index":11277,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.save(group",{"_index":11279,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprule",{"_index":17891,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.groups.set(props.groups",{"_index":6627,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.groupservice.delete(group",{"_index":16519,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyexternalsource",{"_index":16480,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyuser(user",{"_index":16507,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.save(group",{"_index":16494,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupuc.findallclasses",{"_index":11059,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuc.getgroup(currentuser.userid",{"_index":11066,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuser.externaluserid",{"_index":21104,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.groupuser.rolename",{"_index":21105,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.guest",{"_index":2074,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.guestpolicy",{"_index":1991,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.handlecolumnboardintegration(roomid",{"_index":17814,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.hasaccesstosubmission(user",{"_index":19274,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haschangedparameternames(oldparams",{"_index":9591,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterregex(newparams",{"_index":9592,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterscope(newparams",{"_index":9594,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparametertypes(newparams",{"_index":9593,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedrequiredparameters(oldparams",{"_index":9590,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschild(child",{"_index":2769,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.hascoursereadpermission(user",{"_index":17757,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hascoursewritepermission(user",{"_index":17758,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hasduplicateattributes(externaltool.parameters",{"_index":8963,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.hasnewrequiredparameter(oldparams",{"_index":9589,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.hasparent",{"_index":3574,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.hasparentpermission(user",{"_index":19956,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.hasparenttaskreadaccess(user",{"_index":19279,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasparenttaskwriteaccess(user",{"_index":19278,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haspath(req.route",{"_index":17437,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.haspermission(user",{"_index":1822,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissionbyreferences(userid",{"_index":1794,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.hasreadaccess(user",{"_index":19276,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasscanstatuswontcheck",{"_index":10191,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.hasschoolmigrated(externalid",{"_index":18444,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.haswriteaccess(user",{"_index":19275,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.headers",{"_index":1931,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.height",{"_index":4071,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{}}}],["this.hidden",{"_index":3436,"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":21527,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.host}${location",{"_index":11541,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.httpservice",{"_index":1075,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.httpservice.get(input.system.provisioningurl",{"_index":18069,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.httpservice.get(logourl",{"_index":8886,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.httpservice.get(url",{"_index":2215,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{}}}],["this.httpservice.get(url.tostring",{"_index":3962,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.httpservice.post(tokenendpoint",{"_index":15687,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.httpservice.post(url",{"_index":2199,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.httpservice.request",{"_index":13557,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.httpstatus",{"_index":8829,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["this.hydracookies",{"_index":6214,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.hydrassoservice.generateconfig(oauthclientid",{"_index":11454,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.initauth(hydraoauthconfig",{"_index":11464,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.processredirect(dto",{"_index":11473,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrauc.getoauthtoken(oauthclientid",{"_index":16301,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauc.requestauthcode(currentuser.userid",{"_index":16307,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.id",{"_index":404,"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/UserLoginMigrationResponse.html":{},"classes/UsersList.html":{}}}],["this.identifiername",{"_index":15451,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.idmoauthservice.getoauthconfig",{"_index":19576,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.isoauthconfigavailable",{"_index":19573,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.resourceownerpasswordgrant(username",{"_index":14414,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.idmreferenceid",{"_index":810,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["this.idmservice.findaccountbydbcaccountid(id.tostring",{"_index":611,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idmservice.findaccountbyid(id",{"_index":609,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idphint",{"_index":12354,"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":15611,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.idtokenservice.createidtoken(userid",{"_index":15958,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.imagemagick(original.data",{"_index":16761,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.imageurl",{"_index":14361,"title":{},"body":{"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.html":{},"classes/MetaTagExtractorResponse.html":{}}}],["this.importhash",{"_index":20965,"title":{},"body":{"classes/UserDO.html":{}}}],["this.importuserid",{"_index":12851,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.importuserschoolid",{"_index":18356,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.info.appname",{"_index":1282,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.basepath",{"_index":1285,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.mountsdescription",{"_index":1287,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.port",{"_index":1283,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.initializes3clientmap",{"_index":8036,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.injectenvvars(filecontent",{"_index":11765,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.injectenvvars(s",{"_index":11744,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.inmaintenancesince",{"_index":12224,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.inner",{"_index":5346,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.caninline",{"_index":5351,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.content",{"_index":5352,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.transform",{"_index":5353,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inputformat",{"_index":17560,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.inusermigration",{"_index":12227,"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":4293,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.isallowedaschild(child",{"_index":2764,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.isarchived",{"_index":18960,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.isauthenticationresponse(response.body",{"_index":1513,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isauthorizedstudent(userid",{"_index":19214,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.isautoparameterglobal(param",{"_index":8970,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isblocked",{"_index":10184,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isclientidunique(externaltool",{"_index":9546,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.iscolumnboardfeatureflagactive",{"_index":8178,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.iscustomparameternameempty(param",{"_index":8965,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidregex(param",{"_index":8980,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidtype(param",{"_index":8979,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdirectory",{"_index":10029,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.isdraft",{"_index":3776,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isfinished",{"_index":3778,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.isfinishedforuser(user",{"_index":12545,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isglobalparametervalid(param",{"_index":8967,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isgraceperiodexpired(userloginmigration",{"_index":4531,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.isgraded",{"_index":12338,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.isgradedforuser(user",{"_index":12549,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isgroup",{"_index":7548,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.ishidden",{"_index":7241,"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":5405,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islatest(schoolexternaltool",{"_index":5404,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islocal",{"_index":7226,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.isnameunique(externaltool",{"_index":8960,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15556,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.isoptional",{"_index":7298,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.ispending",{"_index":10189,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispreviewpossible",{"_index":10186,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispropertyprivacyprotected(e.target",{"_index":8396,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.isregexcommentmandatoryandfilled(param",{"_index":8974,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isregexvalid(param",{"_index":8977,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isschoolnumberunique(school",{"_index":18515,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.isslash(inputpath",{"_index":1496,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isslash(path",{"_index":1499,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.issubmitted",{"_index":12321,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.issubmittedforuser(user",{"_index":12548,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.issubstitutionteacher",{"_index":3777,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.issuer",{"_index":12368,"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":8193,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.istemplate",{"_index":7224,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.istoolstatuslatestorthrow(userid",{"_index":20683,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.isuniqueemail(email",{"_index":955,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.isupgradable",{"_index":4354,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.isuserreferenced(user",{"_index":1678,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["this.isusersubmitter(user",{"_index":12320,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.isusersubstitutionteacherincourse(user",{"_index":12546,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isvaluevalidfortype(param.type",{"_index":5479,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.isverified",{"_index":10160,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.joinpath(os.tmpdir",{"_index":10421,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.jwksendpoint",{"_index":12370,"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":15481,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["this.jwtservice.sign(user",{"_index":1563,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.addtowhitelist(user.accountid",{"_index":1566,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.iswhitelisted(accountid",{"_index":13193,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["this.jwtvalidationadapter.removefromwhitelist(decodedjwt.accountid",{"_index":1571,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.kcadmin.callkcadminclient",{"_index":13399,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getadminuser",{"_index":13723,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getclientid",{"_index":13433,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.kcadmin.setpasswordpolicy",{"_index":13511,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadmin.testkcconnection",{"_index":13507,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadminclient",{"_index":13283,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.auth(this.kcsettings.credentials",{"_index":13284,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.callkcadminclient",{"_index":13588,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.del",{"_index":13624,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.find",{"_index":13621,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.findone",{"_index":13603,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.setconfig",{"_index":13279,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminservice.getclientid",{"_index":13545,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getclientsecret",{"_index":13547,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getwellknownurl",{"_index":13541,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.testkcconnection",{"_index":13554,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcsettings.baseurl}/realms/${this.kcsettings.realmname}/.well",{"_index":13285,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.clientid",{"_index":13288,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.credentials.username",{"_index":13287,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.realmname",{"_index":13298,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.key",{"_index":7206,"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":19019,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring(cryptojs.enc.utf8",{"_index":19022,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.keycloakconfigservice.configurebrokerflows",{"_index":13513,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureclient",{"_index":13512,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureidentityproviders",{"_index":13515,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configurerealm",{"_index":13514,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigurationuc.check",{"_index":11631,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.clean(options.pagesize",{"_index":11639,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.configure",{"_index":11652,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.migrate",{"_index":11660,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.seed",{"_index":11646,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakmanagementuc.check",{"_index":13661,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.configure",{"_index":13662,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.seed",{"_index":13663,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmigrationservice.migrate(skip",{"_index":13510,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.clean(pagesize",{"_index":13508,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.seed",{"_index":13509,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keyvalue",{"_index":1596,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.language",{"_index":12607,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastauthorizationtime",{"_index":13301,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.lastloginsystemchange",{"_index":12611,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastmodifytimestamp",{"_index":12383,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastname",{"_index":9626,"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":20969,"title":{},"body":{"classes/UserDO.html":{}}}],["this.lastsuccessfulfullsync",{"_index":12379,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsuccessfulpartialsync",{"_index":12381,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsyncattempt",{"_index":12377,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lasttriedfailedlogin",{"_index":195,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.lastupdatedat",{"_index":20348,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["this.launch_presentation_locale",{"_index":14598,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["this.ldapactive",{"_index":19412,"title":{},"body":{"classes/SystemDto.html":{}}}],["this.ldapconfig",{"_index":12440,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.ldapdn",{"_index":4298,"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":12049,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.ldapencryptionservice.encrypt",{"_index":11849,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.ldapservice.checkldapcredentials(system",{"_index":13841,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.legacylogger.debug",{"_index":9415,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.legayschoolrule",{"_index":17885,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lesson",{"_index":12480,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.hidden",{"_index":12556,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.name",{"_index":12555,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lessoncopyservice.copylesson",{"_index":3030,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.lessoncopyservice.updatecopiedembeddedtasks(elementcopystatus",{"_index":3057,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.lessoncopyuc.copylesson",{"_index":17798,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.lessonhidden",{"_index":19780,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.lessonreadpermission(user",{"_index":14270,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.lessonrepo",{"_index":12151,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.lessonrepo.delete(lesson",{"_index":14306,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids([originallesson.course.id",{"_index":14189,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.lessonrepo.findallbycourseids([roomid",{"_index":17811,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.lessonrepo.findallbycourseids(courseids",{"_index":14307,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids(readcourseids",{"_index":20100,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findallbycourseids(writecourseids",{"_index":20099,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findbyid(lessonid",{"_index":14181,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.lessonrepo.findbyuserid(userid",{"_index":14308,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.save(updatedlessons",{"_index":14313,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrule",{"_index":17881,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lessonrule.haspermission(user",{"_index":19959,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.lessonservice.deletelesson(lesson",{"_index":14324,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbycourseids([courseid",{"_index":5093,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.lessonservice.findbyid(lessonid",{"_index":14319,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18864,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lessonservice.savelesson(lesson",{"_index":23790,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.lessonuc.delete(currentuser.userid",{"_index":14161,"title":{},"body":{"controllers/LessonController.html":{}}}],["this.lessonwritepermission(user",{"_index":14271,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.level",{"_index":3568,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.license",{"_index":12123,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.limit",{"_index":16596,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.loadaccount(username",{"_index":13832,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.loadaccounts",{"_index":13718,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.loadallcollectionsfromdatabase(folder",{"_index":11726,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadallcollectionsfromfilesystem(folder",{"_index":11725,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11761,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loader.loadauthorizableobject(entityname",{"_index":1797,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.loadtoolhierarchy(schoolexternaltoolid",{"_index":20682,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.loadusers",{"_index":13717,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.localcookies",{"_index":6212,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.location",{"_index":7290,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["this.logger",{"_index":18660,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.logger.alert(message",{"_index":8429,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.crit(message",{"_index":8430,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.debug",{"_index":3806,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["this.logger.debug('[ldap",{"_index":13803,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug('usersearcindex",{"_index":11810,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.debug(`adding",{"_index":15423,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`contextexternaltool",{"_index":20497,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.logger.debug(`created",{"_index":2311,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`externaltool",{"_index":20547,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.logger.debug(`generating",{"_index":16342,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`oauth",{"_index":16340,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`removing",{"_index":15418,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`schoolexternaltool",{"_index":20832,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.logger.debug(`updated",{"_index":2317,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(err",{"_index":13801,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug(message",{"_index":14445,"title":{},"body":{"injectables/Logger.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.logger.debug(new",{"_index":16717,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.logger.debug(this.createmessage(message",{"_index":13916,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.emerg(message",{"_index":8428,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error('could",{"_index":8497,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["this.logger.error(`${err.message",{"_index":17943,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.error(`migration",{"_index":13680,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.error(`the",{"_index":8051,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.error(err",{"_index":13664,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.error(error",{"_index":8072,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"controllers/OauthSSOController.html":{}}}],["this.logger.error(loggable",{"_index":10914,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.logger.error(message",{"_index":8431,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error(this.createmessage(result",{"_index":13918,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.http(logging",{"_index":17478,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.info",{"_index":13855,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.logger.info(message",{"_index":14444,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.info(new",{"_index":8889,"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":13914,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.log",{"_index":7997,"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":8235,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log('cleanup",{"_index":8004,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.log(`${oauthconfig.authendpoint}?${query",{"_index":11528,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(`...deleted",{"_index":13728,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`...migrated",{"_index":13681,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`after",{"_index":8237,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log(`amount",{"_index":13726,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`could",{"_index":17953,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(`initialized",{"_index":8058,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.log(`migration",{"_index":13679,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`starting",{"_index":13724,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`stream",{"_index":17997,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(axiosconfig",{"_index":11529,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(err",{"_index":16254,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.log(localdto",{"_index":11552,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(new",{"_index":23349,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.notice(message",{"_index":14443,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.notice(this.createmessage(message",{"_index":13917,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.setcontext(`${context.getclass().name}::${context.gethandler().name",{"_index":17471,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.setcontext(boarduc.name",{"_index":3805,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.logger.setcontext(carduc.name",{"_index":4176,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.logger.setcontext(collaborativestorageadapter.name",{"_index":4586,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.logger.setcontext(collaborativestoragecontroller.name",{"_index":4659,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.logger.setcontext(collaborativestorageservice.name",{"_index":4708,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.logger.setcontext(columnuc.name",{"_index":5029,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["this.logger.setcontext(databasemanagementuc.name",{"_index":11693,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.setcontext(deletefilesconsole.name",{"_index":7996,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.setcontext(deletefilesuc.name",{"_index":8035,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.setcontext(elementuc.name",{"_index":8316,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.logger.setcontext(filesstorageclientadapterservice.name",{"_index":10526,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.logger.setcontext(filesstorageconsumer.name",{"_index":10605,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.logger.setcontext(filesstorageproducer.name",{"_index":10717,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.logger.setcontext(fwulearningcontentsuc.name",{"_index":10855,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.logger.setcontext(hydraoauthuc.name",{"_index":11451,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.logger.setcontext(keycloakconsole.name",{"_index":11618,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.logger.setcontext(keycloakmanagementcontroller.name",{"_index":13659,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.setcontext(keycloakmigrationservice.name",{"_index":13673,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.setcontext(ldapservice.name",{"_index":13786,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.setcontext(newsuc.name",{"_index":15296,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.logger.setcontext(nextcloudstrategy.name",{"_index":15379,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.setcontext(oauthservice.name",{"_index":15546,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.logger.setcontext(oauthssocontroller.name",{"_index":16250,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.setcontext(oauthuc.name",{"_index":16335,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.setcontext(previewgeneratorconsumer.name",{"_index":16714,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.logger.setcontext(previewgeneratorservice.name",{"_index":16752,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.logger.setcontext(previewproducer.name",{"_index":16773,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.logger.setcontext(previewservice.name",{"_index":16798,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.setcontext(restartuserloginmigrationuc.name",{"_index":17520,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(s3clientadapter.name",{"_index":17939,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.setcontext(sharetokenuc.name",{"_index":18895,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.logger.setcontext(startuserloginmigrationuc.name",{"_index":18991,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(youruc.name",{"_index":23347,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.warn",{"_index":15436,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.warn('no",{"_index":19350,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["this.logger.warn(`boardcopyservice",{"_index":3023,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warn(`completemigration",{"_index":18456,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(`could",{"_index":16805,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warn(`placeholder",{"_index":11836,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.warn(`restartmigration",{"_index":18462,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(err",{"_index":3004,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warning(message",{"_index":14442,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.warning(this.createmessage(message",{"_index":13915,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.loginname",{"_index":12853,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.loginuc.getlogindata(user",{"_index":14514,"title":{},"body":{"controllers/LoginController.html":{}}}],["this.loginurl",{"_index":21542,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.logmigrationinformation",{"_index":21429,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logmigrationinformation(currentuserid",{"_index":21416,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logo",{"_index":8574,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["this.logo_url",{"_index":7210,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.logobase64",{"_index":8779,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["this.logourl",{"_index":5823,"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":12366,"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":16046,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.logouturl",{"_index":1987,"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":18860,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lti_message_type",{"_index":7212,"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":7214,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.ltirepo.findbyoauthclientid(oauthclientid",{"_index":11564,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.ltitoolrepo.findbyclientidandislocal(clientid",{"_index":14764,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["this.ltitoolrepo.findbyname(this.client.oidcinternalname",{"_index":15434,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.ltitoolservice.findbyclientidandislocal(clientid",{"_index":16079,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.mandatory",{"_index":21265,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["this.mandatorysince",{"_index":21229,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.mapbasictoolconfigdotoentity(entitydo.config",{"_index":9171,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapbasictoolconfigdotoresponse(externaltool.config",{"_index":9320,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapbasictoolconfigtodo(entity.config",{"_index":9147,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapboardelements(board",{"_index":17682,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["this.mapcolumnboardelement(element",{"_index":8189,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.mapcontenttoresource(lesson.id",{"_index":5102,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcontexttypetodotype(entity.contexttype",{"_index":5962,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcontexttypetoentitytype(entitydo.contextref.type",{"_index":5967,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcourseteacherstocopyrightowners(course",{"_index":5086,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcourseuserstousergroup(course",{"_index":3110,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.mapcustomparameterdostoentities(entitydo.parameters",{"_index":9178,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparameterstodos(entity.parameters",{"_index":9154,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparametertoresponse",{"_index":9323,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapdomainobjecttoentityproperties(domainobject",{"_index":9056,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapdotoentityproperties(domainobject",{"_index":2320,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.mapelementtoentity(e",{"_index":7760,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapentitytodo(entity",{"_index":2306,"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":14042,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(schools[0",{"_index":14046,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(userentity",{"_index":21013,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.mapentitytodo(userloginmigration",{"_index":21301,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this.mapentitytodomainobject(entities",{"_index":9062,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.mapentitytodomainobject(entity",{"_index":9050,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapexternalsourceentitytoexternalsource(entity.externalsource",{"_index":11114,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapexternalsourcetoexternalsourceentity(props.externalsource",{"_index":11103,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapfromdtotoresponse(system",{"_index":19534,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["this.mapfromentitytodto(entity",{"_index":17605,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["this.mapgridelementtomodel(elementwithposition",{"_index":7787,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapgroupuserentitytogroupuser(groupuser",{"_index":11109,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.maplessonelement(element",{"_index":8188,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maplti11toolconfigdotoentity(entitydo.config",{"_index":9173,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.maplti11toolconfigdotoresponse(externaltool.config",{"_index":9321,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.maplti11toolconfigtodo(entity.config",{"_index":9149,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configdotoentity(entitydo.config",{"_index":9172,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configtodo(entity.config",{"_index":9148,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2toolconfigdotoresponse(externaltool.config",{"_index":9322,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapper.mapdashboardtoentity(dashboardmodel",{"_index":7823,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtoentity(modelentity",{"_index":7819,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtomodel(entity",{"_index":7817,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdotoprovideroauthclient",{"_index":9404,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.mapper.maptoresponse(board",{"_index":17786,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.mappers.find((mapper",{"_index":5654,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.mappseudonymtouserdata(pseudonym",{"_index":9799,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.mapreferencetoentity(ref",{"_index":7752,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapreferencetomodel(ref",{"_index":7781,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolcreateparams.config",{"_index":9269,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolupdateparams.config",{"_index":9256,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterdo",{"_index":9260,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(contextexternaltool.parameters",{"_index":6037,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(request.parameters",{"_index":5993,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigcreate(externaltoolcreateparams.config",{"_index":9270,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigupdate(externaltoolupdateparams.config",{"_index":9257,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigcreate(externaltoolcreateparams.config",{"_index":9271,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigupdate(externaltoolupdateparams.config",{"_index":9258,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.mapsanisroletorolename(source",{"_index":18110,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.mapsubmissionitemtoresponse(item",{"_index":19175,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.maptaskelement(element",{"_index":8186,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoclassinfotoresponse(classinfo",{"_index":11218,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["this.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20465,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptocustomparameterentryresponse(schoolexternaltool.parameters",{"_index":18258,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptodo(entity",{"_index":4419,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoelementdtos(filtered",{"_index":8173,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoentity(domainobject",{"_index":4421,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoexternalgroupuser(relation",{"_index":18126,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptoresponse(element",{"_index":5659,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20462,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptoschoolexternaltoolresponse(tooldo",{"_index":18255,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptotoolreferenceresponse(toolreference",{"_index":6042,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.mapuserstoresponse(user",{"_index":19177,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.match",{"_index":12860,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.matchedby",{"_index":12062,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.matchsinglerule(selectedrules",{"_index":17895,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.materials.getitems",{"_index":11924,"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":11923,"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":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":{}}}],["this.max_redirects",{"_index":11476,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.maxexternaltoollogosizeinbytes",{"_index":8909,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["this.maxsubmissions",{"_index":3774,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.meetingid",{"_index":1947,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{}}}],["this.mergeelementintoposition(elementtomove",{"_index":7580,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.merlinreference",{"_index":12125,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.message",{"_index":3871,"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":5281,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["this.metatagextractorservice.fetchmetadata(url",{"_index":14916,"title":{},"body":{"injectables/MetaTagExtractorUc.html":{}}}],["this.metatagextractoruc.fetchmetadata(currentuser.userid",{"_index":14843,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["this.method",{"_index":17433,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.migrationcheckservice.shouldusermigrate",{"_index":15557,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.migrationerrorhandler(error",{"_index":16313,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.migrationmapper.mapdtotoresponse(migrationdto",{"_index":13971,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.mimetype",{"_index":6274,"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":21761,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.moderatorpw",{"_index":1993,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.name",{"_index":1985,"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":6657,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.newsrepo.delete(news",{"_index":15319,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallpublished(targets",{"_index":15309,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallunpublishedbyuser(targets",{"_index":15308,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findonebyid(id",{"_index":15312,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.save(news",{"_index":15302,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsuc.create",{"_index":15094,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.newsuc.delete(urlparams.newsid",{"_index":15108,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.findallforuser",{"_index":15098,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["this.newsuc.findonebyidforuser(urlparams.newsid",{"_index":15103,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.update",{"_index":15104,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.nowplusdays(options.expiresindays",{"_index":18905,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.numberofdrafttasks",{"_index":3438,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofplannedtasks",{"_index":3439,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofpublishedtasks",{"_index":3437,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.oauthadapterservice.getpublickey(oauthconfig.jwksendpoint",{"_index":15573,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthadapterservice.sendauthenticationcodetokenrequest",{"_index":15570,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthclientid",{"_index":7231,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.oauthconfig",{"_index":12436,"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":13556,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.decrypt(oauthconfig.clientsecret",{"_index":15602,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthencryptionservice.encrypt(await",{"_index":13546,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.encrypt(tool.secret",{"_index":11572,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.oauthmigrationfinalfinish",{"_index":14983,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationfinished",{"_index":14981,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationmandatory",{"_index":14979,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationpossible",{"_index":14977,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid",{"_index":16108,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid(clientid",{"_index":12664,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.oauthproviderloginflowservice.isnextcloudtool(tool",{"_index":16110,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowuc.getloginrequest(params.challenge",{"_index":16038,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderloginflowuc.patchloginrequest",{"_index":16041,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentresponse(consentrequest",{"_index":16052,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentsessionstoresponse(session",{"_index":16060,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.maploginresponse(loginresponse",{"_index":16039,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapoauthclientresponse(client",{"_index":16022,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirect",{"_index":16047,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirectresponse",{"_index":16043,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderservice.acceptconsentrequest",{"_index":15960,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.acceptloginrequest",{"_index":16116,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.acceptlogoutrequest(challenge",{"_index":16127,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["this.oauthproviderservice.createoauth2client(datawithdefaults",{"_index":15923,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.createoauth2client(oauthclient",{"_index":9405,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.deleteoauth2client(id",{"_index":15925,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.getconsentrequest(challenge",{"_index":15949,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.getloginrequest(challenge",{"_index":16103,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.getoauth2client",{"_index":9433,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(config.clientid",{"_index":9440,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(id",{"_index":15919,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.listconsentsessions(userid",{"_index":16197,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.listoauth2clients",{"_index":15918,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.rejectconsentrequest",{"_index":15957,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.rejectloginrequest",{"_index":16121,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.revokeconsentsession(userid",{"_index":16198,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(id",{"_index":15924,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(loadedoauthclient.client_id",{"_index":9437,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthprovideruc.listconsentsessions",{"_index":16058,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthprovideruc.revokeconsentsession(currentuser.userid",{"_index":16063,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthservice.authenticateuser",{"_index":16344,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(systemid",{"_index":15629,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(targetsystemid",{"_index":21415,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.oauthservice.getauthenticationurl(system.oauthconfig",{"_index":16338,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.getredirecturi(userloginmigration",{"_index":16341,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.provisionuser",{"_index":15630,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.requesttoken",{"_index":11456,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthservice.validatetoken(oauthtokens.idtoken",{"_index":11458,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthuc.migrate(jwt",{"_index":16310,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.processoauthlogin",{"_index":16281,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.startoauthlogin",{"_index":16274,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.officialschoolnumber",{"_index":8536,"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":15474,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.officialschoolnumberfromtarget",{"_index":15475,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.oidcconfig",{"_index":12438,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.oidcidentityprovidermapper.maptokeycloakidentityprovider(oidcconfig",{"_index":13473,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.oidcprovisioningservice.provisionexternalgroup(externalgroup",{"_index":16537,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternalschool(data.externalschool",{"_index":16528,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternaluser",{"_index":16530,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.removeexternalgroupsandaffiliation",{"_index":16534,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.openinnewtab",{"_index":20728,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.opennewtab",{"_index":7237,"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":15118,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["this.options",{"_index":8105,"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":1091,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminpassword",{"_index":1096,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.admintoken",{"_index":1092,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminuser",{"_index":1095,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.copyrightowners",{"_index":5204,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.creationyear",{"_index":5205,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.enabled",{"_index":1182,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.exchange",{"_index":1188,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.filesservicebaseurl",{"_index":1200,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.identifier",{"_index":5202,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.module",{"_index":20307,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["this.options.routingkey",{"_index":1189,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.options.title",{"_index":5203,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.uri",{"_index":1101,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.version",{"_index":5206,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organization",{"_index":11141,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.organizationelements.map((organizationelement",{"_index":5335,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["this.organizationid",{"_index":11200,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.organizations.flatmap((organization",{"_index":5199,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.map((organization",{"_index":5197,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.push(organizationbuilder",{"_index":5193,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.origin",{"_index":13079,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["this.origintoolid",{"_index":7266,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["this.orm.close",{"_index":15021,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["this.orm.getschemagenerator().ensureindexes",{"_index":7980,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.outdatedsince",{"_index":12613,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.pagecontentmapper.mapdtotoresponse(content",{"_index":21484,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.parameters",{"_index":5790,"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":15000,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.parametertype",{"_index":16603,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["this.params",{"_index":7356,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ShareTokenFactory.html":{}}}],["this.params(params",{"_index":527,"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":6270,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.parentname",{"_index":18784,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["this.parentpermission(user",{"_index":14277,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.parentsmap.get(card.id",{"_index":17363,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(column.id",{"_index":17362,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(columnboard.id",{"_index":17355,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(externaltoolelement.id",{"_index":17377,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(fileelement.id",{"_index":17364,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(linkelement.id",{"_index":17366,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(richtextelement.id",{"_index":17370,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissioncontainerelement.id",{"_index":17372,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissionitem.id",{"_index":17374,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.set(child.id",{"_index":17384,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsystemid",{"_index":16373,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["this.parenttype",{"_index":6276,"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":185,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.path",{"_index":3566,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.path.split(path_separator).filter((id",{"_index":3577,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.payload",{"_index":16665,"title":{},"body":{"classes/PreviewActionsLoggable.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.permission",{"_index":8097,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.permissionmapper.mapbodytodto(permissionsdto",{"_index":4737,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.permissions",{"_index":10019,"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":10020,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.persistandflush(dashboard",{"_index":7825,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.pickimage(data?.result?.ogimage",{"_index":14896,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["this.populate([task",{"_index":19849,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populate(tasks",{"_index":19930,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populateboard(board",{"_index":3640,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.populatereferences([submission",{"_index":19245,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populatereferences(submissions",{"_index":19247,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populateroles([teamuser.role",{"_index":20266,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(role.roles.getitems",{"_index":20271,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(user.roles.getitems",{"_index":21612,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this.populateroles(userentity.roles.getitems",{"_index":21012,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.position",{"_index":3570,"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":7573,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.post('/api/v1/logout",{"_index":1029,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post('/api/v1/users.setstatus",{"_index":1024,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post(path",{"_index":1069,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.addmoderator",{"_index":1047,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.archive",{"_index":1037,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.create",{"_index":1059,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.delete",{"_index":1061,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.invite",{"_index":1045,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.kick",{"_index":1041,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.removemoderator",{"_index":1049,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.unarchive",{"_index":1033,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.create",{"_index":1063,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.createtoken",{"_index":1027,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.delete",{"_index":1066,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postloginredirect",{"_index":15849,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["this.preferences",{"_index":12609,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.preparebbbcreateconfigbuilder(scope",{"_index":21907,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.previewgeneratorservice.generatepreview(payload",{"_index":16719,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.previewproducer.generate(payload",{"_index":16815,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.previewservice.deletepreviews(filerecords",{"_index":10615,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.previewstatus",{"_index":6280,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.previousexternalid",{"_index":12223,"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":7220,"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":12478,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.proceedbuttonurl",{"_index":16549,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.processcookies(localdto.response.headers['set",{"_index":11545,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.processredirectcascade(initresponse",{"_index":11465,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.product",{"_index":3851,"title":{},"body":{"classes/Builder.html":{}}}],["this.product.allowmodstounmuteusers",{"_index":2042,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.attendeepw",{"_index":2040,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.guest",{"_index":2092,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.guestpolicy",{"_index":2027,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.logouturl",{"_index":2025,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.moderatorpw",{"_index":2038,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.muteonstart",{"_index":2028,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.role",{"_index":2093,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.userid",{"_index":2094,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.welcome",{"_index":2026,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product['meta_bbb",{"_index":2030,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.properties",{"_index":20598,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["this.propertiestopopulate",{"_index":15219,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.props",{"_index":1605,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/DomainObject.html":{}}}],["this.props.alternativetext",{"_index":9926,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.caption",{"_index":9924,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.children",{"_index":2761,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.props.completed",{"_index":19134,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.context",{"_index":4761,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["this.props.contextexternaltoolid",{"_index":8724,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["this.props.copyrightowners",{"_index":5314,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.createdat",{"_index":2762,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.creationyear",{"_index":5313,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.description",{"_index":5234,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.duedate",{"_index":19055,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["this.props.externalsource",{"_index":11017,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.gradelevel",{"_index":4252,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.height",{"_index":3981,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["this.props.href",{"_index":5269,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.html",{"_index":5361,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.id",{"_index":1606,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["this.props.identifier",{"_index":5267,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.imageurl",{"_index":14352,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.inputformat",{"_index":17551,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.intendeduse",{"_index":5362,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.invitationlink",{"_index":4250,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.ldapdn",{"_index":4253,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.name",{"_index":4246,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.organizationid",{"_index":11018,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.pseudonym",{"_index":16995,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.requireduserrole",{"_index":3084,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.resources.map",{"_index":5182,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.resources.map((content",{"_index":5324,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["this.props.resources.push(props",{"_index":5187,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.schoolid",{"_index":4247,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.source",{"_index":4255,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceoptions",{"_index":4256,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceschoolid",{"_index":18507,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.successor",{"_index":4254,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.targetschoolid",{"_index":18509,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.teacherids",{"_index":4249,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.text",{"_index":17549,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.title",{"_index":3979,"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":16996,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.tspuid",{"_index":4466,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["this.props.type",{"_index":5268,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.updatedat",{"_index":2763,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.url",{"_index":5236,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.userid",{"_index":16997,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.userids",{"_index":4248,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.userids?.filter((userid1",{"_index":4257,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.users",{"_index":3083,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.users.filter((groupuser",{"_index":11019,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.users.length",{"_index":11021,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.version",{"_index":5243,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.year",{"_index":4251,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.propsfactory",{"_index":2402,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.afterbuild(afterbuildfn",{"_index":2413,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.associations(associations",{"_index":2416,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.build(params",{"_index":2405,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.params(params",{"_index":2417,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.rewindsequence",{"_index":2419,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.transient(transient",{"_index":2418,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory['sequence",{"_index":2426,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.provider",{"_index":12364,"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":12393,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.provisioningservice.getdata",{"_index":21418,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.provisioningservice.getdata(systemid",{"_index":15552,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["this.provisioningservice.provisiondata(data",{"_index":15561,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.provisioningstrategy",{"_index":12442,"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":12444,"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":9011,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/TooManyPseudonymsLoggableException.html":{}}}],["this.pseudonymrepo",{"_index":17111,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17108,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.findbyuserid(userid",{"_index":17105,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymservice",{"_index":15410,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.pseudonymservice.findbyuserandtoolorthrow(user",{"_index":12666,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.pseudonymservice.findorcreatepseudonym(user",{"_index":9801,"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":9805,"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":9771,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.getiframesubject(pseudonym.pseudonym",{"_index":9821,"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":17021,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["this.publicbackendurl",{"_index":21528,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.publicsubmissions",{"_index":12484,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.published",{"_index":2726,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{}}}],["this.publishedat",{"_index":22135,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["this.random(50",{"_index":3518,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.read",{"_index":10083,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.reason",{"_index":10128,"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":2076,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"classes/UserMigrationResponse.html":{}}}],["this.redirect_to",{"_index":17394,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["this.redirect_uri",{"_index":1347,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.redirecturi",{"_index":12360,"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":15640,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.redisclient",{"_index":18659,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.references",{"_index":7542,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.getitems",{"_index":2647,"title":{},"body":{"entities/Board.html":{}}}],["this.references.length",{"_index":7550,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.set(elements",{"_index":2651,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(newlist",{"_index":2685,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(onlyexistingreferences",{"_index":2674,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(props.references",{"_index":2640,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(references",{"_index":7637,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.referer",{"_index":11489,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.refid",{"_index":10076,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refownermodel",{"_index":10045,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.refpermmodel",{"_index":10078,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refreshtoken",{"_index":15613,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["this.regex",{"_index":7294,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.regexcomment",{"_index":7296,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.region",{"_index":12284,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.registerparentdata(parent",{"_index":17353,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.registerstrategy(iservstrategy",{"_index":16957,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(oidcmockstrategy",{"_index":16958,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(sanisstrategy",{"_index":16956,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.rejectconsentrequest(challenge",{"_index":15955,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.rejectloginrequest(challenge",{"_index":16105,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.rejectnothandled(card",{"_index":5719,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(column",{"_index":5718,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(columnboard",{"_index":5717,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(externaltoolelement",{"_index":5756,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(fileelement",{"_index":5725,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(linkelement",{"_index":5742,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(richtextelement",{"_index":5747,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submission",{"_index":5751,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submissioncontainerelement",{"_index":5750,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.relatedresources",{"_index":12127,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.relation.ktid",{"_index":11250,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.relation.rollen[0",{"_index":11252,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.removedeletedreferences(boardelementtargets",{"_index":2668,"title":{},"body":{"entities/Board.html":{}}}],["this.removefromposition(from",{"_index":7581,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removeprotectedentityfields(newentity",{"_index":2313,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.removeroomsnotinlist(rooms",{"_index":7582,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removesecrets(collectionname",{"_index":11785,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromstorageproviders(jsondocuments",{"_index":11860,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromsystems(jsondocuments",{"_index":11859,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.repeatcommand",{"_index":11638,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.repo.findallbyuserid(userid",{"_index":7033,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyid(courseid",{"_index":7032,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyowneruserid(userid",{"_index":10492,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbypermissionrefid(userid",{"_index":10487,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbyuserid(userid",{"_index":6872,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(coursegroups",{"_index":6875,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(courses",{"_index":7036,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.save(entities",{"_index":10491,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repos.get(type",{"_index":12163,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.boardnode",{"_index":12158,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.contextexternaltoolentity",{"_index":12160,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.course",{"_index":12142,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.coursegroup",{"_index":12144,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.lesson",{"_index":12150,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.school",{"_index":12148,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.schoolexternaltoolentity",{"_index":12156,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.submission",{"_index":12154,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.task",{"_index":12140,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.team",{"_index":12152,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.user",{"_index":12146,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.request(filespreviewevents.generate_preview",{"_index":16775,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.request(filesstorageevents.copy_files_of_parent",{"_index":10719,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.delete_files_of_parent",{"_index":10725,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.list_files_of_parent",{"_index":10722,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request.app.get('feathersapp",{"_index":9840,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["this.requestmapper.mapschoolexternaltoolrequest(body",{"_index":20829,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.requesttimeout",{"_index":20342,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["this.requesttoken",{"_index":10130,"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":15550,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.resizeandconvert(original",{"_index":16755,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.resolvepermissions(user",{"_index":16656,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(innerroles",{"_index":16655,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(user.roles.getitems",{"_index":16653,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolveplaceholder(placeholder.substring(2",{"_index":11827,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.resolverepo(objectname",{"_index":12168,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.resolvetokenrequest(responsetokenobservable",{"_index":15689,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.resource_link_id",{"_index":7216,"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":5356,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["this.resourceid",{"_index":15452,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resourcename",{"_index":15450,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resources.push(resource",{"_index":5196,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.response",{"_index":1014,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/HydraRedirectDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.responsemapper.maptoexternalgroupdtos(axiosresponse.data",{"_index":18073,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternalschooldto(axiosresponse.data",{"_index":18072,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternaluserdto(axiosresponse.data",{"_index":18070,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(createdschoolexternaltooldo",{"_index":20837,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":20827,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(updated",{"_index":20831,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptosearchlistresponse(found",{"_index":20824,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsetype",{"_index":12361,"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":21202,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.resultmap.get(child.id",{"_index":17275,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.get(original.id",{"_index":17233,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.set(original.id",{"_index":17239,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.role",{"_index":2071,"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":11320,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.roleids",{"_index":21077,"title":{},"body":{"classes/UserDto.html":{}}}],["this.rolename",{"_index":8528,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.rolenames",{"_index":12855,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.rolenames.push(...props.rolenames",{"_index":12035,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.rolerepo.findbyid(id",{"_index":17654,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbyids(ids",{"_index":17656,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbynames(names",{"_index":17658,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.roles",{"_index":7218,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["this.roles.getitems",{"_index":12178,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.isinitialized(true",{"_index":12175,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.set(props.roles",{"_index":12173,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roleservice.findbyid(roleid",{"_index":4716,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.roleservice.findbynames([externalgroupuser.rolename",{"_index":16498,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(externaluser.roles",{"_index":16459,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(names",{"_index":17664,"title":{},"body":{"injectables/RoleUc.html":{}}}],["this.roleservice.getprotectedroles",{"_index":21715,"title":{},"body":{"injectables/UserService.html":{}}}],["this.rollbackmigration(schooldocopy",{"_index":18437,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.rollbackmigration(userdocopy",{"_index":21555,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.room",{"_index":8167,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.color",{"_index":8214,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.id",{"_index":8213,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.isfinished",{"_index":8217,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.name",{"_index":8215,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.substitutionteachers.contains(this.user",{"_index":8184,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.teachers.contains(this.user",{"_index":8183,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomid",{"_index":18959,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.roomsauthorisationservice",{"_index":8170,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.haslessonreadpermission(this.user",{"_index":8177,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.hastaskreadpermission(this.user",{"_index":8176,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsservice.updateboard(board",{"_index":17839,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.roomsservice.updateboard(originalboard",{"_index":6731,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.roomsuc.getboard(urlparams.roomid",{"_index":17785,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.reorderboardelements(urlparams.roomid",{"_index":17791,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.updatevisibilityofboardelement",{"_index":17787,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.rootpath",{"_index":12386,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.routepath",{"_index":17438,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.rulemanager.selectrule(user",{"_index":1825,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.rules",{"_index":17878,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.rules.filter((rule",{"_index":17893,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.s3clientmap.get(storageprovider.id",{"_index":8078,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.set(provider.id",{"_index":8056,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.size",{"_index":8059,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.salt",{"_index":2225,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.save(this.create(course",{"_index":6992,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this.save(this.create(lesson",{"_index":14236,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this.save(this.create(task",{"_index":19848,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.saveall([entitydo",{"_index":2296,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.saverecursive(boardnode",{"_index":17361,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.school",{"_index":6611,"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":12061,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.schoolexternaltoolid",{"_index":5820,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["this.schoolexternaltoolrepo",{"_index":12157,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolexternaltoolrepo.deletebyexternaltoolid(toolid",{"_index":9428,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.deletebyid(schoolexternaltoolid",{"_index":18297,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.find",{"_index":18290,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyexternaltoolid(toolid",{"_index":9424,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyid(schoolexternaltoolid",{"_index":18289,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.save(schoolexternaltool",{"_index":18299,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrule",{"_index":17887,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.schoolexternaltoolservice.deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18324,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.findbyid",{"_index":6144,"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":8688,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["this.schoolexternaltoolservice.findschoolexternaltools",{"_index":8668,"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":18322,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool(updated",{"_index":18325,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltooluc.createschoolexternaltool",{"_index":20836,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.deleteschoolexternaltool(currentuser.userid",{"_index":20834,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.findschoolexternaltools(currentuser.userid",{"_index":20822,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.getschoolexternaltool",{"_index":20826,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.updateschoolexternaltool",{"_index":20830,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltoolvalidationservice.validate(schoolexternaltool",{"_index":18321,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolid",{"_index":4286,"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":4537,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.markunmigratedusersasoutdated(schoolid",{"_index":4539,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.migrateschool",{"_index":21430,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.migrateschool(data.externalschool.externalid",{"_index":16350,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.schoolmigrationservice.schooltomigrate",{"_index":16347,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.unmarkoutdatedusers(schoolid",{"_index":14132,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolmigrationservice.validategraceperiod(existinguserloginmigration",{"_index":14128,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.schoolname",{"_index":18367,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.schoolnumber_prefix_regex",{"_index":18105,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.schoolparameters",{"_index":12190,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.schoolrepo",{"_index":12149,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolrepo.findbyexternalid(externalid",{"_index":14104,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(id",{"_index":14103,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(schoolid",{"_index":13827,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyschoolnumber(school.officialschoolnumber",{"_index":18518,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.schoolrepo.findbyschoolnumber(schoolnumber",{"_index":14105,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.save(school",{"_index":14102,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrule.haspermission(user",{"_index":23800,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschool(params.schoolid",{"_index":23784,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschoolbyexternalid",{"_index":16444,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.schoolservice.getschoolbyid(ldapuser.schoolid",{"_index":13129,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.schoolservice.getschoolbyid(pseudonymuser.school.id",{"_index":17125,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.schoolservice.getschoolbyid(schoolexternaltool.schoolid",{"_index":1906,"title":{},"body":{"injectables/AutoSchoolNumberStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.schoolservice.getschoolbyid(schoolid",{"_index":14124,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.getschoolbyid(userdo.schoolid",{"_index":18439,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber",{"_index":18441,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber(officialschoolnumber",{"_index":14938,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["this.schoolservice.removefeature(schoolid",{"_index":21373,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.removefeature(userloginmigration.schoolid",{"_index":21330,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.schoolservice.save(originalschooldo",{"_index":18467,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.save(school",{"_index":16456,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.save(schooldo",{"_index":18466,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schooltool",{"_index":5856,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.schooltoolid",{"_index":6010,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["this.schooltoolref",{"_index":5784,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.schooluc.getmigration(schoolparams.schoolid",{"_index":13973,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schooluc.setmigration",{"_index":13966,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schoolvalidationservice.validate(school",{"_index":14106,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolyear",{"_index":4352,"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":18537,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearrepo.findcurrentyear",{"_index":18536,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearservice.getcurrentschoolyear",{"_index":16451,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.scope",{"_index":7292,"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":734,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.searchuser",{"_index":12388,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.searchuserpassword",{"_index":12390,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.secret",{"_index":7208,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.secretaccesskey",{"_index":12282,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.secretvalue",{"_index":1598,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.securitycheck",{"_index":10038,"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":10153,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.requesttoken",{"_index":10155,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.status",{"_index":10152,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.updatedat",{"_index":10154,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheckstatus",{"_index":6268,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.selectconfigureaction(newconfigs",{"_index":13443,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.sendhttpresponse(error",{"_index":10916,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.service.createteam(team",{"_index":4739,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.deleteteam(teamid",{"_index":4738,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteam(team",{"_index":4740,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteampermissionsforrole",{"_index":4734,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.sessionhandler(session",{"_index":16280,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.setmatch(props.user",{"_index":12040,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.share",{"_index":20177,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["this.sharetokenrepo.findonebytoken(token",{"_index":18858,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokenrepo.save(sharetoken",{"_index":18857,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokens",{"_index":10040,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.sharetokenservice.createtoken(payload",{"_index":18906,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptoken(token",{"_index":18911,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptokenwithparentname(token",{"_index":18907,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenuc.createsharetoken",{"_index":18732,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.importsharetoken",{"_index":18745,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.lookupsharetoken(currentuser.userid",{"_index":18741,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.shorttitle",{"_index":6894,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.shouldskipconsent(tool",{"_index":16114,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.size",{"_index":6266,"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":16595,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.skipconsent",{"_index":7235,"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":3029,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.source",{"_index":4302,"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":6941,"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":6246,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.sourceoptions",{"_index":4304,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.sourcesystem",{"_index":21250,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.sourcesystemid",{"_index":21225,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.stack",{"_index":8828,"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/UnknownQueryTypeLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.startdate",{"_index":6621,"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":21231,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.startuserloginmigrationuc.startmigration",{"_index":21198,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.state",{"_index":8095,"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":1927,"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":1011,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.statustext",{"_index":1929,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.storageclient.create(previewfilepath",{"_index":16758,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.deletedirectory(path",{"_index":16804,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(path",{"_index":10856,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.storageclient.get(pathtofile",{"_index":16760,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.get(previewfilepath",{"_index":16812,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storagefilename",{"_index":10030,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageprovider",{"_index":10032,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageproviderrepo.findall",{"_index":8054,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.strategies",{"_index":20674,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(externaltool.config.type",{"_index":20684,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(systemstrategy",{"_index":16967,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.get(toolconfigtype",{"_index":20679,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(strategy.gettype",{"_index":16959,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.set(toolconfigtype.basic",{"_index":20675,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.lti11",{"_index":20676,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.oauth2",{"_index":20677,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategy",{"_index":4587,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.createteam(team",{"_index":4590,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.deleteteam(teamid",{"_index":4589,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteam(team",{"_index":4591,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteampermissionsforrole(this.mapper.mapdomaintoadapter(team",{"_index":4588,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.stringifiedmessage(message",{"_index":13920,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.stringifymessage(message",{"_index":14482,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["this.student",{"_index":12293,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.student.id",{"_index":12327,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.studentcount",{"_index":4356,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.students",{"_index":6830,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getidentifiers('_id",{"_index":6832,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getitems",{"_index":6640,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.students.remove((u",{"_index":6835,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.set(props.students",{"_index":6613,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.subjects",{"_index":12129,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.submissionitemservice.create(userid",{"_index":8335,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.submissionitemservice.findbyid(submissionitemid",{"_index":19216,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemservice.update(submissionitem",{"_index":19217,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemsresponse",{"_index":19339,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["this.submissionitemuc.createelement(currentuser.userid",{"_index":3734,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.findsubmissionitems",{"_index":3719,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.updatesubmissionitem",{"_index":3725,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionrepo",{"_index":12155,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.submissionrepo.delete(submission",{"_index":19299,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findallbytaskids([taskid",{"_index":19297,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findbyid(submissionid",{"_index":19296,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrule",{"_index":17886,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.submissions",{"_index":12488,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.getitems",{"_index":12491,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.isinitialized(true",{"_index":12489,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.set(props.submissions",{"_index":12482,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissionservice.delete(submission",{"_index":19327,"title":{},"body":{"injectables/SubmissionUc.html":{},"injectables/TaskService.html":{}}}],["this.submissionservice.findallbytask(taskid",{"_index":19321,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionservice.findbyid(submissionid",{"_index":19324,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionuc.delete(currentuser.userid",{"_index":19102,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submissionuc.findallbytask(currentuser.userid",{"_index":19095,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submitted",{"_index":3773,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.submitters",{"_index":19303,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.submittingcoursegroupname",{"_index":19304,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.substitutionteachers.contains(user",{"_index":6650,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.getitems",{"_index":6646,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.remove((u",{"_index":6670,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.set(props.substitutionteachers",{"_index":6615,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.successful",{"_index":19345,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["this.successor",{"_index":4300,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.system",{"_index":8551,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.systemid",{"_index":193,"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":13441,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.systemrepo.findall",{"_index":19560,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oauth",{"_index":19557,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oidc",{"_index":19508,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(type",{"_index":19559,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(id",{"_index":19504,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemdto.id",{"_index":19564,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemid",{"_index":13826,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.systemrepo.save(system",{"_index":19572,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systems",{"_index":13996,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["this.systems.set(props.systems",{"_index":12229,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.systemservice.findbyid(id",{"_index":19591,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemservice.findbyid(sourceid",{"_index":21533,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbyid(systemid",{"_index":15547,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{}}}],["this.systemservice.findbyid(targetid",{"_index":21534,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbytype(systemtypeenum.oauth",{"_index":19589,"title":{},"body":{"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.systemservice.findbytype(type",{"_index":19590,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemuc.findbyfilter(filterparams.type",{"_index":19389,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.systemuc.findbyid(params.systemid",{"_index":19394,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.tags",{"_index":12131,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.target",{"_index":15132,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetgroups",{"_index":12133,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.targetid",{"_index":15131,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.targetmodel",{"_index":6951,"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":21252,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.targetsystemid",{"_index":21227,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.task",{"_index":12297,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.taskcopyservice.copytask",{"_index":3033,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.taskcopyuc.copytask",{"_index":19671,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskrepo",{"_index":12141,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.taskrepo.createtask(taskcopy",{"_index":19701,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.delete(task",{"_index":20010,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.findallbyparentids",{"_index":20078,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findallfinishedbyparentids",{"_index":20060,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findbyid(params.originaltaskid",{"_index":19691,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.findbyid(taskid",{"_index":19737,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrepo.findbysingleparent",{"_index":19751,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.taskrepo.findbysingleparent(creatorid",{"_index":20007,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.save(task",{"_index":19705,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrule",{"_index":17882,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.taskrule.haspermission(user",{"_index":19281,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.tasks.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.tasks.isinitialized(true",{"_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":{}}}],["this.taskservice.delete(task",{"_index":20104,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18866,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.taskservice.findbysingleparent(userid",{"_index":5105,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{}}}],["this.taskuc.changefinishedforuser(currentuser.userid",{"_index":19666,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.delete(currentuser.userid",{"_index":19673,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findall(currentuser.userid",{"_index":19660,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findallfinished(currentuser.userid",{"_index":19659,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.revertpublished(currentuser.userid",{"_index":19669,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.teacherids",{"_index":4290,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.teachernames",{"_index":4350,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["this.teachers",{"_index":4370,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["this.teachers.getitems",{"_index":6644,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.remove((u",{"_index":6668,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.set(props.teachers",{"_index":6614,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teamid",{"_index":3916,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.teammembers",{"_index":12311,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.getidentifiers('_id",{"_index":12314,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.set(props.teammembers",{"_index":12306,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teamname",{"_index":20194,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["this.teamrule",{"_index":17883,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.teamsmapper.mapentitytodto(await",{"_index":4709,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo",{"_index":12153,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.teamsrepo.findbyid(teamid",{"_index":4710,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo.findbyuserid(userid",{"_index":12654,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/TeamService.html":{}}}],["this.teamsrepo.save(teams",{"_index":20217,"title":{},"body":{"injectables/TeamService.html":{}}}],["this.teamstorageuc.updateuserpermissionsforrole(currentuser.userid",{"_index":4661,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.teamsubmissions",{"_index":12486,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.teamusers",{"_index":20122,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.text",{"_index":17559,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.throwifnotmoderator(bbbrole",{"_index":21904,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.thumbnail",{"_index":10033,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.thumbnailrequesttoken",{"_index":10036,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.timeout",{"_index":17863,"title":{},"body":{"classes/RpcMessageProducer.html":{},"todo.html":{}}}],["this.timeout(10000",{"_index":23468,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["this.timeoutms",{"_index":3955,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.timestamps",{"_index":3667,"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":3825,"title":{},"body":{"classes/BruteForceError.html":{}}}],["this.title",{"_index":2725,"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":{},"classes/MetaTagExtractorResponse.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/TeamNews.html":{}}}],["this.title.substring(0",{"_index":7553,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.toggleuserloginmigrationuc.setmigrationmandatory",{"_index":21204,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.token",{"_index":187,"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":12356,"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":15642,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.tokengenerator.generatesharetoken",{"_index":18854,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.tokenurl",{"_index":12423,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.tool",{"_index":12188,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.toolfeatures.backendurl",{"_index":8874,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolfeatures.contextconfigurationenabled",{"_index":8623,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["this.toolfeatures.ctltoolstabenabled",{"_index":16078,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.toolfeatures.maxexternaltoollogosizeinbytes",{"_index":8882,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolid",{"_index":9013,"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":20697,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchservice.getlaunchdata(userid",{"_index":20696,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchuc.gettoollaunchrequest",{"_index":20590,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions",{"_index":20799,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions(userid",{"_index":6149,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.toolpermissionhelper.ensureschoolpermissions(userid",{"_index":8689,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.toolreferenceservice.gettoolreference",{"_index":20798,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolreferenceuc.gettoolreference",{"_index":20746,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolreferenceuc.gettoolreferencesforcontext",{"_index":20749,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolvalidationservice.validatecreate(externaltool",{"_index":9493,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolvalidationservice.validateupdate(toolid",{"_index":9495,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolversion",{"_index":5792,"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":2194,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.total",{"_index":16541,"title":{},"body":{"classes/Page.html":{},"classes/PaginationResponse.html":{}}}],["this.tovideoconferencestateresponse(videoconferenceinfo.state",{"_index":22050,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["this.trybuildtoolreference(userid",{"_index":20792,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.tryextractmetatags(url",{"_index":14889,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["this.tryfilenameasfallback(url",{"_index":14890,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["this.trygetprevieworgenerate(previewfileparams",{"_index":16801,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.tspuid",{"_index":4472,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["this.type",{"_index":2507,"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":21480,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.unknownquerytype",{"_index":20859,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["this.until",{"_index":8518,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.untildate",{"_index":6619,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.updatecopiedembeddedtasksoflessons(status",{"_index":3001,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.updatedat",{"_index":408,"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":2302,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.updateexistinggridelement(existing",{"_index":7767,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.updateexistingmigration(existinguserloginmigration",{"_index":21376,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.updatefileurls(taskcopy",{"_index":19694,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.updateidentityprovider(configureaction.config",{"_index":13448,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updateoauth2toolconfig(toupdate",{"_index":9407,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateoauthclientorthrow(loadedoauthclient",{"_index":9435,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateorcreateidpdefaultmapper(oidcconfig.idphint",{"_index":13476,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updater",{"_index":15133,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.updateteamusersingroup(groupid",{"_index":15390,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.url",{"_index":6264,"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/MetaTagExtractorResponse.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":18373,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.user",{"_index":7645,"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":21712,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyexternalid(externalid",{"_index":21713,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyid(id",{"_index":21708,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.save(user",{"_index":21709,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.saveall(users",{"_index":21711,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userid",{"_index":191,"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":4289,"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":12829,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.findallimportusers(currentuser.userid",{"_index":12806,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.removematch(currentuser.userid",{"_index":12815,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.saveallusersmatches(currentuser.userid",{"_index":12825,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.setmatch(currentuser.userid",{"_index":12811,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.startschoolinusermigration(currentuser.userid",{"_index":12827,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.updateflag(currentuser.userid",{"_index":12816,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userinfourl",{"_index":12426,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.userloginmigration",{"_index":12231,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.userloginmigrationid",{"_index":13998,"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":21393,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid",{"_index":14940,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid(schoolid",{"_index":18447,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigration",{"_index":21370,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigrationdo",{"_index":21375,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrevertservice.revertuserloginmigration(updateduserloginmigration",{"_index":4538,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationrule",{"_index":17890,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.userloginmigrationservice.closemigration",{"_index":4535,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.deleteuserloginmigration(userloginmigration",{"_index":21331,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool",{"_index":4527,"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":14127,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyuser",{"_index":21412,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.restartmigration(schoolid",{"_index":17521,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.setmigration",{"_index":14129,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.setmigrationmandatory(schoolid",{"_index":20357,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.startmigration(schoolid",{"_index":18993,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationuc.finduserloginmigrationbyschool",{"_index":21195,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.getmigrations",{"_index":21189,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.migrate(jwt",{"_index":21209,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.usermatchschoolid",{"_index":18355,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.usermigrationservice.getmigrationconsentpageredirect",{"_index":15559,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.usermigrationservice.getpagecontent",{"_index":21409,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.usermigrationservice.migrateuser",{"_index":16351,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.username",{"_index":183,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.userrepo",{"_index":12147,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.userrepo.deleteuser(userid",{"_index":21725,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyemail(email",{"_index":939,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/UserService.html":{}}}],["this.userrepo.findbyid(accountuserid",{"_index":14423,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.userrepo.findbyid(id",{"_index":21703,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyid(userid",{"_index":1832,"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":21722,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrule",{"_index":17884,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.users",{"_index":8514,"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":11022,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.users.push(user",{"_index":11024,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.userservice.findbyemail(email",{"_index":13141,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid",{"_index":13122,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid(externalgroupuser.externaluserid",{"_index":16497,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluser.externalid",{"_index":16461,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluserid",{"_index":14941,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyid(currentuserid",{"_index":16113,"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(loadedpseudonym.userid",{"_index":9769,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(props.userid",{"_index":4776,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.userservice.findbyid(teamuser.userid",{"_index":15409,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.userservice.findbyid(user.id",{"_index":9787,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(userid",{"_index":12655,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userservice.findusers",{"_index":18450,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.getdisplayname(user",{"_index":12656,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.userservice.getresolveduser(userid",{"_index":16353,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.userservice.save(newuser",{"_index":23776,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.userservice.save(user",{"_index":16474,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.save(userdo",{"_index":21561,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.save(userdocopy",{"_index":21556,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.saveall(migratedusers.data",{"_index":18461,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.saveall(notmigratedusers.data",{"_index":18455,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.useruc.findallunmatchedusers(currentuser.userid",{"_index":12820,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.useruc.me(currentuser.userid",{"_index":20932,"title":{},"body":{"controllers/UserController.html":{}}}],["this.useruc.patchlanguage(currentuser.userid",{"_index":20936,"title":{},"body":{"controllers/UserController.html":{}}}],["this.validate(props",{"_index":4284,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.validateandgetexternaltool(oauth2clientid",{"_index":9773,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatecontextexternaltools(courseid",{"_index":9779,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatelti11config(externaltool",{"_index":9533,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateoauth2config(externaltool",{"_index":9532,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateparameter(param",{"_index":5469,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.validatereordering(ids",{"_index":2649,"title":{},"body":{"entities/Board.html":{}}}],["this.validaterocketchatconfig",{"_index":1089,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.validateschoolexternaltool(course.school.id",{"_index":9778,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatestatus",{"_index":11463,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.validatesubject(currentuser",{"_index":15950,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.validatetoken(oauthtokens.idtoken",{"_index":15551,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.validateusersmatch(dashboard",{"_index":7851,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.validationerrors.push(new",{"_index":1264,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.validperiod",{"_index":11139,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.value",{"_index":7250,"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":21899,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.version",{"_index":5826,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.versionkey",{"_index":10054,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.videoconferencecreateuc.createifnotrunning(currentuser.userid",{"_index":21844,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceenduc.end(currentuser.userid",{"_index":21853,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceinfouc.getmeetinginfo(currentuser.userid",{"_index":21849,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencejoinuc.join(currentuser.userid",{"_index":21846,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceservice.canguestjoin(isguest",{"_index":21999,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.createorupdatevideoconferenceforscopewithoptions(scope.id",{"_index":21905,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.determinebbbrole",{"_index":21902,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.determinebbbrole(userid",{"_index":21974,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.findvideoconferencebyscopeidandscope",{"_index":22003,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(currentuserid",{"_index":21900,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(userid",{"_index":21973,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.getuserroleandgueststatusbyuseridforbbb",{"_index":22015,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.hasexpertrole",{"_index":21998,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.loadscoperessources(scopeid",{"_index":21898,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.sanitizestring(`${user.firstname",{"_index":22017,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.sanitizestring(scopeinfo.title",{"_index":21909,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(schoolid",{"_index":21915,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(user.schoolid",{"_index":21972,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceuc.create(currentuser",{"_index":21955,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.end(currentuser",{"_index":21964,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.getmeetinginfo(currentuser",{"_index":21952,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.join(currentuser",{"_index":21959,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.visibilitysettings",{"_index":4087,"title":{},"body":{"classes/CardResponse.html":{}}}],["this.visitchildren(anyboarddo",{"_index":17385,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(externaltoolelement",{"_index":17380,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(linkelement",{"_index":17369,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildrenasync(card",{"_index":17304,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(column",{"_index":17302,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(columnboard",{"_index":17300,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(externaltoolelement",{"_index":17319,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(fileelement",{"_index":17307,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(linkelement",{"_index":17309,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(richtextelement",{"_index":17311,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submission",{"_index":17315,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submissioncontainerelement",{"_index":17313,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenof(original",{"_index":17235,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.welcome",{"_index":1989,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.write",{"_index":10081,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.xmlbuilder",{"_index":5184,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject",{"_index":5201,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject(commonobject",{"_index":5266,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.xpos",{"_index":7635,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.xposition",{"_index":7669,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.year",{"_index":4295,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.ypos",{"_index":7636,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.yposition",{"_index":7670,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.zipbuilder",{"_index":5192,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile('imsmanifest.xml",{"_index":5208,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile(props.href",{"_index":5189,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.tobufferpromise",{"_index":5210,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this['meta_bbb",{"_index":1999,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["those",{"_index":22505,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["though",{"_index":22701,"title":{},"body":{"license.html":{}}}],["thoughtbot/fishery",{"_index":513,"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":15711,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["threads_enabled=false",{"_index":23708,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["three",{"_index":22616,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thresholddate",{"_index":8000,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["thresholddate.setdate(thresholddate.getdate",{"_index":8001,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["through",{"_index":22470,"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":529,"title":{},"body":{"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/AutoContextNameStrategy.html":{},"injectables/BBBService.html":{},"classes/BaseUc.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/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.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":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"classes/MetadataTypeMapper.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"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":17469,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["throwifnotmoderator",{"_index":21876,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwifnotmoderator(role",{"_index":21888,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwing",{"_index":23846,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["thrown",{"_index":11364,"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":2192,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{}}}],["thumbnail",{"_index":9966,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thumbnailrequesttoken",{"_index":9967,"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":1779,"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":22333,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["time",{"_index":1582,"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":1572,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["timeout",{"_index":3959,"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":20341,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeouterror",{"_index":20336,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor",{"_index":13061,"title":{"injectables/TimeoutInterceptor.html":{}},"body":{"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor(timeout",{"_index":13063,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["timeoutms",{"_index":3943,"title":{},"body":{"injectables/CalendarService.html":{}}}],["timeouts",{"_index":23473,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["timeoutvalue",{"_index":20337,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timer",{"_index":17992,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["times",{"_index":2037,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["timestamp",{"_index":15135,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timestamps",{"_index":3657,"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":3665,"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":3661,"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":1577,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["timouts",{"_index":23461,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tiny",{"_index":22284,"title":{},"body":{"dependencies.html":{}}}],["title",{"_index":1207,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BoardColumnBoardResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.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/ColumnUc.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/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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/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":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"classes/PatchGroupParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RenameBodyParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"injectables/TaskCopyService.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"entities/TeamNews.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UpdateElementContentBodyParams.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":3980,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{}}}],["title(value",{"_index":14350,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["titlea",{"_index":7538,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titleb",{"_index":7540,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titlemap",{"_index":4843,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["titlesmap",{"_index":3328,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["titlesmap[id",{"_index":4940,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["tls",{"_index":8064,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["tmp/config/users",{"_index":23648,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms",{"_index":23657,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"powershell",{"_index":23618,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"setup",{"_index":23619,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"to",{"_index":23056,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["tmpdirpath",{"_index":10422,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["toarray",{"_index":5131,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/DatabaseManagementService.html":{}}}],["toboardid",{"_index":15039,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["tocardid",{"_index":15043,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["tocolumnid",{"_index":15033,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["todo",{"_index":1666,"title":{"todo.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseUc.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":{},"classes/RecursiveSaveVisitor.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/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":23834,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["together",{"_index":10771,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["toggleuserloginmigrationuc",{"_index":20349,"title":{"injectables/ToggleUserLoginMigrationUc.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["token",{"_index":124,"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":18708,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.body.params.ts",{"_index":18683,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:13",{"_index":18692,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:21",{"_index":18690,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:32",{"_index":18688,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:41",{"_index":18695,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.controller",{"_index":18946,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.controller.ts",{"_index":18702,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:40",{"_index":18710,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:67",{"_index":18724,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:86",{"_index":18720,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.do",{"_index":12270,"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":18763,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.factory.ts:9",{"_index":18766,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.ts",{"_index":18750,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:27",{"_index":18756,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:29",{"_index":18755,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:31",{"_index":18753,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:33",{"_index":18751,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.dto.ts",{"_index":15606,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:2",{"_index":15609,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:4",{"_index":15610,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:6",{"_index":15608,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.entity",{"_index":18813,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.entity.ts",{"_index":12264,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["token.entity.ts:19",{"_index":18680,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:22",{"_index":18679,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:25",{"_index":18676,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:32",{"_index":18677,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:35",{"_index":18675,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:43",{"_index":18678,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.repo",{"_index":18853,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.repo.ts",{"_index":18804,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:17",{"_index":18807,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:9",{"_index":18811,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.request.ts",{"_index":1329,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:10",{"_index":1338,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:12",{"_index":1334,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:4",{"_index":1335,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:6",{"_index":1336,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:8",{"_index":1339,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.response.ts",{"_index":16314,"title":{},"body":{"interfaces/OauthTokenResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["token.response.ts:12",{"_index":18828,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:15",{"_index":18827,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:18",{"_index":18826,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:4",{"_index":18825,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.service",{"_index":15948,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["token.service.ts",{"_index":12635,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:12",{"_index":12641,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:16",{"_index":18843,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:20",{"_index":12645,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:25",{"_index":18847,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:41",{"_index":12643,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:42",{"_index":18849,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:50",{"_index":18851,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:51",{"_index":12647,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:70",{"_index":18845,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.ts",{"_index":11152,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{}}}],["token.uc.ts",{"_index":18868,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:131",{"_index":18883,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:139",{"_index":18884,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:150",{"_index":18886,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:166",{"_index":18882,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:192",{"_index":18876,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:204",{"_index":18878,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:225",{"_index":18894,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:231",{"_index":18880,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:24",{"_index":18874,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:39",{"_index":18888,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:67",{"_index":18892,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:89",{"_index":18890,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.url.params.ts",{"_index":18937,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token.url.params.ts:11",{"_index":18939,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token_endpoint_auth_method",{"_index":9455,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["token_type",{"_index":13069,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["token_use",{"_index":13070,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["tokenauthmethod",{"_index":15731,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokendto",{"_index":15571,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.accesstoken",{"_index":15632,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.idtoken",{"_index":15631,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokenendpoint",{"_index":11585,"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":7337,"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":7355,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["tokengenerator",{"_index":18842,"title":{"injectables/TokenGenerator.html":{}},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/TokenGenerator.html":{}}}],["tokenrequestmapper",{"_index":15541,"title":{"classes/TokenRequestMapper.html":{}},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["tokenrequestmapper.createauthenticationcodegranttokenrequestpayload",{"_index":15604,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestmapper.maptokenresponsetodto(responsetoken",{"_index":15572,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestpayload",{"_index":15603,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokens",{"_index":15724,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokenurl",{"_index":12431,"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":18457,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["tool",{"_index":2489,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"modules/BoardModule.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":20419,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tool'})@apiokresponse({description",{"_index":20736,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tool'})@isstring()@isoptional",{"_index":9352,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["tool.'})@apiokresponse({description",{"_index":20535,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool.config",{"_index":16119,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.config.clientid",{"_index":9416,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.config.skipconsent",{"_index":16120,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.do.ts",{"_index":5766,"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":5777,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:23",{"_index":18160,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:24",{"_index":5773,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:25",{"_index":18163,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:26",{"_index":5774,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:27",{"_index":18162,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:28",{"_index":5775,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:29",{"_index":18161,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:30",{"_index":5772,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{}}}],["tool.do.ts:31",{"_index":18164,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:32",{"_index":8568,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:33",{"_index":18159,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:34",{"_index":8565,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:36",{"_index":8564,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:38",{"_index":8562,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:40",{"_index":8567,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:41",{"_index":5779,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:42",{"_index":8563,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:44",{"_index":8566,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:45",{"_index":18165,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:46",{"_index":8561,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:62",{"_index":8569,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:66",{"_index":8573,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:70",{"_index":8571,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.entity",{"_index":8743,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["tool.entity.ts",{"_index":5841,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:13",{"_index":8772,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:16",{"_index":8775,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:17",{"_index":18171,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:19",{"_index":8770,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:20",{"_index":18169,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:22",{"_index":8769,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:23",{"_index":18170,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:24",{"_index":5850,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:25",{"_index":8767,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:26",{"_index":18172,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:27",{"_index":5843,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:28",{"_index":8774,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:30",{"_index":5845,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:31",{"_index":8768,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:33",{"_index":5846,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:34",{"_index":8773,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:36",{"_index":5848,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:37",{"_index":8776,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:39",{"_index":5851,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.factory.ts",{"_index":5864,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:100",{"_index":8806,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:107",{"_index":8805,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:29",{"_index":15658,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["tool.factory.ts:65",{"_index":7335,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["tool.factory.ts:7",{"_index":18177,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:86",{"_index":8808,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:9",{"_index":5867,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["tool.factory.ts:93",{"_index":8807,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.id",{"_index":8620,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["tool.ishidden",{"_index":8617,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tool.logo",{"_index":8897,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["tool.module",{"_index":20400,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool.module.ts",{"_index":5386,"title":{},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/LtiToolModule.html":{},"modules/SchoolExternalToolModule.html":{}}}],["tool.name",{"_index":9421,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.oauthclientid",{"_index":11565,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.repo.mapper.ts",{"_index":9106,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:107",{"_index":9118,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:114",{"_index":9139,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:123",{"_index":9135,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:136",{"_index":9131,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:154",{"_index":9123,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:17",{"_index":9133,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:172",{"_index":9129,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:182",{"_index":9126,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:48",{"_index":9121,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:55",{"_index":9142,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:64",{"_index":9137,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:77",{"_index":9132,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.ts",{"_index":5908,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:114",{"_index":5928,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:125",{"_index":5926,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:14",{"_index":9080,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:19",{"_index":9092,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:24",{"_index":18215,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:25",{"_index":5913,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:27",{"_index":9087,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:30",{"_index":5940,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:32",{"_index":18211,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:36",{"_index":9085,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:38",{"_index":5919,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:41",{"_index":18213,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:45",{"_index":5923,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:50",{"_index":18207,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:54",{"_index":9083,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:55",{"_index":18209,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:64",{"_index":18204,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:70",{"_index":5916,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.response",{"_index":6088,"title":{},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{}}}],["tool.response.ts",{"_index":5998,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:10",{"_index":6007,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:13",{"_index":6001,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:16",{"_index":6002,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:19",{"_index":6003,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:22",{"_index":6006,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:25",{"_index":6008,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:28",{"_index":6000,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:31",{"_index":9293,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["tool.response.ts:7",{"_index":6004,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.rule.ts",{"_index":6051,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:12",{"_index":6054,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:18",{"_index":6053,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:9",{"_index":6052,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.scope",{"_index":5946,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.scope.ts",{"_index":6058,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:12",{"_index":9342,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:13",{"_index":18266,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:15",{"_index":6079,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:19",{"_index":9344,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:22",{"_index":6073,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:30",{"_index":6075,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:5",{"_index":9346,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:6",{"_index":18265,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:7",{"_index":6077,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.secret",{"_index":11566,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.service",{"_index":6173,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["tool.service.ts",{"_index":5393,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{},"injectables/LtiToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:10",{"_index":5397,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:103",{"_index":9376,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:11",{"_index":6104,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:118",{"_index":9389,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:131",{"_index":9393,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:143",{"_index":9372,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:16",{"_index":9370,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:17",{"_index":6102,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:22",{"_index":18286,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:23",{"_index":6106,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:26",{"_index":5402,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:28",{"_index":9374,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:29",{"_index":6096,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:32",{"_index":18283,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:39",{"_index":6098,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:40",{"_index":18281,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:43",{"_index":6100,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:44",{"_index":9386,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:51",{"_index":9383,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:52",{"_index":18279,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:6",{"_index":14761,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:60",{"_index":18277,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:64",{"_index":18288,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:78",{"_index":9377,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:8",{"_index":6094,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:9",{"_index":14763,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:93",{"_index":9379,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:98",{"_index":9381,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.skipconsent",{"_index":16118,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.types",{"_index":5943,"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":6117,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:10",{"_index":9477,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:101",{"_index":6137,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:11",{"_index":18308,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:115",{"_index":6135,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:124",{"_index":6133,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:18",{"_index":9479,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:19",{"_index":6126,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:28",{"_index":6128,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:30",{"_index":18310,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:31",{"_index":9489,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:47",{"_index":18313,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:52",{"_index":9485,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:56",{"_index":6139,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:59",{"_index":18312,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:63",{"_index":9487,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:70",{"_index":9481,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:71",{"_index":18317,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:77",{"_index":9483,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:79",{"_index":18319,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:92",{"_index":6130,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/context",{"_index":5887,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["tool/controller",{"_index":20392,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/controller/dto",{"_index":5906,"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":5829,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/custom",{"_index":7323,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{}}}],["tool/controller/dto/request/config/basic",{"_index":2510,"title":{},"body":{"classes/BasicToolConfigParams.html":{}}}],["tool/controller/dto/request/config/external",{"_index":8580,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["tool/controller/dto/request/config/lti11",{"_index":14600,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/config/oauth2",{"_index":15646,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/context",{"_index":5875,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{}}}],["tool/controller/dto/request/custom",{"_index":7394,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["tool/controller/dto/request/external",{"_index":8697,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SortExternalToolParams.html":{}}}],["tool/controller/dto/request/school",{"_index":18182,"title":{},"body":{"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{}}}],["tool/controller/dto/response/config/basic",{"_index":2520,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/external",{"_index":8586,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/lti11",{"_index":14619,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/oauth2",{"_index":15659,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["tool/controller/dto/response/context",{"_index":5801,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/custom",{"_index":7418,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["tool/controller/dto/response/external",{"_index":9292,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/response/school",{"_index":18167,"title":{},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/school",{"_index":18181,"title":{},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["tool/controller/dto/tool",{"_index":18240,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["tool/controller/tool",{"_index":20393,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/tool.controller.ts",{"_index":20512,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:101",{"_index":20532,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:120",{"_index":20541,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:142",{"_index":20525,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:160",{"_index":20537,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:53",{"_index":20518,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:73",{"_index":20529,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/domain",{"_index":1842,"title":{},"body":{"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"injectables/RecursiveDeleteVisitor.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":2488,"title":{},"body":{"classes/BasicToolConfig.html":{}}}],["tool/domain/config/external",{"_index":8578,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["tool/domain/config/lti11",{"_index":14591,"title":{},"body":{"classes/Lti11ToolConfig.html":{}}}],["tool/domain/config/oauth2",{"_index":15636,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["tool/domain/context",{"_index":5765,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{}}}],["tool/domain/external",{"_index":8558,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["tool/domain/school",{"_index":18157,"title":{},"body":{"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["tool/domain/tool",{"_index":20720,"title":{},"body":{"classes/ToolReference.html":{}}}],["tool/entity",{"_index":5853,"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":2500,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["tool/entity/config/external",{"_index":8583,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["tool/entity/config/lti11",{"_index":14612,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["tool/entity/config/oauth2",{"_index":15654,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["tool/entity/context",{"_index":5840,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["tool/entity/custom",{"_index":7301,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["tool/entity/external",{"_index":8763,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool/entity/school",{"_index":12185,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool/external",{"_index":8924,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["tool/loggable/external",{"_index":8819,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["tool/lti",{"_index":14707,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["tool/mapper",{"_index":20396,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/mapper/context",{"_index":5977,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["tool/mapper/external",{"_index":9190,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["tool/mapper/school",{"_index":18228,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["tool/mapper/tool",{"_index":20443,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["tool/school",{"_index":18188,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["tool/service",{"_index":6141,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IRepoLoader.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/RecursiveDeleteVisitor.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":5795,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["tool/service/external",{"_index":8590,"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":14759,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool/service/school",{"_index":18268,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["tool/service/tool",{"_index":20773,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["tool/uc",{"_index":20395,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/uc/context",{"_index":6116,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/uc/dto/context",{"_index":5942,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool/uc/dto/school",{"_index":18216,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool/uc/external",{"_index":8640,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool/uc/school",{"_index":18302,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool/uc/tool",{"_index":20778,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tool1",{"_index":5403,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool1.getversion",{"_index":5408,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2",{"_index":5401,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2.getversion",{"_index":5409,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool_clientid_duplicate",{"_index":9547,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientid_immutable",{"_index":9543,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientsecret_missing",{"_index":9545,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_param_auto_requires_global",{"_index":8971,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_regex",{"_index":8981,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_required",{"_index":8968,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_duplicate",{"_index":5460,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regex_invalid",{"_index":8978,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regexcomment",{"_index":8975,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_required",{"_index":5476,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_param_type_mismatch",{"_index":5480,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_value_regex",{"_index":5485,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_secret_missing",{"_index":9548,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_status_outdated",{"_index":20840,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["tool_type_immutable",{"_index":9539,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_version_mismatch",{"_index":18337,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["tool_with_name_exists",{"_index":6189,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["toolapimodule",{"_index":18590,"title":{"modules/ToolApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["toolconfigmodule",{"_index":8918,"title":{"modules/ToolConfigModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolconfigtype",{"_index":2494,"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":2497,"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":7363,"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":7359,"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":20619,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping[configtype",{"_index":20627,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfiguration",{"_index":12581,"title":{"classes/ToolConfiguration.html":{}},"body":{"interfaces/IToolFeatures.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolconfiguration.toolfeatures",{"_index":20402,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["toolconfigurationcontroller",{"_index":20387,"title":{"controllers/ToolConfigurationController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper",{"_index":20425,"title":{"classes/ToolConfigurationMapper.html":{}},"body":{"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20436,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20442,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20432,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20439,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationstatus",{"_index":5398,"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":5406,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.outdated",{"_index":5407,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.unknown",{"_index":20846,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse",{"_index":18239,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.latest",{"_index":20844,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.outdated",{"_index":20845,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.unknown",{"_index":18262,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolcontextcontroller",{"_index":20389,"title":{"controllers/ToolContextController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["toolcontexttype",{"_index":1869,"title":{},"body":{"injectables/AutoContextNameStrategy.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":1877,"title":{},"body":{"injectables/AutoContextNameStrategy.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ToolPermissionHelper.html":{}}}],["toolcontexttype.course",{"_index":1874,"title":{},"body":{"injectables/AutoContextNameStrategy.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":20391,"title":{"controllers/ToolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["toolfeatures",{"_index":8599,"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":8858,"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":8610,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["toolidsinuse.includes(tool.id",{"_index":8621,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolinfo",{"_index":20454,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos",{"_index":20451,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos.map",{"_index":20464,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["tooling",{"_index":23481,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["toollaunchcontroller",{"_index":20386,"title":{"controllers/ToolLaunchController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["toollaunchdata",{"_index":2570,"title":{"classes/ToolLaunchData.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchData.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchdatado",{"_index":2575,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["toollaunchdatatype",{"_index":20596,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.basic",{"_index":20620,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.lti11",{"_index":20621,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.oauth2",{"_index":20622,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping",{"_index":20623,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping[launchdatatype",{"_index":20628,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchmapper",{"_index":20587,"title":{"classes/ToolLaunchMapper.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoolconfigtype(toollaunchdata.type",{"_index":20678,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20591,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchmodule",{"_index":20629,"title":{"modules/ToolLaunchModule.html":{}},"body":{"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toollaunchparams",{"_index":20576,"title":{"classes/ToolLaunchParams.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{}}}],["toollaunchrequest",{"_index":2580,"title":{"classes/ToolLaunchRequest.html":{}},"body":{"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":20586,"title":{"classes/ToolLaunchRequestResponse.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["toollaunchrequestresponse})@apiunauthorizedresponse({description",{"_index":20579,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchservice",{"_index":20634,"title":{"injectables/ToolLaunchService.html":{}},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchuc",{"_index":20384,"title":{"injectables/ToolLaunchUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["toolmodule",{"_index":1768,"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":6124,"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":8633,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolref.externaltool.ishidden",{"_index":8635,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolreference",{"_index":6025,"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":6044,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.displayname",{"_index":6045,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.logourl",{"_index":6046,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreference.openinnewtab",{"_index":6048,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.status",{"_index":20729,"title":{},"body":{"classes/ToolReference.html":{}}}],["toolreferencecontroller",{"_index":20390,"title":{"controllers/ToolReferenceController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse",{"_index":20743,"title":{"classes/ToolReferenceListResponse.html":{}},"body":{"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{}}}],["toolreferencelistresponse(toolreferenceresponses",{"_index":20751,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse})@apiforbiddenresponse({description",{"_index":20741,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencemapper",{"_index":20753,"title":{"classes/ToolReferenceMapper.html":{}},"body":{"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreferencemapper.maptotoolreference",{"_index":20777,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["toolreferenceresponse",{"_index":6027,"title":{"classes/ToolReferenceResponse.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.contexttoolid",{"_index":20768,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.displayname",{"_index":20770,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.logourl",{"_index":20769,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.openinnewtab",{"_index":20771,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.status",{"_index":20772,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponses",{"_index":6040,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferenceresponse})@apiforbiddenresponse({description",{"_index":20737,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferences",{"_index":6030,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferences.map((toolreference",{"_index":6041,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolreferenceservice",{"_index":5886,"title":{"injectables/ToolReferenceService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreferencespromises",{"_index":20791,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull",{"_index":20793,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull.filter",{"_index":20796,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceuc",{"_index":20385,"title":{"injectables/ToolReferenceUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["tools",{"_index":6132,"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":20408,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools.data",{"_index":9417,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.data.map",{"_index":20552,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools.data.map(async",{"_index":9412,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.filter((tool",{"_index":6163,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tools.map(async",{"_index":8693,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tools.total",{"_index":20554,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/:contextexternaltoolid",{"_index":20745,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid')@apioperation({summary",{"_index":20735,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid/configuration",{"_index":20417,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/:schoolexternaltoolid/configuration",{"_index":20423,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/context",{"_index":20468,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["tools/external",{"_index":20513,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/school",{"_index":20800,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["tools/tool",{"_index":20731,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/{id}/logo",{"_index":8678,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["toolschoolcontroller",{"_index":20388,"title":{"controllers/ToolSchoolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["toolstatusoutdatedloggableexception",{"_index":20673,"title":{"classes/ToolStatusOutdatedLoggableException.html":{}},"body":{"injectables/ToolLaunchService.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolstatusoutdatedloggableexception(userid",{"_index":20688,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toolstatusresponsemapper",{"_index":6031,"title":{"classes/ToolStatusResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(schoolexternaltool.status",{"_index":18261,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(toolreference.status",{"_index":6049,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolswithpermission",{"_index":6159,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["toolswithschooltool",{"_index":8627,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolswithschooltool.filter",{"_index":8632,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tooltemplateinfo.externaltool",{"_index":8686,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["tooltemplateinfo.externaltool.logourl",{"_index":8687,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["toolvalidationservice",{"_index":9476,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["toolversion",{"_index":5400,"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":20373,"title":{"classes/TooManyPseudonymsLoggableException.html":{}},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["toomodule",{"_index":1774,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["top",{"_index":19742,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["toparams",{"_index":2135,"title":{},"body":{"injectables/BBBService.html":{}}}],["toparams(object",{"_index":2174,"title":{},"body":{"injectables/BBBService.html":{}}}],["topic",{"_index":23662,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["toplevel",{"_index":13418,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["toposition",{"_index":4053,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["toseedfolder",{"_index":7892,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["tostring",{"_index":948,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["total",{"_index":815,"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":21633,"title":{},"body":{"injectables/UserRepo.html":{}}}],["total[0].count",{"_index":21634,"title":{},"body":{"injectables/UserRepo.html":{}}}],["totalitems",{"_index":11343,"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":11360,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["touching",{"_index":23813,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["toupdate",{"_index":9387,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{}}}],["toupdate.config",{"_index":9432,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.config.clientid",{"_index":9434,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.name",{"_index":9431,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdateoauthclient",{"_index":9392,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tovideoconferenceinforesponse",{"_index":22031,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceinforesponse(videoconferenceinfo",{"_index":22035,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse",{"_index":22032,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse(videoconferencejoin",{"_index":22037,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions",{"_index":22033,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions(params",{"_index":22039,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse",{"_index":22034,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse(state",{"_index":22041,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["trace",{"_index":12097,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["trade",{"_index":22723,"title":{},"body":{"license.html":{}}}],["trademark",{"_index":22722,"title":{},"body":{"license.html":{}}}],["trademarks",{"_index":22724,"title":{},"body":{"license.html":{}}}],["transaction",{"_index":22678,"title":{},"body":{"license.html":{}}}],["transfer",{"_index":11649,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{}}}],["transferred",{"_index":22680,"title":{},"body":{"license.html":{}}}],["transferring",{"_index":22777,"title":{},"body":{"license.html":{}}}],["transform",{"_index":5207,"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":10957,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transformer",{"_index":5904,"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":10955,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transient",{"_index":462,"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":522,"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":23659,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["transitioning",{"_index":23359,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["translate",{"_index":22316,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["transmission",{"_index":22641,"title":{},"body":{"license.html":{}}}],["transparent",{"_index":19003,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["transports",{"_index":14458,"title":{},"body":{"modules/LoggerModule.html":{}}}],["trash",{"_index":17925,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["treated",{"_index":362,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["treating",{"_index":23566,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["treaty",{"_index":22550,"title":{},"body":{"license.html":{}}}],["tries",{"_index":23416,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["trigger",{"_index":23625,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["trim",{"_index":13034,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"injectables/UserRepo.html":{}}}],["trivial",{"_index":23179,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["true",{"_index":143,"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":{},"classes/BaseUc.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/GetMetaTagDataBody.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":{},"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":4059,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{}}}],["true})@apiproperty({oneof",{"_index":20860,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["true})@apiproperty({required",{"_index":5553,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["true})@enum",{"_index":19420,"title":{},"body":{"entities/SystemEntity.html":{}}}],["true})@index",{"_index":4266,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["true})@isarray()@isoptional()@apipropertyoptional({type",{"_index":5898,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["true})@ismongoid",{"_index":22127,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["true})@isoptional()@apiproperty({description",{"_index":5496,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["true})@isoptional()@apipropertyoptional({required",{"_index":7048,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["true})@isoptional()@isenum(filtermatchtype",{"_index":10755,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@singlevaluetoarraytransformer()@isarray",{"_index":10756,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@unique({options",{"_index":6567,"title":{},"body":{"entities/Course.html":{},"entities/ImportUser.html":{},"entities/LtiTool.html":{}}}],["try",{"_index":579,"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/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":21422,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["trybuildtoolreference",{"_index":20781,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["trybuildtoolreference(userid",{"_index":20789,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tryextractmetatags",{"_index":14867,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryextractmetatags(url",{"_index":14876,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryfilenameasfallback",{"_index":14868,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryfilenameasfallback(url",{"_index":14878,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["tryfindbyid",{"_index":11260,"title":{},"body":{"injectables/GroupService.html":{}}}],["tryfindbyid(id",{"_index":11271,"title":{},"body":{"injectables/GroupService.html":{}}}],["trygetprevieworgenerate",{"_index":16782,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trygetprevieworgenerate(params",{"_index":16793,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trying",{"_index":6654,"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":982,"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":4314,"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":18638,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tvalue",{"_index":12723,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["two",{"_index":13845,"title":{},"body":{"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typ",{"_index":13162,"title":{},"body":{"interfaces/JwtConstants.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisOrganisationResponse.html":{}}}],["type",{"_index":32,"title":{},"body":{"classes/AbstractAccountService.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":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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/BaseUc.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":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassFilterParams.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":{},"injectables/ColumnUc.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":{},"classes/GetMetaTagDataBody.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":{},"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":{},"controllers/MetaTagExtractorController.html":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.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":{},"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/UnknownQueryTypeLoggableException.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":9911,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["type.enum",{"_index":1342,"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":17185,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.factory.ts:11",{"_index":17189,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.includes(bn.type",{"_index":3254,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["type.interface.ts",{"_index":11975,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["type.mapper.ts",{"_index":14919,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:6",{"_index":14922,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.query.param.ts",{"_index":16564,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:12",{"_index":16572,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:16",{"_index":16573,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:8",{"_index":16570,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.response",{"_index":11194,"title":{},"body":{"classes/GroupResponse.html":{}}}],["typecheckers",{"_index":5411,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["typedefinitions",{"_index":23225,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["typemapping",{"_index":9246,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/GroupResponseMapper.html":{}}}],["typemapping[customparameterdo.type",{"_index":9336,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterparam.type",{"_index":9285,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["typemapping[resolvedgroup.type",{"_index":11230,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["typeof",{"_index":1507,"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":1603,"title":{},"body":{"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":10112,"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":10647,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(filerecordparenttype.boardnode",{"_index":10645,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.course",{"_index":10636,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.lesson",{"_index":10641,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.school",{"_index":10639,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.submission",{"_index":10643,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.task",{"_index":10634,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.user",{"_index":10637,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(sharetokencontexttype.school",{"_index":18699,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["types.set(sharetokenparenttype.course",{"_index":14923,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.lesson",{"_index":18792,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.task",{"_index":18793,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types/board",{"_index":3559,"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":22160,"title":{},"body":{"dependencies.html":{}}}],["types/connect",{"_index":22162,"title":{},"body":{"dependencies.html":{}}}],["types/copy.types",{"_index":6427,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["types/entity",{"_index":12459,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/gm",{"_index":22164,"title":{},"body":{"dependencies.html":{}}}],["types/ldapjs",{"_index":22166,"title":{},"body":{"dependencies.html":{}}}],["types/news.types",{"_index":6919,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["types/redis",{"_index":22168,"title":{},"body":{"dependencies.html":{}}}],["types/room",{"_index":8164,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["types/task.types",{"_index":12460,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/xml2js",{"_index":22170,"title":{},"body":{"dependencies.html":{}}}],["typescript",{"_index":999,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.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":{},"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":22661,"title":{},"body":{"license.html":{}}}],["typing",{"_index":9711,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["u",{"_index":509,"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":6666,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["u.userid",{"_index":2479,"title":{},"body":{"classes/BaseUc.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["u.userid.id",{"_index":20216,"title":{},"body":{"injectables/TeamService.html":{}}}],["uc",{"_index":2705,"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/MetaTagExtractorApiModule.html":{},"controllers/MetaTagExtractorController.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":{},"classes/UserLoginMigrationMapper.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.ts",{"_index":11283,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:29",{"_index":11288,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:47",{"_index":11296,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:9",{"_index":11293,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.ts",{"_index":23280,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["uc/account.uc",{"_index":230,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["uc/board",{"_index":3458,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["uc/collaborative",{"_index":4652,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["uc/course",{"_index":6688,"title":{},"body":{"controllers/CourseController.html":{},"controllers/RoomsController.html":{}}}],["uc/course.uc",{"_index":6686,"title":{},"body":{"controllers/CourseController.html":{}}}],["uc/dashboard.uc",{"_index":7450,"title":{},"body":{"controllers/DashboardController.html":{}}}],["uc/database",{"_index":7878,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["uc/dto",{"_index":1557,"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":4369,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["uc/dto/context",{"_index":5987,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"controllers/ToolContextController.html":{}}}],["uc/dto/oauth",{"_index":13958,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["uc/dto/school",{"_index":18234,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["uc/dto/user.dto",{"_index":21701,"title":{},"body":{"injectables/UserService.html":{}}}],["uc/element.uc",{"_index":2706,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["uc/fwu",{"_index":10806,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["uc/hydra",{"_index":16236,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["uc/keycloak",{"_index":11605,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["uc/lesson",{"_index":17781,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/login.uc",{"_index":1325,"title":{},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["uc/news.uc",{"_index":15088,"title":{},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["uc/oauth",{"_index":16008,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["uc/rooms.uc",{"_index":17782,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/submission",{"_index":2707,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["uc/system.uc",{"_index":19377,"title":{},"body":{"controllers/SystemController.html":{}}}],["uc/task",{"_index":19650,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/task.uc",{"_index":19651,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/user",{"_index":12794,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"controllers/UserMigrationController.html":{}}}],["ucs",{"_index":13875,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["ui",{"_index":22280,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["ui_locales",{"_index":16387,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["ui_use_real_name=true",{"_index":23707,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["uid",{"_index":12048,"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":12046,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uid=[^,]*${escapedloginname",{"_index":13046,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs",{"_index":12840,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["uid=loginname",{"_index":12044,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uk",{"_index":12603,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["um",{"_index":4861,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unable",{"_index":3024,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UnknownQueryTypeLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["unambiguous",{"_index":1248,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["unarchivegroup(groupname",{"_index":1032,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["unauthorized",{"_index":20589,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized'})@apiforbiddenresponse({description",{"_index":20580,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized_exception",{"_index":20853,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception",{"_index":1818,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"controllers/MetaTagExtractorController.html":{},"injectables/MetaTagExtractorUc.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":9695,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('missing",{"_index":9688,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('no",{"_index":15634,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["unauthorizedexception('oauth",{"_index":16268,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unauthorizedexception('unauthorized",{"_index":13195,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["unauthorizedexception('user",{"_index":13790,"title":{},"body":{"injectables/LdapService.html":{}}}],["unauthorizedexception(`invalid",{"_index":16273,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["unauthorizedexception(`school",{"_index":13830,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["unauthorizedexception})@apiresponse({status",{"_index":14836,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["unauthorizedloggableexception",{"_index":1553,"title":{"classes/UnauthorizedLoggableException.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedloggableexception(username",{"_index":1561,"title":{},"body":{"injectables/AuthenticationService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["und",{"_index":4879,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["undefined",{"_index":556,"title":{},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountServiceDb.html":{},"injectables/AntivirusService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"injectables/AutoContextIdStrategy.html":{},"injectables/AutoContextNameStrategy.html":{},"interfaces/AutoParameterStrategy.html":{},"injectables/AutoSchoolIdStrategy.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/ClassesRepo.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":{},"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":{},"injectables/MetaTagExtractorService.html":{},"classes/NewsListResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"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/SubmissionItemResponse.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":8702,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["undefined})@apiresponse({status",{"_index":3693,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ElementController.html":{}}}],["undefined})@isboolean()@isoptional",{"_index":21856,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["undefined})@property({nullable",{"_index":10100,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["undefined})@type(undefined",{"_index":5899,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["undefined})@userequestcontext",{"_index":10588,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["under",{"_index":22305,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["understand",{"_index":23398,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["unexpected",{"_index":23471,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unfamiliar",{"_index":23407,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unhandled",{"_index":8385,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["unicode",{"_index":747,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["unique",{"_index":168,"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":8771,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["uniqueids",{"_index":12532,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniqueids.length",{"_index":12535,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniquemember",{"_index":12416,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["uniquememberids",{"_index":12331,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["uniquenames",{"_index":5456,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquenames.size",{"_index":5458,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquepermissions",{"_index":12182,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["unit",{"_index":23024,"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":23560,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["universal",{"_index":22286,"title":{},"body":{"dependencies.html":{}}}],["unknown",{"_index":1154,"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":{},"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":{},"classes/UnknownQueryTypeLoggableException.html":{},"injectables/UserDORepo.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{}}}],["unknown.loggable.ts",{"_index":11242,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:4",{"_index":11245,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:7",{"_index":11247,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknownerror",{"_index":10920,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["unknownquerytype",{"_index":20857,"title":{},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["unknownquerytypeloggableexception",{"_index":20854,"title":{"classes/UnknownQueryTypeLoggableException.html":{}},"body":{"classes/UnknownQueryTypeLoggableException.html":{}}}],["unless",{"_index":22667,"title":{},"body":{"license.html":{}}}],["unlimited",{"_index":315,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["unmarkfordelete",{"_index":10163,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["unmarkoutdatedusers",{"_index":18399,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmarkoutdatedusers(schoolid",{"_index":18423,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmodified",{"_index":22449,"title":{},"body":{"license.html":{}}}],["unnecessary",{"_index":22537,"title":{},"body":{"license.html":{}}}],["unnessasary",{"_index":20715,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["unpacking",{"_index":22697,"title":{},"body":{"license.html":{}}}],["unprocessableentityexception",{"_index":5644,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ElementUc.html":{},"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":{},"injectables/SubmissionItemUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception('cannot",{"_index":8325,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/NextcloudStrategy.html":{}}}],["unprocessableentityexception('current",{"_index":16309,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unprocessableentityexception(`could",{"_index":9420,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`requested",{"_index":16337,"title":{},"body":{"injectables/OauthUc.html":{}}}],["unprocessableentityexception(`school",{"_index":18448,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["unprocessableentityexception(`system",{"_index":21569,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception(`the",{"_index":9438,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`unknown",{"_index":9150,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["unprocessableentityexception(errortype.preview_not_possible",{"_index":16806,"title":{},"body":{"injectables/PreviewService.html":{}}}],["unpublish",{"_index":4920,"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":10768,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["unreachable",{"_index":938,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["unresponsive",{"_index":17998,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["uns",{"_index":4893,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unsafe",{"_index":1001,"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":3675,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["unter",{"_index":4897,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["until",{"_index":8249,"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":6546,"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":6989,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["unused",{"_index":1894,"title":{},"body":{"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/TestBootstrapConsole.html":{}}}],["unusedtools",{"_index":8631,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unusedtools.filter",{"_index":8634,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unwanted",{"_index":19924,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["up",{"_index":14122,"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":2899,"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":5674,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update(id",{"_index":15290,"title":{},"body":{"injectables/NewsUc.html":{}}}],["update(submissionitem",{"_index":19189,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["update(urlparams",{"_index":15081,"title":{},"body":{"controllers/NewsController.html":{}}}],["update.params.ts",{"_index":9504,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["update.params.ts:16",{"_index":20106,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:17",{"_index":9506,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:21",{"_index":9509,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:22",{"_index":14628,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:25",{"_index":20109,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:26",{"_index":9512,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:27",{"_index":14627,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:31",{"_index":9508,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:33",{"_index":20110,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:35",{"_index":14626,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:36",{"_index":15662,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:39",{"_index":14625,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:40",{"_index":15661,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:41",{"_index":20107,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:44",{"_index":15663,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:49",{"_index":20105,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:52",{"_index":9505,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:57",{"_index":20108,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:59",{"_index":9511,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:63",{"_index":9507,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:67",{"_index":9510,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.visitor",{"_index":5679,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update.visitor.ts",{"_index":5693,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:108",{"_index":5698,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:28",{"_index":5696,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:34",{"_index":5702,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:38",{"_index":5701,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:42",{"_index":5700,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:46",{"_index":5704,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:55",{"_index":5705,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:76",{"_index":5706,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:85",{"_index":5707,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:95",{"_index":5709,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:99",{"_index":5703,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["updateaccount",{"_index":12699,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccount(accountid",{"_index":12728,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccount(id",{"_index":13583,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountbyid",{"_index":267,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountbyid(currentuser",{"_index":323,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountpassword",{"_index":12700,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountpassword(accountid",{"_index":12730,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccountpassword(id",{"_index":13585,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateboard",{"_index":17802,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboard(board",{"_index":17807,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboardtitle",{"_index":2871,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["updateboardtitle(urlparams",{"_index":2896,"title":{},"body":{"controllers/BoardController.html":{}}}],["updateboardtitle(userid",{"_index":3796,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecardheight",{"_index":3992,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["updatecardheight(urlparams",{"_index":4015,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardheight(userid",{"_index":4172,"title":{},"body":{"injectables/CardUc.html":{}}}],["updatecardtitle",{"_index":3993,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["updatecardtitle(urlparams",{"_index":4019,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle(userid",{"_index":4174,"title":{},"body":{"injectables/CardUc.html":{}}}],["updatecolumntitle",{"_index":4949,"title":{},"body":{"controllers/ColumnController.html":{},"injectables/ColumnUc.html":{}}}],["updatecolumntitle(urlparams",{"_index":4965,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecolumntitle(userid",{"_index":5027,"title":{},"body":{"injectables/ColumnUc.html":{}}}],["updatecontextexternaltool",{"_index":6122,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(currentuser",{"_index":20487,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(userid",{"_index":6138,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["updatecopiedembeddedtasksoflessons",{"_index":2942,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons(boardstatus",{"_index":2972,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updated",{"_index":305,"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":331,"title":{},"body":{"controllers/AccountController.html":{}}}],["updated.id",{"_index":2318,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["updatedat",{"_index":377,"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":4446,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedclasses.length",{"_index":4450,"title":{},"body":{"injectables/ClassService.html":{}}}],["updateddomainobject",{"_index":4501,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatedelements",{"_index":3053,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatedentity",{"_index":4503,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatedlessons",{"_index":14309,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedlessons.length",{"_index":14314,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedmodel",{"_index":7766,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updatedtool",{"_index":6155,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updateduserloginmigration",{"_index":4534,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["updateduserloginmigration.closedat",{"_index":14131,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.finishedat",{"_index":14136,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.mandatorysince",{"_index":14134,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.startedat",{"_index":14133,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateelement",{"_index":8265,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelement(urlparams",{"_index":8279,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelementcontent",{"_index":8302,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontent(userid",{"_index":8310,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontentbodyparams",{"_index":8253,"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":2250,"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":2288,"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":13415,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateexistinggridelement",{"_index":7722,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistinggridelement(elementmodel",{"_index":7744,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistingmigration",{"_index":21343,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexistingmigration(userloginmigrationdo",{"_index":21364,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexternaltool",{"_index":9363,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["updateexternaltool(currentuser",{"_index":20538,"title":{},"body":{"controllers/ToolController.html":{}}}],["updateexternaltool(toupdate",{"_index":9384,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateexternaltool(userid",{"_index":9488,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["updatefileurls",{"_index":19678,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updatefileurls(task",{"_index":19689,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updateflag",{"_index":12758,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflag(urlparams",{"_index":12783,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflagparams",{"_index":12784,"title":{"classes/UpdateFlagParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateFlagParams.html":{}}}],["updateheight",{"_index":4099,"title":{},"body":{"injectables/CardService.html":{}}}],["updateheight(card",{"_index":4118,"title":{},"body":{"injectables/CardService.html":{}}}],["updateidentityprovider",{"_index":13343,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateidentityprovider(oidcconfig",{"_index":13375,"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":1542,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["updatemany",{"_index":4475,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatemany(classes",{"_index":4480,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatematchparams",{"_index":12776,"title":{"classes/UpdateMatchParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateMatchParams.html":{}}}],["updatemyaccount",{"_index":268,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(@currentuser",{"_index":365,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(currentuser",{"_index":327,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatenewsparams",{"_index":15082,"title":{"classes/UpdateNewsParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"classes/UpdateNewsParams.html":{}}}],["updateoauth2client",{"_index":15899,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2client(currentuser",{"_index":15910,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["updateoauth2client(id",{"_index":16183,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["updateoauth2toolconfig",{"_index":9364,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauth2toolconfig(toupdate",{"_index":9388,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow",{"_index":9365,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow(loadedoauthclient",{"_index":9390,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateorcreateidpdefaultmapper",{"_index":13344,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateorcreateidpdefaultmapper(idpalias",{"_index":13377,"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":5688,"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":6933,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["updates",{"_index":301,"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":18306,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(currentuser",{"_index":20816,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(userid",{"_index":18318,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["updatesecuritycheckstatus(status",{"_index":10151,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["updatesecuritystatus",{"_index":10336,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(@body",{"_index":10355,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(scanresultdto",{"_index":10341,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesubmissionitem",{"_index":3686,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitem(currentuser",{"_index":3702,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["updatesubmissionitem(userid",{"_index":19206,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitembodyparams",{"_index":3703,"title":{"classes/UpdateSubmissionItemBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["updateteam",{"_index":4556,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteam(team",{"_index":4570,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole",{"_index":4557,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(currentuser",{"_index":4635,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["updateteampermissionsforrole(currentuserid",{"_index":4696,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["updateteampermissionsforrole(dto",{"_index":11677,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(team",{"_index":4572,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["updateteamusersingroup",{"_index":15351,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updateteamusersingroup(groupid",{"_index":15370,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updatetitle",{"_index":4100,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{}}}],["updatetitle(board",{"_index":4837,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["updatetitle(card",{"_index":4120,"title":{},"body":{"injectables/CardService.html":{}}}],["updatetitle(column",{"_index":5010,"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":4722,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updateuserpermissionsforrole(currentuserid",{"_index":4729,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updatevisibilityofboardelement",{"_index":17826,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updatevisibilityofboardelement(roomid",{"_index":17833,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updating",{"_index":2282,"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":15205,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["upload",{"_index":17933,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["upload.done",{"_index":17957,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["upper",{"_index":14385,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["uppercase",{"_index":23298,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["uppercase_snake_case",{"_index":1250,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["uri",{"_index":969,"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":1198,"title":{},"body":{"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":{},"injectables/ContentElementUpdateVisitor.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":{},"classes/GetMetaTagDataBody.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":{},"classes/MetaTagExtractorResponse.html":{},"injectables/MetaTagExtractorService.html":{},"injectables/MetaTagExtractorUc.html":{},"injectables/NexboardService.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"classes/PageContentResponse.html":{},"classes/PreviewParams.html":{},"classes/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":15577,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url('/login",{"_index":16256,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url('/migration",{"_index":21531,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url('/migration/error",{"_index":16262,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url(`${api_version_path}${newpath",{"_index":1199,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url(`api/v3/sso/login/${system.id",{"_index":21571,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(oauthconfig.authendpoint",{"_index":15588,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(params.logouturl).origin",{"_index":21838,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["url(path",{"_index":15599,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(system.oauthconfig.logoutendpoint",{"_index":15581,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(this.baseurl",{"_index":2232,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url(this.content.url).tostring",{"_index":5727,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["url(this.logouturl).origin",{"_index":13078,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url(this.publicbackendurl",{"_index":21548,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(url",{"_index":5738,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/MetaTagExtractorService.html":{}}}],["url(urlpath",{"_index":21565,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(value",{"_index":14349,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["url.body.params",{"_index":14840,"title":{},"body":{"controllers/MetaTagExtractorController.html":{}}}],["url.body.params.ts",{"_index":10875,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["url.body.params.ts:10",{"_index":10877,"title":{},"body":{"classes/GetMetaTagDataBody.html":{}}}],["url.href",{"_index":1201,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url.length",{"_index":14887,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["url.loggable",{"_index":13073,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url.pathname",{"_index":2233,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url.search",{"_index":2235,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url.searchparams.append('origin",{"_index":21532,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.tostring",{"_index":2236,"title":{},"body":{"injectables/BBBService.html":{},"injectables/UserMigrationService.html":{}}}],["urlencoded",{"_index":13561,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["urlencodedpayload",{"_index":15684,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["urlobject",{"_index":14897,"title":{},"body":{"injectables/MetaTagExtractorService.html":{}}}],["urlparamkeys",{"_index":13404,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["urlparams",{"_index":2882,"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":2915,"title":{},"body":{"controllers/BoardController.html":{}}}],["urlparams.cardid",{"_index":4038,"title":{},"body":{"controllers/CardController.html":{}}}],["urlparams.columnid",{"_index":4974,"title":{},"body":{"controllers/ColumnController.html":{}}}],["urlparams.contentelementid",{"_index":8288,"title":{},"body":{"controllers/ElementController.html":{}}}],["urlparams.dashboardid",{"_index":7464,"title":{},"body":{"controllers/DashboardController.html":{}}}],["urlparams.elementid",{"_index":17789,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.importuserid",{"_index":12812,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["urlparams.lessonid",{"_index":14162,"title":{},"body":{"controllers/LessonController.html":{},"controllers/RoomsController.html":{}}}],["urlparams.newsid",{"_index":15105,"title":{},"body":{"controllers/NewsController.html":{}}}],["urlparams.roomid",{"_index":17788,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.submissioncontainerid",{"_index":3721,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.submissionid",{"_index":19103,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["urlparams.submissionitemid",{"_index":3726,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.taskid",{"_index":19667,"title":{},"body":{"controllers/TaskController.html":{}}}],["urlparams.teamid",{"_index":20162,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["urlparams.token",{"_index":18742,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["urlpath",{"_index":21504,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["urls",{"_index":13076,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["urlsafe",{"_index":22289,"title":{},"body":{"dependencies.html":{}}}],["urlsearchparams",{"_index":2156,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["usable",{"_index":18693,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["usage",{"_index":4444,"title":{},"body":{"injectables/ClassService.html":{},"classes/ExternalToolRepoMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["use",{"_index":358,"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":11981,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["usecase",{"_index":23198,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usecases",{"_index":23237,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["usecentralldap",{"_index":12780,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["useclass",{"_index":8454,"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":10882,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["usedobuilder(builder",{"_index":3582,"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":4627,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["usefactory",{"_index":637,"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":22939,"title":{},"body":{"license.html":{}}}],["useguards",{"_index":14504,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('ldap",{"_index":14510,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('local",{"_index":14516,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('oauth2",{"_index":14520,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('ldap')@apioperation({summary",{"_index":14489,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('local')@apioperation({summary",{"_index":14496,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('oauth2')@apioperation({summary",{"_index":14501,"title":{},"body":{"controllers/LoginController.html":{}}}],["user",{"_index":239,"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":{},"classes/BaseUc.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.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":{},"modules/MetaTagExtractorModule.html":{},"injectables/MetaTagExtractorService.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/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":15964,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["user'})@isboolean",{"_index":20864,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["user'})@ismongoid",{"_index":20867,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["user(params",{"_index":23775,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(props",{"_index":20999,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user(s",{"_index":23746,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(value",{"_index":12571,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["user.'})@apiresponse({status",{"_index":304,"title":{},"body":{"controllers/AccountController.html":{},"controllers/GroupController.html":{}}}],["user._id",{"_index":13030,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["user._id.$oid",{"_index":13721,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.accountid",{"_index":1564,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["user.attribute",{"_index":13489,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["user.attributes",{"_index":13627,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.attributes[attributename",{"_index":13628,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.business",{"_index":20901,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user.controller",{"_index":12940,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["user.controller.ts",{"_index":12749,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:104",{"_index":12782,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:112",{"_index":12761,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:29",{"_index":12764,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:47",{"_index":12778,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:59",{"_index":12771,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:70",{"_index":12786,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:82",{"_index":12767,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:99",{"_index":12774,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.createdat",{"_index":17496,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.createdtimestamp",{"_index":13633,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.dto",{"_index":8513,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{}}}],["user.dto.ts",{"_index":8522,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:10",{"_index":9622,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:12",{"_index":9621,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:4",{"_index":8525,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:6",{"_index":8524,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:8",{"_index":9623,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.email",{"_index":12660,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{},"classes/UserMatchMapper.html":{}}}],["user.entity",{"_index":6591,"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":11323,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["user.entity.ts:102",{"_index":12746,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:109",{"_index":12742,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:112",{"_index":12738,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:13",{"_index":11326,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:16",{"_index":11325,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:54",{"_index":12744,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:57",{"_index":12745,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:60",{"_index":12740,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:76",{"_index":12735,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:79",{"_index":12736,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:82",{"_index":12739,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:88",{"_index":12734,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:91",{"_index":12743,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:94",{"_index":12733,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.externalid",{"_index":13145,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/UserDto.html":{}}}],["user.externalidtoken",{"_index":14523,"title":{},"body":{"controllers/LoginController.html":{}}}],["user.factory",{"_index":649,"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":12832,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.factory.ts:10",{"_index":12834,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.firstname",{"_index":3115,"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":21081,"title":{},"body":{"classes/UserDto.html":{}}}],["user.id",{"_index":528,"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":13714,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.interface.ts",{"_index":12075,"title":{},"body":{"interfaces/IJsonUser.html":{}}}],["user.language",{"_index":21080,"title":{},"body":{"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.lastloginsystemchange",{"_index":14944,"title":{},"body":{"injectables/MigrationCheckService.html":{},"classes/UserDto.html":{}}}],["user.lastname",{"_index":3116,"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":21079,"title":{},"body":{"classes/UserDto.html":{}}}],["user.mapper",{"_index":12789,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.mapper.ts",{"_index":7132,"title":{},"body":{"classes/CurrentUserMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:17",{"_index":12870,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:20",{"_index":7144,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:32",{"_index":12872,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:41",{"_index":7140,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:49",{"_index":12869,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:5",{"_index":17493,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:53",{"_index":7138,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:9",{"_index":7147,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.module",{"_index":20920,"title":{},"body":{"modules/UserApiModule.html":{}}}],["user.outdatedsince",{"_index":18454,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserDto.html":{}}}],["user.params",{"_index":21453,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.params.ts",{"_index":10742,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/SortImportUserParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.params.ts:12",{"_index":10778,"title":{},"body":{"classes/FilterUserParams.html":{}}}],["user.params.ts:21",{"_index":10748,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:27",{"_index":10751,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:33",{"_index":10752,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:40",{"_index":10757,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:45",{"_index":10750,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:54",{"_index":10746,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:59",{"_index":10760,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.permissions",{"_index":9652,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.preferences",{"_index":21082,"title":{},"body":{"classes/UserDto.html":{}}}],["user.repo.ts",{"_index":23310,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.resolvepermissions",{"_index":1660,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.response",{"_index":11195,"title":{},"body":{"classes/GroupResponse.html":{}}}],["user.response.ts",{"_index":11330,"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":17504,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:12",{"_index":11335,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:14",{"_index":17506,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:15",{"_index":11332,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:17",{"_index":17505,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:20",{"_index":17503,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:23",{"_index":17510,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:25",{"_index":12992,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:26",{"_index":17508,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:29",{"_index":17507,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:31",{"_index":12994,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:32",{"_index":17509,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:37",{"_index":12990,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:43",{"_index":12993,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:50",{"_index":12996,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:53",{"_index":12989,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:56",{"_index":12995,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:6",{"_index":11334,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:61",{"_index":12991,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:64",{"_index":12846,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["user.response.ts:7",{"_index":12988,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:9",{"_index":11333,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role",{"_index":11336,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role.name",{"_index":11236,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.roleids",{"_index":21078,"title":{},"body":{"classes/UserDto.html":{}}}],["user.roles",{"_index":16469,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{}}}],["user.roles.getitems",{"_index":20935,"title":{},"body":{"controllers/UserController.html":{}}}],["user.roles.getitems().map((role",{"_index":7150,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.getitems(true",{"_index":21458,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.roles.isinitialized(true",{"_index":16651,"title":{},"body":{"injectables/PermissionService.html":{}}}],["user.roles.map((roleref",{"_index":7153,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.some",{"_index":21717,"title":{},"body":{"injectables/UserService.html":{}}}],["user.roles.some((role",{"_index":9802,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["user.school",{"_index":6745,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["user.school.id",{"_index":6055,"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":6748,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.schoolyear?.startdate",{"_index":6747,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.tostring",{"_index":17500,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.schoolid",{"_index":4787,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{}}}],["user.schoolid.tostring",{"_index":9650,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.scope",{"_index":20998,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user.ts",{"_index":11317,"title":{},"body":{"classes/GroupUser.html":{},"classes/ResolvedGroupUser.html":{}}}],["user.ts:4",{"_index":11319,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:5",{"_index":17489,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.ts:6",{"_index":11318,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:7",{"_index":17488,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.uc.ts",{"_index":23304,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.updatedat",{"_index":17498,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.url.params.ts",{"_index":13055,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.url.params.ts:11",{"_index":13056,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.user.firstname",{"_index":11237,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.id",{"_index":11235,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.lastname",{"_index":11238,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.userid",{"_index":11023,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"controllers/UserLoginMigrationController.html":{}}}],["user.username",{"_index":13632,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{}}}],["user.userroleenum",{"_index":19213,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["user/account",{"_index":13191,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["user/import",{"_index":12750,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user?.id",{"_index":16499,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["user?.lastloginsystemchange",{"_index":14942,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["user_already_assigned_to_import_user_error",{"_index":20904,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user_id",{"_index":2100,"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":21114,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["user_login_migration_grace_period_expired",{"_index":21259,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["user_login_migration_not_found",{"_index":21290,"title":{},"body":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["user_login_migrations",{"_index":21248,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["user_migration_failed",{"_index":21255,"title":{},"body":{"classes/UserLoginMigrationError.html":{}}}],["useralreadyassignedtoimportusererror",{"_index":20899,"title":{"classes/UserAlreadyAssignedToImportUserError.html":{}},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["userandaccountparams",{"_index":656,"title":{"interfaces/UserAndAccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory",{"_index":657,"title":{"classes/UserAndAccountTestFactory.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory.buildaccount(user",{"_index":669,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userapimodule",{"_index":18591,"title":{"modules/UserApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserApiModule.html":{},"modules.html":{}}}],["userattributenamemapping",{"_index":12407,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userboardrole",{"_index":3362,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.editor",{"_index":3366,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.reader",{"_index":3367,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.userroleenum",{"_index":3364,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardroles",{"_index":3080,"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":20919,"title":{"controllers/UserController.html":{}},"body":{"modules/UserApiModule.html":{},"controllers/UserController.html":{}}}],["usercount",{"_index":13716,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["userdata",{"_index":9753,"title":{"interfaces/UserData.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["userdataresponse",{"_index":19171,"title":{"classes/UserDataResponse.html":{}},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{},"classes/UserDataResponse.html":{}}}],["userdo",{"_index":7142,"title":{"classes/UserDO.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.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":13095,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.externalid",{"_index":13096,"title":{},"body":{"classes/IservMapper.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.firstname",{"_index":13093,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.lastloginsystemchange",{"_index":21392,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.lastname",{"_index":13094,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.previousexternalid",{"_index":21560,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocopy",{"_index":21519,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocument",{"_index":21646,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments",{"_index":21643,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments.map((userdocument",{"_index":21644,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdofactory",{"_index":21052,"title":{"classes/UserDoFactory.html":{}},"body":{"classes/UserDoFactory.html":{}}}],["userdofactory.define(userdo",{"_index":21057,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["userdorepo",{"_index":20979,"title":{"injectables/UserDORepo.html":{}},"body":{"injectables/UserDORepo.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["userdto",{"_index":21060,"title":{"classes/UserDto.html":{}},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["userentity",{"_index":21009,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userentitys",{"_index":21016,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userentitys.find((user",{"_index":21018,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userequestcontext",{"_index":10596,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["userfactory",{"_index":648,"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":19120,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["userfactory.buildlistwithid(numberofstudents",{"_index":6810,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["userfactory.buildlistwithid(numberofteachers",{"_index":6811,"title":{},"body":{"classes/CourseFactory.html":{}}}],["userfactory.buildlistwithid(numberofteammembers",{"_index":19117,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["userfactory.buildwithid",{"_index":19116,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TeamUserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["userfactory.define(user",{"_index":21101,"title":{},"body":{"classes/UserFactory.html":{}}}],["userforgroupnotfoundloggable",{"_index":16442,"title":{"classes/UserForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["userforgroupnotfoundloggable(externalgroupuser",{"_index":16502,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["usergroup",{"_index":9764,"title":{"interfaces/UserGroup.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usergroups",{"_index":9763,"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":{},"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":{},"classes/BaseUc.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnUc.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DownloadFileParams.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageConsumer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"classes/GroupUser.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IJsonAccount.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserScope.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/MetaTagExtractorUc.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":19136,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["userid).buildwithid",{"_index":20136,"title":{},"body":{"classes/TeamFactory.html":{}}}],["userid)?.userroleenum",{"_index":2480,"title":{},"body":{"classes/BaseUc.html":{}}}],["userid.tohexstring",{"_index":4393,"title":{},"body":{"classes/ClassMapper.html":{}}}],["userid.tostring",{"_index":9661,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["userid1",{"_index":4258,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["userid?.tostring",{"_index":952,"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":6822,"title":{},"body":{"entities/CourseGroup.html":{}}}],["userids.map((id",{"_index":727,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["userimportuc",{"_index":12793,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["userinfo",{"_index":14567,"title":{},"body":{"injectables/LoginUc.html":{},"classes/SystemFactory.html":{}}}],["userinfo.token.claim",{"_index":13493,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["userinfomapper",{"_index":15154,"title":{"classes/UserInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/UserInfoMapper.html":{}}}],["userinfomapper.maptoresponse(news.creator",{"_index":15157,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinfomapper.maptoresponse(news.updater",{"_index":15171,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinforesponse",{"_index":15125,"title":{"classes/UserInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{}}}],["userinfourl",{"_index":12432,"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":16326,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userlist",{"_index":12819,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userlist.map((user",{"_index":12821,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userloginmigration",{"_index":4523,"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":4533,"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":4530,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat.gettime",{"_index":4541,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.id",{"_index":4532,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.mandatorysince",{"_index":14139,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.school",{"_index":12220,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["userloginmigration.startedat",{"_index":14138,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationalreadyclosedloggableexception",{"_index":18990,"title":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiokresponse({description",{"_index":21167,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiunprocessableentityresponse({description",{"_index":21135,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationapimodule",{"_index":18592,"title":{"modules/UserLoginMigrationApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["userloginmigrationcontroller",{"_index":21121,"title":{"controllers/UserLoginMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationdo",{"_index":4521,"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":21385,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.finishedat",{"_index":21386,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationentity",{"_index":12198,"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":21299,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationerror",{"_index":21254,"title":{"classes/UserLoginMigrationError.html":{}},"body":{"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception",{"_index":4525,"title":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apinotfoundresponse({description",{"_index":21136,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiokresponse({description",{"_index":21160,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiunprocessableentityresponse({description",{"_index":21166,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationid",{"_index":12221,"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":20356,"title":{"classes/UserLoginMigrationMandatoryLoggable.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["userloginmigrationmandatoryloggable(userid",{"_index":20358,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigrationmandatoryparams",{"_index":21164,"title":{"classes/UserLoginMigrationMandatoryParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["userloginmigrationmapper",{"_index":21177,"title":{"classes/UserLoginMigrationMapper.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["userloginmigrationmapper.mapsearchparamstoquery(params",{"_index":21187,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(migrationdto",{"_index":21199,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(userloginmigration",{"_index":21192,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmodule",{"_index":13927,"title":{"modules/UserLoginMigrationModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["userloginmigrationnotfoundloggableexception",{"_index":4526,"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":4528,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiokresponse({description",{"_index":21137,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiunprocessableentityresponse({description",{"_index":21158,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationprops",{"_index":21308,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationquery",{"_index":21178,"title":{"interfaces/UserLoginMigrationQuery.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationrepo",{"_index":14934,"title":{"injectables/UserLoginMigrationRepo.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationrepo.save",{"_index":21372,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationresponse",{"_index":21179,"title":{"classes/UserLoginMigrationResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationresponse})@apiforbiddenresponse",{"_index":21173,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apinotfoundresponse({description",{"_index":21144,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse",{"_index":21161,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apinocontentresponse({description",{"_index":21138,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationrevertservice",{"_index":4516,"title":{"injectables/UserLoginMigrationRevertService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["userloginmigrationrule",{"_index":1713,"title":{"injectables/UserLoginMigrationRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["userloginmigrations",{"_index":21143,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchlistresponse",{"_index":21180,"title":{"classes/UserLoginMigrationSearchListResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationsearchlistresponse})@apiinternalservererrorresponse({description",{"_index":21150,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchparams",{"_index":21147,"title":{"classes/UserLoginMigrationSearchParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["userloginmigrationservice",{"_index":4514,"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":17519,"title":{"classes/UserLoginMigrationStartLoggable.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationstartloggable(userid",{"_index":17522,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["userloginmigrationuc",{"_index":21119,"title":{"injectables/UserLoginMigrationUc.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["usermapper",{"_index":21437,"title":{"classes/UserMapper.html":{}},"body":{"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["usermapper.mapfromentitytodto(userentity",{"_index":21704,"title":{},"body":{"injectables/UserService.html":{}}}],["usermatches",{"_index":12983,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["usermatchlistresponse",{"_index":12798,"title":{"classes/UserMatchListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchlistresponse(dtolist",{"_index":12823,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper",{"_index":12790,"title":{"classes/UserMatchMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["usermatchmapper.maptodomain(scope",{"_index":12818,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper.maptoresponse(user",{"_index":12822,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["usermatchresponse",{"_index":12848,"title":{"classes/UserMatchResponse.html":{}},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchschoolid",{"_index":18353,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["usermetadata",{"_index":9770,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermetdata",{"_index":9762,"title":{"interfaces/UserMetdata.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermigrationcontroller",{"_index":21120,"title":{"controllers/UserMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["usermigrationdto",{"_index":14948,"title":{},"body":{"classes/MigrationDto.html":{},"injectables/UserMigrationService.html":{}}}],["usermigrationdto.redirect",{"_index":14949,"title":{},"body":{"classes/MigrationDto.html":{}}}],["usermigrationisnotenabled",{"_index":21485,"title":{"classes/UserMigrationIsNotEnabled.html":{}},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["usermigrationmapper",{"_index":16242,"title":{"classes/UserMigrationMapper.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{}}}],["usermigrationmapper.mapdtotoresponse(migration",{"_index":16311,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["usermigrationresponse",{"_index":16238,"title":{"classes/UserMigrationResponse.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{}}}],["usermigrationservice",{"_index":15514,"title":{"injectables/UserMigrationService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["usermodel",{"_index":13491,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["usermodule",{"_index":3534,"title":{"modules/UserModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/GroupApiModule.html":{},"modules/MetaTagExtractorModule.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":750,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["username.trim().tolowercase",{"_index":1586,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["usernames",{"_index":9720,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usernotfoundafterprovisioningloggableexception",{"_index":15540,"title":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}},"body":{"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["usernotfoundafterprovisioningloggableexception(externaluserid",{"_index":15566,"title":{},"body":{"injectables/OAuthService.html":{}}}],["userparams",{"_index":650,"title":{"classes/UserParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserParams.html":{}}}],["userpathadditions",{"_index":12404,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userpermissions",{"_index":21098,"title":{},"body":{"classes/UserFactory.html":{}}}],["userquery",{"_index":20986,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userrefprops",{"_index":1645,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrefprops.some((prop",{"_index":1677,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrepo",{"_index":217,"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":13571,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["userrole",{"_index":12850,"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":17620,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.student",{"_index":17622,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.teacher",{"_index":17621,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userroleenum",{"_index":2463,"title":{},"body":{"classes/BaseUc.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ColumnUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["userroleenum.student",{"_index":2483,"title":{},"body":{"classes/BaseUc.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["userroleenum.substitution_teacher",{"_index":3120,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userroleenum.teacher",{"_index":3118,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userrule",{"_index":1714,"title":{"injectables/UserRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserRule.html":{}}}],["users",{"_index":3063,"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":{},"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":16504,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.find",{"_index":13607,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.find((user",{"_index":21614,"title":{},"body":{"injectables/UserRepo.html":{}}}],["users.foreach((user",{"_index":16492,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.getidentifiers('_id",{"_index":6637,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["users.length",{"_index":6641,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UsersList.html":{}}}],["users.map((user",{"_index":6648,"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":13601,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.total",{"_index":18471,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["users.update",{"_index":13600,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users_configuration_path='/tmp/config/users",{"_index":23632,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["userscollection",{"_index":11801,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.createindex",{"_index":11813,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.dropindex('usersearchindex",{"_index":11812,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexes",{"_index":11805,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexexists('usersearchindex",{"_index":11804,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscope",{"_index":20997,"title":{"classes/UserScope.html":{}},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["userscount",{"_index":978,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["usersearchindex",{"_index":11806,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindex[0].key?.schoolid",{"_index":11809,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindexexists",{"_index":11803,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userservice",{"_index":4768,"title":{"injectables/UserService.html":{}},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.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":21702,"title":{},"body":{"injectables/UserService.html":{}}}],["usersfile",{"_index":12080,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["userslist",{"_index":6606,"title":{"classes/UsersList.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["userspermissions",{"_index":1659,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["userspermissions.includes(p",{"_index":1662,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["usersresponse",{"_index":19176,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["usersubmissionexists",{"_index":8329,"title":{},"body":{"injectables/ElementUc.html":{}}}],["userswithemail",{"_index":13140,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail.length",{"_index":13142,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail[0",{"_index":13143,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["usertoicurrentuser",{"_index":7136,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["usertoicurrentuser(accountid",{"_index":7146,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["useruc",{"_index":12801,"title":{"injectables/UserUc.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["userwithpopulatedroles",{"_index":1831,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["uses",{"_index":13931,"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":1116,"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":20309,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["using",{"_index":493,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"modules/AuthorizationReferenceModule.html":{},"classes/BaseFactory.html":{},"classes/BaseUc.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":{},"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":5525,"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":10395,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["util",{"_index":10911,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["util.inspect(message).replace(/\\n/g",{"_index":13921,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["utilities",{"_index":14450,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["utilities.format.nestlike",{"_index":14469,"title":{},"body":{"modules/LoggerModule.html":{}}}],["utils",{"_index":3309,"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":17350,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["utils.asarray(id",{"_index":3327,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["utils/error.utils",{"_index":8377,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["uuid",{"_index":570,"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":12835,"title":{},"body":{"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["v",{"_index":11657,"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":23011,"title":{},"body":{"todo.html":{}}}],["v3/index",{"_index":23016,"title":{},"body":{"todo.html":{}}}],["v3/tools/external",{"_index":8677,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["v4",{"_index":9998,"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":5436,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["valid",{"_index":578,"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":{},"injectables/MetaTagExtractorService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validatabletool",{"_index":5421,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.id",{"_index":5461,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.find",{"_index":5465,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.length",{"_index":5459,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.map",{"_index":5454,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validate",{"_index":6165,"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":6170,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validate(payload",{"_index":13179,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["validate(props",{"_index":4279,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["validate(request",{"_index":13821,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["validate(school",{"_index":18514,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validate(schoolexternaltool",{"_index":18332,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validate(username",{"_index":14408,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["validateandgetexternaltool",{"_index":9729,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateandgetexternaltool(oauth2clientid",{"_index":9754,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecommon",{"_index":8937,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecommon(externaltool",{"_index":8957,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecontextexternaltools",{"_index":9730,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validatecontextexternaltools(courseid",{"_index":9756,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecreate",{"_index":9517,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecreate(externaltool",{"_index":9522,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validated",{"_index":13211,"title":{},"body":{"injectables/JwtValidationAdapter.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validategraceperiod",{"_index":18400,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validategraceperiod(userloginmigration",{"_index":18425,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validatelogosize",{"_index":8845,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelogosize(externaltool",{"_index":8859,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelti11config",{"_index":9518,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatelti11config(externaltool",{"_index":9524,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatenested",{"_index":5905,"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":8737,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MoveElementParams.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{}}}],["validatenested()@type(undefined",{"_index":8701,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested({each",{"_index":5897,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["validateoauth2config",{"_index":9519,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateoauth2config(externaltool",{"_index":9525,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateparameter",{"_index":5419,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validateparameter(param",{"_index":5438,"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":2652,"title":{},"body":{"entities/Board.html":{}}}],["validaterocketchatconfig",{"_index":1100,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["validateschoolexternaltool",{"_index":9731,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateschoolexternaltool(schoolid",{"_index":9758,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatestatus",{"_index":11423,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["validatesubject",{"_index":15932,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatesubject(currentuser",{"_index":15943,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatetoken",{"_index":15510,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validatetoken(idtoken",{"_index":15536,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validateupdate",{"_index":9520,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateupdate(toolid",{"_index":9527,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateusersmatch",{"_index":7832,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validateusersmatch(dashboard",{"_index":7840,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validating",{"_index":13210,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation",{"_index":1225,"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":1388,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{}}}],["validation.adapter.ts",{"_index":13199,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:13",{"_index":13204,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:25",{"_index":13209,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:30",{"_index":13207,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:36",{"_index":13214,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.error.ts",{"_index":1204,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.error.ts:4",{"_index":1210,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.pipe",{"_index":21749,"title":{},"body":{"modules/ValidationModule.html":{}}}],["validation.pipe.ts",{"_index":10949,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.pipe.ts:12",{"_index":10952,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.service",{"_index":9530,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts",{"_index":5410,"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":8938,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:108",{"_index":8946,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:118",{"_index":8948,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:12",{"_index":6168,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:128",{"_index":8954,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:136",{"_index":8950,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:14",{"_index":5448,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:148",{"_index":8942,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:15",{"_index":18333,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:16",{"_index":8958,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:18",{"_index":9523,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:20",{"_index":6171,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:24",{"_index":5437,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:25",{"_index":18330,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:28",{"_index":9528,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:32",{"_index":5425,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:45",{"_index":5422,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:53",{"_index":5434,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:60",{"_index":9526,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:65",{"_index":5439,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:7",{"_index":18512,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:72",{"_index":8944,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:73",{"_index":5428,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:76",{"_index":8952,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:81",{"_index":5432,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:86",{"_index":8940,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:89",{"_index":5430,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:9",{"_index":18327,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:95",{"_index":8956,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation_error",{"_index":21742,"title":{},"body":{"classes/ValidationError.html":{}}}],["validationerror",{"_index":283,"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":18429,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validationerror('user",{"_index":7152,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["validationerror(`tool_id_mismatch",{"_index":9535,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validationerror(`tool_name_duplicate",{"_index":8961,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror(`tool_param_name",{"_index":8966,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror.children",{"_index":1266,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.children.foreach((childerror",{"_index":1267,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.constraints",{"_index":1262,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.property",{"_index":1260,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrordetailresponse",{"_index":1237,"title":{"classes/ValidationErrorDetailResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["validationerrordetailresponse(propertypath",{"_index":1265,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrorlogmessage",{"_index":8370,"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/UnknownQueryTypeLoggableException.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":1211,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ErrorLoggable.html":{}}}],["validationmetadata",{"_index":8403,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.context?.privacyprotected",{"_index":8405,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.propertyname",{"_index":8404,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmodule",{"_index":6496,"title":{"modules/ValidationModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{},"modules.html":{}}}],["validationpipe",{"_index":10951,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validator",{"_index":148,"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/ClassFilterParams.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/GetMetaTagDataBody.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/MetaTagExtractorResponse.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":23294,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["validcourses",{"_index":9808,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validcourses.push(course",{"_index":9811,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validfrom",{"_index":11015,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["validjwt",{"_index":7078,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["validperiod",{"_index":11098,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["validuntil",{"_index":11016,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["value",{"_index":480,"title":{},"body":{"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":{},"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":{},"injectables/MetaTagExtractorService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"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":19016,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{}}}],["value.loggable",{"_index":14991,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["value.trim().length",{"_index":19039,"title":{},"body":{"classes/StringValidator.html":{}}}],["value[0",{"_index":13642,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["values",{"_index":1393,"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":1591,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:2",{"_index":1595,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:4",{"_index":1594,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["var",{"_index":11825,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["variable",{"_index":18640,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["variables",{"_index":18931,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["various",{"_index":23206,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["vars",{"_index":1895,"title":{},"body":{"injectables/AutoSchoolIdStrategy.html":{},"injectables/AutoSchoolNumberStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["vcdo",{"_index":22002,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["vcdo.options",{"_index":22004,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["verbatim",{"_index":22369,"title":{},"body":{"license.html":{}}}],["verbose",{"_index":11614,"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":1064,"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":23539,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyfeaturesenabled",{"_index":21877,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifyfeaturesenabled(schoolid",{"_index":21890,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifying",{"_index":23540,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyoptions",{"_index":1432,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["version",{"_index":5057,"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":20849,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.interface.ts:2",{"_index":20850,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.service",{"_index":9397,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["version.service.ts",{"_index":9550,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:16",{"_index":9561,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:32",{"_index":9575,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:39",{"_index":9564,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:52",{"_index":9573,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:60",{"_index":9567,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:68",{"_index":9571,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:7",{"_index":9578,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:76",{"_index":9569,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["versionkey",{"_index":9968,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["versionnumber",{"_index":5280,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["versions",{"_index":22383,"title":{},"body":{"license.html":{}}}],["vertrauensstufe",{"_index":18046,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["very",{"_index":11770,"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":6221,"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":8084,"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":6605,"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":22099,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconference.options.everybodyjoinsasmoderator",{"_index":22020,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference.options.moderatormustapprovejoinrequests",{"_index":22022,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference2",{"_index":21803,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconference:31",{"_index":21980,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:34",{"_index":21981,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:6",{"_index":21979,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconferenceapimodule",{"_index":18593,"title":{"modules/VideoConferenceApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules.html":{}}}],["videoconferencebaseresponse",{"_index":8085,"title":{"classes/VideoConferenceBaseResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencebaseresponse:10",{"_index":8092,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:12",{"_index":8090,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:8",{"_index":8093,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferenceconfiguration",{"_index":21793,"title":{"classes/VideoConferenceConfiguration.html":{}},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.bbb",{"_index":21799,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.videoconference",{"_index":22064,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["videoconferencecontroller",{"_index":21788,"title":{"controllers/VideoConferenceController.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencecreateparams",{"_index":21823,"title":{"classes/VideoConferenceCreateParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencecreateuc",{"_index":21784,"title":{"injectables/VideoConferenceCreateUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["videoconferencedeprecatedcontroller",{"_index":21930,"title":{"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedeprecateduc",{"_index":21943,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedo",{"_index":21917,"title":{"classes/VideoConferenceDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceenduc",{"_index":21785,"title":{"injectables/VideoConferenceEndUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["videoconferenceinfo",{"_index":21830,"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":21832,"title":{"classes/VideoConferenceInfoResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferenceinforesponse})@apiresponse({status",{"_index":21814,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferenceinfouc",{"_index":21786,"title":{"injectables/VideoConferenceInfoUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["videoconferencejoin",{"_index":21831,"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":22052,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse",{"_index":21833,"title":{"classes/VideoConferenceJoinResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse})@apiresponse({status",{"_index":21820,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencejoinuc",{"_index":21787,"title":{"injectables/VideoConferenceJoinUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["videoconferencemapper",{"_index":21827,"title":{"classes/VideoConferenceMapper.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemapper.tovideoconferenceinforesponse(dto",{"_index":21850,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencejoinresponse(dto",{"_index":21847,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferenceoptions(params",{"_index":21843,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencestateresponse(from.state",{"_index":22120,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemodule",{"_index":21783,"title":{"modules/VideoConferenceModule.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["videoconferenceoptions",{"_index":21752,"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":21921,"title":{"classes/VideoConferenceOptionsDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["videoconferenceoptionsresponse",{"_index":21984,"title":{"classes/VideoConferenceOptionsResponse.html":{}},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["videoconferenceoptionsresponse(videoconferenceinfo.options",{"_index":22051,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencerepo",{"_index":22058,"title":{"injectables/VideoConferenceRepo.html":{}},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceresponsedeprecatedmapper",{"_index":21941,"title":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptobaseresponse(dto",{"_index":21965,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptoinforesponse(dto",{"_index":21962,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptojoinresponse(dto",{"_index":21960,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsemapper",{"_index":22113,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferences",{"_index":21766,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["videoconferencescope",{"_index":18556,"title":{},"body":{"classes/ScopeRef.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope'})@isenum(videoconferencescope",{"_index":22125,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope.course",{"_index":22096,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescope.event",{"_index":22094,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescopeparams",{"_index":21806,"title":{"classes/VideoConferenceScopeParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferenceservice",{"_index":21879,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencesettings",{"_index":12620,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencestate",{"_index":21773,"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":21976,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.not_started",{"_index":21996,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.running",{"_index":21954,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse",{"_index":8091,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.finished",{"_index":22049,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.not_started",{"_index":22047,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.running",{"_index":22048,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferenceuc",{"_index":21947,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencingscopemapping",{"_index":22098,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencingscopemapping[entity.targetmodel",{"_index":22103,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videocount",{"_index":2118,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["view",{"_index":15286,"title":{},"body":{"injectables/NewsUc.html":{},"license.html":{}}}],["viewer",{"_index":2068,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["viewers",{"_index":6929,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["violates",{"_index":22693,"title":{},"body":{"license.html":{}}}],["violation",{"_index":22744,"title":{},"body":{"license.html":{}}}],["virtuals",{"_index":22243,"title":{},"body":{"dependencies.html":{}}}],["virus",{"_index":10232,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["virus_detected",{"_index":1140,"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":1141,"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":1172,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["viruses.join",{"_index":1176,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["visibilities",{"_index":22993,"title":{},"body":{"todo.html":{}}}],["visibility",{"_index":4084,"title":{},"body":{"classes/CardResponse.html":{},"classes/PatchVisibilityParams.html":{},"injectables/RoomsUc.html":{}}}],["visibility.params.ts",{"_index":16633,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibility.params.ts:12",{"_index":16634,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibilitysettings",{"_index":4075,"title":{},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{}}}],["visibilitysettingsresponse",{"_index":4082,"title":{"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["visible",{"_index":6928,"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":8615,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visibletools.filter",{"_index":8619,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visitcard",{"_index":2785,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcard(card",{"_index":2794,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcardasync",{"_index":2836,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(card",{"_index":2829,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(original",{"_index":17212,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildren",{"_index":17327,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildren(parent",{"_index":17338,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildrenasync",{"_index":17284,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenasync(domainobject",{"_index":17289,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenof",{"_index":17202,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildrenof(boarddo",{"_index":17214,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumn",{"_index":2786,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumn(column",{"_index":2797,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnasync",{"_index":2837,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(column",{"_index":2828,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(original",{"_index":17216,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumnboard",{"_index":2787,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboard(columnboard",{"_index":2799,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboardasync",{"_index":2838,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(columnboard",{"_index":2827,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(original",{"_index":17218,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitexternaltoolelement",{"_index":2788,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelement(externaltoolelement",{"_index":2801,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelementasync",{"_index":2839,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(externaltoolelement",{"_index":2835,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(original",{"_index":17220,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitfileelement",{"_index":2789,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelement(fileelement",{"_index":2804,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelementasync",{"_index":2840,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(fileelement",{"_index":2830,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(original",{"_index":17222,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitlinkelement",{"_index":2790,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelement(linkelement",{"_index":2807,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelementasync",{"_index":2841,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(linkelement",{"_index":2831,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(original",{"_index":17224,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitor",{"_index":2740,"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":3274,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["visitor.ts",{"_index":2784,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:12",{"_index":2800,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:13",{"_index":2798,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:14",{"_index":2796,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:15",{"_index":2806,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:16",{"_index":2809,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:17",{"_index":2812,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:18",{"_index":2815,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:19",{"_index":2817,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:20",{"_index":2803,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:24",{"_index":2847,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:25",{"_index":2846,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:26",{"_index":2845,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:27",{"_index":2849,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:28",{"_index":2850,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:29",{"_index":2851,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:30",{"_index":2852,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:31",{"_index":2853,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:32",{"_index":2848,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.visitcard(this",{"_index":3984,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcardasync(this",{"_index":3985,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcolumn(this",{"_index":4746,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnasync(this",{"_index":4747,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnboard(this",{"_index":4763,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitcolumnboardasync(this",{"_index":4764,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitexternaltoolelement(this",{"_index":8726,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitexternaltoolelementasync(this",{"_index":8727,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitfileelement(this",{"_index":9928,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitfileelementasync(this",{"_index":9929,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitlinkelement(this",{"_index":14354,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitlinkelementasync(this",{"_index":14355,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitrichtextelement(this",{"_index":17553,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitrichtextelementasync(this",{"_index":17554,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitsubmissioncontainerelement(this",{"_index":19057,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissioncontainerelementasync(this",{"_index":19058,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissionitem(this",{"_index":19139,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitor.visitsubmissionitemasync(this",{"_index":19140,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitrichtextelement",{"_index":2791,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelement(richtextelement",{"_index":2810,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelementasync",{"_index":2842,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitrichtextelementasync(original",{"_index":17226,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitrichtextelementasync(richtextelement",{"_index":2832,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelement",{"_index":2792,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelement(submissioncontainerelement",{"_index":2813,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelementasync",{"_index":2843,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelementasync(original",{"_index":17228,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissioncontainerelementasync(submissioncontainerelement",{"_index":2833,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitem",{"_index":2793,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submissionitem",{"_index":2816,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitemasync",{"_index":2844,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(original",{"_index":17230,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissionitemasync(submission",{"_index":5708,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submissionitem",{"_index":2834,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visual",{"_index":22328,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vo",{"_index":12028,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["voicebridge",{"_index":2054,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["voiceparticipantcount",{"_index":2119,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["void",{"_index":519,"title":{},"body":{"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":22598,"title":{},"body":{"license.html":{}}}],["von",{"_index":18035,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["vorname",{"_index":18038,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["vs",{"_index":13157,"title":{},"body":{"interfaces/JwtConstants.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["vscode",{"_index":22298,"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":23575,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/lauch",{"_index":23017,"title":{},"body":{"todo.html":{}}}],["vscode/launch.default.json",{"_index":23135,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/settings.default.json",{"_index":23573,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["wait",{"_index":1583,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["waiting",{"_index":22026,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["waive",{"_index":22557,"title":{},"body":{"license.html":{}}}],["waiver",{"_index":22925,"title":{},"body":{"license.html":{}}}],["want",{"_index":4694,"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":12093,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["warn(message",{"_index":12104,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["warning",{"_index":14431,"title":{},"body":{"injectables/Logger.html":{}}}],["warning(loggable",{"_index":14440,"title":{},"body":{"injectables/Logger.html":{}}}],["warranties",{"_index":22479,"title":{},"body":{"license.html":{}}}],["warranty",{"_index":22478,"title":{},"body":{"license.html":{}}}],["watch",{"_index":23000,"title":{},"body":{"todo.html":{}}}],["way",{"_index":3612,"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":22608,"title":{},"body":{"license.html":{}}}],["web",{"_index":5343,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["weblink",{"_index":5371,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["weights",{"_index":11817,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["weird",{"_index":6952,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["welcome",{"_index":1968,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{}}}],["well",{"_index":22463,"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":13540,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["wenn",{"_index":22063,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["went",{"_index":12632,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["werden",{"_index":4870,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wether",{"_index":23841,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["whatever",{"_index":18566,"title":{},"body":{"classes/ServerConsole.html":{},"license.html":{}}}],["whereas",{"_index":23234,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wherelastloginsystemchangeisbetween",{"_index":21004,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["wherelastloginsystemchangeisbetween(startdate",{"_index":21662,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan",{"_index":21657,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(date",{"_index":21664,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(query.lastloginsystemchangesmallerthan",{"_index":21003,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["wherever",{"_index":13912,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["whether",{"_index":7128,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["whitelist",{"_index":10959,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["whitelisted",{"_index":13192,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["whitespace",{"_index":15030,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["whole",{"_index":15357,"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":19150,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["whose",{"_index":22648,"title":{},"body":{"license.html":{}}}],["wichtige",{"_index":4862,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["widely",{"_index":22491,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["widespread",{"_index":22411,"title":{},"body":{"license.html":{}}}],["width",{"_index":6316,"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":5369,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["wildfly",{"_index":23660,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["willkommen",{"_index":4849,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["window",{"_index":22499,"title":{},"body":{"license.html":{},"todo.html":{}}}],["windowfeatures",{"_index":5368,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["windows",{"_index":22976,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["winston",{"_index":8423,"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":14455,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.combine",{"_index":14462,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.ms",{"_index":14468,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.timestamp",{"_index":14463,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.transports.console",{"_index":14459,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston_module_provider",{"_index":8422,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonlogger",{"_index":8412,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonmodule",{"_index":14451,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winstonmodule.forrootasync",{"_index":14453,"title":{},"body":{"modules/LoggerModule.html":{}}}],["wip",{"_index":22339,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["wipo",{"_index":22549,"title":{},"body":{"license.html":{}}}],["wir",{"_index":4857,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wired",{"_index":23563,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wish",{"_index":22390,"title":{},"body":{"license.html":{}}}],["withbase64logo",{"_index":7386,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withbasicconfig",{"_index":8784,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withcredentials",{"_index":11461,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["withcustomparameters",{"_index":8804,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["withcustomparameters(number",{"_index":7383,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata",{"_index":15657,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata(oauth2params",{"_index":7347,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withguestpolicy",{"_index":2006,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withguestpolicy(guestpolicy",{"_index":2012,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withid",{"_index":18764,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["withid(id",{"_index":18765,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["within",{"_index":3855,"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":7915,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["withldapconfig",{"_index":19426,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withldapconfig(otherparams",{"_index":19429,"title":{},"body":{"classes/SystemFactory.html":{}}}],["withlogouturl",{"_index":2007,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(logouturl",{"_index":2014,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(options.logouturl",{"_index":21910,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["withlti11config",{"_index":8785,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withlti11config(customparam",{"_index":7381,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withmuteonstart",{"_index":2008,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withmuteonstart(value",{"_index":2016,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withname",{"_index":8786,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withname(name",{"_index":8791,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withoauth2config",{"_index":8787,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withoauth2config(clientid",{"_index":8793,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withoauth2config(customparam",{"_index":7379,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withoauthclientid",{"_index":14692,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthclientid(oauthclientid",{"_index":14694,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthconfig",{"_index":19427,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withoidcconfig",{"_index":19428,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["without",{"_index":764,"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":22971,"title":{},"body":{"todo.html":{}}}],["withoutcontext",{"_index":4797,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["withoutdatedsince",{"_index":21658,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(date",{"_index":21666,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(query.outdatedsince",{"_index":21007,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["withrole",{"_index":2081,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/UserFactory.html":{}}}],["withrole(role",{"_index":21091,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrole(value",{"_index":2085,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withroleanduserid",{"_index":20127,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withroleanduserid(role",{"_index":20129,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withrolebyname",{"_index":21087,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrolebyname(name",{"_index":21093,"title":{},"body":{"classes/UserFactory.html":{}}}],["withroles",{"_index":21054,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withroles(roles",{"_index":21055,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withschoolexternaltoolref",{"_index":5865,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolexternaltoolref(schooltoolid",{"_index":5866,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolid",{"_index":18175,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withschoolid(schoolid",{"_index":18176,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withsystemid",{"_index":450,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withsystemid(id",{"_index":465,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withteamuser",{"_index":20128,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withteamuser(teamuser",{"_index":20131,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withuser",{"_index":451,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuser(user",{"_index":467,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuserid",{"_index":2082,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/TeamUserFactory.html":{}}}],["withuserid(currentuserid",{"_index":22018,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["withuserid(userid",{"_index":20237,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["withuserid(value",{"_index":2087,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withuserids",{"_index":4307,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withuserids(userids",{"_index":4308,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withwelcome",{"_index":2009,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withwelcome(welcome",{"_index":2018,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["wont_check",{"_index":10115,"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":23377,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["words",{"_index":11821,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["work",{"_index":768,"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":22506,"title":{},"body":{"license.html":{}}}],["worker",{"_index":8220,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["worker.manufacture",{"_index":8221,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["working",{"_index":11630,"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":23403,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["works",{"_index":10770,"title":{},"body":{"classes/FilterNewsParams.html":{},"injectables/NewsRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["worldwide",{"_index":22812,"title":{},"body":{"license.html":{}}}],["wouldn't",{"_index":1667,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["wrap",{"_index":2620,"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":7639,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrap(modelentity).init",{"_index":7748,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["wrap(props.course).toreference",{"_index":2642,"title":{},"body":{"entities/Board.html":{}}}],["wrap(props.school).toreference",{"_index":12031,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.system).toreference",{"_index":12032,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.user).toreference",{"_index":7646,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrapped",{"_index":23412,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wrappedreference",{"_index":2612,"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":5278,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["writable",{"_index":8111,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["write",{"_index":1619,"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":1624,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["write/read",{"_index":23741,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writecourseids",{"_index":20091,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses",{"_index":20088,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.includes(c",{"_index":20090,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.map((c",{"_index":20092,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writefile",{"_index":10369,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writefile(filepath",{"_index":10404,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writelessons",{"_index":20097,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writen",{"_index":23822,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writer.module",{"_index":18573,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["writer.module.ts",{"_index":5602,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["writer.service",{"_index":5603,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["writer.service.ts",{"_index":5604,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer.service.ts:5",{"_index":5606,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer/console",{"_index":5601,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["writing",{"_index":22890,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["written",{"_index":22615,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wrong",{"_index":7844,"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":23809,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["www",{"_index":13559,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["wünsche",{"_index":4905,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["x",{"_index":1080,"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":6202,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2js",{"_index":5170,"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":6203,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2json(xml",{"_index":6205,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object",{"_index":6199,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object(xml",{"_index":6200,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xmlbuilder",{"_index":5150,"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":5225,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xmlns:blti",{"_index":5226,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:ext",{"_index":5287,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:lticm",{"_index":5227,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:lticp",{"_index":5228,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:mnf",{"_index":5283,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:res",{"_index":5285,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:xsi",{"_index":5229,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xpos",{"_index":7621,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["xposition",{"_index":7654,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["xsd/imsbasiclti_v1p0",{"_index":5259,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticc_v1p0",{"_index":5258,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticm_v1p0",{"_index":5260,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticp_v1p0",{"_index":5261,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd",{"_index":5263,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticc_v1p0.xsd",{"_index":5262,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticm_v1p0.xsd",{"_index":5264,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticp_v1p0.xsd",{"_index":5265,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsi:schemalocation",{"_index":5232,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xxxx",{"_index":23589,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["y",{"_index":7443,"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":23186,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yagni.more",{"_index":23393,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["year",{"_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":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["year.service.ts",{"_index":18530,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:10",{"_index":18535,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:16",{"_index":18534,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:6",{"_index":18533,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["years",{"_index":12237,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UnknownQueryTypeLoggableException.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/BaseUc.html":{},"classes/BoardComposite.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardUc.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ColumnUc.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":{},"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":10203,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["yet.'})@apiresponse({status",{"_index":21935,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["your.config.ts",{"_index":23851,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.module.ts",{"_index":23855,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.service.ts",{"_index":23853,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your_s3_uniq_connection_token",{"_index":23852,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourloggable",{"_index":23345,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourloggable(userid",{"_index":23350,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourmodule",{"_index":23856,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourself",{"_index":22826,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yourservice",{"_index":23381,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["youruc",{"_index":23346,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["ypos",{"_index":7622,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["yposition",{"_index":7655,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["yyyy",{"_index":14464,"title":{},"body":{"modules/LoggerModule.html":{}}}],["z]|[0",{"_index":10867,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["za",{"_index":10866,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["zip",{"_index":5169,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["zipbuilder",{"_index":5151,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["zoom",{"_index":218,"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/MetaTagExtractorApiModule.html":{},"modules/MetaTagExtractorModule.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":4877,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zum",{"_index":4880,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zusammengefasst",{"_index":4886,"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"},"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_imports\n\n\n\ncluster_AccountApiModule_providers\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:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n 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, SortOrder } 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\tconst result = await this._em.find(this.entityName, {}, { offset, limit, orderBy: { id: SortOrder.asc } });\n\t\tthis._em.clear();\n\t\treturn result;\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_providers\n\n\n\ncluster_AuthenticationModule_exports\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_providers\n\n\n\ncluster_AuthorizationModule_imports\n\n\n\n\nFeathersModule\n\nFeathersModule\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nAuthorizationModule -->\n\nFeathersModule->AuthorizationModule\n\n\n\n\n\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_imports\n\n\n\ncluster_AuthorizationReferenceModule_providers\n\n\n\ncluster_AuthorizationReferenceModule_exports\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"},"injectables/AutoContextIdStrategy.html":{"url":"injectables/AutoContextIdStrategy.html","title":"injectable - AutoContextIdStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoContextIdStrategy\n\n\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/auto-parameter-strategy/auto-context-id.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 getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \ngetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-id.strategy.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 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 : string | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoContextIdStrategy implements AutoParameterStrategy {\n\tgetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool): string | undefined {\n\t\treturn contextExternalTool.contextRef.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/AutoContextNameStrategy.html":{"url":"injectables/AutoContextNameStrategy.html","title":"injectable - AutoContextNameStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoContextNameStrategy\n\n\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/auto-parameter-strategy/auto-context-name.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 getBoardValue\n \n \n Private\n Async\n getCourseValue\n \n \n Async\n getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseService: CourseService, contentElementService: ContentElementService, columnBoardService: ColumnBoardService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.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 courseService\n \n \n CourseService\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 columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \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 getBoardValue\n \n \n \n \n \n \n \n getBoardValue(elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.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 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 getCourseValue\n \n \n \n \n \n \n \n getCourseValue(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.strategy.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 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 getValue\n \n \n \n \n \n \n \n getValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-context-name.strategy.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 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 { ColumnBoardService, ContentElementService } from '@modules/board';\nimport { CourseService } from '@modules/learnroom';\nimport { Injectable } from '@nestjs/common';\nimport { AnyContentElementDo, BoardExternalReferenceType, ColumnBoard, Course, EntityId } from '@shared/domain';\nimport { CustomParameterType, ToolContextType } from '../../../common/enum';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { ParameterTypeNotImplementedLoggableException } from '../../error';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoContextNameStrategy implements AutoParameterStrategy {\n\tconstructor(\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly contentElementService: ContentElementService,\n\t\tprivate readonly columnBoardService: ColumnBoardService\n\t) {}\n\n\tasync getValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tswitch (contextExternalTool.contextRef.type) {\n\t\t\tcase ToolContextType.COURSE: {\n\t\t\t\tconst courseValue: string = await this.getCourseValue(contextExternalTool.contextRef.id);\n\n\t\t\t\treturn courseValue;\n\t\t\t}\n\t\t\tcase ToolContextType.BOARD_ELEMENT: {\n\t\t\t\tconst boardValue: string | undefined = await this.getBoardValue(contextExternalTool.contextRef.id);\n\n\t\t\t\treturn boardValue;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(\n\t\t\t\t\t`${CustomParameterType.AUTO_CONTEXTNAME}/${contextExternalTool.contextRef.type as string}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getCourseValue(courseId: EntityId): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\n\t\treturn course.name;\n\t}\n\n\tprivate async getBoardValue(elementId: EntityId): Promise {\n\t\tconst element: AnyContentElementDo = await this.contentElementService.findById(elementId);\n\n\t\tconst board: ColumnBoard = await this.columnBoardService.findByDescendant(element);\n\n\t\tif (board.context.type === BoardExternalReferenceType.Course) {\n\t\t\tconst courseName: string = await this.getCourseValue(board.context.id);\n\n\t\t\treturn courseName;\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AutoParameterStrategy.html":{"url":"interfaces/AutoParameterStrategy.html","title":"interface - AutoParameterStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AutoParameterStrategy\n\n\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/auto-parameter-strategy/auto-parameter.strategy.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \ngetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-parameter.strategy.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 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 : string | Promise | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\n\nexport interface AutoParameterStrategy {\n\tgetValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): string | Promise | undefined;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AutoSchoolIdStrategy.html":{"url":"injectables/AutoSchoolIdStrategy.html","title":"injectable - AutoSchoolIdStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoSchoolIdStrategy\n\n\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/auto-parameter-strategy/auto-school-id.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 getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getValue\n \n \n \n \n \n \ngetValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-school-id.strategy.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 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 : string | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoSchoolIdStrategy implements AutoParameterStrategy {\n\tgetValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tcontextExternalTool: ContextExternalTool\n\t): string | undefined {\n\t\treturn schoolExternalTool.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AutoSchoolNumberStrategy.html":{"url":"injectables/AutoSchoolNumberStrategy.html","title":"injectable - AutoSchoolNumberStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AutoSchoolNumberStrategy\n\n\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/auto-parameter-strategy/auto-school-number.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-school-number.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 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 getValue\n \n \n \n \n \n \n \n getValue(schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/auto-parameter-strategy/auto-school-number.strategy.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 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 { LegacySchoolService } from '@modules/legacy-school';\nimport { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo } from '@shared/domain';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { AutoParameterStrategy } from './auto-parameter.strategy';\n\n@Injectable()\nexport class AutoSchoolNumberStrategy implements AutoParameterStrategy {\n\tconstructor(private readonly schoolService: LegacySchoolService) {}\n\n\tasync getValue(\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolExternalTool.schoolId);\n\n\t\treturn school.officialSchoolNumber;\n\t}\n}\n\n \n\n\n\n\n\n\n\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/BaseUc.html":{"url":"classes/BaseUc.html","title":"class - BaseUc","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseUc\n\n\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/base.uc.ts\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 Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/base.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 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 \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/base.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 anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/base.uc.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\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/base.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 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 \n\n\n \n import { AnyBoardDo, EntityId, SubmissionItem, UserRoleEnum } from '@shared/domain';\nimport { ForbiddenException } from '@nestjs/common';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { BoardDoAuthorizableService } from '../service';\n\nexport abstract class BaseUc {\n\tconstructor(\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService\n\t) {}\n\n\tprotected async checkPermission(\n\t\tuserId: EntityId,\n\t\tanyBoardDo: 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(anyBoardDo);\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\tprotected 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\tprotected async checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem) {\n\t\tif (submissionItem.userId !== userId) {\n\t\t\tthrow new ForbiddenException();\n\t\t}\n\t\tawait this.checkPermission(userId, submissionItem, Action.read, UserRoleEnum.STUDENT);\n\t}\n}\n\n \n\n\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/launch-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 Properties\n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \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:155\n\n \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:105\n\n \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:128\n\n \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:139\n\n \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:79\n\n \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: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 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:64\n\n \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:218\n\n \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:181\n\n \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 Properties\n \n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \n \n \n \n \n Type : Map\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 \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_providers\n\n\n\ncluster_BoardApiModule_imports\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\nColumnUc\n\nColumnUc\n\nBoardApiModule -->\n\nColumnUc->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 ColumnUc\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, ColumnUc } 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, ColumnUc, 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\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 { BoardExternalReferenceType } from '@shared/domain/domainobject/board/types';\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:189\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:175\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n 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: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 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: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 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: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 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.ensureBoardNodeType(this.getChildren(boardNode), [\n\t\t\tBoardNodeType.FILE_ELEMENT,\n\t\t\tBoardNodeType.RICH_TEXT_ELEMENT,\n\t\t]);\n\t\tconst elements = this.buildChildren(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: elements,\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_imports\n\n\n\ncluster_BoardModule_providers\n\n\n\ncluster_BoardModule_exports\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\n\n\nBoardModule\n\nBoardModule\n\nBoardModule -->\n\nConsoleWriterModule->BoardModule\n\n\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nBoardModule -->\n\nContextExternalToolModule->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\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 RecursiveDeleteVisitor\n \n \n SchoolSpecificFileCopyServiceFactory\n \n \n SubmissionItemService\n \n \n \n \n Imports\n \n \n ConsoleWriterModule\n \n \n ContextExternalToolModule\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 { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { ContextExternalToolModule } from '@modules/tool/context-external-tool';\nimport { UserModule } from '@modules/user';\nimport { 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 { BoardDoRepo, BoardNodeRepo, RecursiveDeleteVisitor } from './repo';\nimport {\n\tBoardDoAuthorizableService,\n\tBoardDoService,\n\tCardService,\n\tColumnBoardService,\n\tColumnService,\n\tContentElementService,\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, ContextExternalToolModule],\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],\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 \n \n Async\n createElement\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 \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(urlParams: SubmissionItemUrlParams, bodyParams: CreateContentElementBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new element in a submission item.'})@ApiExtraModels(RichTextElementResponse, FileElementResponse)@ApiResponse({status: 201, schema: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Post(':submissionItemId/elements')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board-submission.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 SubmissionItemUrlParams\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 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: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 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: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 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 {\n\tBody,\n\tController,\n\tForbiddenException,\n\tGet,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\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 { 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 {\n\tCreateContentElementBodyParams,\n\tFileElementResponse,\n\tRichTextElementResponse,\n\tSubmissionContainerUrlParams,\n\tSubmissionItemUrlParams,\n\tUpdateSubmissionItemBodyParams,\n} from './dto';\nimport { ContentElementResponseFactory, 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\t@ApiOperation({ summary: 'Create a new element in a submission item.' })\n\t@ApiExtraModels(RichTextElementResponse, FileElementResponse)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [{ $ref: getSchemaPath(RichTextElementResponse) }, { $ref: getSchemaPath(FileElementResponse) }],\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(':submissionItemId/elements')\n\tasync createElement(\n\t\t@Param() urlParams: SubmissionItemUrlParams,\n\t\t@Body() bodyParams: CreateContentElementBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst { type } = bodyParams;\n\t\tconst element = await this.submissionItemUc.createElement(currentUser.userId, urlParams.submissionItemId, type);\n\t\tconst response = ContentElementResponseFactory.mapSubmissionContentToResponse(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/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"},"injectables/BoardUc.html":{"url":"injectables/BoardUc.html","title":"injectable - BoardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/board.uc.ts\n \n\n\n\n \n Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createColumn\n \n \n Async\n deleteBoard\n \n \n Async\n findBoard\n \n \n Async\n findBoardContext\n \n \n Async\n moveColumn\n \n \n Async\n updateBoardTitle\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, cardService: CardService, columnBoardService: ColumnBoardService, columnService: ColumnService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n columnService\n \n \n ColumnService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n createColumn(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n 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 deleteBoard\n \n \n \n \n \n \n \n deleteBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBoard\n \n \n \n \n \n \n \n findBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 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 findBoardContext\n \n \n \n \n \n \n \n findBoardContext(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n moveColumn(userId: EntityId, columnId: EntityId, targetBoardId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetBoardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n \n \n \n updateBoardTitle(userId: EntityId, boardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts: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 boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { BoardExternalReference, Column, ColumnBoard, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService } from '@modules/authorization/domain';\nimport { Action } from '@modules/authorization';\nimport { CardService, ColumnBoardService, ColumnService } from '../service';\nimport { BoardDoAuthorizableService } from '../service/board-do-authorizable.service';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class BoardUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly columnBoardService: ColumnBoardService,\n\t\tprivate readonly columnService: ColumnService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tsuper(authorizationService, boardDoAuthorizableService);\n\t\tthis.logger.setContext(BoardUc.name);\n\t}\n\n\tasync findBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board;\n\t}\n\n\tasync findBoardContext(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoardContext', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board.context;\n\t}\n\n\tasync deleteBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.delete(board);\n\t}\n\n\tasync updateBoardTitle(userId: EntityId, boardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateBoardTitle', userId, boardId, title });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.updateTitle(board, title);\n\t}\n\n\tasync createColumn(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'createColumn', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tconst column = await this.columnService.create(board);\n\t\treturn column;\n\t}\n\n\tasync moveColumn(\n\t\tuserId: EntityId,\n\t\tcolumnId: EntityId,\n\t\ttargetBoardId: EntityId,\n\t\ttargetPosition: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'moveColumn', userId, columnId, targetBoardId, targetPosition });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tconst targetBoard = await this.columnBoardService.findById(targetBoardId);\n\n\t\tawait this.checkPermission(userId, column, Action.write);\n\t\tawait this.checkPermission(userId, targetBoard, Action.write);\n\n\t\tawait this.columnService.move(column, targetBoard, targetPosition);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_exports\n\n\n\ncluster_CalendarModule_providers\n\n\n\n\nCalendarService \n\nCalendarService \n\n\n\nCalendarModule\n\nCalendarModule\n\nCalendarService -->\n\nCalendarModule->CalendarService \n\n\n\n\n\nCalendarMapper\n\nCalendarMapper\n\nCalendarModule -->\n\nCalendarMapper->CalendarModule\n\n\n\n\n\nCalendarService\n\nCalendarService\n\nCalendarModule -->\n\nCalendarService->CalendarModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/calendar/calendar.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CalendarMapper\n \n \n CalendarService\n \n \n \n \n Exports\n \n \n CalendarService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { HttpModule } from '@nestjs/axios';\nimport { CalendarService } from '@shared/infra/calendar/service/calendar.service';\nimport { CalendarMapper } from '@shared/infra/calendar/mapper/calendar.mapper';\n\n@Module({\n\timports: [HttpModule],\n\tproviders: [CalendarMapper, CalendarService],\n\texports: [CalendarService],\n})\nexport class CalendarModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CalendarService.html":{"url":"injectables/CalendarService.html","title":"injectable - CalendarService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CalendarService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/service/calendar.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n baseURL\n \n \n Private\n Readonly\n timeoutMs\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findEvent\n \n \n Private\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService, calendarMapper: CalendarMapper)\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n calendarMapper\n \n \n CalendarMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findEvent\n \n \n \n \n \n \n \n findEvent(userId: EntityId, eventId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n eventId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n 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 { CardUc, ColumnUc } 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 columnUc: ColumnUc, 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.columnUc.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.cardUc.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.cardUc.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.cardUc.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 Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createElement\n \n \n Async\n deleteCard\n \n \n Private\n Async\n filterAllowed\n \n \n Async\n findCards\n \n \n Async\n moveElement\n \n \n Async\n updateCardHeight\n \n \n Async\n updateCardTitle\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n 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 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: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 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 deleteCard\n \n \n \n \n \n \n \n deleteCard(userId: EntityId, cardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/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 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 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:96\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: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 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: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 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 Async\n updateCardHeight\n \n \n \n \n \n \n \n updateCardHeight(userId: EntityId, cardId: EntityId, height: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.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 cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n height\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n \n \n \n updateCardTitle(userId: EntityId, cardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.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 cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { forwardRef, Inject, 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';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class CardUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected 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\tsuper(authorizationService, boardDoAuthorizableService);\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\tasync updateCardHeight(userId: EntityId, cardId: EntityId, height: number): Promise {\n\t\tthis.logger.debug({ action: 'updateCardHeight', userId, cardId, height });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateHeight(card, height);\n\t}\n\n\tasync updateCardTitle(userId: EntityId, cardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateCardTitle', userId, cardId, title });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateTitle(card, title);\n\t}\n\n\tasync deleteCard(userId: EntityId, cardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteCard', userId, cardId });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.delete(card);\n\t}\n\n\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 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 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/ClassFilterParams.html":{"url":"classes/ClassFilterParams.html","title":"class - ClassFilterParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassFilterParams\n\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-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 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 Optional\n type\n \n \n \n \n \n \n Type : SchoolYearQueryType\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SchoolYearQueryType)@ApiPropertyOptional({enum: SchoolYearQueryType, enumName: 'SchoolYearQueryType'})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/request/class-filter-params.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';\nimport { IsEnum, IsOptional } from 'class-validator';\nimport { SchoolYearQueryType } from '../interface';\n\nexport class ClassFilterParams {\n\t@IsOptional()\n\t@IsEnum(SchoolYearQueryType)\n\t@ApiPropertyOptional({ enum: SchoolYearQueryType, enumName: 'SchoolYearQueryType' })\n\ttype?: SchoolYearQueryType;\n}\n\n \n\n\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 studentCount\n \n \n teacherNames\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:18\n \n \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 studentCount\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n teacherNames\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\tteacherNames: string[];\n\n\tschoolYear?: string;\n\n\tisUpgradable?: boolean;\n\n\tstudentCount: number;\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.teacherNames = props.teacherNames;\n\t\tthis.schoolYear = props.schoolYear;\n\t\tthis.isUpgradable = props.isUpgradable;\n\t\tthis.studentCount = props.studentCount;\n\t}\n}\n\n \n\n\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 studentCount\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: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 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 studentCount\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/group/controller/dto/response/class-info.response.ts:27\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\t@ApiProperty()\n\tstudentCount: number;\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\tthis.studentCount = props.studentCount;\n\t}\n}\n\n \n\n\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 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 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\tstatic 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 findAllByUserId\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:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\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/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 findAllByUserId(userId: EntityId): Promise {\n\t\tconst classes: Class[] = await this.classesRepo.findAllByUserId(userId);\n\n\t\treturn classes;\n\t}\n\n\t// FIXME There is no usage of this method\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:10\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';\nimport { ClassSortBy } from '../interface';\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: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 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: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 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: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 : 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: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 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 { NotFoundLoggableException } from '@shared/common/loggable-exception';\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, {\n\t\t\t$or: [{ userIds: new ObjectId(userId) }, { teacherIds: new ObjectId(userId) }],\n\t\t});\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 classMap: Map = new Map(\n\t\t\tclasses.map((clazz: Class): [string, Class] => [clazz.id, clazz])\n\t\t);\n\n\t\tconst existingEntities: ClassEntity[] = await this.em.find(ClassEntity, {\n\t\t\tid: { $in: Array.from(classMap.keys()) },\n\t\t});\n\n\t\tif (existingEntities.length !existingEntities.find((entity) => entity.id === classId)\n\t\t\t);\n\n\t\t\tthrow new NotFoundLoggableException(Class.name, 'id', missingEntityIds.toString());\n\t\t}\n\n\t\texistingEntities.forEach((entity) => {\n\t\t\tconst updatedDomainObject: Class | undefined = classMap.get(entity.id);\n\n\t\t\tconst updatedEntity: ClassEntity = ClassMapper.mapToEntity(updatedDomainObject as Class);\n\n\t\t\tthis.em.assign(entity, updatedEntity);\n\t\t});\n\n\t\tawait this.em.persistAndFlush(existingEntities);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_providers\n\n\n\ncluster_CollaborativeStorageAdapterModule_imports\n\n\n\ncluster_CollaborativeStorageAdapterModule_exports\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_providers\n\n\n\ncluster_CollaborativeStorageModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule -->\n\nAuthorizationModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageAdapterModule->CollaborativeStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCollaborativeStorageModule -->\n\nLoggerModule->CollaborativeStorageModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nCollaborativeStorageModule -->\n\nRoleModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc \n\nCollaborativeStorageUc \n\nCollaborativeStorageUc -->\n\nCollaborativeStorageModule->CollaborativeStorageUc \n\n\n\n\n\nCollaborativeStorageService\n\nCollaborativeStorageService\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageService->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc\n\nCollaborativeStorageUc\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageUc->CollaborativeStorageModule\n\n\n\n\n\nTeamMapper\n\nTeamMapper\n\nCollaborativeStorageModule -->\n\nTeamMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamPermissionsMapper\n\nTeamPermissionsMapper\n\nCollaborativeStorageModule -->\n\nTeamPermissionsMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nCollaborativeStorageModule -->\n\nTeamsRepo->CollaborativeStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CollaborativeStorageService\n \n \n CollaborativeStorageUc\n \n \n TeamMapper\n \n \n TeamPermissionsMapper\n \n \n TeamsRepo\n \n \n \n \n Controllers\n \n \n CollaborativeStorageController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CollaborativeStorageAdapterModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n \n \n Exports\n \n \n CollaborativeStorageUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CollaborativeStorageAdapterModule } from '@shared/infra/collaborative-storage/collaborative-storage-adapter.module';\nimport { TeamsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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: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 { ColumnBoard, ColumnBoardProps } from '@shared/domain';\nimport { BoardExternalReferenceType } from '@shared/domain/domainobject/board/types';\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:26\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:23\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport {\n\tAnyBoardDo,\n\tBoardExternalReference,\n\tBoardExternalReferenceType,\n} from '@shared/domain/domainobject/board/types';\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 {\n\tAnyBoardDo,\n\tBoardExternalReference,\n\tBoardExternalReferenceType,\n} from '@shared/domain/domainobject/board/types';\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 findByDescendant\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:20\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:57\n \n \n\n\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: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 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: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 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: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 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 findByDescendant\n \n \n \n \n \n \n \n findByDescendant(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.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 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 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: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 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: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 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: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 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: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 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 { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport {\n\tAnyBoardDo,\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 findByDescendant(boardDo: AnyBoardDo): Promise {\n\t\tconst ancestorIds: EntityId[] = await this.boardDoRepo.getAncestorIds(boardDo);\n\t\tconst idHierarchy: EntityId[] = [...ancestorIds, boardDo.id];\n\t\tconst rootId: EntityId = idHierarchy[0];\n\t\tconst rootBoardDo: AnyBoardDo = await this.boardDoRepo.findById(rootId, 1);\n\n\t\tif (rootBoardDo instanceof ColumnBoard) {\n\t\t\treturn rootBoardDo;\n\t\t}\n\n\t\tthrow new NotFoundLoggableException(ColumnBoard.name, 'id', rootId);\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, ColumnUc } 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, private readonly columnUc: ColumnUc) {}\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.columnUc.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.columnUc.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.columnUc.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"},"injectables/ColumnUc.html":{"url":"injectables/ColumnUc.html","title":"injectable - ColumnUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnUc\n\n\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/column.uc.ts\n \n\n\n\n \n Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createCard\n \n \n Async\n deleteColumn\n \n \n Async\n moveCard\n \n \n Async\n updateColumnTitle\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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, columnService: ColumnService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/column.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n columnService\n \n \n ColumnService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.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 columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n deleteColumn(userId: EntityId, columnId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.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 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 moveCard\n \n \n \n \n \n \n \n moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.uc.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetColumnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n \n \n \n updateColumnTitle(userId: EntityId, columnId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/column.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 columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { Card, ContentElementType, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { CardService, ColumnService, BoardDoAuthorizableService } from '../service';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class ColumnUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly columnService: ColumnService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tsuper(authorizationService, boardDoAuthorizableService);\n\t\tthis.logger.setContext(ColumnUc.name);\n\t}\n\n\tasync deleteColumn(userId: EntityId, columnId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteColumn', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.delete(column);\n\t}\n\n\tasync updateColumnTitle(userId: EntityId, columnId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateColumnTitle', userId, columnId, title });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.updateTitle(column, title);\n\t}\n\n\tasync createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[]): Promise {\n\t\tthis.logger.debug({ action: 'createCard', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.read);\n\n\t\tconst card = await this.cardService.create(column, requiredEmptyElements);\n\n\t\treturn card;\n\t}\n\n\tasync moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number): Promise {\n\t\tthis.logger.debug({ action: 'moveCard', userId, cardId, targetColumnId, toPosition: targetPosition });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tconst targetColumn = await this.columnService.findById(targetColumnId);\n\n\t\tawait this.checkPermission(userId, card, Action.write);\n\t\tawait this.checkPermission(userId, targetColumn, Action.write);\n\n\t\tawait this.cardService.move(card, targetColumn, targetPosition);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_providers\n\n\n\ncluster_CommonToolModule_imports\n\n\n\ncluster_CommonToolModule_exports\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nCommonToolModule -->\n\nLegacySchoolModule->CommonToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCommonToolModule -->\n\nLoggerModule->CommonToolModule\n\n\n\n\n\nCommonToolService \n\nCommonToolService \n\nCommonToolService -->\n\nCommonToolModule->CommonToolService \n\n\n\n\n\nCommonToolValidationService \n\nCommonToolValidationService \n\nCommonToolValidationService -->\n\nCommonToolModule->CommonToolValidationService \n\n\n\n\n\nContextExternalToolRepo \n\nContextExternalToolRepo \n\nContextExternalToolRepo -->\n\nCommonToolModule->ContextExternalToolRepo \n\n\n\n\n\nSchoolExternalToolRepo \n\nSchoolExternalToolRepo \n\nSchoolExternalToolRepo -->\n\nCommonToolModule->SchoolExternalToolRepo \n\n\n\n\n\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_providers\n\n\n\ncluster_ConsoleWriterModule_exports\n\n\n\n\nConsoleWriterService \n\nConsoleWriterService \n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nConsoleWriterService -->\n\nConsoleWriterModule->ConsoleWriterService \n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nConsoleWriterModule -->\n\nConsoleWriterService->ConsoleWriterModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ConsoleWriterService\n \n \n \n \n Exports\n \n \n ConsoleWriterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConsoleWriterService } from './console-writer.service';\n\n@Module({\n\tproviders: [ConsoleWriterService],\n\texports: [ConsoleWriterService],\n})\nexport class ConsoleWriterModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ConsoleWriterService.html":{"url":"injectables/ConsoleWriterService.html","title":"injectable - ConsoleWriterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ConsoleWriterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n info\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n info\n \n \n \n \n \n \ninfo(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/console/console-writer/console-writer.service.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n 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 mapSubmissionContentToResponse\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:18\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapSubmissionContentToResponse\n \n \n \n \n \n \n \n mapSubmissionContentToResponse(element: RichTextElement | FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.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 element\n \n RichTextElement | FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : FileElementResponse | RichTextElementResponse\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(element: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.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 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, UnprocessableEntityException } from '@nestjs/common';\nimport { AnyBoardDo, FileElement, RichTextElement } from '@shared/domain';\nimport {\n\tAnyContentElementResponse,\n\tFileElementResponse,\n\tRichTextElementResponse,\n\tisFileElementResponse,\n\tisRichTextElementResponse,\n} 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\tstatic mapSubmissionContentToResponse(\n\t\telement: RichTextElement | FileElement\n\t): FileElementResponse | RichTextElementResponse {\n\t\tconst result = this.mapToResponse(element);\n\t\tif (!isFileElementResponse(result) && !isRichTextElementResponse(result)) {\n\t\t\tthrow new UnprocessableEntityException();\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/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 findParentOfId\n \n \n Async\n move\n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementFactory: ContentElementFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts: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(parent: Card | SubmissionItem, type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.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 parent\n \n Card | SubmissionItem\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: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 \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 findParentOfId\n \n \n \n \n \n \n \n findParentOfId(elementId: EntityId)\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 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: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 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: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 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\tAnyBoardDo,\n\tAnyContentElementDo,\n\tCard,\n\tContentElementFactory,\n\tContentElementType,\n\tEntityId,\n\tisAnyContentElement,\n\tSubmissionItem,\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';\n\n@Injectable()\nexport class ContentElementService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementFactory: ContentElementFactory\n\t) {}\n\n\tasync findById(elementId: EntityId): Promise {\n\t\tconst element = await this.boardDoRepo.findById(elementId);\n\n\t\tif (!isAnyContentElement(element)) {\n\t\t\tthrow new NotFoundException(`There is no '${element.constructor.name}' with this id`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync findParentOfId(elementId: EntityId): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(elementId);\n\t\tif (!parent) {\n\t\t\tthrow new NotFoundException('There is no node with this id');\n\t\t}\n\t\treturn parent;\n\t}\n\n\tasync create(parent: Card | SubmissionItem, 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);\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)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:28\n \n \n\n \n \n \n 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 \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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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:28\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';\n\n@Injectable()\nexport class ContentElementUpdateVisitor implements BoardCompositeVisitorAsync {\n\tprivate readonly content: AnyElementContentBody;\n\n\tconstructor(content: AnyElementContentBody) {\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\tlinkElement.url = new URL(this.content.url).toString();\n\t\t\tlinkElement.title = this.content.title ?? '';\n\t\t\tlinkElement.description = this.content.description ?? '';\n\t\t\tif (this.content.imageUrl) {\n\t\t\t\tconst isRelativeUrl = (url: string) => {\n\t\t\t\t\tconst fallbackHostname = 'https://www.fallback-url-if-url-is-relative.org';\n\t\t\t\t\tconst imageUrlObject = new URL(url, fallbackHostname);\n\t\t\t\t\treturn imageUrlObject.origin === fallbackHostname;\n\t\t\t\t};\n\n\t\t\t\tif (isRelativeUrl(this.content.imageUrl)) {\n\t\t\t\t\tlinkElement.imageUrl = this.content.imageUrl;\n\t\t\t\t}\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_imports\n\n\n\ncluster_ContextExternalToolModule_providers\n\n\n\ncluster_ContextExternalToolModule_exports\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 @IsEnum(ContentElementType)@ApiProperty({enum: ContentElementType, description: 'the type of the updated element', enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.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, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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.elementUc.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.mapSubmissionItemToResponse(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 Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n Async\n deleteElement\n \n \n Private\n Async\n getElementWithWritePermission\n \n \n Async\n updateElementContent\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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:19\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 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: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 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 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/element.uc.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 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 getElementWithWritePermission\n \n \n \n \n \n \n \n getElementWithWritePermission(userId: EntityId, elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.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 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: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 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 : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import { ForbiddenException, forwardRef, Inject, Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tAnyContentElementDo,\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';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class ElementUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected 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\tsuper(authorizationService, boardDoAuthorizableService);\n\t\tthis.logger.setContext(ElementUc.name);\n\t}\n\n\tasync updateElementContent(\n\t\tuserId: EntityId,\n\t\telementId: EntityId,\n\t\tcontent: AnyElementContentBody\n\t): Promise {\n\t\tconst element = await this.getElementWithWritePermission(userId, elementId);\n\n\t\tawait this.elementService.update(element, content);\n\t\treturn element;\n\t}\n\n\tasync deleteElement(userId: EntityId, elementId: EntityId): Promise {\n\t\tconst element = await this.getElementWithWritePermission(userId, elementId);\n\n\t\tawait this.elementService.delete(element);\n\t}\n\n\tprivate async getElementWithWritePermission(userId: EntityId, elementId: EntityId): Promise {\n\t\tconst element = await this.elementService.findById(elementId);\n\n\t\tconst parent: AnyBoardDo = await this.elementService.findParentOfId(elementId);\n\n\t\tif (isSubmissionItem(parent)) {\n\t\t\tawait this.checkSubmissionItemWritePermission(userId, parent);\n\t\t} else {\n\t\t\tawait this.checkPermission(userId, element, Action.write);\n\t\t}\n\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 UnprocessableEntityException('Cannot create submission-item for non submission-container-element');\n\t\t}\n\n\t\tif (!submissionContainerElement.children.every((child) => isSubmissionItem(child))) {\n\t\t\tthrow new UnprocessableEntityException(\n\t\t\t\t'Children of submission-container-element must be of type submission-item'\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 ForbiddenException(\n\t\t\t\t'User is not allowed to have multiple submission-items per submission-container-element'\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\n \n\n\n\n\n\n\n\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:107\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:116\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:112\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:24\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:20\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:33\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:29\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_providers\n\n\n\ncluster_FileSystemModule_exports\n\n\n\n\nFileSystemAdapter \n\nFileSystemAdapter \n\n\n\nFileSystemModule\n\nFileSystemModule\n\nFileSystemAdapter -->\n\nFileSystemModule->FileSystemAdapter \n\n\n\n\n\nFileSystemAdapter\n\nFileSystemAdapter\n\nFileSystemModule -->\n\nFileSystemAdapter->FileSystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/file-system/file-system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileSystemAdapter\n \n \n \n \n Exports\n \n \n FileSystemAdapter\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FileSystemAdapter } from './file-system.adapter';\n\n@Module({\n\tproviders: [FileSystemAdapter],\n\texports: [FileSystemAdapter],\n})\nexport class FileSystemModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileUrlParams.html":{"url":"classes/FileUrlParams.html","title":"class - FileUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n Optional\n headers\n \n \n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts: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_imports\n\n\n\ncluster_FilesStorageClientModule_exports\n\n\n\ncluster_FilesStorageClientModule_providers\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nFilesStorageClientModule -->\n\nCopyHelperModule->FilesStorageClientModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageClientModule -->\n\nLoggerModule->FilesStorageClientModule\n\n\n\n\n\nCopyFilesService \n\nCopyFilesService \n\nCopyFilesService -->\n\nFilesStorageClientModule->CopyFilesService \n\n\n\n\n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService -->\n\nFilesStorageClientModule->FilesStorageClientAdapterService \n\n\n\n\n\nCopyFilesService\n\nCopyFilesService\n\nFilesStorageClientModule -->\n\nCopyFilesService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageClientAdapterService\n\nFilesStorageClientAdapterService\n\nFilesStorageClientModule -->\n\nFilesStorageClientAdapterService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageProducer\n\nFilesStorageProducer\n\nFilesStorageClientModule -->\n\nFilesStorageProducer->FilesStorageClientModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage-client/files-storage-client.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n FilesStorageProducer\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { CopyHelperModule } from '@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_exports\n\n\n\ncluster_FilesStorageModule_imports\n\n\n\ncluster_FilesStorageModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageModule -->\n\nAuthenticationModule->FilesStorageModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageModule -->\n\nAuthorizationModule->FilesStorageModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageModule -->\n\nCoreModule->FilesStorageModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageModule -->\n\nFilesStorageApiModule->FilesStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageModule -->\n\nLoggerModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperTestModule->FilesStorageModule\n\n\n\n\n\nFilesStorageService \n\nFilesStorageService \n\nFilesStorageService -->\n\nFilesStorageModule->FilesStorageService \n\n\n\n\n\nPreviewService \n\nPreviewService \n\nPreviewService -->\n\nFilesStorageModule->PreviewService \n\n\n\n\n\nFileRecordRepo\n\nFileRecordRepo\n\nFilesStorageModule -->\n\nFileRecordRepo->FilesStorageModule\n\n\n\n\n\nFilesStorageService\n\nFilesStorageService\n\nFilesStorageModule -->\n\nFilesStorageService->FilesStorageModule\n\n\n\n\n\nPreviewService\n\nPreviewService\n\nFilesStorageModule -->\n\nPreviewService->FilesStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileRecordRepo\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n Exports\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { AntivirusModule } from '@shared/infra/antivirus/antivirus.module';\nimport { 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_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"},"classes/GetMetaTagDataBody.html":{"url":"classes/GetMetaTagDataBody.html","title":"class - GetMetaTagDataBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GetMetaTagDataBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/controller/post-link-url.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 @IsUrl()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/post-link-url.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 { IsUrl } from 'class-validator';\n\nexport class GetMetaTagDataBody {\n\t@IsUrl()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\turl!: string;\n}\n\n \n\n\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 findClasses\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 findClasses\n \n \n \n \n \n \n \n findClasses(pagination: PaginationParams, sortingQuery: ClassSortParams, filterParams: ClassFilterParams, 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 user.'})@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 filterParams\n \n ClassFilterParams\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: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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { 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 { GroupUc } from '../uc';\nimport { ClassInfoDto, ResolvedGroupDto } from '../uc/dto';\nimport { ClassInfoSearchListResponse, ClassSortParams, GroupIdParams, GroupResponse, ClassFilterParams } 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 user.' })\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 findClasses(\n\t\t@Query() pagination: PaginationParams,\n\t\t@Query() sortingQuery: ClassSortParams,\n\t\t@Query() filterParams: ClassFilterParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board: Page = await this.groupUc.findAllClasses(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tfilterParams.type,\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: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 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.teacherNames,\n\t\t\tschoolYear: classInfo.schoolYear,\n\t\t\tisUpgradable: classInfo.isUpgradable,\n\t\t\tstudentCount: classInfo.studentCount,\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"},"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: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 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: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 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 { Class } from '@modules/class/domain';\nimport { SystemDto } from '@modules/system';\nimport { RoleName, SchoolYearEntity, UserDO } from '@shared/domain';\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\tteacherNames: 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\tstudentCount: resolvedUsers.filter((groupUser: ResolvedGroupUser) => groupUser.role.name === RoleName.STUDENT)\n\t\t\t\t.length,\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\tteacherNames: teachers.map((user: UserDO) => user.lastName),\n\t\t\tschoolYear: schoolYear?.name,\n\t\t\tisUpgradable,\n\t\t\tstudentCount: clazz.userIds ? clazz.userIds.length : 0,\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_imports\n\n\n\ncluster_H5PEditorModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nH5PEditorModule\n\nH5PEditorModule\n\nH5PEditorModule -->\n\nAuthenticationModule->H5PEditorModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nH5PEditorModule -->\n\nAuthorizationModule->H5PEditorModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nH5PEditorModule -->\n\nCoreModule->H5PEditorModule\n\n\n\n\n\nLogger\n\nLogger\n\nH5PEditorModule -->\n\nLogger->H5PEditorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/h5p-editor/h5p-editor.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n Logger\n \n \n \n \n Controllers\n \n \n H5PEditorController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, 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/launch-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 { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { ExternalTool } from '../../../external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-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/launch-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/launch-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/launch-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_exports\n\n\n\ncluster_KeycloakConfigurationModule_imports\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_providers\n\n\n\ncluster_KeycloakModule_exports\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_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_exports\n\n\n\ncluster_LegacySchoolModule_providers\n\n\n\ncluster_LegacySchoolModule_imports\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_imports\n\n\n\ncluster_LessonApiModule_providers\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_imports\n\n\n\ncluster_LessonModule_providers\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 \n Optional\n description\n \n \n \n \n \n Optional\n imageUrl\n \n \n \n \n \n Optional\n title\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 Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:49\n \n \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 @IsString()@IsOptional()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:54\n \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 @IsString()@IsOptional()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:44\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 @IsUrl()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:39\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:63\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:59\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_providers\n\n\n\ncluster_ManagementModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nManagementModule\n\nManagementModule\n\nManagementModule -->\n\nAuthenticationModule->ManagementModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nManagementModule -->\n\nAuthorizationModule->ManagementModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nManagementModule -->\n\nCoreModule->ManagementModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nManagementModule -->\n\nFilesStorageApiModule->ManagementModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nManagementModule -->\n\nLoggerModule->ManagementModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nManagementModule -->\n\nRabbitMQWrapperTestModule->ManagementModule\n\n\n\n\n\nBoardManagementUc\n\nBoardManagementUc\n\nManagementModule -->\n\nBoardManagementUc->ManagementModule\n\n\n\n\n\nBsonConverter\n\nBsonConverter\n\nManagementModule -->\n\nBsonConverter->ManagementModule\n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nManagementModule -->\n\nConsoleWriterService->ManagementModule\n\n\n\n\n\nDatabaseManagementService\n\nDatabaseManagementService\n\nManagementModule -->\n\nDatabaseManagementService->ManagementModule\n\n\n\n\n\nDatabaseManagementUc\n\nDatabaseManagementUc\n\nManagementModule -->\n\nDatabaseManagementUc->ManagementModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardManagementUc\n \n \n BsonConverter\n \n \n ConsoleWriterService\n \n \n DatabaseManagementService\n \n \n DatabaseManagementUc\n \n \n \n \n Controllers\n \n \n DatabaseManagementController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport { DatabaseManagementModule, DatabaseManagementService } from '@shared/infra/database';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { FileSystemModule } from '@shared/infra/file-system';\nimport { KeycloakConfigurationModule } from '@shared/infra/identity-management/keycloak-configuration/keycloak-configuration.module';\nimport { createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { serverConfig } from '@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"},"modules/MetaTagExtractorApiModule.html":{"url":"modules/MetaTagExtractorApiModule.html","title":"module - MetaTagExtractorApiModule","body":"\n \n\n\n\n\n Modules\n MetaTagExtractorApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_MetaTagExtractorApiModule\n\n\n\ncluster_MetaTagExtractorApiModule_imports\n\n\n\ncluster_MetaTagExtractorApiModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule -->\n\nLoggerModule->MetaTagExtractorApiModule\n\n\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nMetaTagExtractorApiModule -->\n\nMetaTagExtractorModule->MetaTagExtractorApiModule\n\n\n\n\n\nMetaTagExtractorUc\n\nMetaTagExtractorUc\n\nMetaTagExtractorApiModule -->\n\nMetaTagExtractorUc->MetaTagExtractorApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/meta-tag-extractor-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MetaTagExtractorUc\n \n \n \n \n Controllers\n \n \n MetaTagExtractorController\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n MetaTagExtractorModule\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { MetaTagExtractorController } from './controller';\nimport { MetaTagExtractorModule } from './meta-tag-extractor.module';\nimport { MetaTagExtractorUc } from './uc';\n\n@Module({\n\timports: [MetaTagExtractorModule, LoggerModule, forwardRef(() => AuthorizationModule)],\n\tcontrollers: [MetaTagExtractorController],\n\tproviders: [MetaTagExtractorUc],\n})\nexport class MetaTagExtractorApiModule {}\n\n \n\n\n\n\n\n\n\n\n\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/MetaTagExtractorController.html":{"url":"controllers/MetaTagExtractorController.html","title":"controller - MetaTagExtractorController","body":"\n \n\n\n\n\n\n\n Controllers\n MetaTagExtractorController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/controller/meta-tag-extractor.controller.ts\n \n\n \n Prefix\n \n \n meta-tag-extractor\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 getData\n \n \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 getData\n \n \n \n \n \n \n \n getData(currentUser: ICurrentUser, bodyParams: GetMetaTagDataBody)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'return extract meta tags'})@ApiResponse({status: 201, type: MetaTagExtractorResponse})@ApiResponse({status: 401, type: UnauthorizedException})@ApiResponse({status: 500, type: InternalServerErrorException})@Post('')\n \n \n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/meta-tag-extractor.controller.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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n GetMetaTagDataBody\n \n\n \n No\n \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, InternalServerErrorException, Post, UnauthorizedException } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { MetaTagExtractorUc } from '../uc';\nimport { MetaTagExtractorResponse } from './dto';\nimport { GetMetaTagDataBody } from './post-link-url.body.params';\n\n@ApiTags('Meta Tag Extractor')\n@Authenticate('jwt')\n@Controller('meta-tag-extractor')\nexport class MetaTagExtractorController {\n\tconstructor(private readonly metaTagExtractorUc: MetaTagExtractorUc) {}\n\n\t@ApiOperation({ summary: 'return extract meta tags' })\n\t@ApiResponse({ status: 201, type: MetaTagExtractorResponse })\n\t@ApiResponse({ status: 401, type: UnauthorizedException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Post('')\n\tasync getData(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() bodyParams: GetMetaTagDataBody\n\t): Promise {\n\t\tconst result = await this.metaTagExtractorUc.fetchMetaData(currentUser.userId, bodyParams.url);\n\t\tconst imageUrl = result.image?.url;\n\t\tconst response = new MetaTagExtractorResponse({ ...result, imageUrl });\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"},"modules/MetaTagExtractorModule.html":{"url":"modules/MetaTagExtractorModule.html","title":"module - MetaTagExtractorModule","body":"\n \n\n\n\n\n Modules\n MetaTagExtractorModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_MetaTagExtractorModule\n\n\n\ncluster_MetaTagExtractorModule_imports\n\n\n\ncluster_MetaTagExtractorModule_providers\n\n\n\ncluster_MetaTagExtractorModule_exports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule -->\n\nAuthenticationModule->MetaTagExtractorModule\n\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nMetaTagExtractorModule -->\n\nConsoleWriterModule->MetaTagExtractorModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nMetaTagExtractorModule -->\n\nLoggerModule->MetaTagExtractorModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nMetaTagExtractorModule -->\n\nUserModule->MetaTagExtractorModule\n\n\n\n\n\nMetaTagExtractorService \n\nMetaTagExtractorService \n\nMetaTagExtractorService -->\n\nMetaTagExtractorModule->MetaTagExtractorService \n\n\n\n\n\nMetaTagExtractorService\n\nMetaTagExtractorService\n\nMetaTagExtractorModule -->\n\nMetaTagExtractorService->MetaTagExtractorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/meta-tag-extractor.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MetaTagExtractorService\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n ConsoleWriterModule\n \n \n LoggerModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n MetaTagExtractorService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ConsoleWriterModule } from '@shared/infra/console';\nimport { createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { UserModule } from '../user';\nimport metaTagExtractorConfig from './meta-tag-extractor.config';\nimport { MetaTagExtractorService } from './service';\n\n@Module({\n\timports: [\n\t\tAuthenticationModule,\n\t\tConsoleWriterModule,\n\t\tHttpModule,\n\t\tLoggerModule,\n\t\tUserModule,\n\t\tConfigModule.forRoot(createConfigModuleOptions(metaTagExtractorConfig)),\n\t],\n\tproviders: [MetaTagExtractorService],\n\texports: [MetaTagExtractorService],\n})\nexport class MetaTagExtractorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MetaTagExtractorResponse.html":{"url":"classes/MetaTagExtractorResponse.html","title":"class - MetaTagExtractorResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MetaTagExtractorResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts\n \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 description\n \n \n \n \n Optional\n imageUrl\n \n \n \n \n Optional\n title\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(undefined: MetaTagExtractorResponse)\n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.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 MetaTagExtractorResponse\n \n \n \n No\n \n \n \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 description\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/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts:23\n \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 @ApiProperty()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts:27\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/meta-tag-extractor/controller/dto/meta-tag-extractor.response.ts:19\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()@IsUrl()\n \n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/controller/dto/meta-tag-extractor.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 { DecodeHtmlEntities } from '@shared/controller';\nimport { IsString, IsUrl } from 'class-validator';\n\nexport class MetaTagExtractorResponse {\n\tconstructor({ url, title, description, imageUrl }: MetaTagExtractorResponse) {\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\t@IsUrl()\n\turl!: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tdescription?: string;\n\n\t@ApiProperty()\n\t@IsString()\n\timageUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MetaTagExtractorService.html":{"url":"injectables/MetaTagExtractorService.html","title":"injectable - MetaTagExtractorService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MetaTagExtractorService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n fetchMetaData\n \n \n Private\n pickImage\n \n \n Private\n Async\n tryExtractMetaTags\n \n \n Private\n tryFilenameAsFallback\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n fetchMetaData\n \n \n \n \n \n \n \n fetchMetaData(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.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 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/meta-tag-extractor/service/meta-tag-extractor.service.ts:58\n \n \n\n\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 Private\n Async\n tryExtractMetaTags\n \n \n \n \n \n \n \n tryExtractMetaTags(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.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 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 tryFilenameAsFallback\n \n \n \n \n \n \n \n tryFilenameAsFallback(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/service/meta-tag-extractor.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 url\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : MetaData | 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';\nimport { basename } from 'path';\n\nexport type MetaData = {\n\ttitle: string;\n\tdescription: string;\n\turl: string;\n\timage?: ImageObject;\n};\n\n@Injectable()\nexport class MetaTagExtractorService {\n\tasync fetchMetaData(url: string): Promise {\n\t\tif (url.length === 0) {\n\t\t\tthrow new Error(`MetaTagExtractorService requires a valid URL. Given URL: ${url}`);\n\t\t}\n\n\t\tconst metaData = (await this.tryExtractMetaTags(url)) ?? this.tryFilenameAsFallback(url);\n\n\t\treturn metaData ?? { url, title: '', description: '' };\n\t}\n\n\tprivate async tryExtractMetaTags(url: string): Promise {\n\t\ttry {\n\t\t\tconst data = await ogs({ url, fetchOptions: { headers: { 'User-Agent': 'Open Graph Scraper' } } });\n\n\t\t\tconst title = data.result?.ogTitle ?? '';\n\t\t\tconst description = data.result?.ogDescription ?? '';\n\t\t\tconst image = data.result?.ogImage ? this.pickImage(data?.result?.ogImage) : undefined;\n\n\t\t\treturn {\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\timage,\n\t\t\t\turl,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\tprivate tryFilenameAsFallback(url: string): MetaData | undefined {\n\t\ttry {\n\t\t\tconst urlObject = new URL(url);\n\t\t\tconst title = basename(urlObject.pathname);\n\t\t\treturn {\n\t\t\t\ttitle,\n\t\t\t\tdescription: '',\n\t\t\t\turl,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn undefined;\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"},"injectables/MetaTagExtractorUc.html":{"url":"injectables/MetaTagExtractorUc.html","title":"injectable - MetaTagExtractorUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MetaTagExtractorUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/meta-tag-extractor/uc/meta-tag-extractor.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 fetchMetaData\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, metaTagExtractorService: MetaTagExtractorService)\n \n \n \n \n Defined in apps/server/src/modules/meta-tag-extractor/uc/meta-tag-extractor.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 metaTagExtractorService\n \n \n MetaTagExtractorService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n fetchMetaData\n \n \n \n \n \n \n \n fetchMetaData(userId: EntityId, url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/meta-tag-extractor/uc/meta-tag-extractor.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 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 import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { MetaData, MetaTagExtractorService } from '../service';\n\n@Injectable()\nexport class MetaTagExtractorUc {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly metaTagExtractorService: MetaTagExtractorService\n\t) {}\n\n\tasync fetchMetaData(userId: EntityId, url: string): Promise {\n\t\ttry {\n\t\t\tawait this.authorizationService.getUserWithPermissions(userId);\n\t\t} catch (error) {\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\n\t\tconst result = await this.metaTagExtractorService.fetchMetaData(url);\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/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_imports\n\n\n\ncluster_NewsModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nNewsModule\n\nNewsModule\n\nNewsModule -->\n\nAuthorizationModule->NewsModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nNewsModule -->\n\nLoggerModule->NewsModule\n\n\n\n\n\nNewsUc \n\nNewsUc \n\nNewsUc -->\n\nNewsModule->NewsUc \n\n\n\n\n\nNewsRepo\n\nNewsRepo\n\nNewsModule -->\n\nNewsRepo->NewsModule\n\n\n\n\n\nNewsUc\n\nNewsUc\n\nNewsModule -->\n\nNewsUc->NewsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/news/news.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n NewsRepo\n \n \n NewsUc\n \n \n \n \n Controllers\n \n \n NewsController\n \n \n TeamNewsController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n NewsUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { NewsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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/launch-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 Properties\n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \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:155\n\n \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:105\n\n \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:128\n\n \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:139\n\n \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:79\n\n \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: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 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:64\n\n \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:218\n\n \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:181\n\n \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 Properties\n \n \n \n \n \n \n \n Private\n Readonly\n autoParameterStrategyMap\n \n \n \n \n \n \n Type : Map\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 \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_imports\n\n\n\ncluster_OauthApiModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nOauthApiModule -->\n\nAuthenticationModule->OauthApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nOauthApiModule -->\n\nAuthorizationModule->OauthApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nOauthApiModule -->\n\nLegacySchoolModule->OauthApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthApiModule -->\n\nLoggerModule->OauthApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nOauthApiModule -->\n\nOauthModule->OauthApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nOauthApiModule -->\n\nProvisioningModule->OauthApiModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nOauthApiModule -->\n\nSystemModule->OauthApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nOauthApiModule -->\n\nUserLoginMigrationModule->OauthApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthApiModule -->\n\nUserModule->OauthApiModule\n\n\n\n\n\nHydraOauthUc\n\nHydraOauthUc\n\nOauthApiModule -->\n\nHydraOauthUc->OauthApiModule\n\n\n\n\n\nOauthUc\n\nOauthUc\n\nOauthApiModule -->\n\nOauthUc->OauthApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth/oauth-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n HydraOauthUc\n \n \n OauthUc\n \n \n \n \n Controllers\n \n \n OauthSSOController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n SystemModule\n \n \n UserLoginMigrationModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@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_imports\n\n\n\ncluster_OauthProviderApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nOauthProviderApiModule -->\n\nAuthorizationModule->OauthProviderApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthProviderApiModule -->\n\nLoggerModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderModule\n\nOauthProviderModule\n\nOauthProviderApiModule -->\n\nOauthProviderModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderApiModule -->\n\nOauthProviderServiceModule->OauthProviderApiModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nOauthProviderApiModule -->\n\nPseudonymModule->OauthProviderApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthProviderApiModule -->\n\nUserModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderClientCrudUc\n\nOauthProviderClientCrudUc\n\nOauthProviderApiModule -->\n\nOauthProviderClientCrudUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderConsentFlowUc\n\nOauthProviderConsentFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderConsentFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLoginFlowUc\n\nOauthProviderLoginFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLoginFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLogoutFlowUc\n\nOauthProviderLogoutFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLogoutFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderResponseMapper\n\nOauthProviderResponseMapper\n\nOauthProviderApiModule -->\n\nOauthProviderResponseMapper->OauthProviderApiModule\n\n\n\n\n\nOauthProviderUc\n\nOauthProviderUc\n\nOauthProviderApiModule -->\n\nOauthProviderUc->OauthProviderApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth-provider/oauth-provider-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n OauthProviderClientCrudUc\n \n \n OauthProviderConsentFlowUc\n \n \n OauthProviderLoginFlowUc\n \n \n OauthProviderLogoutFlowUc\n \n \n OauthProviderResponseMapper\n \n \n OauthProviderUc\n \n \n \n \n Controllers\n \n \n OauthProviderController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n OauthProviderModule\n \n \n OauthProviderServiceModule\n \n \n PseudonymModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@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_imports\n\n\n\ncluster_OauthProviderModule_providers\n\n\n\ncluster_OauthProviderModule_exports\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')) {\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\tif (data.externalGroups) {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tdata.externalGroups.map((externalGroup) =>\n\t\t\t\t\t\tthis.oidcProvisioningService.provisionExternalGroup(externalGroup, data.system.systemId)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn new ProvisioningDto({ externalUserId: user.externalId || data.externalUser.externalId });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Options.html":{"url":"interfaces/Options.html","title":"interface - Options","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Options\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/database-management.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n collection\n \n \n \n Optional\n \n onlyfactories\n \n \n \n Optional\n \n override\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n collection\n \n \n \n \n \n \n \n \n collection: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n onlyfactories\n \n \n \n \n \n \n \n \n onlyfactories: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n override\n \n \n \n \n \n \n \n \n override: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console/console-writer/console-writer.service';\nimport { Command, Console } from 'nestjs-console';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\ninterface Options {\n\tcollection?: string;\n\toverride?: boolean;\n\tonlyfactories?: boolean;\n}\n\n@Console({ command: 'database', description: 'database setup console' })\nexport class DatabaseManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'seed',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --onlyfactories',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'seed from factories only',\n\t\t\t},\n\t\t],\n\t\tdescription: 'reset database collections with seed data from filesystem',\n\t})\n\tasync seedCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\n\t\tconst collections = options.onlyfactories\n\t\t\t? await this.databaseManagementUc.seedDatabaseCollectionsFromFactories(filter)\n\t\t\t: await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem(filter);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'export',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --override',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'optional export collections to setup folder and override existing files',\n\t\t\t},\n\t\t],\n\t\tdescription: 'export database collections to filesystem',\n\t})\n\tasync exportCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\t\tconst toSeedFolder = options?.override ? true : undefined;\n\t\tconst collections = await this.databaseManagementUc.exportCollectionsToFileSystem(filter, toSeedFolder);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'sync-indexes',\n\t\toptions: [],\n\t\tdescription: 'sync indexes from nest and mikroorm',\n\t})\n\tasync syncIndexes(): Promise {\n\t\tawait this.databaseManagementUc.syncIndexes();\n\t\tconst report = 'sync of indexes is completed';\n\t\tthis.consoleWriter.info(report);\n\t\treturn report;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Page.html":{"url":"classes/Page.html","title":"class - Page","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Page\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/page.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n data\n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: T[], total: number)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n T[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : T[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class Page {\n\tdata: T[];\n\n\ttotal: number;\n\n\tconstructor(data: T[], total: number) {\n\t\tthis.data = data;\n\t\tthis.total = total;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentDto.html":{"url":"classes/PageContentDto.html","title":"class - PageContentDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cancelButtonUrl\n \n \n proceedButtonUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PageContentDto)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PageContentDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n proceedButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class PageContentDto {\n\tproceedButtonUrl: string;\n\n\tcancelButtonUrl: string;\n\n\tconstructor(props: PageContentDto) {\n\t\tthis.proceedButtonUrl = props.proceedButtonUrl;\n\t\tthis.cancelButtonUrl = props.cancelButtonUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PageContentMapper.html":{"url":"injectables/PageContentMapper.html","title":"injectable - PageContentMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PageContentMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n \n \nmapDtoToResponse(dto: PageContentDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n PageContentDto\n \n\n \n No\n \n\n\n \n \n \n \n \n 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_exports\n\n\n\ncluster_PreviewGeneratorProducerModule_imports\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_imports\n\n\n\ncluster_ProvisioningModule_exports\n\n\n\ncluster_ProvisioningModule_providers\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nProvisioningModule -->\n\nAccountModule->ProvisioningModule\n\n\n\n\n\nGroupModule\n\nGroupModule\n\nProvisioningModule -->\n\nGroupModule->ProvisioningModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nProvisioningModule -->\n\nLegacySchoolModule->ProvisioningModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nProvisioningModule -->\n\nLoggerModule->ProvisioningModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nProvisioningModule -->\n\nRoleModule->ProvisioningModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nProvisioningModule -->\n\nSystemModule->ProvisioningModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nProvisioningModule -->\n\nUserModule->ProvisioningModule\n\n\n\n\n\nProvisioningService \n\nProvisioningService \n\nProvisioningService -->\n\nProvisioningModule->ProvisioningService \n\n\n\n\n\nIservProvisioningStrategy\n\nIservProvisioningStrategy\n\nProvisioningModule -->\n\nIservProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nOidcMockProvisioningStrategy\n\nOidcMockProvisioningStrategy\n\nProvisioningModule -->\n\nOidcMockProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nOidcProvisioningService\n\nOidcProvisioningService\n\nProvisioningModule -->\n\nOidcProvisioningService->ProvisioningModule\n\n\n\n\n\nProvisioningService\n\nProvisioningService\n\nProvisioningModule -->\n\nProvisioningService->ProvisioningModule\n\n\n\n\n\nSanisProvisioningStrategy\n\nSanisProvisioningStrategy\n\nProvisioningModule -->\n\nSanisProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nSanisResponseMapper\n\nSanisResponseMapper\n\nProvisioningModule -->\n\nSanisResponseMapper->ProvisioningModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/provisioning/provisioning.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n IservProvisioningStrategy\n \n \n OidcMockProvisioningStrategy\n \n \n OidcProvisioningService\n \n \n ProvisioningService\n \n \n SanisProvisioningStrategy\n \n \n SanisResponseMapper\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n GroupModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n ProvisioningService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@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_imports\n\n\n\ncluster_PseudonymApiModule_providers\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_providers\n\n\n\ncluster_PseudonymModule_imports\n\n\n\ncluster_PseudonymModule_exports\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 { LearnroomModule } from '@modules/learnroom';\nimport { ToolModule } from '@modules/tool';\nimport { UserModule } from '@modules/user';\nimport { forwardRef, Module } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from './repo';\nimport { FeathersRosterService, PseudonymService } from './service';\n\n@Module({\n\timports: [UserModule, LearnroomModule, forwardRef(() => ToolModule)],\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, contextExternalToolService: ContextExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:22\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 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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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: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 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 { FilesStorageClientAdapterService } from '@modules/files-storage-client';\nimport { ContextExternalTool } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\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';\n\n@Injectable()\nexport class RecursiveDeleteVisitor implements BoardCompositeVisitorAsync {\n\tconstructor(\n\t\tprivate readonly em: EntityManager,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\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\tif (externalToolElement.contextExternalToolId) {\n\t\t\tconst linkedTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\t\texternalToolElement.contextExternalToolId\n\t\t\t);\n\n\t\t\tawait this.contextExternalToolService.deleteContextExternalTool(linkedTool);\n\t\t}\n\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 Private\n registerParentData\n \n \n Async\n save\n \n \n Private\n saveRecursive\n \n \n visitCard\n \n \n Private\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:202\n \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 Private\n registerParentData\n \n \n \n \n \n \n \n registerParentData(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: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 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 Private\n saveRecursive\n \n \n \n \n \n \n \n saveRecursive(boardNode: BoardNode, anyBoardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.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 anyBoardDo\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 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: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 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 Private\n visitChildren\n \n \n \n \n \n \n \n visitChildren(parent: AnyBoardDo, parentNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:181\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n 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: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 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: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 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: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 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: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 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: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 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: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 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/modules/board/repo/recursive-save.visitor.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 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 \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.saveRecursive(boardNode, columnBoard);\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.saveRecursive(boardNode, column);\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.saveRecursive(boardNode, card);\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.saveRecursive(boardNode, fileElement);\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.saveRecursive(boardNode, richTextElement);\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.saveRecursive(boardNode, submissionContainerElement);\n\t}\n\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void {\n\t\tconst parentData = this.parentsMap.get(submissionItem.id);\n\t\tconst boardNode = new SubmissionItemNode({\n\t\t\tid: submissionItem.id,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tcompleted: submissionItem.completed,\n\t\t\tuserId: submissionItem.userId,\n\t\t});\n\n\t\tthis.saveRecursive(boardNode, submissionItem);\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\tprivate visitChildren(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\tprivate registerParentData(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\tprivate saveRecursive(boardNode: BoardNode, anyBoardDo: AnyBoardDo): void {\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(anyBoardDo, boardNode);\n\t}\n\n\t// TODO make private (change tests)\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:73\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:69\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:82\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:78\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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: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 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: {\n\t\t\t\tAuthorization: `Bearer ${input.accessToken}`,\n\t\t\t\t'Accept-Encoding': 'gzip',\n\t\t\t},\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_exports\n\n\n\ncluster_SchoolExternalToolModule_providers\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\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule\n\nServerModule -->\n\nMetaTagExtractorApiModule->ServerModule\n\n\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nServerModule -->\n\nMetaTagExtractorModule->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 MetaTagExtractorApiModule\n \n \n MetaTagExtractorModule\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: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 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 { 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 { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { MetaTagExtractorApiModule, MetaTagExtractorModule } from '@modules/meta-tag-extractor';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { TeamsApiModule } from '@modules/teams/teams-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 { 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 { RedisModule, REDIS_CLIENT } 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 connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\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\tMetaTagExtractorModule,\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\tMetaTagExtractorApiModule,\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\nMetaTagExtractorApiModule\n\nMetaTagExtractorApiModule\n\nServerTestModule -->\n\nMetaTagExtractorApiModule->ServerTestModule\n\n\n\n\n\nMetaTagExtractorModule\n\nMetaTagExtractorModule\n\nServerTestModule -->\n\nMetaTagExtractorModule->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 MetaTagExtractorApiModule\n \n \n MetaTagExtractorModule\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: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 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: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 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 { 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 { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { MetaTagExtractorApiModule, MetaTagExtractorModule } from '@modules/meta-tag-extractor';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { TeamsApiModule } from '@modules/teams/teams-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 { 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 { RedisModule, REDIS_CLIENT } 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 connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\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\tMetaTagExtractorModule,\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\tMetaTagExtractorApiModule,\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_imports\n\n\n\ncluster_SharingModule_providers\n\n\n\ncluster_SharingModule_exports\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:91\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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:100\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:96\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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: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 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, FileElement, isFileElement, isRichTextElement, RichTextElement } 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\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\tconst allowed = isFileElement(child) || isRichTextElement(child);\n\n\t\treturn allowed;\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\nexport const isSubmissionItemContent = (element: AnyBoardDo): element is RichTextElement | FileElement =>\n\tisRichTextElement(element) || isFileElement(element);\n\n \n\n\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, FileElement, isFileElement, isRichTextElement, RichTextElement } 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\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\tconst allowed = isFileElement(child) || isRichTextElement(child);\n\n\t\treturn allowed;\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\nexport const isSubmissionItemContent = (element: AnyBoardDo): element is RichTextElement | FileElement =>\n\tisRichTextElement(element) || isFileElement(element);\n\n \n\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 elements\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: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 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:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : (RichTextElementResponse | FileElementResponse)[]\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/submission-item/submission-item.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/submission-item/submission-item.response.ts:16\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:19\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:25\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { FileElementResponse, RichTextElementResponse } from '../element';\n\n@ApiExtraModels(FileElementResponse, RichTextElementResponse)\nexport class SubmissionItemResponse {\n\tconstructor({ id, timestamps, completed, userId, elements }: SubmissionItemResponse) {\n\t\tthis.id = id;\n\t\tthis.timestamps = timestamps;\n\t\tthis.completed = completed;\n\t\tthis.userId = userId;\n\t\tthis.elements = elements;\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\t@ApiProperty({\n\t\ttype: 'array',\n\t\titems: {\n\t\t\toneOf: [{ $ref: getSchemaPath(FileElementResponse) }, { $ref: getSchemaPath(RichTextElementResponse) }],\n\t\t},\n\t})\n\telements: (RichTextElementResponse | FileElementResponse)[];\n}\n\n \n\n\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 mapSubmissionItemToResponse\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:6\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:8\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 mapSubmissionItemToResponse\n \n \n \n \n \n \n \n mapSubmissionItemToResponse(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-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 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: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 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: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 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 { FileElement, isSubmissionItemContent, RichTextElement, SubmissionItem, UserBoardRoles } from '@shared/domain';\nimport { SubmissionItemResponse, SubmissionsResponse, TimestampsResponse, UserDataResponse } from '../dto';\nimport { ContentElementResponseFactory } from './content-element-response.factory';\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.mapSubmissionItemToResponse(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 mapSubmissionItemToResponse(submissionItem: SubmissionItem): SubmissionItemResponse {\n\t\tconst children: (FileElement | RichTextElement)[] = submissionItem.children.filter(isSubmissionItemContent);\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\telements: children.map((element) => ContentElementResponseFactory.mapSubmissionContentToResponse(element)),\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 Extends\n \n \n BaseUc\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createElement\n \n \n Async\n findSubmissionItems\n \n \n Async\n updateSubmissionItem\n \n \n Protected\n Async\n checkPermission\n \n \n Protected\n Async\n checkSubmissionItemWritePermission\n \n \n Protected\n Async\n isAuthorizedStudent\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)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:27\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 \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(userId: EntityId, submissionItemId: EntityId, type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.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 submissionItemId\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 \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: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 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 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: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 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 Protected\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, anyBoardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:12\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n anyBoardDo\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 Protected\n Async\n checkSubmissionItemWritePermission\n \n \n \n \n \n \n \n checkSubmissionItemWritePermission(userId: EntityId, submissionItem: SubmissionItem)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItem\n \n SubmissionItem\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 Protected\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BaseUc\n\n \n \n \n \n Defined in BaseUc: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 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 import {\n\tBadRequestException,\n\tforwardRef,\n\tInject,\n\tInjectable,\n\tNotFoundException,\n\tUnprocessableEntityException,\n} from '@nestjs/common';\nimport {\n\tContentElementType,\n\tEntityId,\n\tFileElement,\n\tisFileElement,\n\tisRichTextElement,\n\tisSubmissionContainerElement,\n\tisSubmissionItem,\n\tRichTextElement,\n\tSubmissionItem,\n\tUserBoardRoles,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { BoardDoAuthorizableService, ContentElementService, SubmissionItemService } from '../service';\nimport { BaseUc } from './base.uc';\n\n@Injectable()\nexport class SubmissionItemUc extends BaseUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprotected readonly authorizationService: AuthorizationService,\n\t\tprotected readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprotected readonly elementService: ContentElementService,\n\t\tprotected readonly submissionItemService: SubmissionItemService\n\t) {\n\t\tsuper(authorizationService, boardDoAuthorizableService);\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 NotFoundException('Could not find a submission container with this id');\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\t\tawait this.checkSubmissionItemWritePermission(userId, submissionItem);\n\t\tawait this.submissionItemService.update(submissionItem, completed);\n\n\t\treturn submissionItem;\n\t}\n\n\tasync createElement(\n\t\tuserId: EntityId,\n\t\tsubmissionItemId: EntityId,\n\t\ttype: ContentElementType\n\t): Promise {\n\t\tif (type !== ContentElementType.RICH_TEXT && type !== ContentElementType.FILE) {\n\t\t\tthrow new BadRequestException();\n\t\t}\n\n\t\tconst submissionItem = await this.submissionItemService.findById(submissionItemId);\n\n\t\tawait this.checkSubmissionItemWritePermission(userId, submissionItem);\n\n\t\tconst element = await this.elementService.create(submissionItem, type);\n\n\t\tif (!isFileElement(element) && !isRichTextElement(element)) {\n\t\t\tthrow new UnprocessableEntityException();\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/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_imports\n\n\n\ncluster_SystemApiModule_providers\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_exports\n\n\n\ncluster_SystemModule_providers\n\n\n\ncluster_SystemModule_imports\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\n\n\nSystemModule\n\nSystemModule\n\nSystemModule -->\n\nIdentityManagementModule->SystemModule\n\n\n\n\n\nSystemOidcService \n\nSystemOidcService \n\nSystemOidcService -->\n\nSystemModule->SystemOidcService \n\n\n\n\n\nSystemService \n\nSystemService \n\nSystemService -->\n\nSystemModule->SystemService \n\n\n\n\n\nSystemOidcService\n\nSystemOidcService\n\nSystemModule -->\n\nSystemOidcService->SystemModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nSystemModule -->\n\nSystemRepo->SystemModule\n\n\n\n\n\nSystemService\n\nSystemService\n\nSystemModule -->\n\nSystemService->SystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/system/system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SystemOidcService\n \n \n SystemRepo\n \n \n SystemService\n \n \n \n \n Imports\n \n \n IdentityManagementModule\n \n \n \n \n Exports\n \n \n SystemOidcService\n \n \n SystemService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { IdentityManagementModule } from '@shared/infra/identity-management/identity-management.module';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemService } from '@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_providers\n\n\n\ncluster_TaskApiModule_imports\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 { CopyHelperModule } from '@modules/copy-helper';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { Module } from '@nestjs/common';\nimport { CourseRepo, LessonRepo, SubmissionRepo, TaskRepo } from '@shared/repo';\nimport { SubmissionService, TaskCopyService, TaskService } from './service';\n\n@Module({\n\timports: [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_providers\n\n\n\ncluster_ToolLaunchModule_imports\n\n\n\ncluster_ToolLaunchModule_exports\n\n\n\n\nBoardModule\n\nBoardModule\n\n\n\nToolLaunchModule\n\nToolLaunchModule\n\nToolLaunchModule -->\n\nBoardModule->ToolLaunchModule\n\n\n\n\n\nCommonToolModule\n\nCommonToolModule\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\nAutoContextIdStrategy\n\nAutoContextIdStrategy\n\nToolLaunchModule -->\n\nAutoContextIdStrategy->ToolLaunchModule\n\n\n\n\n\nAutoContextNameStrategy\n\nAutoContextNameStrategy\n\nToolLaunchModule -->\n\nAutoContextNameStrategy->ToolLaunchModule\n\n\n\n\n\nAutoSchoolIdStrategy\n\nAutoSchoolIdStrategy\n\nToolLaunchModule -->\n\nAutoSchoolIdStrategy->ToolLaunchModule\n\n\n\n\n\nAutoSchoolNumberStrategy\n\nAutoSchoolNumberStrategy\n\nToolLaunchModule -->\n\nAutoSchoolNumberStrategy->ToolLaunchModule\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 AutoContextIdStrategy\n \n \n AutoContextNameStrategy\n \n \n AutoSchoolIdStrategy\n \n \n AutoSchoolNumberStrategy\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 BoardModule\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 { BoardModule } from '@modules/board';\nimport { LearnroomModule } from '@modules/learnroom';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@modules/user';\nimport { forwardRef, Module } from '@nestjs/common';\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 {\n\tAutoContextIdStrategy,\n\tAutoContextNameStrategy,\n\tAutoSchoolIdStrategy,\n\tAutoSchoolNumberStrategy,\n} from './service/auto-parameter-strategy';\nimport { BasicToolLaunchStrategy, Lti11ToolLaunchStrategy, OAuth2ToolLaunchStrategy } from './service/launch-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\tBoardModule,\n\t],\n\tproviders: [\n\t\tToolLaunchService,\n\t\tLti11EncryptionService,\n\t\tBasicToolLaunchStrategy,\n\t\tLti11ToolLaunchStrategy,\n\t\tOAuth2ToolLaunchStrategy,\n\t\tAutoContextIdStrategy,\n\t\tAutoContextNameStrategy,\n\t\tAutoSchoolIdStrategy,\n\t\tAutoSchoolNumberStrategy,\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 './launch-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/UnknownQueryTypeLoggableException.html":{"url":"classes/UnknownQueryTypeLoggableException.html","title":"class - UnknownQueryTypeLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UnknownQueryTypeLoggableException\n\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/loggable/unknown-query-type-loggable-exception.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(unknownQueryType: string)\n \n \n \n \n Defined in apps/server/src/modules/group/loggable/unknown-query-type-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 unknownQueryType\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/group/loggable/unknown-query-type-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 { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { InternalServerErrorException } from '@nestjs/common';\n\nexport class UnknownQueryTypeLoggableException extends InternalServerErrorException implements Loggable {\n\tconstructor(private readonly unknownQueryType: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'INTERNAL_SERVER_ERROR',\n\t\t\tstack: this.stack,\n\t\t\tmessage: 'Unable to process unknown query type for class years.',\n\t\t\tdata: {\n\t\t\t\tunknownQueryType: this.unknownQueryType,\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/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:150\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 } from '@shared/domain';\nimport { InputFormat } from '@shared/domain/types';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString, IsUrl, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\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}\n\nexport class LinkContentBody {\n\t@IsUrl()\n\t@ApiProperty({})\n\turl!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\ttitle?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({})\n\timageUrl?: 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_providers\n\n\n\ncluster_UserLoginMigrationApiModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule -->\n\nAuthenticationModule->UserLoginMigrationApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nUserLoginMigrationApiModule -->\n\nAuthorizationModule->UserLoginMigrationApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationApiModule -->\n\nLegacySchoolModule->UserLoginMigrationApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationApiModule -->\n\nLoggerModule->UserLoginMigrationApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nUserLoginMigrationApiModule -->\n\nOauthModule->UserLoginMigrationApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nUserLoginMigrationApiModule -->\n\nProvisioningModule->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationModule->UserLoginMigrationApiModule\n\n\n\n\n\nCloseUserLoginMigrationUc\n\nCloseUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nCloseUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nPageContentMapper\n\nPageContentMapper\n\nUserLoginMigrationApiModule -->\n\nPageContentMapper->UserLoginMigrationApiModule\n\n\n\n\n\nRestartUserLoginMigrationUc\n\nRestartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nRestartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nStartUserLoginMigrationUc\n\nStartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nStartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nToggleUserLoginMigrationUc\n\nToggleUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nToggleUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationUc\n\nUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CloseUserLoginMigrationUc\n \n \n PageContentMapper\n \n \n RestartUserLoginMigrationUc\n \n \n StartUserLoginMigrationUc\n \n \n ToggleUserLoginMigrationUc\n \n \n UserLoginMigrationUc\n \n \n \n \n Controllers\n \n \n UserMigrationController\n \n \n UserLoginMigrationController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n UserLoginMigrationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@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 \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 \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')@HttpCode(HttpStatus.OK)@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: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 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:218\n \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 { Authenticate, CurrentUser, ICurrentUser, JWT } from '@modules/authentication';\nimport { Body, Controller, Get, HttpCode, HttpStatus, 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 {\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@HttpCode(HttpStatus.OK)\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';\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\tid: domainObject.id as string,\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 id\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: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 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:30\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:35\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-login-migration/controller/dto/response/user-login-migration.response.ts:5\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:20\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:10\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:25\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: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';\n\nexport class UserLoginMigrationResponse {\n\t@ApiProperty()\n\tid: string;\n\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.id = props.id;\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_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 MetaTagExtractorApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n MetaTagExtractorModule\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 fe42210fa5a..fdcb499a31c 100644 --- a/modules/AuthorizationModule.html +++ b/modules/AuthorizationModule.html @@ -66,14 +66,14 @@ cluster_AuthorizationModule - -cluster_AuthorizationModule_providers - - cluster_AuthorizationModule_exports + +cluster_AuthorizationModule_providers + + cluster_AuthorizationModule_imports diff --git a/modules/AuthorizationModule/dependencies.svg b/modules/AuthorizationModule/dependencies.svg index afac3fb5def..52b7fae1625 100644 --- a/modules/AuthorizationModule/dependencies.svg +++ b/modules/AuthorizationModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_AuthorizationModule - -cluster_AuthorizationModule_providers - - cluster_AuthorizationModule_exports + +cluster_AuthorizationModule_providers + + cluster_AuthorizationModule_imports diff --git a/modules/BoardApiModule.html b/modules/BoardApiModule.html index ab7dd644c7b..7f9b8fc10ae 100644 --- a/modules/BoardApiModule.html +++ b/modules/BoardApiModule.html @@ -66,103 +66,103 @@ cluster_BoardApiModule - -cluster_BoardApiModule_imports - - cluster_BoardApiModule_providers - + + + +cluster_BoardApiModule_imports + BoardModule - -BoardModule + +BoardModule BoardApiModule - -BoardApiModule + +BoardApiModule BoardModule->BoardApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->BoardApiModule - - + + BoardUc - -BoardUc + +BoardUc BoardUc->BoardApiModule - - + + CardUc - -CardUc + +CardUc CardUc->BoardApiModule - - + + ColumnUc - -ColumnUc + +ColumnUc ColumnUc->BoardApiModule - - + + ElementUc - -ElementUc + +ElementUc ElementUc->BoardApiModule - - + + SubmissionItemUc - -SubmissionItemUc + +SubmissionItemUc SubmissionItemUc->BoardApiModule - - + + diff --git a/modules/BoardApiModule/dependencies.svg b/modules/BoardApiModule/dependencies.svg index 39091f4ef19..42b22bc26e5 100644 --- a/modules/BoardApiModule/dependencies.svg +++ b/modules/BoardApiModule/dependencies.svg @@ -24,103 +24,103 @@ cluster_BoardApiModule - -cluster_BoardApiModule_imports - - cluster_BoardApiModule_providers - + + + +cluster_BoardApiModule_imports + BoardModule - -BoardModule + +BoardModule BoardApiModule - -BoardApiModule + +BoardApiModule BoardModule->BoardApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->BoardApiModule - - + + BoardUc - -BoardUc + +BoardUc BoardUc->BoardApiModule - - + + CardUc - -CardUc + +CardUc CardUc->BoardApiModule - - + + ColumnUc - -ColumnUc + +ColumnUc ColumnUc->BoardApiModule - - + + ElementUc - -ElementUc + +ElementUc ElementUc->BoardApiModule - - + + SubmissionItemUc - -SubmissionItemUc + +SubmissionItemUc SubmissionItemUc->BoardApiModule - - + + diff --git a/modules/BoardModule.html b/modules/BoardModule.html index 77e53e37e43..69d01334de3 100644 --- a/modules/BoardModule.html +++ b/modules/BoardModule.html @@ -66,347 +66,347 @@ cluster_BoardModule - -cluster_BoardModule_exports - + +cluster_BoardModule_imports + cluster_BoardModule_providers - + - -cluster_BoardModule_imports - + +cluster_BoardModule_exports + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule BoardModule - -BoardModule + +BoardModule ConsoleWriterModule->BoardModule - - + + ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule ContextExternalToolModule->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 - - + + 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 9e7d1762eb1..fe71cc4017e 100644 --- a/modules/BoardModule/dependencies.svg +++ b/modules/BoardModule/dependencies.svg @@ -24,347 +24,347 @@ cluster_BoardModule - -cluster_BoardModule_exports - + +cluster_BoardModule_imports + cluster_BoardModule_providers - + - -cluster_BoardModule_imports - + +cluster_BoardModule_exports + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule BoardModule - -BoardModule + +BoardModule ConsoleWriterModule->BoardModule - - + + ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule ContextExternalToolModule->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 - - + + 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 d40df7864a0..54df179114f 100644 --- a/modules/CacheWrapperModule.html +++ b/modules/CacheWrapperModule.html @@ -66,14 +66,14 @@ cluster_CacheWrapperModule - -cluster_CacheWrapperModule_exports - - cluster_CacheWrapperModule_providers + +cluster_CacheWrapperModule_exports + + CacheService diff --git a/modules/CacheWrapperModule/dependencies.svg b/modules/CacheWrapperModule/dependencies.svg index 8bda11cb761..5734bbdcdbd 100644 --- a/modules/CacheWrapperModule/dependencies.svg +++ b/modules/CacheWrapperModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CacheWrapperModule - -cluster_CacheWrapperModule_exports - - cluster_CacheWrapperModule_providers + +cluster_CacheWrapperModule_exports + + CacheService diff --git a/modules/CollaborativeStorageAdapterModule.html b/modules/CollaborativeStorageAdapterModule.html index 108c9cc11e1..d615333c9d9 100644 --- a/modules/CollaborativeStorageAdapterModule.html +++ b/modules/CollaborativeStorageAdapterModule.html @@ -66,10 +66,6 @@ cluster_CollaborativeStorageAdapterModule - -cluster_CollaborativeStorageAdapterModule_exports - - cluster_CollaborativeStorageAdapterModule_providers @@ -78,6 +74,10 @@ cluster_CollaborativeStorageAdapterModule_imports + +cluster_CollaborativeStorageAdapterModule_exports + + LoggerModule diff --git a/modules/CollaborativeStorageAdapterModule/dependencies.svg b/modules/CollaborativeStorageAdapterModule/dependencies.svg index 1bab514d699..14a0aafb8d4 100644 --- a/modules/CollaborativeStorageAdapterModule/dependencies.svg +++ b/modules/CollaborativeStorageAdapterModule/dependencies.svg @@ -24,10 +24,6 @@ cluster_CollaborativeStorageAdapterModule - -cluster_CollaborativeStorageAdapterModule_exports - - cluster_CollaborativeStorageAdapterModule_providers @@ -36,6 +32,10 @@ cluster_CollaborativeStorageAdapterModule_imports + +cluster_CollaborativeStorageAdapterModule_exports + + LoggerModule diff --git a/modules/CommonToolModule.html b/modules/CommonToolModule.html index 7241941f8b2..106debd0b3c 100644 --- a/modules/CommonToolModule.html +++ b/modules/CommonToolModule.html @@ -66,143 +66,143 @@ cluster_CommonToolModule + +cluster_CommonToolModule_providers + + cluster_CommonToolModule_imports - + cluster_CommonToolModule_exports - - - -cluster_CommonToolModule_providers - + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule CommonToolModule - -CommonToolModule + +CommonToolModule LegacySchoolModule->CommonToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->CommonToolModule - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolModule->CommonToolService - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolModule->CommonToolValidationService - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo CommonToolModule->ContextExternalToolRepo - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo CommonToolModule->SchoolExternalToolRepo - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolService->CommonToolModule - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolValidationService->CommonToolModule - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo ContextExternalToolRepo->CommonToolModule - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo SchoolExternalToolRepo->CommonToolModule - - + + diff --git a/modules/CommonToolModule/dependencies.svg b/modules/CommonToolModule/dependencies.svg index 056205fc748..c2f06b5b9db 100644 --- a/modules/CommonToolModule/dependencies.svg +++ b/modules/CommonToolModule/dependencies.svg @@ -24,143 +24,143 @@ cluster_CommonToolModule + +cluster_CommonToolModule_providers + + cluster_CommonToolModule_imports - + cluster_CommonToolModule_exports - - - -cluster_CommonToolModule_providers - + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule CommonToolModule - -CommonToolModule + +CommonToolModule LegacySchoolModule->CommonToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->CommonToolModule - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolModule->CommonToolService - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolModule->CommonToolValidationService - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo CommonToolModule->ContextExternalToolRepo - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo CommonToolModule->SchoolExternalToolRepo - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolService->CommonToolModule - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolValidationService->CommonToolModule - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo ContextExternalToolRepo->CommonToolModule - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo SchoolExternalToolRepo->CommonToolModule - - + + diff --git a/modules/ContextExternalToolModule.html b/modules/ContextExternalToolModule.html index 51dfd233f49..d34a2b4421b 100644 --- a/modules/ContextExternalToolModule.html +++ b/modules/ContextExternalToolModule.html @@ -70,14 +70,14 @@ cluster_ContextExternalToolModule_imports - -cluster_ContextExternalToolModule_exports - - cluster_ContextExternalToolModule_providers + +cluster_ContextExternalToolModule_exports + + CommonToolModule diff --git a/modules/ContextExternalToolModule/dependencies.svg b/modules/ContextExternalToolModule/dependencies.svg index 2eae9f777bf..f9edb9d6e54 100644 --- a/modules/ContextExternalToolModule/dependencies.svg +++ b/modules/ContextExternalToolModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_ContextExternalToolModule_imports - -cluster_ContextExternalToolModule_exports - - cluster_ContextExternalToolModule_providers + +cluster_ContextExternalToolModule_exports + + CommonToolModule diff --git a/modules/CoreModule.html b/modules/CoreModule.html index 92d1c8f42d7..3b42cab53d5 100644 --- a/modules/CoreModule.html +++ b/modules/CoreModule.html @@ -66,14 +66,14 @@ cluster_CoreModule - -cluster_CoreModule_imports - - cluster_CoreModule_exports + +cluster_CoreModule_imports + + ErrorModule diff --git a/modules/CoreModule/dependencies.svg b/modules/CoreModule/dependencies.svg index ea7b488053d..c2868adf51b 100644 --- a/modules/CoreModule/dependencies.svg +++ b/modules/CoreModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CoreModule - -cluster_CoreModule_imports - - cluster_CoreModule_exports + +cluster_CoreModule_imports + + ErrorModule diff --git a/modules/DatabaseManagementModule.html b/modules/DatabaseManagementModule.html index b01e77d8582..3b660658ae8 100644 --- a/modules/DatabaseManagementModule.html +++ b/modules/DatabaseManagementModule.html @@ -66,14 +66,14 @@ cluster_DatabaseManagementModule - -cluster_DatabaseManagementModule_exports - - cluster_DatabaseManagementModule_providers + +cluster_DatabaseManagementModule_exports + + DatabaseManagementService diff --git a/modules/DatabaseManagementModule/dependencies.svg b/modules/DatabaseManagementModule/dependencies.svg index feb5c1079f9..dec3b83de18 100644 --- a/modules/DatabaseManagementModule/dependencies.svg +++ b/modules/DatabaseManagementModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_DatabaseManagementModule - -cluster_DatabaseManagementModule_exports - - cluster_DatabaseManagementModule_providers + +cluster_DatabaseManagementModule_exports + + DatabaseManagementService diff --git a/modules/ExternalToolModule.html b/modules/ExternalToolModule.html index b5cf387d33e..56e5f4b1f51 100644 --- a/modules/ExternalToolModule.html +++ b/modules/ExternalToolModule.html @@ -66,6 +66,10 @@ cluster_ExternalToolModule + +cluster_ExternalToolModule_exports + + cluster_ExternalToolModule_providers @@ -74,10 +78,6 @@ cluster_ExternalToolModule_imports - -cluster_ExternalToolModule_exports - - CommonToolModule diff --git a/modules/ExternalToolModule/dependencies.svg b/modules/ExternalToolModule/dependencies.svg index 0747709c546..6537205a191 100644 --- a/modules/ExternalToolModule/dependencies.svg +++ b/modules/ExternalToolModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_ExternalToolModule + +cluster_ExternalToolModule_exports + + cluster_ExternalToolModule_providers @@ -32,10 +36,6 @@ cluster_ExternalToolModule_imports - -cluster_ExternalToolModule_exports - - CommonToolModule diff --git a/modules/FeathersModule.html b/modules/FeathersModule.html index 02283931824..cf4ba3aac18 100644 --- a/modules/FeathersModule.html +++ b/modules/FeathersModule.html @@ -66,14 +66,14 @@ cluster_FeathersModule - -cluster_FeathersModule_exports - - cluster_FeathersModule_providers + +cluster_FeathersModule_exports + + FeathersServiceProvider diff --git a/modules/FeathersModule/dependencies.svg b/modules/FeathersModule/dependencies.svg index 36645a49bbd..12b2a58d84d 100644 --- a/modules/FeathersModule/dependencies.svg +++ b/modules/FeathersModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_FeathersModule - -cluster_FeathersModule_exports - - cluster_FeathersModule_providers + +cluster_FeathersModule_exports + + FeathersServiceProvider diff --git a/modules/FileSystemModule.html b/modules/FileSystemModule.html index b73c5e92a89..e994052a60c 100644 --- a/modules/FileSystemModule.html +++ b/modules/FileSystemModule.html @@ -66,14 +66,14 @@ cluster_FileSystemModule - -cluster_FileSystemModule_exports - - cluster_FileSystemModule_providers + +cluster_FileSystemModule_exports + + FileSystemAdapter diff --git a/modules/FileSystemModule/dependencies.svg b/modules/FileSystemModule/dependencies.svg index 9bb489d5ad3..434cad7a861 100644 --- a/modules/FileSystemModule/dependencies.svg +++ b/modules/FileSystemModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_FileSystemModule - -cluster_FileSystemModule_exports - - cluster_FileSystemModule_providers + +cluster_FileSystemModule_exports + + FileSystemAdapter 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 fe40f4c1a29..e5b34fc29ca 100644 --- a/modules/GroupApiModule.html +++ b/modules/GroupApiModule.html @@ -66,115 +66,115 @@ cluster_GroupApiModule - -cluster_GroupApiModule_imports - - cluster_GroupApiModule_providers - + + + +cluster_GroupApiModule_imports + 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 a05e9a49342..1d379111c49 100644 --- a/modules/GroupApiModule/dependencies.svg +++ b/modules/GroupApiModule/dependencies.svg @@ -24,115 +24,115 @@ cluster_GroupApiModule - -cluster_GroupApiModule_imports - - cluster_GroupApiModule_providers - + + + +cluster_GroupApiModule_imports + 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/IdentityManagementModule.html b/modules/IdentityManagementModule.html index 46aafed1f28..bf3c1b3127e 100644 --- a/modules/IdentityManagementModule.html +++ b/modules/IdentityManagementModule.html @@ -66,14 +66,14 @@ cluster_IdentityManagementModule - -cluster_IdentityManagementModule_imports - - cluster_IdentityManagementModule_exports + +cluster_IdentityManagementModule_imports + + EncryptionModule diff --git a/modules/IdentityManagementModule/dependencies.svg b/modules/IdentityManagementModule/dependencies.svg index 20838180ff7..a6a787251a7 100644 --- a/modules/IdentityManagementModule/dependencies.svg +++ b/modules/IdentityManagementModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_IdentityManagementModule - -cluster_IdentityManagementModule_imports - - cluster_IdentityManagementModule_exports + +cluster_IdentityManagementModule_imports + + EncryptionModule diff --git a/modules/KeycloakConfigurationModule.html b/modules/KeycloakConfigurationModule.html index 479b98fe6bf..efd64bac907 100644 --- a/modules/KeycloakConfigurationModule.html +++ b/modules/KeycloakConfigurationModule.html @@ -66,6 +66,10 @@ cluster_KeycloakConfigurationModule + +cluster_KeycloakConfigurationModule_exports + + cluster_KeycloakConfigurationModule_imports @@ -74,10 +78,6 @@ cluster_KeycloakConfigurationModule_providers - -cluster_KeycloakConfigurationModule_exports - - AccountModule diff --git a/modules/KeycloakConfigurationModule/dependencies.svg b/modules/KeycloakConfigurationModule/dependencies.svg index 734fbdeba65..e6ff611e3ea 100644 --- a/modules/KeycloakConfigurationModule/dependencies.svg +++ b/modules/KeycloakConfigurationModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_KeycloakConfigurationModule + +cluster_KeycloakConfigurationModule_exports + + cluster_KeycloakConfigurationModule_imports @@ -32,10 +36,6 @@ cluster_KeycloakConfigurationModule_providers - -cluster_KeycloakConfigurationModule_exports - - AccountModule diff --git a/modules/KeycloakModule.html b/modules/KeycloakModule.html index 127cb883cb0..40d75ff8b3f 100644 --- a/modules/KeycloakModule.html +++ b/modules/KeycloakModule.html @@ -66,14 +66,14 @@ cluster_KeycloakModule - -cluster_KeycloakModule_exports - - cluster_KeycloakModule_providers + +cluster_KeycloakModule_exports + + cluster_KeycloakModule_imports diff --git a/modules/KeycloakModule/dependencies.svg b/modules/KeycloakModule/dependencies.svg index e5dc147feb7..bd418edd138 100644 --- a/modules/KeycloakModule/dependencies.svg +++ b/modules/KeycloakModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_KeycloakModule - -cluster_KeycloakModule_exports - - cluster_KeycloakModule_providers + +cluster_KeycloakModule_exports + + cluster_KeycloakModule_imports diff --git a/modules/LearnroomModule.html b/modules/LearnroomModule.html index d77280b304b..9a6b539fc90 100644 --- a/modules/LearnroomModule.html +++ b/modules/LearnroomModule.html @@ -70,14 +70,14 @@ cluster_LearnroomModule_imports - -cluster_LearnroomModule_exports - - cluster_LearnroomModule_providers + +cluster_LearnroomModule_exports + + BoardModule diff --git a/modules/LearnroomModule/dependencies.svg b/modules/LearnroomModule/dependencies.svg index 273460d1751..135a594f172 100644 --- a/modules/LearnroomModule/dependencies.svg +++ b/modules/LearnroomModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_LearnroomModule_imports - -cluster_LearnroomModule_exports - - cluster_LearnroomModule_providers + +cluster_LearnroomModule_exports + + BoardModule diff --git a/modules/LegacySchoolModule.html b/modules/LegacySchoolModule.html index b8367395e32..ed289a8e6b2 100644 --- a/modules/LegacySchoolModule.html +++ b/modules/LegacySchoolModule.html @@ -68,6 +68,10 @@ cluster_LegacySchoolModule + +cluster_LegacySchoolModule_exports + + cluster_LegacySchoolModule_providers @@ -76,10 +80,6 @@ cluster_LegacySchoolModule_imports - -cluster_LegacySchoolModule_exports - - LoggerModule diff --git a/modules/LegacySchoolModule/dependencies.svg b/modules/LegacySchoolModule/dependencies.svg index 1286a6d4d80..aa640fba832 100644 --- a/modules/LegacySchoolModule/dependencies.svg +++ b/modules/LegacySchoolModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_LegacySchoolModule + +cluster_LegacySchoolModule_exports + + cluster_LegacySchoolModule_providers @@ -32,10 +36,6 @@ cluster_LegacySchoolModule_imports - -cluster_LegacySchoolModule_exports - - LoggerModule diff --git a/modules/LessonApiModule.html b/modules/LessonApiModule.html index 110a255f11b..87fcf0d7c08 100644 --- a/modules/LessonApiModule.html +++ b/modules/LessonApiModule.html @@ -66,55 +66,55 @@ cluster_LessonApiModule - -cluster_LessonApiModule_providers - - cluster_LessonApiModule_imports - + + + +cluster_LessonApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LessonApiModule - -LessonApiModule + +LessonApiModule AuthorizationModule->LessonApiModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->LessonApiModule - - + + LessonUC - -LessonUC + +LessonUC LessonUC->LessonApiModule - - + + diff --git a/modules/LessonApiModule/dependencies.svg b/modules/LessonApiModule/dependencies.svg index e3951bb1b0d..a1983dd0952 100644 --- a/modules/LessonApiModule/dependencies.svg +++ b/modules/LessonApiModule/dependencies.svg @@ -24,55 +24,55 @@ cluster_LessonApiModule - -cluster_LessonApiModule_providers - - cluster_LessonApiModule_imports - + + + +cluster_LessonApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LessonApiModule - -LessonApiModule + +LessonApiModule AuthorizationModule->LessonApiModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->LessonApiModule - - + + LessonUC - -LessonUC + +LessonUC LessonUC->LessonApiModule - - + + diff --git a/modules/LoggerModule.html b/modules/LoggerModule.html index 523e89f4a9e..7703601b952 100644 --- a/modules/LoggerModule.html +++ b/modules/LoggerModule.html @@ -66,14 +66,14 @@ cluster_LoggerModule - -cluster_LoggerModule_providers - - cluster_LoggerModule_exports + +cluster_LoggerModule_providers + + ErrorLogger diff --git a/modules/LoggerModule/dependencies.svg b/modules/LoggerModule/dependencies.svg index 19f1467382c..15fdf003557 100644 --- a/modules/LoggerModule/dependencies.svg +++ b/modules/LoggerModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_LoggerModule - -cluster_LoggerModule_providers - - cluster_LoggerModule_exports + +cluster_LoggerModule_providers + + ErrorLogger diff --git a/modules/LtiToolModule.html b/modules/LtiToolModule.html index 9c9b88bfe67..ed37e69b728 100644 --- a/modules/LtiToolModule.html +++ b/modules/LtiToolModule.html @@ -66,14 +66,14 @@ cluster_LtiToolModule - -cluster_LtiToolModule_exports - - cluster_LtiToolModule_providers + +cluster_LtiToolModule_exports + + LtiToolService diff --git a/modules/LtiToolModule/dependencies.svg b/modules/LtiToolModule/dependencies.svg index cb6c096489d..a04811113b8 100644 --- a/modules/LtiToolModule/dependencies.svg +++ b/modules/LtiToolModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_LtiToolModule - -cluster_LtiToolModule_exports - - cluster_LtiToolModule_providers + +cluster_LtiToolModule_exports + + LtiToolService diff --git a/modules/MetaTagExtractorModule.html b/modules/MetaTagExtractorModule.html index cadce9749b4..6c593aa85a4 100644 --- a/modules/MetaTagExtractorModule.html +++ b/modules/MetaTagExtractorModule.html @@ -66,95 +66,95 @@ cluster_MetaTagExtractorModule - -cluster_MetaTagExtractorModule_providers - - cluster_MetaTagExtractorModule_imports - + + + +cluster_MetaTagExtractorModule_providers + cluster_MetaTagExtractorModule_exports - + AuthenticationModule - -AuthenticationModule + +AuthenticationModule MetaTagExtractorModule - -MetaTagExtractorModule + +MetaTagExtractorModule AuthenticationModule->MetaTagExtractorModule - - + + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule ConsoleWriterModule->MetaTagExtractorModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->MetaTagExtractorModule - - + + UserModule - -UserModule + +UserModule UserModule->MetaTagExtractorModule - - + + MetaTagExtractorService - -MetaTagExtractorService + +MetaTagExtractorService MetaTagExtractorModule->MetaTagExtractorService - - + + MetaTagExtractorService - -MetaTagExtractorService + +MetaTagExtractorService MetaTagExtractorService->MetaTagExtractorModule - - + + diff --git a/modules/MetaTagExtractorModule/dependencies.svg b/modules/MetaTagExtractorModule/dependencies.svg index c155ea28b87..8806e60eb96 100644 --- a/modules/MetaTagExtractorModule/dependencies.svg +++ b/modules/MetaTagExtractorModule/dependencies.svg @@ -24,95 +24,95 @@ cluster_MetaTagExtractorModule - -cluster_MetaTagExtractorModule_providers - - cluster_MetaTagExtractorModule_imports - + + + +cluster_MetaTagExtractorModule_providers + cluster_MetaTagExtractorModule_exports - + AuthenticationModule - -AuthenticationModule + +AuthenticationModule MetaTagExtractorModule - -MetaTagExtractorModule + +MetaTagExtractorModule AuthenticationModule->MetaTagExtractorModule - - + + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule ConsoleWriterModule->MetaTagExtractorModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->MetaTagExtractorModule - - + + UserModule - -UserModule + +UserModule UserModule->MetaTagExtractorModule - - + + MetaTagExtractorService - -MetaTagExtractorService + +MetaTagExtractorService MetaTagExtractorModule->MetaTagExtractorService - - + + MetaTagExtractorService - -MetaTagExtractorService + +MetaTagExtractorService MetaTagExtractorService->MetaTagExtractorModule - - + + diff --git a/modules/OauthApiModule.html b/modules/OauthApiModule.html index 63fcc26212d..d81d464280b 100644 --- a/modules/OauthApiModule.html +++ b/modules/OauthApiModule.html @@ -66,151 +66,151 @@ cluster_OauthApiModule - -cluster_OauthApiModule_providers - - cluster_OauthApiModule_imports - + + + +cluster_OauthApiModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule OauthApiModule - -OauthApiModule + +OauthApiModule AuthenticationModule->OauthApiModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->OauthApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->OauthApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->OauthApiModule - - + + OauthModule - -OauthModule + +OauthModule OauthModule->OauthApiModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->OauthApiModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->OauthApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->OauthApiModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthApiModule - - + + HydraOauthUc - -HydraOauthUc + +HydraOauthUc HydraOauthUc->OauthApiModule - - + + OauthUc - -OauthUc + +OauthUc OauthUc->OauthApiModule - - + + diff --git a/modules/OauthApiModule/dependencies.svg b/modules/OauthApiModule/dependencies.svg index 0d368a51025..26de2d05b5e 100644 --- a/modules/OauthApiModule/dependencies.svg +++ b/modules/OauthApiModule/dependencies.svg @@ -24,151 +24,151 @@ cluster_OauthApiModule - -cluster_OauthApiModule_providers - - cluster_OauthApiModule_imports - + + + +cluster_OauthApiModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule OauthApiModule - -OauthApiModule + +OauthApiModule AuthenticationModule->OauthApiModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->OauthApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->OauthApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->OauthApiModule - - + + OauthModule - -OauthModule + +OauthModule OauthModule->OauthApiModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->OauthApiModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->OauthApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->OauthApiModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthApiModule - - + + HydraOauthUc - -HydraOauthUc + +HydraOauthUc HydraOauthUc->OauthApiModule - - + + OauthUc - -OauthUc + +OauthUc OauthUc->OauthApiModule - - + + diff --git a/modules/OauthModule.html b/modules/OauthModule.html index 6121b969cb7..483b9ecf3a5 100644 --- a/modules/OauthModule.html +++ b/modules/OauthModule.html @@ -66,203 +66,203 @@ cluster_OauthModule - -cluster_OauthModule_exports - + +cluster_OauthModule_imports + cluster_OauthModule_providers - + - -cluster_OauthModule_imports - + +cluster_OauthModule_exports + 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 39d14f1adba..d21eeeb26b2 100644 --- a/modules/OauthModule/dependencies.svg +++ b/modules/OauthModule/dependencies.svg @@ -24,203 +24,203 @@ cluster_OauthModule - -cluster_OauthModule_exports - + +cluster_OauthModule_imports + cluster_OauthModule_providers - + - -cluster_OauthModule_imports - + +cluster_OauthModule_exports + 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..9a249d63654 100644 --- a/modules/OauthProviderModule.html +++ b/modules/OauthProviderModule.html @@ -66,167 +66,167 @@ cluster_OauthProviderModule + +cluster_OauthProviderModule_imports + + cluster_OauthProviderModule_providers - + cluster_OauthProviderModule_exports - - - -cluster_OauthProviderModule_imports - + LoggerModule - -LoggerModule + +LoggerModule OauthProviderModule - -OauthProviderModule + +OauthProviderModule LoggerModule->OauthProviderModule - - + + LtiToolModule - -LtiToolModule + +LtiToolModule LtiToolModule->OauthProviderModule - - + + OauthProviderServiceModule - -OauthProviderServiceModule + +OauthProviderServiceModule OauthProviderServiceModule->OauthProviderModule - - + + PseudonymModule - -PseudonymModule + +PseudonymModule PseudonymModule->OauthProviderModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->OauthProviderModule - - + + ToolModule - -ToolModule + +ToolModule ToolModule->OauthProviderModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthProviderModule - - + + IdTokenService - -IdTokenService + +IdTokenService OauthProviderModule->IdTokenService - - + + OauthProviderLoginFlowService - -OauthProviderLoginFlowService + +OauthProviderLoginFlowService OauthProviderModule->OauthProviderLoginFlowService - - + + IdTokenService - -IdTokenService + +IdTokenService IdTokenService->OauthProviderModule - - + + OauthProviderLoginFlowService - -OauthProviderLoginFlowService + +OauthProviderLoginFlowService OauthProviderLoginFlowService->OauthProviderModule - - + + TeamsRepo - -TeamsRepo + +TeamsRepo TeamsRepo->OauthProviderModule - - + + diff --git a/modules/OauthProviderModule/dependencies.svg b/modules/OauthProviderModule/dependencies.svg index 1448a9c7619..3048ec52e38 100644 --- a/modules/OauthProviderModule/dependencies.svg +++ b/modules/OauthProviderModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_OauthProviderModule + +cluster_OauthProviderModule_imports + + cluster_OauthProviderModule_providers - + cluster_OauthProviderModule_exports - - - -cluster_OauthProviderModule_imports - + LoggerModule - -LoggerModule + +LoggerModule OauthProviderModule - -OauthProviderModule + +OauthProviderModule LoggerModule->OauthProviderModule - - + + LtiToolModule - -LtiToolModule + +LtiToolModule LtiToolModule->OauthProviderModule - - + + OauthProviderServiceModule - -OauthProviderServiceModule + +OauthProviderServiceModule OauthProviderServiceModule->OauthProviderModule - - + + PseudonymModule - -PseudonymModule + +PseudonymModule PseudonymModule->OauthProviderModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->OauthProviderModule - - + + ToolModule - -ToolModule + +ToolModule ToolModule->OauthProviderModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthProviderModule - - + + IdTokenService - -IdTokenService + +IdTokenService OauthProviderModule->IdTokenService - - + + OauthProviderLoginFlowService - -OauthProviderLoginFlowService + +OauthProviderLoginFlowService OauthProviderModule->OauthProviderLoginFlowService - - + + IdTokenService - -IdTokenService + +IdTokenService IdTokenService->OauthProviderModule - - + + OauthProviderLoginFlowService - -OauthProviderLoginFlowService + +OauthProviderLoginFlowService OauthProviderLoginFlowService->OauthProviderModule - - + + TeamsRepo - -TeamsRepo + +TeamsRepo TeamsRepo->OauthProviderModule - - + + diff --git a/modules/PreviewGeneratorProducerModule.html b/modules/PreviewGeneratorProducerModule.html index 2f807c62dd9..dc9694b199a 100644 --- a/modules/PreviewGeneratorProducerModule.html +++ b/modules/PreviewGeneratorProducerModule.html @@ -66,71 +66,71 @@ cluster_PreviewGeneratorProducerModule - -cluster_PreviewGeneratorProducerModule_providers - - cluster_PreviewGeneratorProducerModule_exports - + cluster_PreviewGeneratorProducerModule_imports - + + + +cluster_PreviewGeneratorProducerModule_providers + LoggerModule - -LoggerModule + +LoggerModule PreviewGeneratorProducerModule - -PreviewGeneratorProducerModule + +PreviewGeneratorProducerModule LoggerModule->PreviewGeneratorProducerModule - - + + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule RabbitMQWrapperModule->PreviewGeneratorProducerModule - - + + PreviewProducer - -PreviewProducer + +PreviewProducer PreviewGeneratorProducerModule->PreviewProducer - - + + PreviewProducer - -PreviewProducer + +PreviewProducer PreviewProducer->PreviewGeneratorProducerModule - - + + diff --git a/modules/PreviewGeneratorProducerModule/dependencies.svg b/modules/PreviewGeneratorProducerModule/dependencies.svg index ceb02a3bf2b..36fcb125d53 100644 --- a/modules/PreviewGeneratorProducerModule/dependencies.svg +++ b/modules/PreviewGeneratorProducerModule/dependencies.svg @@ -24,71 +24,71 @@ cluster_PreviewGeneratorProducerModule - -cluster_PreviewGeneratorProducerModule_providers - - cluster_PreviewGeneratorProducerModule_exports - + cluster_PreviewGeneratorProducerModule_imports - + + + +cluster_PreviewGeneratorProducerModule_providers + LoggerModule - -LoggerModule + +LoggerModule PreviewGeneratorProducerModule - -PreviewGeneratorProducerModule + +PreviewGeneratorProducerModule LoggerModule->PreviewGeneratorProducerModule - - + + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule RabbitMQWrapperModule->PreviewGeneratorProducerModule - - + + PreviewProducer - -PreviewProducer + +PreviewProducer PreviewGeneratorProducerModule->PreviewProducer - - + + PreviewProducer - -PreviewProducer + +PreviewProducer PreviewProducer->PreviewGeneratorProducerModule - - + + diff --git a/modules/ProvisioningModule.html b/modules/ProvisioningModule.html index 9bdfb6f1a9e..e51abe6368b 100644 --- a/modules/ProvisioningModule.html +++ b/modules/ProvisioningModule.html @@ -66,191 +66,191 @@ cluster_ProvisioningModule + +cluster_ProvisioningModule_imports + + cluster_ProvisioningModule_exports - + cluster_ProvisioningModule_providers - - - -cluster_ProvisioningModule_imports - + AccountModule - -AccountModule + +AccountModule ProvisioningModule - -ProvisioningModule + +ProvisioningModule AccountModule->ProvisioningModule - - + + GroupModule - -GroupModule + +GroupModule GroupModule->ProvisioningModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ProvisioningModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ProvisioningModule - - + + RoleModule - -RoleModule + +RoleModule RoleModule->ProvisioningModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->ProvisioningModule - - + + UserModule - -UserModule + +UserModule UserModule->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningModule->ProvisioningService - - + + IservProvisioningStrategy - -IservProvisioningStrategy + +IservProvisioningStrategy IservProvisioningStrategy->ProvisioningModule - - + + OidcMockProvisioningStrategy - -OidcMockProvisioningStrategy + +OidcMockProvisioningStrategy OidcMockProvisioningStrategy->ProvisioningModule - - + + OidcProvisioningService - -OidcProvisioningService + +OidcProvisioningService OidcProvisioningService->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningService->ProvisioningModule - - + + SanisProvisioningStrategy - -SanisProvisioningStrategy + +SanisProvisioningStrategy SanisProvisioningStrategy->ProvisioningModule - - + + SanisResponseMapper - -SanisResponseMapper + +SanisResponseMapper SanisResponseMapper->ProvisioningModule - - + + diff --git a/modules/ProvisioningModule/dependencies.svg b/modules/ProvisioningModule/dependencies.svg index 00d904c379e..886a8d23c62 100644 --- a/modules/ProvisioningModule/dependencies.svg +++ b/modules/ProvisioningModule/dependencies.svg @@ -24,191 +24,191 @@ cluster_ProvisioningModule + +cluster_ProvisioningModule_imports + + cluster_ProvisioningModule_exports - + cluster_ProvisioningModule_providers - - - -cluster_ProvisioningModule_imports - + AccountModule - -AccountModule + +AccountModule ProvisioningModule - -ProvisioningModule + +ProvisioningModule AccountModule->ProvisioningModule - - + + GroupModule - -GroupModule + +GroupModule GroupModule->ProvisioningModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ProvisioningModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ProvisioningModule - - + + RoleModule - -RoleModule + +RoleModule RoleModule->ProvisioningModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->ProvisioningModule - - + + UserModule - -UserModule + +UserModule UserModule->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningModule->ProvisioningService - - + + IservProvisioningStrategy - -IservProvisioningStrategy + +IservProvisioningStrategy IservProvisioningStrategy->ProvisioningModule - - + + OidcMockProvisioningStrategy - -OidcMockProvisioningStrategy + +OidcMockProvisioningStrategy OidcMockProvisioningStrategy->ProvisioningModule - - + + OidcProvisioningService - -OidcProvisioningService + +OidcProvisioningService OidcProvisioningService->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningService->ProvisioningModule - - + + SanisProvisioningStrategy - -SanisProvisioningStrategy + +SanisProvisioningStrategy SanisProvisioningStrategy->ProvisioningModule - - + + SanisResponseMapper - -SanisResponseMapper + +SanisResponseMapper SanisResponseMapper->ProvisioningModule - - + + diff --git a/modules/PseudonymModule.html b/modules/PseudonymModule.html index 503ea6f8505..de3f8476e04 100644 --- a/modules/PseudonymModule.html +++ b/modules/PseudonymModule.html @@ -70,14 +70,14 @@ cluster_PseudonymModule_providers - -cluster_PseudonymModule_exports - - cluster_PseudonymModule_imports + +cluster_PseudonymModule_exports + + LearnroomModule diff --git a/modules/PseudonymModule/dependencies.svg b/modules/PseudonymModule/dependencies.svg index 96bf4e543c5..76ef0e4b7a4 100644 --- a/modules/PseudonymModule/dependencies.svg +++ b/modules/PseudonymModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_PseudonymModule_providers - -cluster_PseudonymModule_exports - - cluster_PseudonymModule_imports + +cluster_PseudonymModule_exports + + LearnroomModule diff --git a/modules/SchoolExternalToolModule.html b/modules/SchoolExternalToolModule.html index 8631d1f550b..67596567769 100644 --- a/modules/SchoolExternalToolModule.html +++ b/modules/SchoolExternalToolModule.html @@ -68,93 +68,93 @@ cluster_SchoolExternalToolModule_exports - - - -cluster_SchoolExternalToolModule_imports - + cluster_SchoolExternalToolModule_providers - + + + +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 6aff406a4ce..19de6951858 100644 --- a/modules/SchoolExternalToolModule/dependencies.svg +++ b/modules/SchoolExternalToolModule/dependencies.svg @@ -26,93 +26,93 @@ cluster_SchoolExternalToolModule_exports - - - -cluster_SchoolExternalToolModule_imports - + cluster_SchoolExternalToolModule_providers - + + + +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..8ea96115e8f 100644 --- a/modules/SharingModule.html +++ b/modules/SharingModule.html @@ -66,143 +66,143 @@ cluster_SharingModule - -cluster_SharingModule_exports - + +cluster_SharingModule_imports + cluster_SharingModule_providers - + - -cluster_SharingModule_imports - + +cluster_SharingModule_exports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule SharingModule - -SharingModule + +SharingModule AuthorizationModule->SharingModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->SharingModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->SharingModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->SharingModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->SharingModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->SharingModule - - + + ShareTokenService - -ShareTokenService + +ShareTokenService SharingModule->ShareTokenService - - + + ShareTokenRepo - -ShareTokenRepo + +ShareTokenRepo ShareTokenRepo->SharingModule - - + + ShareTokenService - -ShareTokenService + +ShareTokenService ShareTokenService->SharingModule - - + + TokenGenerator - -TokenGenerator + +TokenGenerator TokenGenerator->SharingModule - - + + diff --git a/modules/SharingModule/dependencies.svg b/modules/SharingModule/dependencies.svg index 1e990f51f5b..155625cc40a 100644 --- a/modules/SharingModule/dependencies.svg +++ b/modules/SharingModule/dependencies.svg @@ -24,143 +24,143 @@ cluster_SharingModule - -cluster_SharingModule_exports - + +cluster_SharingModule_imports + cluster_SharingModule_providers - + - -cluster_SharingModule_imports - + +cluster_SharingModule_exports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule SharingModule - -SharingModule + +SharingModule AuthorizationModule->SharingModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->SharingModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->SharingModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->SharingModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->SharingModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->SharingModule - - + + ShareTokenService - -ShareTokenService + +ShareTokenService SharingModule->ShareTokenService - - + + ShareTokenRepo - -ShareTokenRepo + +ShareTokenRepo ShareTokenRepo->SharingModule - - + + ShareTokenService - -ShareTokenService + +ShareTokenService ShareTokenService->SharingModule - - + + TokenGenerator - -TokenGenerator + +TokenGenerator TokenGenerator->SharingModule - - + + diff --git a/modules/SystemModule.html b/modules/SystemModule.html index 6e2d40cd5b0..93b3c39eba6 100644 --- a/modules/SystemModule.html +++ b/modules/SystemModule.html @@ -66,95 +66,95 @@ cluster_SystemModule - -cluster_SystemModule_imports - + +cluster_SystemModule_exports + cluster_SystemModule_providers - + - -cluster_SystemModule_exports - + +cluster_SystemModule_imports + 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 1ef9408e389..471b81aae65 100644 --- a/modules/SystemModule/dependencies.svg +++ b/modules/SystemModule/dependencies.svg @@ -24,95 +24,95 @@ cluster_SystemModule - -cluster_SystemModule_imports - + +cluster_SystemModule_exports + cluster_SystemModule_providers - + - -cluster_SystemModule_exports - + +cluster_SystemModule_imports + IdentityManagementModule - -IdentityManagementModule + +IdentityManagementModule SystemModule - -SystemModule + +SystemModule IdentityManagementModule->SystemModule - - + + SystemOidcService - -SystemOidcService + +SystemOidcService SystemModule->SystemOidcService - - + + SystemService - -SystemService + +SystemService SystemModule->SystemService - - + + SystemOidcService - -SystemOidcService + +SystemOidcService SystemOidcService->SystemModule - - + + SystemRepo - -SystemRepo + +SystemRepo SystemRepo->SystemModule - - + + SystemService - -SystemService + +SystemService SystemService->SystemModule - - + + diff --git a/modules/TaskModule.html b/modules/TaskModule.html index adc11375b88..fe84dfa67ac 100644 --- a/modules/TaskModule.html +++ b/modules/TaskModule.html @@ -66,167 +66,167 @@ cluster_TaskModule - -cluster_TaskModule_imports - + +cluster_TaskModule_providers + cluster_TaskModule_exports - + - -cluster_TaskModule_providers - + +cluster_TaskModule_imports + CopyHelperModule - -CopyHelperModule + +CopyHelperModule TaskModule - -TaskModule + +TaskModule CopyHelperModule->TaskModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService TaskModule->SubmissionService - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskModule->TaskCopyService - - + + TaskService - -TaskService + +TaskService TaskModule->TaskService - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->TaskModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->TaskModule - - + + SubmissionRepo - -SubmissionRepo + +SubmissionRepo SubmissionRepo->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService SubmissionService->TaskModule - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskCopyService->TaskModule - - + + TaskRepo - -TaskRepo + +TaskRepo TaskRepo->TaskModule - - + + TaskService - -TaskService + +TaskService TaskService->TaskModule - - + + diff --git a/modules/TaskModule/dependencies.svg b/modules/TaskModule/dependencies.svg index e7e5aa3c1be..237e03053b9 100644 --- a/modules/TaskModule/dependencies.svg +++ b/modules/TaskModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_TaskModule - -cluster_TaskModule_imports - + +cluster_TaskModule_providers + cluster_TaskModule_exports - + - -cluster_TaskModule_providers - + +cluster_TaskModule_imports + CopyHelperModule - -CopyHelperModule + +CopyHelperModule TaskModule - -TaskModule + +TaskModule CopyHelperModule->TaskModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService TaskModule->SubmissionService - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskModule->TaskCopyService - - + + TaskService - -TaskService + +TaskService TaskModule->TaskService - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->TaskModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->TaskModule - - + + SubmissionRepo - -SubmissionRepo + +SubmissionRepo SubmissionRepo->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService SubmissionService->TaskModule - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskCopyService->TaskModule - - + + TaskRepo - -TaskRepo + +TaskRepo TaskRepo->TaskModule - - + + TaskService - -TaskService + +TaskService TaskService->TaskModule - - + + diff --git a/modules/ToolApiModule.html b/modules/ToolApiModule.html index 87a1d084f55..eff049e506c 100644 --- a/modules/ToolApiModule.html +++ b/modules/ToolApiModule.html @@ -66,283 +66,283 @@ cluster_ToolApiModule - -cluster_ToolApiModule_imports - - cluster_ToolApiModule_providers - + + + +cluster_ToolApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule ToolApiModule - -ToolApiModule + +ToolApiModule AuthorizationModule->ToolApiModule - - + + BoardModule - -BoardModule + +BoardModule BoardModule->ToolApiModule - - + + CommonToolModule - -CommonToolModule + +CommonToolModule CommonToolModule->ToolApiModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->ToolApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ToolApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ToolApiModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->ToolApiModule - - + + ToolModule - -ToolModule + +ToolModule ToolModule->ToolApiModule - - + + UserModule - -UserModule + +UserModule UserModule->ToolApiModule - - + + ContextExternalToolUc - -ContextExternalToolUc + +ContextExternalToolUc ContextExternalToolUc->ToolApiModule - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolConfigurationService->ToolApiModule - - + + ExternalToolConfigurationUc - -ExternalToolConfigurationUc + +ExternalToolConfigurationUc ExternalToolConfigurationUc->ToolApiModule - - + + ExternalToolRequestMapper - -ExternalToolRequestMapper + +ExternalToolRequestMapper ExternalToolRequestMapper->ToolApiModule - - + + ExternalToolResponseMapper - -ExternalToolResponseMapper + +ExternalToolResponseMapper ExternalToolResponseMapper->ToolApiModule - - + + ExternalToolUc - -ExternalToolUc + +ExternalToolUc ExternalToolUc->ToolApiModule - - + + LtiToolRepo - -LtiToolRepo + +LtiToolRepo LtiToolRepo->ToolApiModule - - + + SchoolExternalToolRequestMapper - -SchoolExternalToolRequestMapper + +SchoolExternalToolRequestMapper SchoolExternalToolRequestMapper->ToolApiModule - - + + SchoolExternalToolResponseMapper - -SchoolExternalToolResponseMapper + +SchoolExternalToolResponseMapper SchoolExternalToolResponseMapper->ToolApiModule - - + + SchoolExternalToolUc - -SchoolExternalToolUc + +SchoolExternalToolUc SchoolExternalToolUc->ToolApiModule - - + + ToolLaunchUc - -ToolLaunchUc + +ToolLaunchUc ToolLaunchUc->ToolApiModule - - + + ToolPermissionHelper - -ToolPermissionHelper + +ToolPermissionHelper ToolPermissionHelper->ToolApiModule - - + + ToolReferenceUc - -ToolReferenceUc + +ToolReferenceUc ToolReferenceUc->ToolApiModule - - + + diff --git a/modules/ToolApiModule/dependencies.svg b/modules/ToolApiModule/dependencies.svg index 6192c306d47..49e61ad3c41 100644 --- a/modules/ToolApiModule/dependencies.svg +++ b/modules/ToolApiModule/dependencies.svg @@ -24,283 +24,283 @@ cluster_ToolApiModule - -cluster_ToolApiModule_imports - - cluster_ToolApiModule_providers - + + + +cluster_ToolApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule ToolApiModule - -ToolApiModule + +ToolApiModule AuthorizationModule->ToolApiModule - - + + BoardModule - -BoardModule + +BoardModule BoardModule->ToolApiModule - - + + CommonToolModule - -CommonToolModule + +CommonToolModule CommonToolModule->ToolApiModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->ToolApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ToolApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ToolApiModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->ToolApiModule - - + + ToolModule - -ToolModule + +ToolModule ToolModule->ToolApiModule - - + + UserModule - -UserModule + +UserModule UserModule->ToolApiModule - - + + ContextExternalToolUc - -ContextExternalToolUc + +ContextExternalToolUc ContextExternalToolUc->ToolApiModule - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolConfigurationService->ToolApiModule - - + + ExternalToolConfigurationUc - -ExternalToolConfigurationUc + +ExternalToolConfigurationUc ExternalToolConfigurationUc->ToolApiModule - - + + ExternalToolRequestMapper - -ExternalToolRequestMapper + +ExternalToolRequestMapper ExternalToolRequestMapper->ToolApiModule - - + + ExternalToolResponseMapper - -ExternalToolResponseMapper + +ExternalToolResponseMapper ExternalToolResponseMapper->ToolApiModule - - + + ExternalToolUc - -ExternalToolUc + +ExternalToolUc ExternalToolUc->ToolApiModule - - + + LtiToolRepo - -LtiToolRepo + +LtiToolRepo LtiToolRepo->ToolApiModule - - + + SchoolExternalToolRequestMapper - -SchoolExternalToolRequestMapper + +SchoolExternalToolRequestMapper SchoolExternalToolRequestMapper->ToolApiModule - - + + SchoolExternalToolResponseMapper - -SchoolExternalToolResponseMapper + +SchoolExternalToolResponseMapper SchoolExternalToolResponseMapper->ToolApiModule - - + + SchoolExternalToolUc - -SchoolExternalToolUc + +SchoolExternalToolUc SchoolExternalToolUc->ToolApiModule - - + + ToolLaunchUc - -ToolLaunchUc + +ToolLaunchUc ToolLaunchUc->ToolApiModule - - + + ToolPermissionHelper - -ToolPermissionHelper + +ToolPermissionHelper ToolPermissionHelper->ToolApiModule - - + + ToolReferenceUc - -ToolReferenceUc + +ToolReferenceUc ToolReferenceUc->ToolApiModule - - + + diff --git a/modules/ToolLaunchModule.html b/modules/ToolLaunchModule.html index c281b14274c..7e4b41b6579 100644 --- a/modules/ToolLaunchModule.html +++ b/modules/ToolLaunchModule.html @@ -66,239 +66,239 @@ cluster_ToolLaunchModule - -cluster_ToolLaunchModule_exports - + +cluster_ToolLaunchModule_providers + cluster_ToolLaunchModule_imports - + - -cluster_ToolLaunchModule_providers - + +cluster_ToolLaunchModule_exports + BoardModule - -BoardModule + +BoardModule ToolLaunchModule - -ToolLaunchModule + +ToolLaunchModule BoardModule->ToolLaunchModule - - + + CommonToolModule - -CommonToolModule + +CommonToolModule 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 - - + + AutoContextIdStrategy - -AutoContextIdStrategy + +AutoContextIdStrategy AutoContextIdStrategy->ToolLaunchModule - - + + AutoContextNameStrategy - -AutoContextNameStrategy + +AutoContextNameStrategy AutoContextNameStrategy->ToolLaunchModule - - + + AutoSchoolIdStrategy - -AutoSchoolIdStrategy + +AutoSchoolIdStrategy AutoSchoolIdStrategy->ToolLaunchModule - - + + AutoSchoolNumberStrategy - -AutoSchoolNumberStrategy + +AutoSchoolNumberStrategy AutoSchoolNumberStrategy->ToolLaunchModule - - + + 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 1b76b7f29ac..eb609f50fc9 100644 --- a/modules/ToolLaunchModule/dependencies.svg +++ b/modules/ToolLaunchModule/dependencies.svg @@ -24,239 +24,239 @@ cluster_ToolLaunchModule - -cluster_ToolLaunchModule_exports - + +cluster_ToolLaunchModule_providers + cluster_ToolLaunchModule_imports - + - -cluster_ToolLaunchModule_providers - + +cluster_ToolLaunchModule_exports + BoardModule - -BoardModule + +BoardModule ToolLaunchModule - -ToolLaunchModule + +ToolLaunchModule BoardModule->ToolLaunchModule - - + + CommonToolModule - -CommonToolModule + +CommonToolModule 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 - - + + AutoContextIdStrategy - -AutoContextIdStrategy + +AutoContextIdStrategy AutoContextIdStrategy->ToolLaunchModule - - + + AutoContextNameStrategy - -AutoContextNameStrategy + +AutoContextNameStrategy AutoContextNameStrategy->ToolLaunchModule - - + + AutoSchoolIdStrategy - -AutoSchoolIdStrategy + +AutoSchoolIdStrategy AutoSchoolIdStrategy->ToolLaunchModule - - + + AutoSchoolNumberStrategy - -AutoSchoolNumberStrategy + +AutoSchoolNumberStrategy AutoSchoolNumberStrategy->ToolLaunchModule - - + + 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 00c44408eb6..fa20e62911d 100644 --- a/modules/ToolModule.html +++ b/modules/ToolModule.html @@ -70,14 +70,14 @@ cluster_ToolModule_providers - -cluster_ToolModule_imports - - cluster_ToolModule_exports + +cluster_ToolModule_imports + + ContextExternalToolModule diff --git a/modules/ToolModule/dependencies.svg b/modules/ToolModule/dependencies.svg index e308968b339..fc7a7264243 100644 --- a/modules/ToolModule/dependencies.svg +++ b/modules/ToolModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_ToolModule_providers - -cluster_ToolModule_imports - - cluster_ToolModule_exports + +cluster_ToolModule_imports + + ContextExternalToolModule diff --git a/modules/UserLoginMigrationModule.html b/modules/UserLoginMigrationModule.html index 8dd62887e54..80318b3b98e 100644 --- a/modules/UserLoginMigrationModule.html +++ b/modules/UserLoginMigrationModule.html @@ -70,14 +70,14 @@ cluster_UserLoginMigrationModule_providers - -cluster_UserLoginMigrationModule_exports - - cluster_UserLoginMigrationModule_imports + +cluster_UserLoginMigrationModule_exports + + AccountModule diff --git a/modules/UserLoginMigrationModule/dependencies.svg b/modules/UserLoginMigrationModule/dependencies.svg index b99145cfe46..3b9af6ad517 100644 --- a/modules/UserLoginMigrationModule/dependencies.svg +++ b/modules/UserLoginMigrationModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_UserLoginMigrationModule_providers - -cluster_UserLoginMigrationModule_exports - - cluster_UserLoginMigrationModule_imports + +cluster_UserLoginMigrationModule_exports + + AccountModule diff --git a/modules/VideoConferenceModule.html b/modules/VideoConferenceModule.html index fbc3b051862..dc103580f5c 100644 --- a/modules/VideoConferenceModule.html +++ b/modules/VideoConferenceModule.html @@ -66,6 +66,10 @@ cluster_VideoConferenceModule + +cluster_VideoConferenceModule_exports + + cluster_VideoConferenceModule_imports @@ -74,10 +78,6 @@ cluster_VideoConferenceModule_providers - -cluster_VideoConferenceModule_exports - - AuthorizationModule diff --git a/modules/VideoConferenceModule/dependencies.svg b/modules/VideoConferenceModule/dependencies.svg index 54950dd558c..ee40f9fbddd 100644 --- a/modules/VideoConferenceModule/dependencies.svg +++ b/modules/VideoConferenceModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_VideoConferenceModule + +cluster_VideoConferenceModule_exports + + cluster_VideoConferenceModule_imports @@ -32,10 +36,6 @@ cluster_VideoConferenceModule_providers - -cluster_VideoConferenceModule_exports - - AuthorizationModule