From d95cce94433116d4fc383a35c1d870ca583238c2 Mon Sep 17 00:00:00 2001 From: IgorCapCoder <93926487+IgorCapCoder@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:28:40 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20hpi-schu?= =?UTF-8?q?l-cloud/schulcloud-server@251981f1e9045caa0135706805fdf72a4f1fa?= =?UTF-8?q?3dc=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/ExternalGroupDto.html | 2 +- classes/GroupDomainMapper.html | 4 +- classes/OauthDataDto.html | 2 +- classes/PseudonymMapper.html | 280 + classes/PseudonymParams.html | 242 + classes/PseudonymResponse.html | 378 ++ classes/PseudonymScope.html | 710 ++ classes/SubmissionsResponse.html | 6 +- controllers/PseudonymController.html | 332 + coverage.html | 164 +- entities/GroupEntity.html | 2 +- entities/Material.html | 2 +- graph/dependencies.svg | 5758 ++++++++-------- injectables/CourseGroupRepo.html | 6 +- injectables/CourseService.html | 81 + injectables/ExternalToolPseudonymRepo.html | 234 +- injectables/FeathersRosterService.html | 1519 +++++ injectables/GroupRepo.html | 14 +- injectables/GroupService.html | 16 +- injectables/IdTokenService.html | 119 +- injectables/Lti11ToolLaunchStrategy.html | 2 +- injectables/NextcloudStrategy.html | 2 +- injectables/OidcProvisioningService.html | 2 +- injectables/PseudonymService.html | 310 +- injectables/PseudonymUc.html | 378 ++ injectables/RocketChatService.html | 2 +- injectables/SanisResponseMapper.html | 2 +- interfaces/GroupEntityProps.html | 4 +- interfaces/GroupProps.html | 4 +- interfaces/IMaterialProperties.html | 4 +- interfaces/IdToken.html | 4 +- interfaces/PseudonymSearchQuery.html | 317 + .../SanisGruppenzugehoerigkeitResponse.html | 4 +- ...nisSonstigeGruppenzugehoerigeResponse.html | 4 +- interfaces/UserData.html | 497 ++ interfaces/UserGroup.html | 536 ++ interfaces/UserGroups.html | 458 ++ interfaces/UserMetdata.html | 458 ++ js/menu-wc.js | 88 +- js/search/search_index.js | 4 +- miscellaneous/typealiases.html | 2 +- miscellaneous/variables.html | 9 +- modules.html | 17 + modules/AuthenticationApiModule.html | 26 +- .../AuthenticationApiModule/dependencies.svg | 26 +- modules/AuthenticationModule.html | 162 +- modules/AuthenticationModule/dependencies.svg | 162 +- modules/AuthorizationModule.html | 272 +- modules/AuthorizationModule/dependencies.svg | 272 +- modules/BoardApiModule.html | 62 +- modules/BoardApiModule/dependencies.svg | 62 +- modules/BoardModule.html | 226 +- modules/BoardModule/dependencies.svg | 226 +- modules/CacheWrapperModule.html | 8 +- modules/CacheWrapperModule/dependencies.svg | 8 +- .../CollaborativeStorageAdapterModule.html | 98 +- .../dependencies.svg | 98 +- modules/CollaborativeStorageModule.html | 98 +- .../dependencies.svg | 98 +- modules/CommonToolModule.html | 114 +- modules/CommonToolModule/dependencies.svg | 114 +- modules/ContextExternalToolModule.html | 96 +- .../dependencies.svg | 96 +- modules/CoreModule.html | 8 +- modules/CoreModule/dependencies.svg | 8 +- modules/ExternalToolModule.html | 8 +- modules/ExternalToolModule/dependencies.svg | 8 +- modules/FeathersModule.html | 8 +- modules/FeathersModule/dependencies.svg | 8 +- modules/FilesModule.html | 46 +- modules/FilesModule/dependencies.svg | 46 +- modules/FilesStorageApiModule.html | 54 +- .../FilesStorageApiModule/dependencies.svg | 54 +- modules/FilesStorageClientModule.html | 72 +- .../FilesStorageClientModule/dependencies.svg | 72 +- modules/FwuLearningContentsModule.html | 70 +- .../dependencies.svg | 70 +- modules/IdentityManagementModule.html | 8 +- .../IdentityManagementModule/dependencies.svg | 8 +- modules/KeycloakModule.html | 8 +- modules/KeycloakModule/dependencies.svg | 8 +- modules/LearnroomModule.html | 8 +- modules/LearnroomModule/dependencies.svg | 8 +- modules/LegacySchoolModule.html | 8 +- modules/LegacySchoolModule/dependencies.svg | 8 +- modules/LessonModule.html | 8 +- modules/LessonModule/dependencies.svg | 8 +- modules/LtiToolModule.html | 8 +- modules/LtiToolModule/dependencies.svg | 8 +- modules/NewsModule.html | 58 +- modules/NewsModule/dependencies.svg | 58 +- modules/OauthApiModule.html | 102 +- modules/OauthApiModule/dependencies.svg | 102 +- modules/OauthModule.html | 8 +- modules/OauthModule/dependencies.svg | 8 +- modules/OauthProviderApiModule.html | 110 +- .../OauthProviderApiModule/dependencies.svg | 110 +- modules/OauthProviderModule.html | 8 +- modules/OauthProviderModule/dependencies.svg | 8 +- modules/ProvisioningModule.html | 8 +- modules/ProvisioningModule/dependencies.svg | 8 +- modules/PseudonymApiModule.html | 310 + modules/PseudonymApiModule/dependencies.svg | 90 + modules/PseudonymModule.html | 174 +- modules/PseudonymModule/dependencies.svg | 142 +- modules/SchoolExternalToolModule.html | 64 +- .../SchoolExternalToolModule/dependencies.svg | 64 +- modules/ServerModule.html | 259 +- modules/ServerModule/dependencies.svg | 250 +- modules/ServerTestModule.html | 271 +- modules/ServerTestModule/dependencies.svg | 258 +- modules/SharingModule.html | 8 +- modules/SharingModule/dependencies.svg | 8 +- modules/SystemApiModule.html | 26 +- modules/SystemApiModule/dependencies.svg | 26 +- modules/SystemModule.html | 64 +- modules/SystemModule/dependencies.svg | 64 +- modules/TaskModule.html | 8 +- modules/TaskModule/dependencies.svg | 8 +- modules/ToolApiModule.html | 166 +- modules/ToolApiModule/dependencies.svg | 166 +- modules/ToolLaunchModule.html | 128 +- modules/ToolLaunchModule/dependencies.svg | 128 +- modules/UserApiModule.html | 26 +- modules/UserApiModule/dependencies.svg | 26 +- modules/UserLoginMigrationModule.html | 146 +- .../UserLoginMigrationModule/dependencies.svg | 146 +- modules/VideoConferenceApiModule.html | 70 +- .../VideoConferenceApiModule/dependencies.svg | 70 +- modules/VideoConferenceModule.html | 132 +- .../VideoConferenceModule/dependencies.svg | 132 +- overview.html | 5768 +++++++++-------- 132 files changed, 16643 insertions(+), 9074 deletions(-) create mode 100644 classes/PseudonymMapper.html create mode 100644 classes/PseudonymParams.html create mode 100644 classes/PseudonymResponse.html create mode 100644 classes/PseudonymScope.html create mode 100644 controllers/PseudonymController.html create mode 100644 injectables/FeathersRosterService.html create mode 100644 injectables/PseudonymUc.html create mode 100644 interfaces/PseudonymSearchQuery.html create mode 100644 interfaces/UserData.html create mode 100644 interfaces/UserGroup.html create mode 100644 interfaces/UserGroups.html create mode 100644 interfaces/UserMetdata.html create mode 100644 modules/PseudonymApiModule.html create mode 100644 modules/PseudonymApiModule/dependencies.svg diff --git a/classes/ExternalGroupDto.html b/classes/ExternalGroupDto.html index cec43c43d90..4e5fdd55cfa 100644 --- a/classes/ExternalGroupDto.html +++ b/classes/ExternalGroupDto.html @@ -347,7 +347,7 @@
ExternalGroupUserDto[]
+ Type : ExternalGroupUserDto[]
mapDomainObjectToEntityProperties(group: Group, em: EntityManager)
+ mapDomainObjectToEntityProperties(group: Group, em: EntityManager)
Group
+ Group
ExternalGroupDto[]
+ Type : ExternalGroupDto[]
+
+ apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts
+
+ Methods+ |
+
+
|
+
+ + + Static + mapToResponse + + + | +||||||
+
+ mapToResponse(pseudonym: Pseudonym)
+ |
+ ||||||
+ + | +||||||
+
+
+ Parameters :
+
+
+
+
+
+ Returns :
+ PseudonymResponse
+
+
+
+
+ |
+
import { Pseudonym } from '@shared/domain';
+import { PseudonymResponse } from '../controller/dto';
+
+export class PseudonymMapper {
+ static mapToResponse(pseudonym: Pseudonym): PseudonymResponse {
+ const response: PseudonymResponse = new PseudonymResponse({
+ id: pseudonym.id,
+ toolId: pseudonym.toolId,
+ userId: pseudonym.userId,
+ });
+
+ return response;
+ }
+}
+
+ +
+ apps/server/src/modules/pseudonym/controller/dto/pseudonym-params.ts
+
+ Properties+ |
+
+
|
+
+ + + + + pseudonym + + + | +
+ Type : string
+
+ |
+
+ Decorators :
+ +
+ @IsString()
+ |
+
+ + | +
import { ApiProperty } from '@nestjs/swagger';
+import { IsString } from 'class-validator';
+
+export class PseudonymParams {
+ @IsString()
+ @ApiProperty({ nullable: false, required: true })
+ pseudonym!: string;
+}
+
+ +
+ apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts
+
+ Properties+ |
+
+ + | +
+constructor(response: PseudonymResponse)
+ |
+ ||||||
+ + | +||||||
+
+ Parameters :
+
+
|
+
+ + + + id + + + | +
+ Type : string
+
+ |
+
+ Decorators :
+ +
+ @ApiProperty()
+ |
+
+ + | +
+ + + + toolId + + + | +
+ Type : string
+
+ |
+
+ Decorators :
+ +
+ @ApiProperty()
+ |
+
+ + | +
+ + + + userId + + + | +
+ Type : string
+
+ |
+
+ Decorators :
+ +
+ @ApiProperty()
+ |
+
+ + | +
import { ApiProperty } from '@nestjs/swagger';
+
+export class PseudonymResponse {
+ @ApiProperty()
+ id: string;
+
+ @ApiProperty()
+ toolId: string;
+
+ @ApiProperty()
+ userId: string;
+
+ constructor(response: PseudonymResponse) {
+ this.id = response.id;
+ this.toolId = response.toolId;
+ this.userId = response.userId;
+ }
+}
+
+ +
+ apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts
+
+
+ Scope
+
+ Properties+ |
+
+
|
+
+ Methods+ |
+
+
|
+
+ + + Private + _allowEmptyQuery + + + | +
+ Type : boolean
+
+ |
+
+ Inherited from
+ Scope
+ |
+
+ Defined in
+ Scope:13
+ |
+
+ + + Private + _operator + + + | +
+ Type : ScopeOperator
+
+ |
+
+ Inherited from
+ Scope
+ |
+
+ Defined in
+ Scope:11
+ |
+
+ + + Private + _queries + + + | +
+ Type : FilterQuery<T | EmptyResultQueryType>[]
+
+ |
+
+ Default value : []
+ |
+
+ Inherited from
+ Scope
+ |
+
+ Defined in
+ Scope:9
+ |
+
+ + + byToolId + + + | +||||||
+byToolId(toolId: string | undefined)
+ |
+ ||||||
+ + | +||||||
+
+
+ Parameters :
+
+
+
+
+ |
+
+ + + byUserId + + + | +||||||
+byUserId(userId: string | undefined)
+ |
+ ||||||
+ + | +||||||
+
+
+ Parameters :
+
+
+
+
+ |
+
+ + + addQuery + + + | +||||||
+addQuery(query: FilterQuery<T> | EmptyResultQueryType)
+ |
+ ||||||
+ Inherited from
+ Scope
+ |
+ ||||||
+ Defined in
+ Scope:31
+ |
+ ||||||
+
+
+ Parameters :
+
+
+
+
+
+ Returns :
+ void
+
+
+
+
+ |
+
+ + + allowEmptyQuery + + + | +||||||
+allowEmptyQuery(isEmptyQueryAllowed: boolean)
+ |
+ ||||||
+ Inherited from
+ Scope
+ |
+ ||||||
+ Defined in
+ Scope:35
+ |
+ ||||||
+
+
+ Parameters :
+
+
+
+
+
+ Returns :
+ Scope<T>
+
+
+
+
+ |
+
import { Scope } from '@shared/repo';
+import { ObjectId } from 'bson';
+import { ExternalToolPseudonymEntity } from './external-tool-pseudonym.entity';
+
+export class PseudonymScope extends Scope<ExternalToolPseudonymEntity> {
+ byPseudonym(pseudonym: string | undefined): this {
+ if (pseudonym) {
+ this.addQuery({ pseudonym });
+ }
+ return this;
+ }
+
+ byUserId(userId: string | undefined): this {
+ if (userId) {
+ this.addQuery({ userId: new ObjectId(userId) });
+ }
+ return this;
+ }
+
+ byToolId(toolId: string | undefined): this {
+ if (toolId) {
+ this.addQuery({ toolId: new ObjectId(toolId) });
+ }
+ return this;
+ }
+}
+
+ constructor(submissionItemsResponse: SubmissionItemResponse[], users: UserDataResponse[])
+constructor(submissionItemsResponse: SubmissionItemResponse[], users: UserDataResponse[])
UserDataResponse[]
+ UserDataResponse[]
UserDataResponse[]
+ Type : UserDataResponse[]
+
+ apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts
+
+
+ pseudonyms
+
+ Methods+ |
+
+
|
+
+ + + + + + + + Async + getPseudonym + + + | +|||||||||
+
+ getPseudonym(params: PseudonymParams, currentUser: ICurrentUser)
+ |
+ |||||||||
+ Decorators :
+ + @Get(':pseudonym')
+ |
+ |||||||||
+ + | +|||||||||
+
+
+ Parameters :
+
+
+
+
+
+ Returns :
+ Promise<PseudonymResponse>
+
+
+
+
+ |
+
import { Controller, Get, Param } from '@nestjs/common';
+import {
+ ApiForbiddenResponse,
+ ApiFoundResponse,
+ ApiOperation,
+ ApiTags,
+ ApiUnauthorizedResponse,
+} from '@nestjs/swagger';
+import { Pseudonym } from '@shared/domain';
+import { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';
+import { ICurrentUser } from '@src/modules/authentication';
+import { PseudonymMapper } from '../mapper/pseudonym.mapper';
+import { PseudonymUc } from '../uc';
+import { PseudonymResponse } from './dto';
+import { PseudonymParams } from './dto/pseudonym-params';
+
+@ApiTags('Pseudonym')
+@Authenticate('jwt')
+@Controller('pseudonyms')
+export class PseudonymController {
+ constructor(private readonly pseudonymUc: PseudonymUc) {}
+
+ @Get(':pseudonym')
+ @ApiFoundResponse({ description: 'Pseudonym has been found.', type: PseudonymResponse })
+ @ApiUnauthorizedResponse()
+ @ApiForbiddenResponse()
+ @ApiOperation({ summary: 'Returns the related user and tool information to a pseudonym' })
+ async getPseudonym(
+ @Param() params: PseudonymParams,
+ @CurrentUser() currentUser: ICurrentUser
+ ): Promise<PseudonymResponse> {
+ const pseudonym: Pseudonym = await this.pseudonymUc.findPseudonymByPseudonym(currentUser.userId, params.pseudonym);
+
+ const pseudonymResponse: PseudonymResponse = PseudonymMapper.mapToResponse(pseudonym);
+
+ return pseudonymResponse;
+ }
+}
+
+ GroupUserEntity[]
+ Type : GroupUserEntity[]
ITargetGroupProperties[] |
+ Type : ITargetGroupProperties[] |