mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-16 16:14:43 -04:00
refactor(note-permissions-dto): do not embed User objects
This is part of an effort to consistently not embed User objects in API responses. Usernames are returned instead. Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
6cd3feb82c
commit
b955faa983
4 changed files with 9 additions and 12 deletions
|
@ -87,12 +87,12 @@ export class NoteGroupPermissionUpdateDto {
|
||||||
|
|
||||||
export class NotePermissionsDto {
|
export class NotePermissionsDto {
|
||||||
/**
|
/**
|
||||||
* User this permission applies to
|
* Username of the User this permission applies to
|
||||||
*/
|
*/
|
||||||
@ValidateNested()
|
@IsString()
|
||||||
@ApiPropertyOptional({ type: UserInfoDto })
|
@ApiPropertyOptional()
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
owner: UserInfoDto | null;
|
owner: string | null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of users the note is shared with
|
* List of users the note is shared with
|
||||||
|
|
|
@ -686,8 +686,7 @@ describe('NotesService', () => {
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
const permissions = await service.toNotePermissionsDto(note);
|
const permissions = await service.toNotePermissionsDto(note);
|
||||||
expect(permissions.owner).not.toEqual(null);
|
expect(permissions.owner).toEqual(user.username);
|
||||||
expect(permissions.owner?.username).toEqual(user.username);
|
|
||||||
expect(permissions.sharedToUsers).toHaveLength(1);
|
expect(permissions.sharedToUsers).toHaveLength(1);
|
||||||
expect(permissions.sharedToUsers[0].user.username).toEqual(user.username);
|
expect(permissions.sharedToUsers[0].user.username).toEqual(user.username);
|
||||||
expect(permissions.sharedToUsers[0].canEdit).toEqual(true);
|
expect(permissions.sharedToUsers[0].canEdit).toEqual(true);
|
||||||
|
@ -777,7 +776,7 @@ describe('NotesService', () => {
|
||||||
expect(metadataDto.description).toEqual(note.description);
|
expect(metadataDto.description).toEqual(note.description);
|
||||||
expect(metadataDto.editedBy).toHaveLength(1);
|
expect(metadataDto.editedBy).toHaveLength(1);
|
||||||
expect(metadataDto.editedBy[0]).toEqual(user.username);
|
expect(metadataDto.editedBy[0]).toEqual(user.username);
|
||||||
expect(metadataDto.permissions.owner.username).toEqual(user.username);
|
expect(metadataDto.permissions.owner).toEqual(user.username);
|
||||||
expect(metadataDto.permissions.sharedToUsers).toHaveLength(1);
|
expect(metadataDto.permissions.sharedToUsers).toHaveLength(1);
|
||||||
expect(metadataDto.permissions.sharedToUsers[0].user.username).toEqual(
|
expect(metadataDto.permissions.sharedToUsers[0].user.username).toEqual(
|
||||||
user.username,
|
user.username,
|
||||||
|
@ -879,9 +878,7 @@ describe('NotesService', () => {
|
||||||
expect(noteDto.metadata.description).toEqual(note.description);
|
expect(noteDto.metadata.description).toEqual(note.description);
|
||||||
expect(noteDto.metadata.editedBy).toHaveLength(1);
|
expect(noteDto.metadata.editedBy).toHaveLength(1);
|
||||||
expect(noteDto.metadata.editedBy[0]).toEqual(user.username);
|
expect(noteDto.metadata.editedBy[0]).toEqual(user.username);
|
||||||
expect(noteDto.metadata.permissions.owner.username).toEqual(
|
expect(noteDto.metadata.permissions.owner).toEqual(user.username);
|
||||||
user.username,
|
|
||||||
);
|
|
||||||
expect(noteDto.metadata.permissions.sharedToUsers).toHaveLength(1);
|
expect(noteDto.metadata.permissions.sharedToUsers).toHaveLength(1);
|
||||||
expect(
|
expect(
|
||||||
noteDto.metadata.permissions.sharedToUsers[0].user.username,
|
noteDto.metadata.permissions.sharedToUsers[0].user.username,
|
||||||
|
|
|
@ -373,7 +373,7 @@ export class NotesService {
|
||||||
const userPermissions = await note.userPermissions;
|
const userPermissions = await note.userPermissions;
|
||||||
const groupPermissions = await note.groupPermissions;
|
const groupPermissions = await note.groupPermissions;
|
||||||
return {
|
return {
|
||||||
owner: owner ? this.usersService.toUserDto(owner) : null,
|
owner: owner ? owner.username : null,
|
||||||
sharedToUsers: userPermissions.map((noteUserPermission) => ({
|
sharedToUsers: userPermissions.map((noteUserPermission) => ({
|
||||||
user: this.usersService.toUserDto(noteUserPermission.user),
|
user: this.usersService.toUserDto(noteUserPermission.user),
|
||||||
canEdit: noteUserPermission.canEdit,
|
canEdit: noteUserPermission.canEdit,
|
||||||
|
|
|
@ -276,7 +276,7 @@ describe('Notes', () => {
|
||||||
expect(metadata.body.description).toEqual('');
|
expect(metadata.body.description).toEqual('');
|
||||||
expect(typeof metadata.body.createdAt).toEqual('string');
|
expect(typeof metadata.body.createdAt).toEqual('string');
|
||||||
expect(metadata.body.editedBy).toEqual([]);
|
expect(metadata.body.editedBy).toEqual([]);
|
||||||
expect(metadata.body.permissions.owner.username).toEqual('hardcoded');
|
expect(metadata.body.permissions.owner).toEqual('hardcoded');
|
||||||
expect(metadata.body.permissions.sharedToUsers).toEqual([]);
|
expect(metadata.body.permissions.sharedToUsers).toEqual([]);
|
||||||
expect(metadata.body.permissions.sharedToUsers).toEqual([]);
|
expect(metadata.body.permissions.sharedToUsers).toEqual([]);
|
||||||
expect(metadata.body.tags).toEqual([]);
|
expect(metadata.body.tags).toEqual([]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue